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

Reply via email to