Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d5f13fa851de3e8d6fe06ac475f1893e4347e3d2
      
https://github.com/WebKit/WebKit/commit/d5f13fa851de3e8d6fe06ac475f1893e4347e3d2
  Author: Anne van Kesteren <[email protected]>
  Date:   2026-10-13 (Tue, 13 Oct 2026)

  Changed paths:
    R JSTests/stress/exception-in-wrap-argument-for-shadow-realm.js
    R JSTests/stress/remote-function-should-have-resolved-name-string.js
    R 
JSTests/stress/remoteFunctionCallForJSFunction-should-placate-overflow-check.js
    R 
JSTests/stress/remoteFunctionCallForJSFunction-should-placate-overflow-check2.js
    R JSTests/stress/resources/shadow-realm-example-module.js
    R JSTests/stress/shadow-realm-arguments.js
    R JSTests/stress/shadow-realm-evaluate.js
    R JSTests/stress/shadow-realm-globalThis-mutable-prototype.js
    R JSTests/stress/shadow-realm-import-value.js
    R JSTests/stress/shadow-realm-remote-function-copy-length-and-name.js
    R JSTests/stress/shadow-realm-tag-registers.js
    R JSTests/stress/shadow-realm.js
    M JSTests/test262/config.yaml
    R LayoutTests/http/tests/misc/iframe-shadow-realm-expected.txt
    R LayoutTests/http/tests/misc/iframe-shadow-realm.html
    R LayoutTests/http/tests/misc/resources/iframe-shadow-realm-subframe.html
    R LayoutTests/http/tests/misc/resources/iframe-shadow-realm.js
    R 
LayoutTests/imported/w3c/web-platform-tests/performance-timeline/idlharness-shadowrealm.window-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/performance-timeline/idlharness-shadowrealm.window.html
    R 
LayoutTests/imported/w3c/web-platform-tests/performance-timeline/idlharness-shadowrealm.window.js
    R 
LayoutTests/imported/w3c/web-platform-tests/resources/testharness-shadowrealm-audioworkletprocessor.js
    R 
LayoutTests/imported/w3c/web-platform-tests/resources/testharness-shadowrealm-inner.js
    R 
LayoutTests/imported/w3c/web-platform-tests/resources/testharness-shadowrealm-outer.js
    R 
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/shadowrealm-promise-rejection-test-worker.js
    R 
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/shadowrealm-promise-rejection.https-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/shadowrealm-promise-rejection.https.html
    R 
LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-shadowrealm.window-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-shadowrealm.window.html
    R 
LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-shadowrealm.window.js
    R LayoutTests/inspector/shadow-realm-console-expected.txt
    R LayoutTests/inspector/shadow-realm-console.html
    R LayoutTests/js/ShadowRealm-evaluate-expected.txt
    R LayoutTests/js/ShadowRealm-evaluate.html
    R LayoutTests/js/ShadowRealm-globalThis-expected.txt
    R LayoutTests/js/ShadowRealm-globalThis.html
    R LayoutTests/js/ShadowRealm-iframe-detach-expected.txt
    R LayoutTests/js/ShadowRealm-iframe-detach.html
    R LayoutTests/js/ShadowRealm-iframe-sandboxed-expected.txt
    R LayoutTests/js/ShadowRealm-iframe-sandboxed.html
    R LayoutTests/js/ShadowRealm-importValue-expected.txt
    R LayoutTests/js/ShadowRealm-importValue.html
    R LayoutTests/js/ShadowRealm-worker-expected.txt
    R LayoutTests/js/ShadowRealm-worker.html
    R LayoutTests/js/resources/example-module.js
    R LayoutTests/js/resources/shadow-realm-iframe.html
    R LayoutTests/js/resources/shadow-realm-worker.js
    M LayoutTests/platform/win/TestExpectations
    M LayoutTests/platform/wpe/TestExpectations
    M Source/JavaScriptCore/API/JSAPIGlobalObject.cpp
    M Source/JavaScriptCore/API/JSAPIGlobalObject.mm
    M Source/JavaScriptCore/CMakeLists.txt
    M Source/JavaScriptCore/DerivedSources-input.xcfilelist
    M Source/JavaScriptCore/DerivedSources-output.xcfilelist
    M Source/JavaScriptCore/DerivedSources.make
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/SaferCPPExpectations/ForwardDeclCheckerExpectations
    M 
Source/JavaScriptCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations
    M Source/JavaScriptCore/Sources.txt
    M Source/JavaScriptCore/builtins/BuiltinNames.h
    R Source/JavaScriptCore/builtins/ShadowRealmPrototype.js
    M Source/JavaScriptCore/bytecode/BytecodeIntrinsicRegistry.h
    M Source/JavaScriptCore/bytecode/LinkTimeConstant.h
    M Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h
    M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
    M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
    M Source/JavaScriptCore/heap/Heap.cpp
    M Source/JavaScriptCore/heap/Heap.h
    M Source/JavaScriptCore/heap/HeapSubspaceTypes.h
    M Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp
    M Source/JavaScriptCore/interpreter/Interpreter.cpp
    M Source/JavaScriptCore/jit/JITOperations.cpp
    M Source/JavaScriptCore/jit/JITOperations.h
    M Source/JavaScriptCore/jit/ThunkGenerators.cpp
    M Source/JavaScriptCore/jit/ThunkGenerators.h
    M Source/JavaScriptCore/jsc.cpp
    M Source/JavaScriptCore/lol/LOLJITOperations.cpp
    M Source/JavaScriptCore/runtime/CommonIdentifiers.h
    M Source/JavaScriptCore/runtime/FunctionPrototype.cpp
    M Source/JavaScriptCore/runtime/GlobalObjectMethodTable.h
    M Source/JavaScriptCore/runtime/InternalFunction.cpp
    M Source/JavaScriptCore/runtime/Intrinsic.h
    M Source/JavaScriptCore/runtime/JSCast.h
    M Source/JavaScriptCore/runtime/JSFunction.cpp
    M Source/JavaScriptCore/runtime/JSFunction.h
    M Source/JavaScriptCore/runtime/JSFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
    M Source/JavaScriptCore/runtime/JSGlobalObject.h
    M Source/JavaScriptCore/runtime/JSGlobalObjectInlines.h
    M Source/JavaScriptCore/runtime/JSObject.cpp
    R Source/JavaScriptCore/runtime/JSRemoteFunction.cpp
    R Source/JavaScriptCore/runtime/JSRemoteFunction.h
    R Source/JavaScriptCore/runtime/JSRemoteFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSType.cpp
    M Source/JavaScriptCore/runtime/JSType.h
    R Source/JavaScriptCore/runtime/ShadowRealmConstructor.cpp
    R Source/JavaScriptCore/runtime/ShadowRealmConstructor.h
    R Source/JavaScriptCore/runtime/ShadowRealmConstructorInlines.h
    R Source/JavaScriptCore/runtime/ShadowRealmObject.cpp
    R Source/JavaScriptCore/runtime/ShadowRealmObject.h
    R Source/JavaScriptCore/runtime/ShadowRealmObjectInlines.h
    R Source/JavaScriptCore/runtime/ShadowRealmPrototype.cpp
    R Source/JavaScriptCore/runtime/ShadowRealmPrototype.h
    R Source/JavaScriptCore/runtime/ShadowRealmPrototypeInlines.h
    M Source/JavaScriptCore/runtime/VM.cpp
    M Source/JavaScriptCore/runtime/VM.h
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Headers.cmake
    M Source/WebCore/PlatformCocoa.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/bindings/js/JSDOMGlobalObject.cpp
    M Source/WebCore/bindings/js/JSDOMGlobalObject.h
    M Source/WebCore/bindings/js/JSDOMWindowBase.cpp
    R Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp
    R Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.h
    M Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp
    M Source/WebCore/bindings/js/JSWorkletGlobalScopeBase.cpp
    M Source/WebCore/bindings/js/ScriptModuleLoader.cpp
    M Source/WebCore/bindings/js/ScriptModuleLoader.h
    M Source/WebCore/bindings/js/WebCoreBuiltinNames.h
    M Source/WebCore/bindings/js/WebCoreJSClientData.cpp
    M Source/WebCore/bindings/js/WebCoreJSClientData.h
    M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
    M Source/WebCore/bindings/scripts/preprocess-idls.pl
    R Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScope.cpp
    R Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScope.h
    R 
Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScopeConstructors.cpp
    R 
Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScopeConstructors.h
    R Source/WebCore/bindings/scripts/test/ShadowRealmGlobalScope.idl
    R 
Source/WebCore/bindings/scripts/test/ShadowRealmGlobalScopeConstructors.idl
    M Source/WebCore/bindings/scripts/test/SupplementalDependencies.dep
    R Source/WebCore/page/ShadowRealmGlobalScope.cpp
    R Source/WebCore/page/ShadowRealmGlobalScope.h
    R Source/WebCore/page/ShadowRealmGlobalScope.idl
    M Tools/Scripts/webkitpy/bindings/main.py
    M Tools/Scripts/webkitpy/style/checker.py

  Log Message:
  -----------
  Remove ShadowRealm
https://bugs.webkit.org/show_bug.cgi?id=327263
rdar://189822326

Reviewed by Yusuke Suzuki.

It never shipped and keeping it carries ongoing cost well beyond the code
itself, so remove it along with the JSRemoteFunction marshalling machinery
it depends on.

Removing it:

- Stops building a ShadowRealm prototype, object structure, and
  constructor on every JSGlobalObject. These were created eagerly and
  unconditionally in JSGlobalObject::init (not behind the option), so
  every realm paid the allocation and initialization for a disabled
  feature.
- Restores the invariant that every global object is an immutable
  prototype exotic object. ShadowRealm global objects were the sole
  exception (createStructureForShadowRealm cleared the bit), which forced
  a global-object special case into JSObject::setPrototypeWithCycleCheck
  and a hack into the JS bindings generator; both are gone, and the
  assertion is tightened back accordingly.
- Shrinks GlobalObjectMethodTable by one slot
  (deriveShadowRealmGlobalObject) and removes the cross-origin
  parent-document walk it required in WebCore, which has been a recurring
  source of site-isolation bugs. The now-unused
  JSGlobalObject::createWithCustomMethodTable is removed with it.
- Removes JSRemoteFunction and its exception-unwinding, FunctionPrototype,
  InternalFunction, DFG, FTL, thunk, and JIT-operation branches.
- Drops ShadowRealm as a WebIDL global context, so the
  ShadowRealmGlobalScope partial-interface generation, the
  WebAPIsInShadowRealmEnabled plumbing, and the related binding-generator
  special cases go away.

createTypeErrorCopy is retained because JSModuleLoader also uses it.

This deletes the ShadowRealm JSC runtime classes, the WebCore
ShadowRealmGlobalScope wrapper, the ShadowRealmEnabled and
WebAPIsInShadowRealmEnabled preferences, the WebKit-owned ShadowRealm
layout tests, the imported ShadowRealm WPT tests, and the JSTests stress
coverage. The test262 ShadowRealm tests are kept but skipped via
JSTests/test262/config.yaml, since test262 is a vendored upstream suite.

Canonical link: https://commits.webkit.org/323565@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to