Use internal microtasks for bun

This commit is contained in:
Sosuke Suzuki
2025-10-14 16:54:20 +09:00
parent d4ee0c0ffd
commit fd960237c0
2 changed files with 4 additions and 3 deletions

View File

@@ -1574,7 +1574,8 @@ JSC_DEFINE_HOST_FUNCTION(functionQueueMicrotask,
}
// This is a JSC builtin function
JSC::QueuedTask task { nullptr, JSC::InternalMicrotask::InvokeFunctionJob, globalObject, function, callback, asyncContext };
// BunPerformMicrotaskJob expects: performMicrotask, job, asyncContext, arg0, arg1
JSC::QueuedTask task { nullptr, JSC::InternalMicrotask::BunPerformMicrotaskJob, globalObject, function, callback, asyncContext };
globalObject->vm().queueMicrotask(WTFMove(task));
return JSC::JSValue::encode(JSC::jsUndefined());

View File

@@ -3503,7 +3503,7 @@ void JSC__JSPromise__rejectOnNextTickWithHandled(JSC::JSPromise* promise, JSC::J
value = jsUndefined();
}
JSC::QueuedTask task { nullptr, JSC::InternalMicrotask::InvokeFunctionJob, globalObject, microtaskFunction, rejectPromiseFunction, globalObject->m_asyncContextData.get()->getInternalField(0), promise, value };
JSC::QueuedTask task { nullptr, JSC::InternalMicrotask::BunPerformMicrotaskJob, globalObject, microtaskFunction, rejectPromiseFunction, globalObject->m_asyncContextData.get()->getInternalField(0), promise, value };
globalObject->vm().queueMicrotask(WTFMove(task));
RETURN_IF_EXCEPTION(scope, );
}
@@ -5386,7 +5386,7 @@ extern "C" void JSC__JSGlobalObject__queueMicrotaskJob(JSC::JSGlobalObject* arg0
#endif
JSC::QueuedTask task { nullptr, JSC::InternalMicrotask::InvokeFunctionJob, globalObject, microTaskFunction, WTFMove(microtaskArgs[0]), WTFMove(microtaskArgs[1]), WTFMove(microtaskArgs[2]), WTFMove(microtaskArgs[3]) };
JSC::QueuedTask task { nullptr, JSC::InternalMicrotask::BunPerformMicrotaskJob, globalObject, microTaskFunction, WTFMove(microtaskArgs[0]), WTFMove(microtaskArgs[1]), WTFMove(microtaskArgs[2]), WTFMove(microtaskArgs[3]) };
globalObject->vm().queueMicrotask(WTFMove(task));
}