Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d7deeb4d678e012b7665d53198f3d80952fffdd6
https://github.com/WebKit/WebKit/commit/d7deeb4d678e012b7665d53198f3d80952fffdd6
Author: Jer Noble <[email protected]>
Date: 2025-11-07 (Fri, 07 Nov 2025)
Changed paths:
M Source/JavaScriptCore/API/JSValueRef.cpp
M Source/JavaScriptCore/CMakeLists.txt
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
M Source/JavaScriptCore/dfg/DFGOperations.cpp
M Source/JavaScriptCore/runtime/BrandedStructure.h
M Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h
M Source/JavaScriptCore/runtime/JSBigInt.h
A Source/JavaScriptCore/runtime/JSBigIntInlines.h
M Source/JavaScriptCore/runtime/JSCJSValue.cpp
M Source/JavaScriptCore/runtime/JSCJSValue.h
A Source/JavaScriptCore/runtime/JSCJSValueCellInlines.h
M Source/JavaScriptCore/runtime/JSCJSValueInlines.h
M Source/JavaScriptCore/runtime/JSCellButterfly.h
M Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h
M Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h
M Source/JavaScriptCore/runtime/JSObject.h
M Source/JavaScriptCore/runtime/JSObjectInlines.h
M Source/JavaScriptCore/runtime/JSString.h
M Source/JavaScriptCore/runtime/NumberConstructor.cpp
M Source/JavaScriptCore/runtime/ObjectConstructor.h
M Source/JavaScriptCore/runtime/PropertyDescriptor.h
M Source/JavaScriptCore/runtime/ToNativeFromValue.h
M Source/JavaScriptCore/runtime/WriteBarrier.h
M Source/JavaScriptCore/runtime/WriteBarrierInlines.h
M Source/WebCore/bindings/js/DOMWrapperWorld.cpp
M Source/WebCore/bindings/js/DOMWrapperWorld.h
M Source/WebCore/bindings/js/JSRTCRtpSFrameTransformCustom.cpp
Log Message:
-----------
[JSC] Mark inlined JSValue methods with `inline` keyword (and fix a bunch of
things that break when that happens)
rdar://164200123
https://bugs.webkit.org/show_bug.cgi?id=302121
Reviewed by Keith Miller.
Clients of JSC can face "missing symbol" linker errors for inlined methods when
the
correct *Inlines.h headers are not included, and that task is made much, much
more difficult when
the inlined methods aren't marked as "inline". Adding the "inline" keyword
causes the compiler to
throw an error when that symbol is referenced, making it much easier to notice
a missing *Inlines.h
header at compile time.
Also, adding the "inline" keyword to inlined JSValue methods causes a _ton_ of
compiler errors.
It's not entirely clear how this ever worked; those inlined methods must have
successfully been linked
against accidentally (which ironically defeats the purpose of inlining) by the
linker so long as some
other cpp file in the same unified compilation file included the right
Inlines.h header.
Another problem within JSC is that there are circular dependencies between
headers; inlined methods
depend upon a type which is defined by a header that first includes the
*Inlines.h header, causing
complicated compile errors in unrelated code.
To resolve all of these issues, all the externally defined inline functions in
JSCJSValue.h are now
correctly attributed with "inline", have comments declaring the header file
containing the definition
of that inlined method, and in some cases the Inlines.h headers have been
broken up into smaller
headers with fewer include requirements.
Canonical link: https://commits.webkit.org/302733@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications