lib: enable global CustomEvent by default

Refs: https://github.com/nodejs/node/pull/43885

Signed-off-by: Daeyeon Jeong <daeyeon.dev@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/44860
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
This commit is contained in:
Daeyeon Jeong 2022-10-10 09:41:55 +09:00 committed by GitHub
parent a2fb3f9785
commit 80270994d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 32 additions and 24 deletions

View File

@ -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`
<!-- YAML
added:
- v18.7.0
- v16.17.0
-->
Expose the [CustomEvent Web API][] on the global scope.
### `--experimental-import-meta-resolve`
<!-- YAML
@ -411,6 +401,14 @@ added: REPLACEME
Disable exposition of [Web Crypto API][] on the global scope.
### `--no-experimental-global-customevent`
<!-- YAML
added: REPLACEME
-->
Disable exposition of [CustomEvent Web API][] on the global scope.
### `--no-experimental-repl-await`
<!-- YAML
@ -1829,7 +1827,6 @@ Node.js options that are allowed are:
* `--enable-fips`
* `--enable-source-maps`
* `--experimental-abortcontroller`
* `--experimental-global-customevent`
* `--experimental-import-meta-resolve`
* `--experimental-json-modules`
* `--experimental-loader`
@ -1862,6 +1859,7 @@ Node.js options that are allowed are:
* `--no-addons`
* `--no-deprecation`
* `--no-experimental-fetch`
* `--no-experimental-global-customevent`
* `--no-experimental-global-webcrypto`
* `--no-experimental-repl-await`
* `--no-extra-info-on-fatal-exception`

View File

@ -400,10 +400,14 @@ only if the Node.js binary was compiled with including support for the
added:
- v18.7.0
- v16.17.0
changes:
- version: REPLACEME
pr-url: https://github.com/nodejs/node/pull/44860
description: No longer behind `--experimental-global-customevent` CLI flag.
-->
> 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.
<!-- type=global -->
@ -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

View File

@ -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.
.

View File

@ -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');

View File

@ -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,

View File

@ -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;

View File

@ -0,0 +1,7 @@
// Flags: --no-experimental-global-customevent
'use strict';
require('../common');
const { strictEqual } = require('node:assert');
strictEqual(typeof CustomEvent, 'undefined');

View File

@ -1,4 +1,4 @@
// Flags: --experimental-global-customevent --expose-internals
// Flags: --expose-internals
'use strict';
require('../common');

View File

@ -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.

View File

@ -4,6 +4,4 @@ const { WPTRunner } = require('../common/wpt');
const runner = new WPTRunner('dom/events');
runner.setFlags(['--experimental-global-customevent']);
runner.runJsTests();