Pārlūkot izejas kodu

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.
Linus Groh 4 gadi atpakaļ
vecāks
revīzija
cf127b745e
1 mainītis faili ar 8 papildinājumiem un 5 dzēšanām
  1. 8 5
      Userland/Utilities/js.cpp

+ 8 - 5
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;
 }