Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d4029d5d9a79c39f8a5ada3bb9b701cef3b51d41
      
https://github.com/WebKit/WebKit/commit/d4029d5d9a79c39f8a5ada3bb9b701cef3b51d41
  Author: Jer Noble <[email protected]>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/assembler/ProbeFrame.h
    M Source/JavaScriptCore/b3/air/AirHelpers.h
    M Source/JavaScriptCore/bytecode/DirectEvalCodeCache.cpp
    M Source/JavaScriptCore/bytecode/DirectEvalCodeCache.h
    A Source/JavaScriptCore/bytecode/DirectEvalCodeCacheInlines.h
    M Source/JavaScriptCore/bytecode/EvalCodeBlock.h
    M Source/JavaScriptCore/bytecode/GetByIdMetadata.h
    M Source/JavaScriptCore/bytecode/PropertyInlineCacheClearingWatchpoint.h
    M Source/JavaScriptCore/bytecode/RepatchInlines.h
    M Source/JavaScriptCore/bytecode/UnlinkedCodeBlockGenerator.cpp
    M Source/JavaScriptCore/bytecode/UnlinkedCodeBlockGenerator.h
    M Source/JavaScriptCore/bytecode/UnlinkedModuleProgramCodeBlockInlines.h
    M Source/JavaScriptCore/bytecode/VirtualRegister.h
    M Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h
    M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
    M Source/JavaScriptCore/bytecompiler/StaticPropertyAnalyzer.h
    M Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp
    M Source/JavaScriptCore/debugger/DebuggerScope.cpp
    M Source/JavaScriptCore/debugger/DebuggerScope.h
    M Source/JavaScriptCore/dfg/DFGEdgeDominates.h
    M Source/JavaScriptCore/dfg/DFGNullAbstractState.h
    M Source/JavaScriptCore/dfg/DFGOSRExit.h
    M Source/JavaScriptCore/dfg/DFGOpInfo.h
    M Source/JavaScriptCore/dfg/DFGRegisterBank.h
    M Source/JavaScriptCore/dfg/DFGSilentRegisterSavePlan.h
    M Source/JavaScriptCore/ftl/FTLWeightedTarget.h
    M Source/JavaScriptCore/heap/CodeBlockSetInlines.h
    M Source/JavaScriptCore/heap/DeferGCInlines.h
    M Source/JavaScriptCore/heap/GCDeferralContextInlines.h
    M Source/JavaScriptCore/heap/HandleBlockInlines.h
    M Source/JavaScriptCore/heap/Heap.cpp
    M Source/JavaScriptCore/heap/HeapUtil.h
    M Source/JavaScriptCore/heap/IsoCellSetInlines.h
    M Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp
    M Source/JavaScriptCore/inspector/JSInjectedScriptHost.h
    M Source/JavaScriptCore/inspector/JSInjectedScriptHostPrototype.cpp
    M Source/JavaScriptCore/inspector/JSInjectedScriptHostPrototype.h
    M Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp
    M Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h
    M Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.cpp
    M Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.h
    M Source/JavaScriptCore/interpreter/Interpreter.cpp
    M Source/JavaScriptCore/jit/JITNegGenerator.h
    M Source/JavaScriptCore/parser/Nodes.h
    M Source/JavaScriptCore/parser/SourceProviderCacheItem.h
    M Source/JavaScriptCore/parser/SyntaxChecker.h
    M Source/JavaScriptCore/runtime/AggregateErrorConstructorInlines.h
    M Source/JavaScriptCore/runtime/AggregateErrorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/ArrayConstructorInlines.h
    M Source/JavaScriptCore/runtime/ArrayIteratorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/AsyncDisposableStackPrototypeInlines.h
    M Source/JavaScriptCore/runtime/AsyncFromSyncIteratorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/AsyncFunctionConstructorInlines.h
    M Source/JavaScriptCore/runtime/AsyncFunctionPrototypeInlines.h
    M Source/JavaScriptCore/runtime/AsyncGeneratorFunctionConstructor.cpp
    M Source/JavaScriptCore/runtime/AsyncGeneratorFunctionConstructor.h
    M Source/JavaScriptCore/runtime/AsyncGeneratorFunctionPrototypeInlines.h
    M Source/JavaScriptCore/runtime/AsyncGeneratorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/AsyncIteratorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/BigIntConstructorInlines.h
    M Source/JavaScriptCore/runtime/BigIntObjectInlines.h
    M Source/JavaScriptCore/runtime/BigIntPrototypeInlines.h
    M Source/JavaScriptCore/runtime/BigInteger.h
    M Source/JavaScriptCore/runtime/BooleanConstructorInlines.h
    M Source/JavaScriptCore/runtime/BooleanObjectInlines.h
    M Source/JavaScriptCore/runtime/BooleanPrototypeInlines.h
    M Source/JavaScriptCore/runtime/CodeCache.cpp
    M Source/JavaScriptCore/runtime/ConcatKeyAtomStringCacheInlines.h
    M Source/JavaScriptCore/runtime/ConsoleObjectInlines.h
    M Source/JavaScriptCore/runtime/DateConstructorInlines.h
    M Source/JavaScriptCore/runtime/DateInstanceInlines.h
    M Source/JavaScriptCore/runtime/DatePrototypeInlines.h
    M Source/JavaScriptCore/runtime/DisposableStackPrototypeInlines.h
    M Source/JavaScriptCore/runtime/ErrorConstructorInlines.h
    M Source/JavaScriptCore/runtime/ErrorInstanceInlines.h
    M Source/JavaScriptCore/runtime/ErrorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/EvalExecutableInlines.h
    M Source/JavaScriptCore/runtime/FinalizationRegistryConstructorInlines.h
    M Source/JavaScriptCore/runtime/FinalizationRegistryPrototypeInlines.h
    M Source/JavaScriptCore/runtime/FunctionConstructorInlines.h
    M Source/JavaScriptCore/runtime/FunctionExecutableInlines.h
    M Source/JavaScriptCore/runtime/FunctionPrototypeInlines.h
    M Source/JavaScriptCore/runtime/GeneratorFunctionConstructorInlines.h
    M Source/JavaScriptCore/runtime/GeneratorFunctionPrototypeInlines.h
    M Source/JavaScriptCore/runtime/GeneratorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/GetterSetterInlines.h
    M Source/JavaScriptCore/runtime/InternalFunctionInlines.h
    M Source/JavaScriptCore/runtime/IntlDateTimeFormatInlines.h
    M Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h
    M Source/JavaScriptCore/runtime/JSArrayBufferPrototypeInlines.h
    M Source/JavaScriptCore/runtime/JSAsyncDisposableStackInlines.h
    M Source/JavaScriptCore/runtime/JSAsyncFromSyncIteratorInlines.h
    M Source/JavaScriptCore/runtime/JSAsyncFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSAsyncGeneratorFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSCustomGetterFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSCustomSetterFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSDisposableStackInlines.h
    M Source/JavaScriptCore/runtime/JSGeneratorFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSGlobalLexicalEnvironmentInlines.h
    M Source/JavaScriptCore/runtime/JSIteratorHelperPrototypeInlines.h
    M Source/JavaScriptCore/runtime/JSIteratorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/JSLexicalEnvironmentInlines.h
    M Source/JavaScriptCore/runtime/JSModuleEnvironmentInlines.h
    M Source/JavaScriptCore/runtime/JSModuleLoaderInlines.h
    M Source/JavaScriptCore/runtime/JSModuleNamespaceObjectInlines.h
    M Source/JavaScriptCore/runtime/JSModuleRecordInlines.h
    M Source/JavaScriptCore/runtime/JSNativeStdFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSONObjectInlines.h
    M Source/JavaScriptCore/runtime/JSPromiseCombinatorsContextInlines.h
    M Source/JavaScriptCore/runtime/JSPropertyNameEnumeratorInlines.h
    M Source/JavaScriptCore/runtime/JSRegExpStringIteratorInlines.h
    M Source/JavaScriptCore/runtime/JSRemoteFunctionInlines.h
    M Source/JavaScriptCore/runtime/JSRunLoopTimer.h
    M Source/JavaScriptCore/runtime/JSSourceCodeInlines.h
    M Source/JavaScriptCore/runtime/JSStringIteratorInlines.h
    M Source/JavaScriptCore/runtime/JSTemplateObjectDescriptorInlines.h
    M Source/JavaScriptCore/runtime/JSWeakMapInlines.h
    M Source/JavaScriptCore/runtime/JSWeakObjectRefInlines.h
    M Source/JavaScriptCore/runtime/JSWeakSetInlines.h
    M Source/JavaScriptCore/runtime/JSWrapForValidIteratorInlines.h
    M Source/JavaScriptCore/runtime/LazyPropertyInlines.h
    M Source/JavaScriptCore/runtime/LiteralParser.h
    M Source/JavaScriptCore/runtime/MapConstructorInlines.h
    M Source/JavaScriptCore/runtime/MapPrototypeInlines.h
    M Source/JavaScriptCore/runtime/MathObjectInlines.h
    M Source/JavaScriptCore/runtime/ModuleGraphLoadingStateInlines.h
    M Source/JavaScriptCore/runtime/ModuleLoaderPayloadInlines.h
    M Source/JavaScriptCore/runtime/ModuleLoadingContextInlines.h
    M Source/JavaScriptCore/runtime/ModuleProgramExecutableInlines.h
    M Source/JavaScriptCore/runtime/ModuleRegistryEntryInlines.h
    M Source/JavaScriptCore/runtime/NativeErrorConstructorInlines.h
    M Source/JavaScriptCore/runtime/NullGetterFunctionInlines.h
    M Source/JavaScriptCore/runtime/NullSetterFunctionInlines.h
    M Source/JavaScriptCore/runtime/NumberConstructorInlines.h
    M Source/JavaScriptCore/runtime/NumberObject.cpp
    M Source/JavaScriptCore/runtime/NumberObject.h
    M Source/JavaScriptCore/runtime/NumberPrototypeInlines.h
    M Source/JavaScriptCore/runtime/ObjectConstructorInlines.h
    M Source/JavaScriptCore/runtime/ProgramExecutableInlines.h
    M Source/JavaScriptCore/runtime/PropertyNameArray.h
    M Source/JavaScriptCore/runtime/PropertyTableInlines.h
    M Source/JavaScriptCore/runtime/ProxyConstructorInlines.h
    M Source/JavaScriptCore/runtime/ProxyObjectInlines.h
    M Source/JavaScriptCore/runtime/ProxyRevokeInlines.h
    M Source/JavaScriptCore/runtime/ReflectObjectInlines.h
    M Source/JavaScriptCore/runtime/RegExpConstructor.cpp
    M Source/JavaScriptCore/runtime/RegExpConstructor.h
    M Source/JavaScriptCore/runtime/RegExpConstructorInlines.h
    M Source/JavaScriptCore/runtime/RegExpGlobalDataInlines.h
    M Source/JavaScriptCore/runtime/RegExpPrototypeInlines.h
    M Source/JavaScriptCore/runtime/RegExpStringIteratorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/SetConstructorInlines.h
    M Source/JavaScriptCore/runtime/SetPrototypeInlines.h
    M Source/JavaScriptCore/runtime/ShadowRealmConstructorInlines.h
    M Source/JavaScriptCore/runtime/ShadowRealmObjectInlines.h
    M Source/JavaScriptCore/runtime/ShadowRealmPrototypeInlines.h
    M Source/JavaScriptCore/runtime/StrictEvalActivationInlines.h
    M Source/JavaScriptCore/runtime/StringConstructorInlines.h
    M Source/JavaScriptCore/runtime/StringIteratorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/StringObjectInlines.h
    M Source/JavaScriptCore/runtime/StringPrototype.cpp
    M Source/JavaScriptCore/runtime/StringReplaceCacheInlines.h
    M Source/JavaScriptCore/runtime/StringSplitCache.h
    M Source/JavaScriptCore/runtime/StringSplitCacheInlines.h
    M Source/JavaScriptCore/runtime/StructureChainInlines.h
    M Source/JavaScriptCore/runtime/StructureTransitionTable.h
    M Source/JavaScriptCore/runtime/SuppressedErrorConstructorInlines.h
    M Source/JavaScriptCore/runtime/SuppressedErrorPrototypeInlines.h
    M Source/JavaScriptCore/runtime/SymbolConstructorInlines.h
    M Source/JavaScriptCore/runtime/SymbolInlines.h
    M Source/JavaScriptCore/runtime/SymbolObjectInlines.h
    M Source/JavaScriptCore/runtime/SymbolPrototypeInlines.h
    M Source/JavaScriptCore/runtime/SymbolTableInlines.h
    M Source/JavaScriptCore/runtime/Uint16WithFraction.h
    M Source/JavaScriptCore/runtime/WeakMapConstructorInlines.h
    M Source/JavaScriptCore/runtime/WeakMapImplInlines.h
    M Source/JavaScriptCore/runtime/WeakMapPrototypeInlines.h
    M Source/JavaScriptCore/runtime/WeakObjectRefConstructorInlines.h
    M Source/JavaScriptCore/runtime/WeakObjectRefPrototypeInlines.h
    M Source/JavaScriptCore/runtime/WeakSetConstructorInlines.h
    M Source/JavaScriptCore/runtime/WeakSetPrototypeInlines.h
    M Source/JavaScriptCore/runtime/WrapForValidIteratorPrototypeInlines.h
    M Source/JavaScriptCore/tools/JSDollarVM.cpp
    M Source/JavaScriptCore/tools/JSDollarVM.h
    M Source/JavaScriptCore/tools/ProfileTreeNode.h
    M Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h
    M Source/JavaScriptCore/wasm/WasmModuleInformation.h
    M Source/JavaScriptCore/wasm/WasmOperationsInlines.h
    M Source/JavaScriptCore/wasm/debugger/WasmModuleDebugInfo.h

  Log Message:
  -----------
  [Build Speed] Fix compilation issues in JSC headers
rdar://175466781
https://bugs.webkit.org/show_bug.cgi?id=313186

Reviewed by Geoffrey Garen.

In the effort to reduce the build time, it often comes to pass that a
patch will fail due to header file changes, as those header files have
prerequisites which must be included alongside the target header in
order for a compile to succeed.

It should not be the case that merely including a header to a file
causes a build error. However due to the unified build these errors tend
to be papered over by the includes of other source files within the same
unified build file.

This patch was created by compiling every header file in the JSC
directory individually (and forcing the include of "config.h" after the
JSC precompiled header. Before this patch, 11% or 226 headers failed to
compile when built alone. After this patch, 2.7% or 55 headers fail to
compile.

Most fixes involed adding additional include statements in order to define
missing symbols needed inthe target header. Some fixes required moving
constructors, destructors, or other inlined methods out-of-line as those
definitions required an Inlines.h header to compile. One header had
include statements within the JSC namespace, mhich would have caused a
compile error for any compilation unit that had not already included
those headers.

All in all, these new include statements in headers will have zero
impact on build time, as by definition they were already included in
every compilation unit which included the header. However this will
make reorganizing headers or modifying unified build file contents
safer, thus making future changes to build speed easier.

Of the remaining 55 build failures, 35 are API headers, which have
ideosyncratic build errors which are ignored when they are in a
system header location. The remaining 20 require extensive changes
which are out of scope for this patch.

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



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

Reply via email to