Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3087a95539219387cd7672843ee2c1522646067d
https://github.com/WebKit/WebKit/commit/3087a95539219387cd7672843ee2c1522646067d
Author: Yijia Huang <[email protected]>
Date: 2026-09-28 (Mon, 28 Sep 2026)
Changed paths:
A JSTests/wasm/debugger/resources/wasm/host-frame-call-stack.js
A JSTests/wasm/debugger/resources/wasm/jspi-call-stack.js
M JSTests/wasm/debugger/tests/tests.py
M Source/JavaScriptCore/wasm/debugger/WasmDebugServerUtilities.cpp
Log Message:
-----------
[JSC] WASM debugger: do not read a name off a CodeBlock-less frame
https://bugs.webkit.org/show_bug.cgi?id=325518
rdar://188605590
Reviewed by Mark Lam.
collectCallStack treated !callee().isNativeCallee() as "has a CodeBlock" and
logged frame->codeBlock()->inferredNameWithHash(). A host function is an
ordinary cell callee, so isNativeCallee() is false, but it has a
NativeExecutable and no CodeBlock, and reading the name off null killed the
debug server thread. Any C++ builtin reaching wasm from its own frame hits it:
reported against JSPI's WebAssembly.promising, also reproducible with
JSON.stringify calling a wasm toJSON. Verbose-only, since dataLogLnIf does not
evaluate its arguments when logging is off.
Log the NativeExecutable's name instead, which allocates nothing.
Tests:
* JSTests/wasm/debugger/tests/tests.py:
(HostFrameCallStackTestCase):
(JSPICallStackTestCase):
Canonical link: https://commits.webkit.org/322086@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications