1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:48:14 +00:00

LibJS+LibWeb: Clear exceptions after call'ing JavaScript functions

Decorated Interpreter::call() with [[nodiscard]] to provoke thinking
about the returned value at each call site. This is definitely not
perfect and we should really start thinking about slimming down the
public-facing LibJS interpreter API.

Fixes #3136.
This commit is contained in:
Andreas Kling 2020-08-14 17:31:07 +02:00
parent c5127389ca
commit bbe2d4a2d9
7 changed files with 24 additions and 9 deletions

View file

@ -339,7 +339,9 @@ JSFileResult TestRunner::run_file_test(const String& test_path)
new_interpreter.run(new_interpreter.global_object(), *file_program.value());
auto& before_initial_page_load = new_interpreter.get_variable("__BeforeInitialPageLoad__", new_interpreter.global_object()).as_function();
new_interpreter.call(before_initial_page_load, JS::js_undefined());
(void)new_interpreter.call(before_initial_page_load, JS::js_undefined());
if (new_interpreter.exception())
new_interpreter.clear_exception();
// Now parse the HTML page.
parser.run(page_to_load);
@ -347,7 +349,9 @@ JSFileResult TestRunner::run_file_test(const String& test_path)
// Finally run the test by calling "__AfterInitialPageLoad__"
auto& after_initial_page_load = new_interpreter.get_variable("__AfterInitialPageLoad__", new_interpreter.global_object()).as_function();
new_interpreter.call(after_initial_page_load, JS::js_undefined());
(void)new_interpreter.call(after_initial_page_load, JS::js_undefined());
if (new_interpreter.exception())
new_interpreter.clear_exception();
auto test_json = get_test_results(new_interpreter);
if (!test_json.has_value()) {