diff --git a/Userland/Libraries/LibJS/Bytecode/Interpreter.cpp b/Userland/Libraries/LibJS/Bytecode/Interpreter.cpp index 9bae427052..54ebd19c2a 100644 --- a/Userland/Libraries/LibJS/Bytecode/Interpreter.cpp +++ b/Userland/Libraries/LibJS/Bytecode/Interpreter.cpp @@ -65,6 +65,8 @@ Value Interpreter::run(Executable const& executable) while (!pc.at_end()) { auto& instruction = *pc; instruction.execute(*this); + if (vm().exception()) + break; if (m_pending_jump.has_value()) { block = m_pending_jump.release_value(); will_jump = true; @@ -82,6 +84,9 @@ Value Interpreter::run(Executable const& executable) if (pc.at_end() && !will_jump) break; + + if (vm().exception()) + break; } dbgln_if(JS_BYTECODE_DEBUG, "Bytecode::Interpreter did run unit {:p}", &executable);