Skip to content

Commit 63d4cae

Browse files
committed
worker: remove --experimental-worker flag
Having an experimental feature behind a flag makes change if we are expecting significant breaking changes to its API. Since the Worker API has been essentially stable since its initial introduction, and no noticeable doubt about possibly not keeping the feature around has been voiced, removing the flag and thereby reducing the barrier to experimentation, and consequently receiving feedback on the implementation, seems like a good idea. PR-URL: nodejs#25361 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Yuta Hiroto <hello@hiroppy.me> Reviewed-By: Shingo Inoue <leko.noor@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Masashi Hirano <shisama07@gmail.com> Reviewed-By: Weijia Wang <starkwang@126.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
1 parent 8ec3c35 commit 63d4cae

File tree

59 files changed

+19
-89
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+19
-89
lines changed

benchmark/misc/startup.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const bench = common.createBenchmark(main, {
1010
script: ['benchmark/fixtures/require-cachable', 'test/fixtures/semicolon'],
1111
mode: ['process', 'worker']
1212
}, {
13-
flags: ['--expose-internals', '--experimental-worker'] // for workers
13+
flags: ['--expose-internals']
1414
});
1515

1616
function spawnProcess(script) {

benchmark/worker/echo.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const bench = common.createBenchmark(main, {
77
payload: ['string', 'object'],
88
sendsPerBroadcast: [1, 10],
99
n: [1e5]
10-
}, { flags: ['--experimental-worker'] });
10+
});
1111

1212
const workerPath = path.resolve(__dirname, '..', 'fixtures', 'echo.worker.js');
1313

doc/api/cli.md

-8

doc/api/worker_threads.md

+1-1

doc/node.1

-3
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,6 @@ keyword support in REPL.
9494
.It Fl -experimental-vm-modules
9595
Enable experimental ES module support in VM module.
9696
.
97-
.It Fl -experimental-worker
98-
Enable experimental worker threads using worker_threads module.
99-
.
10097
.It Fl -force-fips
10198
Force FIPS-compliant crypto on startup
10299
(Cannot be disabled from script code).

lib/internal/bootstrap/loaders.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,7 @@ if (config.exposeInternals) {
253253
};
254254

255255
NativeModule.isInternal = function(id) {
256-
return id.startsWith('internal/') ||
257-
(id === 'worker_threads' && !config.experimentalWorker);
256+
return id.startsWith('internal/');
258257
};
259258
}
260259

lib/internal/bootstrap/node.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,7 @@ function startup() {
187187
setupQueueMicrotask();
188188
}
189189

190-
if (getOptionValue('--experimental-worker')) {
191-
setupDOMException();
192-
}
190+
setupDOMException();
193191

194192
// On OpenBSD process.execPath will be relative unless we
195193
// get the full path before process.execPath is used.

lib/internal/modules/cjs/helpers.js

+1-8
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ const {
99
CHAR_HASH,
1010
} = require('internal/constants');
1111

12-
const { getOptionValue } = require('internal/options');
13-
1412
// Invoke with makeRequireFunction(module) where |module| is the Module object
1513
// to use as the context for the require() function.
1614
function makeRequireFunction(mod) {
@@ -100,14 +98,9 @@ const builtinLibs = [
10098
'dgram', 'dns', 'domain', 'events', 'fs', 'http', 'http2', 'https', 'net',
10199
'os', 'path', 'perf_hooks', 'punycode', 'querystring', 'readline', 'repl',
102100
'stream', 'string_decoder', 'tls', 'trace_events', 'tty', 'url', 'util',
103-
'v8', 'vm', 'zlib'
101+
'v8', 'vm', 'worker_threads', 'zlib'
104102
];
105103

106-
if (getOptionValue('--experimental-worker')) {
107-
builtinLibs.push('worker_threads');
108-
builtinLibs.sort();
109-
}
110-
111104
if (typeof internalBinding('inspector').open === 'function') {
112105
builtinLibs.push('inspector');
113106
builtinLibs.sort();

src/node_config.cc

-3
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,6 @@ static void Initialize(Local<Object> target,
8585
if (env->options()->experimental_vm_modules)
8686
READONLY_TRUE_PROPERTY(target, "experimentalVMModules");
8787

88-
if (env->options()->experimental_worker)
89-
READONLY_TRUE_PROPERTY(target, "experimentalWorker");
90-
9188
if (env->options()->experimental_repl_await)
9289
READONLY_TRUE_PROPERTY(target, "experimentalREPLAwait");
9390

src/node_options.cc

+1-4
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,7 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
109109
"experimental ES Module support in vm module",
110110
&EnvironmentOptions::experimental_vm_modules,
111111
kAllowedInEnvironment);
112-
AddOption("--experimental-worker",
113-
"experimental threaded Worker support",
114-
&EnvironmentOptions::experimental_worker,
115-
kAllowedInEnvironment);
112+
AddOption("--experimental-worker", "", NoOp{}, kAllowedInEnvironment);
116113
AddOption("--expose-internals", "", &EnvironmentOptions::expose_internals);
117114
AddOption("--http-parser",
118115
"Select which HTTP parser to use; either 'legacy' or 'llhttp' "

src/node_options.h

-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ class EnvironmentOptions : public Options {
9696
bool experimental_modules = false;
9797
bool experimental_repl_await = false;
9898
bool experimental_vm_modules = false;
99-
bool experimental_worker = false;
10099
bool expose_internals = false;
101100
std::string http_parser = "llhttp";
102101
bool no_deprecation = false;

test/abort/test-addon-uv-handle-leak.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ if (process.argv[2] === 'child') {
3636
binding.leakHandle(0x42);
3737
`, { eval: true });
3838
} else {
39-
const child = cp.spawnSync(process.execPath,
40-
['--experimental-worker', __filename, 'child']);
39+
const child = cp.spawnSync(process.execPath, [__filename, 'child']);
4140
const stderr = child.stderr.toString();
4241

4342
assert.strictEqual(child.stdout.toString(), '');

test/addons/hello-world/test-worker.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../../common');
43
const assert = require('assert');

test/addons/worker-addon/test.js

-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../../common');
43
const assert = require('assert');
@@ -11,7 +10,6 @@ if (process.argv[2] === 'child') {
1110
new Worker(`require(${JSON.stringify(binding)});`, { eval: true });
1211
} else {
1312
const proc = child_process.spawnSync(process.execPath, [
14-
'--experimental-worker',
1513
__filename,
1614
'child'
1715
]);

test/parallel/test-async-wrap-missing-method.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-heapdump-worker.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Flags: --expose-internals --experimental-worker
1+
// Flags: --expose-internals
22
'use strict';
33
require('../common');
44
const { validateSnapshotNodes } = require('../common/heap');

test/parallel/test-module-cjs-helpers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
'use strict';
2-
// Flags: --expose-internals --experimental-worker
2+
// Flags: --expose-internals
33

44
require('../common');
55
const assert = require('assert');

test/parallel/test-trace-events-api-worker-disabled.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32

43
const common = require('../common');

test/parallel/test-trace-events-dynamic-enable-workers-disabled.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32

43
const common = require('../common');

test/parallel/test-trace-events-worker-metadata.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');
@@ -15,8 +14,7 @@ if (isMainThread) {
1514
process.chdir(tmpdir.path);
1615

1716
const proc = cp.spawn(process.execPath,
18-
[ '--experimental-worker',
19-
'--trace-event-categories', 'node',
17+
[ '--trace-event-categories', 'node',
2018
'-e', CODE ]);
2119
proc.once('exit', common.mustCall(() => {
2220
assert(fs.existsSync(FILE_NAME));

test/parallel/test-v8-coverage.js

-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ function nextdir() {
8787
{
8888
const coverageDirectory = path.join(tmpdir.path, nextdir());
8989
const output = spawnSync(process.execPath, [
90-
'--experimental-worker',
9190
require.resolve('../fixtures/v8-coverage/worker')
9291
], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } });
9392
assert.strictEqual(output.status, 0);

test/parallel/test-worker-cleanup-handles.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-debug.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43

@@ -154,9 +153,9 @@ async function testBasicWorkerDebug(session, post) {
154153
await workerSession.post('Debugger.enable');
155154
await workerSession.post('Runtime.enable');
156155
await workerSession.waitForBreakAfterCommand(
157-
'Runtime.runIfWaitingForDebugger', __filename, 2);
156+
'Runtime.runIfWaitingForDebugger', __filename, 1);
158157
await workerSession.waitForBreakAfterCommand(
159-
'Debugger.resume', __filename, 27); // V8 line number is zero-based
158+
'Debugger.resume', __filename, 26); // V8 line number is zero-based
160159
assert.strictEqual(await consolePromise, workerMessage);
161160
workerSession.post('Debugger.resume');
162161
await Promise.all([worker, detached, contextEvents]);

test/parallel/test-worker-dns-terminate.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const { Worker } = require('worker_threads');

test/parallel/test-worker-esmodule.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Flags: --experimental-worker --experimental-modules
1+
// Flags: --experimental-modules
22
'use strict';
33
const common = require('../common');
44
const fixtures = require('../common/fixtures');

test/parallel/test-worker-exit-code.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43

test/parallel/test-worker-invalid-workerdata.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
require('../common');
43
const assert = require('assert');

test/parallel/test-worker-memory.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-message-channel-sharedarraybuffer.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Flags: --expose-gc --experimental-worker
1+
// Flags: --expose-gc
22
'use strict';
33

44
const common = require('../common');

test/parallel/test-worker-message-channel.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-message-port-arraybuffer.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-message-port-drain.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
require('../common');
43

test/parallel/test-worker-message-port-message-port-transferring.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-message-port-transfer-closed.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32

43
const common = require('../common');

test/parallel/test-worker-message-port-transfer-self.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32

43
const common = require('../common');

test/parallel/test-worker-message-port-transfer-target.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32

43
const common = require('../common');

test/parallel/test-worker-message-port-wasm-module.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-message-port-wasm-threads.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Flags: --experimental-worker --experimental-wasm-threads
1+
// Flags: --experimental-wasm-threads
22
'use strict';
33
const common = require('../common');
44
const assert = require('assert');

test/parallel/test-worker-message-port.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-messageport-transfer-terminate.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
require('../common');
43
const { Worker, MessageChannel } = require('worker_threads');

test/parallel/test-worker-nexttick-terminate.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const { Worker } = require('worker_threads');

test/parallel/test-worker-onmessage-not-a-function.js

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// listener from holding the event loop open. This test confirms that
44
// functionality.
55

6-
// Flags: --experimental-worker
76
'use strict';
87
const common = require('../common');
98
const { Worker, parentPort } = require('worker_threads');

test/parallel/test-worker-onmessage.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-parent-port-ref.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const assert = require('assert');
43
const common = require('../common');

test/parallel/test-worker-relative-path-double-dot.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const path = require('path');
43
const assert = require('assert');

test/parallel/test-worker-relative-path.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const path = require('path');
43
const assert = require('assert');

test/parallel/test-worker-stdio.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-syntax-error-file.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const fixtures = require('../common/fixtures');

test/parallel/test-worker-syntax-error.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-type-check.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32

43
const common = require('../common');

test/parallel/test-worker-uncaught-exception-async.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-uncaught-exception.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

test/parallel/test-worker-unsupported-path.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32

43
const path = require('path');

test/parallel/test-worker-unsupported-things.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Flags: --experimental-worker
21
'use strict';
32
const common = require('../common');
43
const assert = require('assert');

0 commit comments

Comments
 (0)