js: Don't print last value after exception and return non-success

If in 'foo(); bar();' bar fails, we'd get the error of that and then
foo's return value - that's probably not something anyone expects.

Also make sure to return non-success so the process will exit with 1.
This commit is contained in:
Linus Groh 2021-03-18 18:35:58 +01:00 committed by Andreas Kling
commit cf127b745e
Notes: sideshowbarker 2024-07-18 21:14:43 +09:00

View file

@ -495,13 +495,16 @@ static bool parse_and_run(JS::Interpreter& interpreter, const StringView& source
}
vm->clear_exception();
};
if (vm->exception())
handle_exception();
if (s_print_last_result) {
if (vm->exception()) {
handle_exception();
return false;
}
if (s_print_last_result)
print(vm->last_value());
if (vm->exception())
handle_exception();
if (vm->exception()) {
return false;
handle_exception();
}
return true;
}