From 58c34012dd5fd48e2e3800d6f374ecc82e91da1e Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Fri, 8 Oct 2021 23:22:50 +0100 Subject: LibJS: Pop execution context after running queued jobs in run() These would crash starting with the next commit otherwise, calling a function always requires the running execution context to exist. --- Userland/Libraries/LibJS/Interpreter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibJS/Interpreter.cpp b/Userland/Libraries/LibJS/Interpreter.cpp index dc7a20a0a3..27220abdda 100644 --- a/Userland/Libraries/LibJS/Interpreter.cpp +++ b/Userland/Libraries/LibJS/Interpreter.cpp @@ -67,14 +67,14 @@ void Interpreter::run(GlobalObject& global_object, const Program& program) // the VM in a cleaner state after executing. For example it does still store the exception. vm.stop_unwind(); - vm.pop_execution_context(); - // At this point we may have already run any queued promise jobs via on_call_stack_emptied, // in which case this is a no-op. vm.run_queued_promise_jobs(); vm.run_queued_finalization_registry_cleanup_jobs(); + vm.pop_execution_context(); + vm.finish_execution_generation(); } -- cgit v1.2.3