1'use strict'; 2 3require('../common'); 4 5const vm = require('vm'); 6const assert = require('assert'); 7 8let base = { 9 propBase: 1 10}; 11 12let sandbox = Object.create(base, { 13 propSandbox: { value: 3 } 14}); 15 16const context = vm.createContext(sandbox); 17 18let result = vm.runInContext('Object.hasOwnProperty(this, "propBase");', 19 context); 20 21assert.strictEqual(result, false); 22 23// Ref: https://github.com/nodejs/node/issues/5350 24base = Object.create(null); 25base.x = 1; 26base.y = 2; 27 28sandbox = Object.create(base); 29sandbox.z = 3; 30 31assert.deepStrictEqual(Object.keys(sandbox), ['z']); 32 33const code = 'x = 0; z = 4;'; 34result = vm.runInNewContext(code, sandbox); 35assert.strictEqual(result, 4); 36 37// Check that y is not an own property. 38assert.deepStrictEqual(Object.keys(sandbox), ['z', 'x']); 39