aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorFranziska Hinkelmann <franziska.hinkelmann@gmail.com>2017-10-23 16:06:35 +0200
committerFranziska Hinkelmann <franziska.hinkelmann@gmail.com>2017-10-25 17:23:40 +0200
commited116dc3c65a6d568e2de7c09bd1c6f9db2c9b24 (patch)
tree5bcda3f4fadf0dfc8d9415e9625045f8084fc5cc /test
parent9c6f6b0633ef4009cc04cfff5efb29c23ef5fc2b (diff)
downloadandroid-node-v8-ed116dc3c65a6d568e2de7c09bd1c6f9db2c9b24.tar.gz
android-node-v8-ed116dc3c65a6d568e2de7c09bd1c6f9db2c9b24.tar.bz2
android-node-v8-ed116dc3c65a6d568e2de7c09bd1c6f9db2c9b24.zip
test: fix test for inherited properties on vm
The known issue is fixed with https://github.com/nodejs/node/pull/16293. The text needs to call `Object.hasOwnProperty(this)` instead of `this.hasOwnProperty()`, otherwise `this` is from the wrong context is used. Add a second test case taken verbatim from issue https://github.com/nodejs/node/issues/5350 PR-URL: https://github.com/nodejs/node/pull/16411 Fixes: https://github.com/nodejs/node/issues/5350 Ref: https://github.com/nodejs/node/pull/16293 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/known_issues/test-vm-inherited_properties.js20
-rw-r--r--test/parallel/test-vm-inherited_properties.js38
2 files changed, 38 insertions, 20 deletions
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 3df9c57219..0000000000
--- 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 0000000000..53087e1596
--- /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']);