mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
src: check microtasks before running them
PR-URL: https://github.com/nodejs/node/pull/29434 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
This commit is contained in:
@@ -12,6 +12,7 @@ using v8::HandleScope;
|
||||
using v8::Isolate;
|
||||
using v8::Local;
|
||||
using v8::MaybeLocal;
|
||||
using v8::MicrotasksScope;
|
||||
using v8::NewStringType;
|
||||
using v8::Object;
|
||||
using v8::String;
|
||||
@@ -100,7 +101,7 @@ void InternalCallbackScope::Close() {
|
||||
|
||||
if (!env_->can_call_into_js()) return;
|
||||
if (!tick_info->has_tick_scheduled()) {
|
||||
env_->isolate()->RunMicrotasks();
|
||||
MicrotasksScope::PerformCheckpoint(env_->isolate());
|
||||
}
|
||||
|
||||
// Make sure the stack unwound properly. If there are nested MakeCallback's
|
||||
|
||||
@@ -21,6 +21,7 @@ using v8::kPromiseRejectWithNoHandler;
|
||||
using v8::kPromiseResolveAfterResolved;
|
||||
using v8::Local;
|
||||
using v8::Message;
|
||||
using v8::MicrotasksScope;
|
||||
using v8::Number;
|
||||
using v8::Object;
|
||||
using v8::Promise;
|
||||
@@ -43,7 +44,7 @@ static void EnqueueMicrotask(const FunctionCallbackInfo<Value>& args) {
|
||||
bool RunNextTicksNative(Environment* env) {
|
||||
TickInfo* tick_info = env->tick_info();
|
||||
if (!tick_info->has_tick_scheduled() && !tick_info->has_rejection_to_warn())
|
||||
env->isolate()->RunMicrotasks();
|
||||
MicrotasksScope::PerformCheckpoint(env->isolate());
|
||||
if (!tick_info->has_tick_scheduled() && !tick_info->has_rejection_to_warn())
|
||||
return true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user