Index: src/debug/debug.cc |
diff --git a/src/debug/debug.cc b/src/debug/debug.cc |
index f6f652edf259c2300b7fa7acf3dd49b349b14181..c067a6b1051083e799dbeef48534ecd6a074416c 100644 |
--- a/src/debug/debug.cc |
+++ b/src/debug/debug.cc |
@@ -60,8 +60,12 @@ Debug::Debug(Isolate* isolate) |
} |
BreakLocation BreakLocation::FromFrame(StandardFrame* frame) { |
- // TODO(clemensh): Handle Wasm frames. |
- DCHECK(!frame->is_wasm()); |
+ if (frame->is_wasm()) { |
+ WasmInterpreterEntryFrame* wasm_frame = |
+ WasmInterpreterEntryFrame::cast(frame); |
+ return wasm_frame->wasm_instance()->compiled_module()->GetBreakLocation( |
+ wasm_frame->position()); |
+ } |
auto summary = FrameSummary::GetFirst(frame).AsJavaScript(); |
int offset = summary.code_offset(); |
@@ -2330,8 +2334,6 @@ DebugScope::DebugScope(Debug* debug) |
// frame id. |
StackTraceFrameIterator it(isolate()); |
bool has_frames = !it.done(); |
- // We don't currently support breaking inside wasm framess. |
- DCHECK(!has_frames || !it.is_wasm()); |
debug_->thread_local_.break_frame_id_ = |
has_frames ? it.frame()->id() : StackFrame::NO_ID; |
debug_->SetNextBreakId(); |