Skip to content

Commit

Permalink
test: add regression tests for vm bugs
Browse files Browse the repository at this point in the history
Add the regression test script presented in
nodejs#10806 to `test/parallel` and
re-add the original regression test for
nodejs#10223 in `test/known_issues`.

PR-URL: nodejs#10920
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
addaleax authored and italoacasas committed Jan 30, 2017
1 parent 7ff3078 commit 7e847af
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
16 changes: 16 additions & 0 deletions test/known_issues/test-vm-global-non-writable-properties.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
'use strict';
// https://github.com/nodejs/node/issues/10223

require('../common');
const assert = require('assert');
const vm = require('vm');

const ctx = vm.createContext();
vm.runInContext('Object.defineProperty(this, "x", { value: 42 })', ctx);
assert.strictEqual(ctx.x, undefined); // Not copied out by cloneProperty().
assert.strictEqual(vm.runInContext('x', ctx), 42);
vm.runInContext('x = 0', ctx); // Does not throw but x...
assert.strictEqual(vm.runInContext('x', ctx), 42); // ...should be unaltered.
assert.throws(() => vm.runInContext('"use strict"; x = 0', ctx),
/Cannot assign to read only property 'x'/);
assert.strictEqual(vm.runInContext('x', ctx), 42);
15 changes: 15 additions & 0 deletions test/parallel/test-vm-global-assignment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
'use strict';
// Regression test for https://github.com/nodejs/node/issues/10806

require('../common');
const assert = require('assert');
const vm = require('vm');
const ctx = vm.createContext({ open() { } });
const window = vm.runInContext('this', ctx);
const other = 123;

assert.notStrictEqual(window.open, other);
window.open = other;
assert.strictEqual(window.open, other);
window.open = other;
assert.strictEqual(window.open, other);

0 comments on commit 7e847af

Please sign in to comment.