diff --git a/lib/internal/worker.js b/lib/internal/worker.js index d88170ab9cd9cf..f44f9a6fda0dd1 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js @@ -189,7 +189,7 @@ class Worker extends EventEmitter { // Set up the C++ handle for the worker, as well as some internal wiring. this[kHandle] = new WorkerImpl(url, - env === process.env ? null : env, + env, options.execArgv, parseResourceLimits(options.resourceLimits), !!(options.trackUnmanagedFds ?? true)); diff --git a/test/parallel/test-worker-process-env-options.js b/test/parallel/test-worker-process-env-options.js new file mode 100644 index 00000000000000..74287c26219c5e --- /dev/null +++ b/test/parallel/test-worker-process-env-options.js @@ -0,0 +1,14 @@ +'use strict'; +const { Worker } = require('node:worker_threads'); + +if (!require.main) { + globalThis.setup = true; +} else { + process.env.NODE_OPTIONS ??= ``; + process.env.NODE_OPTIONS += ` --require ${JSON.stringify(__filename)}`; + + new Worker(` + const assert = require('assert'); + assert.strictEqual(globalThis.setup, true); + `, { eval: true }); +}