mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:38:11 +00:00
LibJS + js: Rethrow exception on the vm after bytecode interpreter run
When the bytecode interpreter was converted to ThrowCompletionOr<Value> it then also cleared the vm.exception() making it seem like no exception was thrown. Also removed the TRY_OR_DISCARD as that would skip the error handling parts.
This commit is contained in:
parent
3666d2132b
commit
22e679d844
2 changed files with 9 additions and 2 deletions
|
@ -837,7 +837,10 @@ static bool parse_and_run(JS::Interpreter& interpreter, StringView source, Strin
|
|||
|
||||
if (s_run_bytecode) {
|
||||
JS::Bytecode::Interpreter bytecode_interpreter(interpreter.global_object(), interpreter.realm());
|
||||
TRY_OR_DISCARD(bytecode_interpreter.run(executable));
|
||||
auto result = bytecode_interpreter.run(executable);
|
||||
// Since all the error handling code uses vm.exception() we just rethrow any exception we got here.
|
||||
if (result.is_error())
|
||||
vm->throw_exception(interpreter.global_object(), result.throw_completion().value());
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue