Branch: refs/heads/webkitglib/2.52
Home: https://github.com/WebKit/WebKit
Commit: fff068bce4f6c2d55ca6487374ad100a8cfa1aab
https://github.com/WebKit/WebKit/commit/fff068bce4f6c2d55ca6487374ad100a8cfa1aab
Author: Keith Miller <[email protected]>
Date: 2026-08-16 (Sun, 16 Aug 2026)
Changed paths:
M Source/JavaScriptCore/runtime/CachedTypes.cpp
M Source/JavaScriptCore/runtime/ScopedArgumentsTable.cpp
M Source/JavaScriptCore/runtime/ScopedArgumentsTable.h
M Source/WTF/wtf/Vector.h
Log Message:
-----------
Cherry-pick 313485@main (72272dcc4feb).
https://bugs.webkit.org/show_bug.cgi?id=315082
Unreviewed backport.
[JSC] ScopedArgumentsTable ScopeOffset buffer should allocate from
fastMalloc
https://bugs.webkit.org/show_bug.cgi?id=315082
rdar://175937787
Reviewed by Yusuke Suzuki.
ScopedArgumentsTable::m_arguments is engine metadata, not user payload, but
it was allocated from Gigacage::Primitive — making its ScopeOffsets
reachable
through any Primitive-cage write primitive and usable as an unchecked index
into JSLexicalEnvironment::variables(). Replace the CagedUniquePtr with a
Vector<ScopeOffset>. JIT/LLInt loads through offsetOfLength() /
offsetOfArguments()
are unchanged at the codegen level: m_size is unsigned (matches the prior
uint32_t m_length) and m_buffer is a raw T*.
Also, drop a stale m_watchpointSets.resize(newLength) from the m_locked
branch of trySetLength: it mutated the supposedly-locked instance. The
only caller (SymbolTable::trySetArgumentsLength) immediately swaps in the
new
table, so no caller observed the resized state.
Canonical link: https://commits.webkit.org/313485@main
Canonical link: https://commits.webkit.org/305877.1095@webkitglib/2.52
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications