Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5602ec36107bd2d82e39b5f071f932c1241f6ac1
https://github.com/WebKit/WebKit/commit/5602ec36107bd2d82e39b5f071f932c1241f6ac1
Author: Dan Hecht <[email protected]>
Date: 2026-08-13 (Thu, 13 Aug 2026)
Changed paths:
M Source/JavaScriptCore/bytecode/AccessCase.cpp
M Source/JavaScriptCore/bytecode/AccessCase.h
M Source/JavaScriptCore/bytecode/CallLinkInfo.cpp
M Source/JavaScriptCore/bytecode/CallLinkInfo.h
M Source/JavaScriptCore/bytecode/CodeBlock.cpp
M Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp
M Source/JavaScriptCore/bytecode/InlineCacheCompiler.h
M Source/JavaScriptCore/bytecode/InlineCacheHandler.cpp
M Source/JavaScriptCore/bytecode/InlineCacheHandler.h
M Source/JavaScriptCore/bytecode/PropertyInlineCache.cpp
M Source/JavaScriptCore/bytecode/PropertyInlineCache.h
M Source/JavaScriptCore/interpreter/MicrotaskCall.cpp
M Source/JavaScriptCore/interpreter/MicrotaskCall.h
M Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp
M Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h
M Source/JavaScriptCore/jit/JITStubRoutine.cpp
M Source/JavaScriptCore/jit/JITStubRoutine.h
M Source/JavaScriptCore/jit/JITThunks.h
M Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp
M Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h
M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp
Log Message:
-----------
[JSC] Rename the visitWeak family to reconcileWeakReferencesAtGCEnd
https://bugs.webkit.org/show_bug.cgi?id=321714
rdar://184853952
Reviewed by Vassili Bykov.
Follow-on to the reconcileWeakReferencesAtGCEnd rename; these are the leaves of
the same
pass. "visitWeak" was doubly misleading. Usually in JSC "visit" means trace or
mark -- visitChildren, visitAggregate, SlotVisitor::append -- but these do the
opposite:
CallLinkInfo::visitWeak calls unlinkOrUpgrade and sets m_clearedByGC. And
nothing in the
name said when they run; every caller sits in the GC End reconcile tree.
Returning bool does not by itself make one a predicate, so name them by what
they do.
Callers of the bool form do isValid &= ..., then discard the stub on false.
reconcileWeakReferencesAtGCEnd, void
CallLinkInfo, DirectCallLinkInfo, MicrotaskCall, PropertyInlineCache
reconcileWeakReferencesAtGCEnd, bool "still usable"
InlineCacheHandler reconciles m_callLinkInfo, then computes
isValid
PolymorphicCallStubRoutine clears dead slots via slot = CallSlot()
MarkingGCAwareJITStubRoutine reconciles m_callLinkInfos
JITStubRoutine and the ...Impl virtual, since two of the four overrides
mutate
and a caller cannot know which it dispatches to
isStillLive, pure predicate
AccessCase (const), PolymorphicAccess
PolymorphicAccess only aggregates AccessCase::isStillLive, so it stays a
predicate despite
sitting mid-chain. isStillLive matches StructureSet::isStillAlive and
ObjectPropertyCondition::isStillLive nearby.
No behavior change.
* Source/JavaScriptCore/bytecode/AccessCase.cpp:
(JSC::AccessCase::isStillLive const):
(JSC::AccessCase::visitWeak const): Deleted.
* Source/JavaScriptCore/bytecode/AccessCase.h:
* Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::reconcileWeakReferencesAtGCEnd):
(JSC::DirectCallLinkInfo::reconcileWeakReferencesAtGCEnd):
(JSC::CallLinkInfo::visitWeak): Deleted.
(JSC::DirectCallLinkInfo::visitWeak): Deleted.
* Source/JavaScriptCore/bytecode/CallLinkInfo.h:
* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::reconcileJITInlineCachesAtGCEnd):
(JSC::CodeBlock::reconcileWeakReferencesAtGCEnd):
* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:
(JSC::PolymorphicAccess::isStillLive):
(JSC::PolymorphicAccess::visitWeak): Deleted.
* Source/JavaScriptCore/bytecode/InlineCacheCompiler.h:
* Source/JavaScriptCore/bytecode/InlineCacheHandler.cpp:
(JSC::InlineCacheHandler::reconcileWeakReferencesAtGCEnd):
(JSC::InlineCacheHandler::visitWeak): Deleted.
* Source/JavaScriptCore/bytecode/InlineCacheHandler.h:
* Source/JavaScriptCore/bytecode/PropertyInlineCache.cpp:
(JSC::PropertyInlineCache::reconcileWeakReferencesAtGCEnd):
(JSC::PropertyInlineCache::visitWeak): Deleted.
* Source/JavaScriptCore/bytecode/PropertyInlineCache.h:
* Source/JavaScriptCore/interpreter/MicrotaskCall.cpp:
(JSC::MicrotaskCall::reconcileWeakReferencesAtGCEnd):
(JSC::MicrotaskCall::visitWeak): Deleted.
* Source/JavaScriptCore/interpreter/MicrotaskCall.h:
* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:
(JSC::PolymorphicAccessJITStubRoutine::reconcileWeakReferencesAtGCEndImpl):
(JSC::MarkingGCAwareJITStubRoutine::reconcileWeakReferencesAtGCEndImpl):
(JSC::PolymorphicAccessJITStubRoutine::visitWeakImpl): Deleted.
(JSC::MarkingGCAwareJITStubRoutine::visitWeakImpl): Deleted.
* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h:
* Source/JavaScriptCore/jit/JITStubRoutine.cpp:
(JSC::JITStubRoutine::reconcileWeakReferencesAtGCEnd):
(JSC::JITStubRoutine::visitWeak): Deleted.
* Source/JavaScriptCore/jit/JITStubRoutine.h:
(JSC::JITStubRoutine::reconcileWeakReferencesAtGCEndImpl):
(JSC::JITStubRoutine::visitWeakImpl): Deleted.
* Source/JavaScriptCore/jit/JITThunks.h:
* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp:
(JSC::PolymorphicCallStubRoutine::reconcileWeakReferencesAtGCEndImpl):
(JSC::PolymorphicCallStubRoutine::visitWeakImpl): Deleted.
* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::reconcileWeakReferencesAtGCEnd):
Canonical link: https://commits.webkit.org/319150@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications