From 0daebef727ee0b60ab68f887049720f0fbbbdbb9 Mon Sep 17 00:00:00 2001 From: Simon Wanner Date: Mon, 30 Oct 2023 14:51:55 +0100 Subject: [PATCH] LibJS/JIT: Clear exception before executing finalizer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit language/statements/try/S12.14_A13_T2.js ❌ -> ✅ language/statements/try/S12.14_A15.js ❌ -> ✅ language/statements/try/S12.14_A7_T1.js ❌ -> ✅ language/statements/try/S12.14_A7_T2.js ❌ -> ✅ language/statements/try/S12.14_A7_T3.js ❌ -> ✅ language/statements/try/completion-values-fn-finally-abrupt.js ❌ -> ✅ language/statements/try/completion-values-fn-finally-return.js ❌ -> ✅ --- Userland/Libraries/LibJS/JIT/Compiler.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Userland/Libraries/LibJS/JIT/Compiler.cpp b/Userland/Libraries/LibJS/JIT/Compiler.cpp index 1abf747d9e..dac654f7a4 100644 --- a/Userland/Libraries/LibJS/JIT/Compiler.cpp +++ b/Userland/Libraries/LibJS/JIT/Compiler.cpp @@ -398,6 +398,7 @@ void Compiler::check_exception() m_assembler.jump(label_for(*handler)); no_exception.link(m_assembler); } else if (auto const* finalizer = current_block().finalizer(); finalizer) { + store_vm_register(Bytecode::Register::exception(), GPR1); m_assembler.jump_if(Assembler::Operand::Register(GPR0), Assembler::Condition::NotEqualTo, Assembler::Operand::Register(GPR1),