From 52ba7ce674f8bb45510927cf2e188346f75fa7d0 Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Sat, 29 Aug 2026 20:57:18 +0000 Subject: [PATCH] src: remove experimental ShadowRealm support The TC39 ShadowRealm proposal remains unimplemented by browsers, and WPT removed ShadowRealm test coverage. Remove the Node.js host integration, the --experimental-shadow-realm CLI flag, and related tests. Refs: https://github.com/web-platform-tests/wpt/pull/59794 Refs: https://github.com/nodejs/node/issues/42528 Signed-off-by: Yagiz Nizipli Co-authored-by: Yagiz Nizipli --- doc/api/cli.md | 14 -- doc/node-config-schema.json | 4 - doc/node.1 | 5 - eslint.config.mjs | 1 - lib/eslint.config_partial.mjs | 6 - lib/internal/bootstrap/realm.js | 13 +- lib/internal/bootstrap/shadow_realm.js | 21 --- lib/internal/errors.js | 8 +- lib/internal/process/pre_execution.js | 30 --- node.gyp | 2 - src/README.md | 21 +-- src/api/environment.cc | 8 - src/async_wrap.cc | 2 - src/env.cc | 12 -- src/env.h | 9 +- src/node_context_data.h | 20 +- src/node_options.cc | 8 - src/node_options.h | 1 - src/node_realm.h | 10 +- src/node_shadow_realm.cc | 178 ------------------ src/node_shadow_realm.h | 46 ----- test/common/globals.js | 1 - .../es-module-shadow-realm/custom-loaders.js | 15 -- .../es-module-shadow-realm/preload-main.js | 9 - .../es-module-shadow-realm/preload.js | 1 - .../re-export-state-counter.mjs | 3 - .../es-module-shadow-realm/state-counter.mjs | 4 - .../console-log-shadowrealm-manual.html | 10 - .../console/idlharness-shadowrealm.window.js | 5 - .../wpt/dom/abort/timeout-shadowrealm.any.js | 5 - .../encoding/idlharness-shadowrealm.window.js | 2 - .../hr-time/idlharness-shadowrealm.window.js | 2 - .../idlharness-shadowrealm.window.js | 2 - .../idlharness-shadowrealm.window.js | 2 - ...st-shadow-realm-allowed-builtin-modules.js | 21 --- .../test-shadow-realm-custom-loaders.js | 26 --- test/parallel/test-shadow-realm-gc-module.js | 18 -- test/parallel/test-shadow-realm-gc.js | 24 --- test/parallel/test-shadow-realm-globals.js | 27 --- .../test-shadow-realm-import-value-resolve.js | 31 --- test/parallel/test-shadow-realm-module.js | 29 --- .../test-shadow-realm-preload-module.js | 20 -- .../test-shadow-realm-prepare-stack-trace.js | 53 ------ test/parallel/test-shadow-realm.js | 12 -- test/pummel/test-heapdump-shadow-realm.js | 39 ---- test/wpt/status/compression.json | 3 - test/wpt/status/console.json | 3 - test/wpt/status/dom/abort.json | 6 +- test/wpt/status/encoding.json | 3 - test/wpt/status/hr-time.cjs | 4 - test/wpt/status/performance-timeline.json | 3 - test/wpt/status/streams.json | 3 - test/wpt/status/user-timing.json | 3 - 53 files changed, 25 insertions(+), 783 deletions(-) delete mode 100644 lib/internal/bootstrap/shadow_realm.js delete mode 100644 src/node_shadow_realm.cc delete mode 100644 src/node_shadow_realm.h delete mode 100644 test/fixtures/es-module-shadow-realm/custom-loaders.js delete mode 100644 test/fixtures/es-module-shadow-realm/preload-main.js delete mode 100644 test/fixtures/es-module-shadow-realm/preload.js delete mode 100644 test/fixtures/es-module-shadow-realm/re-export-state-counter.mjs delete mode 100644 test/fixtures/es-module-shadow-realm/state-counter.mjs delete mode 100644 test/fixtures/wpt/console/console-log-shadowrealm-manual.html delete mode 100644 test/fixtures/wpt/console/idlharness-shadowrealm.window.js delete mode 100644 test/fixtures/wpt/dom/abort/timeout-shadowrealm.any.js delete mode 100644 test/fixtures/wpt/encoding/idlharness-shadowrealm.window.js delete mode 100644 test/fixtures/wpt/hr-time/idlharness-shadowrealm.window.js delete mode 100644 test/fixtures/wpt/performance-timeline/idlharness-shadowrealm.window.js delete mode 100644 test/fixtures/wpt/user-timing/idlharness-shadowrealm.window.js delete mode 100644 test/parallel/test-shadow-realm-allowed-builtin-modules.js delete mode 100644 test/parallel/test-shadow-realm-custom-loaders.js delete mode 100644 test/parallel/test-shadow-realm-gc-module.js delete mode 100644 test/parallel/test-shadow-realm-gc.js delete mode 100644 test/parallel/test-shadow-realm-globals.js delete mode 100644 test/parallel/test-shadow-realm-import-value-resolve.js delete mode 100644 test/parallel/test-shadow-realm-module.js delete mode 100644 test/parallel/test-shadow-realm-preload-module.js delete mode 100644 test/parallel/test-shadow-realm-prepare-stack-trace.js delete mode 100644 test/parallel/test-shadow-realm.js delete mode 100644 test/pummel/test-heapdump-shadow-realm.js diff --git a/doc/api/cli.md b/doc/api/cli.md index 09c9b5309ffa..e9b0ec6fa86e 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -1419,16 +1419,6 @@ Use this flag to generate a blob that can be injected into the Node.js binary to produce a [single executable application][]. See the documentation about [this configuration][`--experimental-sea-config`] for details. -### `--experimental-shadow-realm` - - - -Use this flag to enable [ShadowRealm][] support. - ### `--experimental-storage-inspection`