From cf127b745e4ee2073fbadee4a5cd50d41daeb2b7 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Thu, 18 Mar 2021 18:35:58 +0100 Subject: [PATCH] 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. --- Userland/Utilities/js.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Userland/Utilities/js.cpp b/Userland/Utilities/js.cpp index 4b80b8e9ac..6339ecf53a 100644 --- a/Userland/Utilities/js.cpp +++ b/Userland/Utilities/js.cpp @@ -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; }