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

Reply via email to