diff --git a/test/known_issues/test-vm-proxy-failure-CP.js b/test/known_issues/test-vm-proxy-failure-CP.js new file mode 100644 index 0000000000..de644599b2 --- /dev/null +++ b/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)); diff --git a/test/parallel/test-vm-proxies.js b/test/parallel/test-vm-proxies.js index 25e16e8f5c..266b212fb8 100644 --- a/test/parallel/test-vm-proxies.js +++ b/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/);