test: add regression tests for vm bugs

Add the regression test script presented in
https://github.com/nodejs/node/issues/10806 to `test/parallel` and
re-add the original regression test for
https://github.com/nodejs/node/issues/10223 in `test/known_issues`.

PR-URL: https://github.com/nodejs/node/pull/10920
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
Anna Henningsen 2017-01-20 19:44:56 +01:00
parent 3e851cf18b
commit 1ef38e9fed
No known key found for this signature in database
GPG Key ID: D8B9F5AEAE84E4CF
2 changed files with 31 additions and 0 deletions

View File

@ -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);

View File

@ -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);