1330339 - Assertion failure: !done() && debugEnabled(), at js/src/wasm/WasmFrameIterator.cpp:223

1330339 - Ensure wasm debug is enabled when observesFrame is queried.
This commit is contained in:
win7-7 2025-12-30 03:36:19 +02:00 committed by wuggy
commit 5d9bc9e53d
2 changed files with 16 additions and 2 deletions

View file

@ -6286,8 +6286,12 @@ Debugger::observesFrame(const FrameIter& iter) const
if (thisVal.isMagic() && thisVal.whyMagic() == JS_IS_CONSTRUCTING)
return false;
}
if (iter.isWasm())
if (iter.isWasm()) {
// Skip frame of wasm instances we cannot observe.
if (!iter.wasmDebugEnabled())
return false;
return observesWasm(iter.wasmInstance());
}
return observesScript(iter.script());
}

View file

@ -1835,6 +1835,8 @@ class FrameIter
// -----------------------------------------------------------
// The following functions can only be called when isWasm()
// -----------------------------------------------------------
inline bool wasmDebugEnabled() const;
inline wasm::Instance* wasmInstance() const;
// -----------------------------------------------------------
@ -2083,11 +2085,19 @@ FrameIter::script() const
return data_.jitFrames_.script();
}
inline bool
FrameIter::wasmDebugEnabled() const
{
MOZ_ASSERT(!done());
MOZ_ASSERT(data_.state_ == WASM);
return data_.wasmFrames_.debugEnabled();
}
inline wasm::Instance*
FrameIter::wasmInstance() const
{
MOZ_ASSERT(!done());
MOZ_ASSERT(data_.state_ == WASM);
MOZ_ASSERT(data_.state_ == WASM && wasmDebugEnabled());
return data_.wasmFrames_.instance();
}