mirror of
https://github.com/RGBCube/serenity
synced 2025-07-03 00:52:12 +00:00
LibJS/JIT: Flip saved_return_value condition in ContinuePendingUnwind
This did not match the `if (saved_return_value) return else resume` in Interpreter. test/built-ins/Promise/all/resolve-poisoned-then.js ❌ -> ✅ test/built-ins/Promise/all/resolve-thenable.js ❌ -> ✅ test/built-ins/Promise/allSettled/resolve-poisoned-then.js ❌ -> ✅ test/built-ins/Promise/allSettled/resolve-thenable.js ❌ -> ✅ test/built-ins/Promise/race/resolve-self.js ❌ -> ✅ test/language/statements/try/S12.14_A7_T1.js ✅ -> ❌ test/language/statements/try/S12.14_A7_T2.js ✅ -> ❌ test/language/statements/try/S12.14_A7_T3.js ✅ -> ❌
This commit is contained in:
parent
82c057391e
commit
bd62c4763c
1 changed files with 2 additions and 2 deletions
|
@ -1042,12 +1042,12 @@ void Compiler::compile_continue_pending_unwind(Bytecode::Op::ContinuePendingUnwi
|
|||
// re-throw the exception if we reached the end of the finally block and there was no catch block to handle it
|
||||
check_exception();
|
||||
|
||||
// if (!saved_return_value.is_empty()) goto resume_block;
|
||||
// if (saved_return_value.is_empty()) goto resume_block;
|
||||
load_vm_register(GPR0, Bytecode::Register::saved_return_value());
|
||||
m_assembler.mov(Assembler::Operand::Register(GPR1), Assembler::Operand::Imm(Value().encoded()));
|
||||
m_assembler.jump_if(
|
||||
Assembler::Operand::Register(GPR0),
|
||||
Assembler::Condition::NotEqualTo,
|
||||
Assembler::Condition::EqualTo,
|
||||
Assembler::Operand::Register(GPR1),
|
||||
label_for(op.resume_target().block()));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue