aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/BunClientData.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-07-22 04:31:58 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-22 04:31:58 -0700
commitc6a3467625fede0fe9901ab53b0aabd651866b64 (patch)
tree6cdd9bfd79756e97081b45de5323a7bbde62ceff /src/bun.js/bindings/BunClientData.cpp
parent636cec03e10ab487b1df3057aaab60b4d2b02c99 (diff)
downloadbun-c6a3467625fede0fe9901ab53b0aabd651866b64.tar.gz
bun-c6a3467625fede0fe9901ab53b0aabd651866b64.tar.zst
bun-c6a3467625fede0fe9901ab53b0aabd651866b64.zip
Unified event loop (#3741)
* Unified event loop * Update WebKit, add test for es-module-lexer * Update README.md * Use async wasm * Explicitly set whether concurrenttask should be deinit'd * Update package.json --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/bun.js/bindings/BunClientData.cpp')
-rw-r--r--src/bun.js/bindings/BunClientData.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/bun.js/bindings/BunClientData.cpp b/src/bun.js/bindings/BunClientData.cpp
index 2cdd8b25a..9af17d638 100644
--- a/src/bun.js/bindings/BunClientData.cpp
+++ b/src/bun.js/bindings/BunClientData.cpp
@@ -21,6 +21,7 @@
#include "JavaScriptCore/JSCInlines.h"
#include "JSDOMWrapper.h"
+#include <JavaScriptCore/DeferredWorkTimer.h>
namespace WebCore {
using namespace JSC;
@@ -69,9 +70,14 @@ JSVMClientData::~JSVMClientData()
ASSERT(m_normalWorld->hasOneRef());
m_normalWorld = nullptr;
}
-void JSVMClientData::create(VM* vm)
+void JSVMClientData::create(VM* vm, void* bunVM)
{
JSVMClientData* clientData = new JSVMClientData(*vm);
+ clientData->bunVM = bunVM;
+ vm->deferredWorkTimer->onAddPendingWork = Bun::JSCTaskScheduler::onAddPendingWork;
+ vm->deferredWorkTimer->onScheduleWorkSoon = Bun::JSCTaskScheduler::onScheduleWorkSoon;
+ vm->deferredWorkTimer->onCancelPendingWork = Bun::JSCTaskScheduler::onCancelPendingWork;
+
vm->clientData = clientData; // ~VM deletes this pointer.
clientData->m_normalWorld = DOMWrapperWorld::create(*vm, DOMWrapperWorld::Type::Normal);