diff --git a/Source/JavaScriptCore/interpreter/CallFrame.cpp b/Source/JavaScriptCore/interpreter/CallFrame.cpp index 593e3e60a91a2..7ad7f0f20914e 100644 --- a/Source/JavaScriptCore/interpreter/CallFrame.cpp +++ b/Source/JavaScriptCore/interpreter/CallFrame.cpp @@ -277,23 +277,32 @@ String CallFrame::friendlyFunctionName() void CallFrame::dump(PrintStream& out) const { - if (!this->isWasmFrame()) { - if (CodeBlock* codeBlock = this->codeBlock()) { - out.print(codeBlock->inferredName(), "#", codeBlock->hashAsStringIfPossible(), " [", codeBlock->jitType(), " ", bytecodeIndex(), "]"); - - out.print("("); - thisValue().dumpForBacktrace(out); + if (this->isWasmFrame()) { +#if ENABLE(WEBASSEMBLY) + Wasm::Callee* wasmCallee = callee().asWasmCallee(); + out.print(Wasm::makeString(wasmCallee->indexOrName()), " [", Wasm::makeString(wasmCallee->compilationMode()), "]"); + out.print("(Wasm::Instance: ", RawPointer(wasmInstance()), ")"); +#else + out.print(RawPointer(returnPCForInspection())); +#endif + return; + } - for (size_t i = 0; i < argumentCount(); ++i) { - out.print(", "); - JSValue value = argument(i); - value.dumpForBacktrace(out); - } + if (CodeBlock* codeBlock = this->codeBlock()) { + out.print(codeBlock->inferredName(), "#", codeBlock->hashAsStringIfPossible(), " [", codeBlock->jitType(), " ", bytecodeIndex(), "]"); - out.print(")"); + out.print("("); + thisValue().dumpForBacktrace(out); - return; + for (size_t i = 0; i < argumentCount(); ++i) { + out.print(", "); + JSValue value = argument(i); + value.dumpForBacktrace(out); } + + out.print(")"); + + return; } out.print(RawPointer(returnPCForInspection()));