Pārlūkot izejas kodu

LibJS: Run the queued promise reaction jobs on bytecode interpreter exit

This is the same as what the AST interpreter does.
Ali Mohammad Pur 3 gadi atpakaļ
vecāks
revīzija
c604e95993
1 mainītis faili ar 4 papildinājumiem un 0 dzēšanām
  1. 4 0
      Userland/Libraries/LibJS/Bytecode/Interpreter.cpp

+ 4 - 0
Userland/Libraries/LibJS/Bytecode/Interpreter.cpp

@@ -153,6 +153,10 @@ Interpreter::ValueAndFrame Interpreter::run_and_return_frame(Executable const& e
     if (!m_register_windows.is_empty())
         m_register_windows.last()[0] = return_value;
 
+    // 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();
+
     if (vm().execution_context_stack().size() == 1)
         vm().pop_execution_context();