From 80270994d6ba6019a6a74adc1b97a0cc1bd343ed Mon Sep 17 00:00:00 2001 From: Daeyeon Jeong Date: Mon, 10 Oct 2022 09:41:55 +0900 Subject: [PATCH] lib: enable global CustomEvent by default Refs: https://github.com/nodejs/node/pull/43885 Signed-off-by: Daeyeon Jeong PR-URL: https://github.com/nodejs/node/pull/44860 Reviewed-By: James M Snell Reviewed-By: Antoine du Hamel --- doc/api/cli.md | 20 +++++++++---------- doc/api/globals.md | 10 +++++++--- doc/node.1 | 6 +++--- lib/internal/process/pre_execution.js | 2 +- src/node_options.cc | 3 ++- src/node_options.h | 2 +- .../test-global-customevent-disabled.js | 7 +++++++ test/parallel/test-global-customevent.js | 2 +- test/parallel/test-repl-tab-complete.js | 2 +- test/wpt/test-events.js | 2 -- 10 files changed, 32 insertions(+), 24 deletions(-) create mode 100644 test/parallel/test-global-customevent-disabled.js diff --git a/doc/api/cli.md b/doc/api/cli.md index 1824a85cc42b9e..6d7758f175b3df 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -341,16 +341,6 @@ when `Error.stack` is accessed. If you access `Error.stack` frequently in your application, take into account the performance implications of `--enable-source-maps`. -### `--experimental-global-customevent` - - - -Expose the [CustomEvent Web API][] on the global scope. - ### `--experimental-import-meta-resolve` + +Disable exposition of [CustomEvent Web API][] on the global scope. + ### `--no-experimental-repl-await` -> Stability: 1 - Experimental. Enable this API with the -> [`--experimental-global-customevent`][] CLI flag. +> Stability: 1 - Experimental. Disable this API with the +> [`--no-experimental-global-customevent`][] CLI flag. @@ -947,8 +951,8 @@ added: v18.0.0 A browser-compatible implementation of [`WritableStreamDefaultWriter`][]. [Web Crypto API]: webcrypto.md -[`--experimental-global-customevent`]: cli.md#--experimental-global-customevent [`--no-experimental-fetch`]: cli.md#--no-experimental-fetch +[`--no-experimental-global-customevent`]: cli.md#--no-experimental-global-customevent [`--no-experimental-global-webcrypto`]: cli.md#--no-experimental-global-webcrypto [`AbortController`]: https://developer.mozilla.org/en-US/docs/Web/API/AbortController [`ByteLengthQueuingStrategy`]: webstreams.md#class-bytelengthqueuingstrategy diff --git a/doc/node.1 b/doc/node.1 index cd55344c25a528..e30548163422b8 100644 --- a/doc/node.1 +++ b/doc/node.1 @@ -139,9 +139,6 @@ Requires Node.js to be built with .It Fl -enable-source-maps Enable Source Map V3 support for stack traces. . -.It Fl -experimental-global-customevent -Expose the CustomEvent on the global scope. -. .It Fl -experimental-global-webcrypto Expose the Web Crypto API on the global scope. . @@ -165,6 +162,9 @@ Use this flag to enable ShadowRealm support. .It Fl -no-experimental-fetch Disable experimental support for the Fetch API. . +.It Fl -no-experimental-global-customevent +Disable exposition of the CustomEvent on the global scope. +. .It Fl -no-experimental-global-webcrypto Disable exposition of the Web Crypto API on the global scope. . diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js index 71ec2979041b10..b4b5bbe7d9bffd 100644 --- a/lib/internal/process/pre_execution.js +++ b/lib/internal/process/pre_execution.js @@ -278,7 +278,7 @@ function setupWebCrypto() { // removed. function setupCustomEvent() { if (process.config.variables.node_no_browser_globals || - !getOptionValue('--experimental-global-customevent')) { + getOptionValue('--no-experimental-global-customevent')) { return; } const { CustomEvent } = require('internal/event_target'); diff --git a/src/node_options.cc b/src/node_options.cc index 01d8fb4a65935e..7ac22c789003e9 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -358,7 +358,8 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { AddOption("--experimental-global-customevent", "expose experimental CustomEvent on the global scope", &EnvironmentOptions::experimental_global_customevent, - kAllowedInEnvironment); + kAllowedInEnvironment, + true); AddOption("--experimental-global-webcrypto", "expose experimental Web Crypto API on the global scope", &EnvironmentOptions::experimental_global_web_crypto, diff --git a/src/node_options.h b/src/node_options.h index cdcf7f4c4f8e61..89d69e2b67a9d9 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -109,7 +109,7 @@ class EnvironmentOptions : public Options { std::string dns_result_order; bool enable_source_maps = false; bool experimental_fetch = true; - bool experimental_global_customevent = false; + bool experimental_global_customevent = true; bool experimental_global_web_crypto = true; bool experimental_https_modules = false; bool experimental_wasm_modules = false; diff --git a/test/parallel/test-global-customevent-disabled.js b/test/parallel/test-global-customevent-disabled.js new file mode 100644 index 00000000000000..2e19a498a0c01d --- /dev/null +++ b/test/parallel/test-global-customevent-disabled.js @@ -0,0 +1,7 @@ +// Flags: --no-experimental-global-customevent +'use strict'; + +require('../common'); +const { strictEqual } = require('node:assert'); + +strictEqual(typeof CustomEvent, 'undefined'); diff --git a/test/parallel/test-global-customevent.js b/test/parallel/test-global-customevent.js index a113631a997bb9..cf21189b97643d 100644 --- a/test/parallel/test-global-customevent.js +++ b/test/parallel/test-global-customevent.js @@ -1,4 +1,4 @@ -// Flags: --experimental-global-customevent --expose-internals +// Flags: --expose-internals 'use strict'; require('../common'); diff --git a/test/parallel/test-repl-tab-complete.js b/test/parallel/test-repl-tab-complete.js index cc211d6da8aaef..06a55414d5beb5 100644 --- a/test/parallel/test-repl-tab-complete.js +++ b/test/parallel/test-repl-tab-complete.js @@ -405,7 +405,7 @@ putIn.run([ 'var custom = "test";', ]); testMe.complete('cus', common.mustCall(function(error, data) { - assert.deepStrictEqual(data, [['custom'], 'cus']); + assert.deepStrictEqual(data, [['CustomEvent', 'custom'], 'cus']); })); // Make sure tab completion doesn't crash REPL with half-baked proxy objects. diff --git a/test/wpt/test-events.js b/test/wpt/test-events.js index 6d4a4cff2d9fdc..5040d56d6a2c58 100644 --- a/test/wpt/test-events.js +++ b/test/wpt/test-events.js @@ -4,6 +4,4 @@ const { WPTRunner } = require('../common/wpt'); const runner = new WPTRunner('dom/events'); -runner.setFlags(['--experimental-global-customevent']); - runner.runJsTests();