Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 720bc3a7c7195ee862b2a7896630170388cfa2cd
https://github.com/WebKit/WebKit/commit/720bc3a7c7195ee862b2a7896630170388cfa2cd
Author: Jean-Yves Avenard <[email protected]>
Date: 2026-10-02 (Fri, 02 Oct 2026)
Changed paths:
M Source/JavaScriptCore/runtime/JSObject.h
M Source/JavaScriptCore/runtime/JSObjectInlines.h
M Source/JavaScriptCore/runtime/StructureCreateInlines.h
M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
M Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp
M
Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp
M Source/WebCore/dom/ios/MouseEventIOS.cpp
Log Message:
-----------
Unified build failure when compiling for iOS simulator debug
https://bugs.webkit.org/show_bug.cgi?id=326068
rdar://188997830
Reviewed by Youenn Fablet.
JSObject.h defines JSObject::setStructure() inline, and it calls
JSCell::setStructure(), which is only defined, always-inline in release, in
JSCellInlines.h. The cmake build emits every inline function in a prefix
header into a PCH object (-fpch-codegen). WebCorePrefix.h includes JSObject.h
but not JSCellInlines.h, so each WebCore PCH object referenced a
JSCell::setStructure() that no object file defines. The release iOS build
failed to link with an undefined symbol
`JSC::JSCell::setStructure(JSC::VM&, JSC::Structure*)`.
Move the definition of JSObject::setStructure() to StructureCreateInlines.h,
next to JSObject::didBecomePrototype(), which calls it. Declare it inline in
JSObject.h, have JSObjectInlines.h include StructureCreateInlines.h, and have
the bindings generator include StructureCreateInlines.h in constructors that
call setSubclassStructureIfNeeded().
* Source/JavaScriptCore/runtime/JSObject.h:
(JSC::JSObject::setStructure): Deleted.
* Source/JavaScriptCore/runtime/JSObjectInlines.h:
* Source/JavaScriptCore/runtime/StructureCreateInlines.h:
(JSC::JSObject::setStructure):
* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDefinition):
* Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:
* Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp:
* Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:
* Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp:
* Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:
* Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
*
Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
* Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
* Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp:
* Source/WebCore/dom/ios/MouseEventIOS.cpp:
Canonical link: https://commits.webkit.org/322499@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications