Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4705fbbff35e8b996b2b5451f4112f151a2fdd70
https://github.com/WebKit/WebKit/commit/4705fbbff35e8b996b2b5451f4112f151a2fdd70
Author: Brent Fulgham <[email protected]>
Date: 2026-06-12 (Fri, 12 Jun 2026)
Changed paths:
M Source/WebCore/CMakeLists.txt
M Source/WebCore/DerivedSources-output.xcfilelist
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/WebCoreMacros.cmake
M Source/WebCore/bindings/scripts/CodeGenerator.pm
M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
M Source/WebCore/bindings/scripts/IDLAttributes.json
M Source/WebCore/bindings/scripts/generate-bindings-all.pl
M Source/WebCore/bindings/scripts/generate-bindings.pl
M Source/WebCore/bindings/scripts/test/DOMWindow.idl
M Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp
A
Source/WebCore/bindings/scripts/test/JS/JSDOMWindowConstructorAttributes.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp
M Source/WebCore/page/DOMWindow.idl
Log Message:
-----------
Split JSDOMWindow.cpp into smaller bits to improve build parallelism
https://bugs.webkit.org/show_bug.cgi?id=316818
rdar://179292668
Reviewed by Geoffrey Garen.
One a decent M2 Ultra build, JSDOMWindow.cpp is taking roughly 40 seconds to
compile. This
is happening at the tail end of the WebCore step of the build, and is blocking
linking and
further build steps from starting. This represents ~17 seconds of wasted time
since only a
single core is working, and other tasks are blocked.
We can improve matters by splitting this single large compilation unit into
smaller pieces
that can build in parallel.
This change shortened overall build time be ~75 seconds on a local build since
more
post-WebCore work was able to start earlier.
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/WebCoreMacros.cmake:
* Source/WebCore/bindings/scripts/CodeGenerator.pm:
(new):
(IgnoreStandaloneConstructorAttributes):
* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:
(AddToImplIncludes):
(AddToAuxImplIncludes):
(UseStandaloneConstructorAttributes):
(GenerateRuntimeEnableConditionalString):
(GenerateAttributeGetterAndSetterDeclaration):
(GenerateAttributeGetterDefinition):
(WriteData):
* Source/WebCore/bindings/scripts/IDLAttributes.json:
* Source/WebCore/bindings/scripts/generate-bindings-all.pl:
(spawnGenerateBindingsIfNeeded):
* Source/WebCore/bindings/scripts/generate-bindings.pl:
(generateBindings):
* Source/WebCore/bindings/scripts/test/DOMWindow.idl:
* Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp:
(WebCore::JSDOMWindowDOMConstructor::prototypeForStructure):
(WebCore::jsDOMWindow_DOMWindowConstructorGetter): Deleted.
(WebCore::jsDOMWindow_ExposedStarConstructorGetter): Deleted.
(WebCore::jsDOMWindow_ExposedToWorkerAndWindowConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestConditionalConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestConditionalIncludesConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestConditionallyReadWriteConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestDefaultToJSONConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestDefaultToJSONFilteredByExposedConstructorGetter):
Deleted.
(WebCore::jsDOMWindow_TestEnabledBySettingConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestEnabledForContextConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestInterfaceConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestNodeConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestObjectConstructorGetter): Deleted.
(WebCore::jsDOMWindow_TestPromiseRejectionEventConstructorGetter): Deleted.
* Source/WebCore/bindings/scripts/test/JS/JSDOMWindowConstructorAttributes.cpp:
Added.
(WebCore::jsDOMWindow_DOMWindowConstructorGetter):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::jsDOMWindow_ExposedStarConstructorGetter):
(WebCore::jsDOMWindow_ExposedToWorkerAndWindowConstructorGetter):
(WebCore::jsDOMWindow_TestConditionalConstructorGetter):
(WebCore::jsDOMWindow_TestConditionalIncludesConstructorGetter):
(WebCore::jsDOMWindow_TestConditionallyReadWriteConstructorGetter):
(WebCore::jsDOMWindow_TestDefaultToJSONConstructorGetter):
(WebCore::jsDOMWindow_TestDefaultToJSONFilteredByExposedConstructorGetter):
(WebCore::jsDOMWindow_TestEnabledBySettingConstructorGetter):
(WebCore::jsDOMWindow_TestEnabledForContextConstructorGetter):
(WebCore::jsDOMWindow_TestInterfaceConstructorGetter):
(WebCore::jsDOMWindow_TestNodeConstructorGetter):
(WebCore::jsDOMWindow_TestObjectConstructorGetter):
(WebCore::jsDOMWindow_TestPromiseRejectionEventConstructorGetter):
* Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
* Source/WebCore/page/DOMWindow.idl:
Canonical link: https://commits.webkit.org/315147@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications