Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 904ba517118749e7b0e97ded812b7b64d8b7d534
https://github.com/WebKit/WebKit/commit/904ba517118749e7b0e97ded812b7b64d8b7d534
Author: Sosuke Suzuki <[email protected]>
Date: 2026-07-13 (Mon, 13 Jul 2026)
Changed paths:
M Source/JavaScriptCore/heap/Handle.h
M Source/JavaScriptCore/heap/Strong.h
Log Message:
-----------
[JSC] `Strong<T>` should be pointer-sized
https://bugs.webkit.org/show_bug.cgi?id=319210
Reviewed by Yusuke Suzuki.
284791@main added `virtual ~Handle() = default;` while introducing
StrongRefTracker, doubling sizeof(Strong<T>) from 8 to 16 bytes everywhere.
Strong<T> is final and the only subclass of Handle<T>, and nothing deletes
through a Handle<T>*, so the virtual destructor is unnecessary.
RefTracker does not rely on it either: the Vector interaction is handled by
the ENABLE(REFTRACKER)-guarded VectorTraits flags added in the same commit.
Verified on a Debug build that JSC_enableStrongRefTracker=1 still works,
including through Vector<Strong<JSPromise>> reallocations.
Also add a static_assert so Strong<T> stays pointer-sized.
* Source/JavaScriptCore/heap/Handle.h:
* Source/JavaScriptCore/heap/Strong.h:
Canonical link: https://commits.webkit.org/317117@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications