diff --git a/src/node_contextify.cc b/src/node_contextify.cc index 952acfe06f4b85..343342408b1a75 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -171,7 +171,6 @@ MaybeLocal ContextifyContext::CreateV8Context( Local ctx = NewContext(env->isolate(), object_template); if (ctx.IsEmpty()) { - env->ThrowError("Could not instantiate context"); return MaybeLocal(); } diff --git a/test/parallel/test-worker-vm-context-terminate.js b/test/parallel/test-worker-vm-context-terminate.js new file mode 100644 index 00000000000000..23b58ba4db14d5 --- /dev/null +++ b/test/parallel/test-worker-vm-context-terminate.js @@ -0,0 +1,19 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const vm = require('vm'); +const { Worker } = require('worker_threads'); + +// Do not use isMainThread so that this test itself can be run inside a Worker. +if (!process.env.HAS_STARTED_WORKER) { + process.env.HAS_STARTED_WORKER = 1; + const w = new Worker(__filename); + w.on('online', common.mustCall(() => { + setTimeout(() => w.terminate(), 50); + })); + w.on('error', common.mustNotCall()); + w.on('exit', common.mustCall((code) => assert.strictEqual(code, 1))); +} else { + while (true) + vm.runInNewContext(''); +}