mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-25 10:48:41 +00:00
LibJS/Bytecode: Do not unwind eagerly after throwing Await
If an exception was thrown while evaluating the argument of an `await`
expression, we should jump to the continuation block instead of eagerly
rejecting the caller async function.
This restores the behavior prior to the addition of the separate `Await`
instruction in d66eb4e3.
This commit is contained in:
committed by
Andreas Kling
parent
8fc545992d
commit
cff8f56ce7
@@ -278,7 +278,7 @@ Interpreter::ValueAndFrame Interpreter::run_and_return_frame(Realm& realm, Execu
|
||||
// but we generate a Yield Operation in the case of returns in
|
||||
// generators as well, so we need to check if it will actually
|
||||
// continue or is a `return` in disguise
|
||||
will_yield = instruction.type() == Instruction::Type::Yield && static_cast<Op::Yield const&>(instruction).continuation().has_value();
|
||||
will_yield = (instruction.type() == Instruction::Type::Yield && static_cast<Op::Yield const&>(instruction).continuation().has_value()) || instruction.type() == Instruction::Type::Await;
|
||||
break;
|
||||
}
|
||||
++pc;
|
||||
|
||||
Reference in New Issue
Block a user