Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib: enable global CustomEvent by default #44860

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 9 additions & 11 deletions doc/api/cli.md
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -1836,7 +1834,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`
Expand Down Expand Up @@ -1869,6 +1866,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`
Expand Down
10 changes: 7 additions & 3 deletions doc/api/globals.md
Expand Up @@ -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 -->

Expand Down Expand Up @@ -885,8 +889,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
Expand Down
6 changes: 3 additions & 3 deletions doc/node.1
Expand Up @@ -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.
.
Expand All @@ -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.
.
Expand Down
2 changes: 1 addition & 1 deletion lib/internal/process/pre_execution.js
Expand Up @@ -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');
Expand Down
3 changes: 2 additions & 1 deletion src/node_options.cc
Expand Up @@ -366,7 +366,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,
Expand Down
2 changes: 1 addition & 1 deletion src/node_options.h
Expand Up @@ -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;
std::string experimental_specifier_resolution;
Expand Down
7 changes: 7 additions & 0 deletions 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');
2 changes: 1 addition & 1 deletion test/parallel/test-global-customevent.js
@@ -1,4 +1,4 @@
// Flags: --experimental-global-customevent --expose-internals
// Flags: --expose-internals
'use strict';

require('../common');
Expand Down
2 changes: 1 addition & 1 deletion test/parallel/test-repl-tab-complete.js
Expand Up @@ -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.
Expand Down
2 changes: 0 additions & 2 deletions test/wpt/test-events.js
Expand Up @@ -4,6 +4,4 @@ const { WPTRunner } = require('../common/wpt');

const runner = new WPTRunner('dom/events');

runner.setFlags(['--experimental-global-customevent']);

runner.runJsTests();