diff --git a/pkg/vm/lib/bytecode/gen_bytecode.dart b/pkg/vm/lib/bytecode/gen_bytecode.dart index dad71357a07..e4e408b362a 100644 --- a/pkg/vm/lib/bytecode/gen_bytecode.dart +++ b/pkg/vm/lib/bytecode/gen_bytecode.dart @@ -3174,6 +3174,10 @@ class BytecodeGenerator extends RecursiveVisitor { @override visitThrow(Throw node) { _generateNode(node.expression); + + if (options.emitDebuggerStops) { + asm.emitDebugCheck(); + } asm.emitThrow(0); } diff --git a/runtime/vm/compiler/frontend/bytecode_flow_graph_builder.cc b/runtime/vm/compiler/frontend/bytecode_flow_graph_builder.cc index 4afe6362026..cc29958f390 100644 --- a/runtime/vm/compiler/frontend/bytecode_flow_graph_builder.cc +++ b/runtime/vm/compiler/frontend/bytecode_flow_graph_builder.cc @@ -1569,8 +1569,6 @@ void BytecodeFlowGraphBuilder::BuildThrow() { UNIMPLEMENTED(); // TODO(alexmarkov): interpreter } - BuildDebugStepCheck(); - if (DecodeOperandA().value() == 0) { // throw LoadStackSlots(1); diff --git a/runtime/vm/constants_kbc.h b/runtime/vm/constants_kbc.h index bda63ccc7f2..f5e373e864d 100644 --- a/runtime/vm/constants_kbc.h +++ b/runtime/vm/constants_kbc.h @@ -994,7 +994,6 @@ class KernelBytecode { case KernelBytecode::kDynamicCall: case KernelBytecode::kDynamicCall_Wide: case KernelBytecode::kReturnTOS: - case KernelBytecode::kThrow: case KernelBytecode::kEqualsNull: case KernelBytecode::kNegateInt: case KernelBytecode::kNegateDouble: diff --git a/runtime/vm/interpreter.cc b/runtime/vm/interpreter.cc index fa8075c4041..71aa86cd161 100644 --- a/runtime/vm/interpreter.cc +++ b/runtime/vm/interpreter.cc @@ -1780,7 +1780,6 @@ SwitchDispatch: { BYTECODE(Throw, A); - DEBUG_CHECK; { SP[1] = 0; // Space for result. Exit(thread, FP, SP + 2, pc);