diff --git a/test/known_issues/test-vm-inherited_properties.js b/test/known_issues/test-vm-inherited_properties.js deleted file mode 100644 index 3df9c57219d8be..00000000000000 --- a/test/known_issues/test-vm-inherited_properties.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -// Ref: https://github.com/nodejs/node/issues/5350 - -require('../common'); -const vm = require('vm'); -const assert = require('assert'); - -const base = { - propBase: 1 -}; - -const sandbox = Object.create(base, { - propSandbox: { value: 3 } -}); - -const context = vm.createContext(sandbox); - -const result = vm.runInContext('this.hasOwnProperty("propBase");', context); - -assert.strictEqual(result, false); diff --git a/test/parallel/test-vm-inherited_properties.js b/test/parallel/test-vm-inherited_properties.js new file mode 100644 index 00000000000000..53087e1596e5c8 --- /dev/null +++ b/test/parallel/test-vm-inherited_properties.js @@ -0,0 +1,38 @@ +'use strict'; + +require('../common'); + +const vm = require('vm'); +const assert = require('assert'); + +let base = { + propBase: 1 +}; + +let sandbox = Object.create(base, { + propSandbox: { value: 3 } +}); + +const context = vm.createContext(sandbox); + +let result = vm.runInContext('Object.hasOwnProperty(this, "propBase");', + context); + +assert.strictEqual(result, false); + +// Ref: https://github.com/nodejs/node/issues/5350 +base = Object.create(null); +base.x = 1; +base.y = 2; + +sandbox = Object.create(base); +sandbox.z = 3; + +assert.deepStrictEqual(Object.keys(sandbox), ['z']); + +const code = 'x = 0; z = 4;'; +result = vm.runInNewContext(code, sandbox); +assert.strictEqual(result, 4); + +// Check that y is not an own property. +assert.deepStrictEqual(Object.keys(sandbox), ['z', 'x']);