Ver código fonte

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 anos atrás
pai
commit
c604e95993
1 arquivos alterados com 4 adições e 0 exclusões
  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();