Browse Source

test: failing behaviour on sandboxed Proxy

CopyProperties() causes sandboxed Proxy to throw error
when in fact no code has been run. The function will
be removed with the updates to the V8 API.

Here, failing Proxy test case is moved to known_issues.

PR-URL: https://github.com/nodejs/node/pull/11671
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
v6
AnnaMag 8 years ago
committed by James M Snell
parent
commit
6473737bb1
  1. 20
      test/known_issues/test-vm-proxy-failure-CP.js
  2. 13
      test/parallel/test-vm-proxies.js

20
test/known_issues/test-vm-proxy-failure-CP.js

@ -0,0 +1,20 @@
'use strict';
// Sandbox throws in CopyProperties() despite no code being run
// Issue: https://github.com/nodejs/node/issues/11902
require('../common');
const assert = require('assert');
const vm = require('vm');
const handler = {
getOwnPropertyDescriptor: (target, prop) => {
throw new Error('whoops');
}
};
const sandbox = new Proxy({foo: 'bar'}, handler);
const context = vm.createContext(sandbox);
assert.doesNotThrow(() => vm.runInContext('', context));

13
test/parallel/test-vm-proxies.js

@ -16,16 +16,3 @@ sandbox = { Proxy: Proxy };
vm.runInNewContext('this.Proxy = Proxy', sandbox);
assert.strictEqual(typeof sandbox.Proxy, 'function');
assert.strictEqual(sandbox.Proxy, Proxy);
// Handle a sandbox that throws while copying properties
assert.throws(() => {
const handler = {
getOwnPropertyDescriptor: (target, prop) => {
throw new Error('whoops');
}
};
const sandbox = new Proxy({foo: 'bar'}, handler);
const context = vm.createContext(sandbox);
vm.runInContext('', context);
}, /whoops/);

Loading…
Cancel
Save