aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/ZigGlobalObject.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-22 06:43:57 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-06-22 06:56:47 -0700
commit92aeb0af5594516d6444c9fcc69d56682e34771b (patch)
tree4ff007b8f345e1ccdf25839858bf104ada1cb5f0 /src/javascript/jsc/bindings/ZigGlobalObject.cpp
parent759bfadb933266de99c4bd7cf7c4c92b8dd97576 (diff)
downloadbun-92aeb0af5594516d6444c9fcc69d56682e34771b.tar.gz
bun-92aeb0af5594516d6444c9fcc69d56682e34771b.tar.zst
bun-92aeb0af5594516d6444c9fcc69d56682e34771b.zip
Add a way to schedule microtasks from C++
Diffstat (limited to 'src/javascript/jsc/bindings/ZigGlobalObject.cpp')
-rw-r--r--src/javascript/jsc/bindings/ZigGlobalObject.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/javascript/jsc/bindings/ZigGlobalObject.cpp b/src/javascript/jsc/bindings/ZigGlobalObject.cpp
index 53872f325..e99f9a1cc 100644
--- a/src/javascript/jsc/bindings/ZigGlobalObject.cpp
+++ b/src/javascript/jsc/bindings/ZigGlobalObject.cpp
@@ -2107,6 +2107,17 @@ void GlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor)
visitor.addOpaqueRoot(context);
}
+extern "C" void Bun__queueMicrotask(JSC__JSGlobalObject*, WebCore::EventLoopTask* task);
+extern "C" void Bun__performTask(Zig::GlobalObject* globalObject, WebCore::EventLoopTask* task)
+{
+ task->performTask(*globalObject->scriptExecutionContext());
+}
+
+void GlobalObject::queueTask(WebCore::EventLoopTask* task)
+{
+ Bun__queueMicrotask(this, task);
+}
+
DEFINE_VISIT_CHILDREN(GlobalObject);
// void GlobalObject::destroy(JSCell* cell)