summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/worker_threads.js3
-rw-r--r--test/fixtures/worker-data.mjs3
-rw-r--r--test/parallel/test-worker-mjs-workerdata.js16
3 files changed, 21 insertions, 1 deletions
diff --git a/lib/worker_threads.js b/lib/worker_threads.js
index 828edb6bff..2fe1a87246 100644
--- a/lib/worker_threads.js
+++ b/lib/worker_threads.js
@@ -17,5 +17,6 @@ module.exports = {
MessageChannel,
threadId,
Worker,
- parentPort: null
+ parentPort: null,
+ workerData: null,
};
diff --git a/test/fixtures/worker-data.mjs b/test/fixtures/worker-data.mjs
new file mode 100644
index 0000000000..1ec884aadb
--- /dev/null
+++ b/test/fixtures/worker-data.mjs
@@ -0,0 +1,3 @@
+import { workerData, parentPort } from 'worker_threads';
+
+parentPort.postMessage(workerData);
diff --git a/test/parallel/test-worker-mjs-workerdata.js b/test/parallel/test-worker-mjs-workerdata.js
new file mode 100644
index 0000000000..c107730ea4
--- /dev/null
+++ b/test/parallel/test-worker-mjs-workerdata.js
@@ -0,0 +1,16 @@
+'use strict';
+const common = require('../common');
+const fixtures = require('../common/fixtures');
+const assert = require('assert');
+const { Worker } = require('worker_threads');
+
+const workerData = 'Hello from main thread';
+
+const worker = new Worker(fixtures.path('worker-data.mjs'), {
+ workerData,
+ execArgv: ['--experimental-modules']
+});
+
+worker.on('message', common.mustCall((message) => {
+ assert.strictEqual(message, workerData);
+}));