mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-27 18:17:22 +02: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:
Notes:
sideshowbarker
2024-07-18 01:03:23 +09:00
Author: https://github.com/davidot Commit: https://github.com/SerenityOS/serenity/commit/22e679d8444 Pull-request: https://github.com/SerenityOS/serenity/pull/10945 Reviewed-by: https://github.com/linusg ✅
@@ -769,7 +769,11 @@ Completion ECMAScriptFunctionObject::ordinary_call_evaluate_body()
|
||||
return throw_completion(exception->value());
|
||||
|
||||
VERIFY(result_and_frame.frame != nullptr);
|
||||
auto result = TRY(result_and_frame.value);
|
||||
if (result_and_frame.value.is_error()) {
|
||||
vm.throw_exception(bytecode_interpreter->global_object(), result_and_frame.value.release_error().value());
|
||||
return throw_completion(vm.exception()->value());
|
||||
}
|
||||
auto result = result_and_frame.value.release_value();
|
||||
|
||||
// NOTE: Running the bytecode should eventually return a completion.
|
||||
// Until it does, we assume "return" and include the undefined fallback from the call site.
|
||||
|
||||
Reference in New Issue
Block a user