From e779ea956546fc311ad5a98260d1091127a9bfe7 Mon Sep 17 00:00:00 2001 From: Kitson Kelly Date: Wed, 9 Jun 2021 22:21:02 +1000 Subject: fix(runtime): early binding to dispatchEvent in workers (#10904) --- runtime/js/99_main.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'runtime/js') diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index f196f3008..aac6fc0ea 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -82,7 +82,12 @@ delete Object.prototype.__proto__; } let isClosing = false; + let globalDispatchEvent; + async function pollForMessages() { + if (!globalDispatchEvent) { + globalDispatchEvent = globalThis.dispatchEvent.bind(globalThis); + } while (!isClosing) { const bufferMsg = await core.opAsync("op_worker_get_message"); const data = core.deserialize(bufferMsg); @@ -96,7 +101,7 @@ delete Object.prototype.__proto__; if (globalThis.onmessage) { await globalThis.onmessage(msgEvent); } - globalThis.dispatchEvent(msgEvent); + globalDispatchEvent(msgEvent); } catch (e) { let handled = false; @@ -120,7 +125,7 @@ delete Object.prototype.__proto__; handled = ret === true; } - globalThis.dispatchEvent(errorEvent); + globalDispatchEvent(errorEvent); if (errorEvent.defaultPrevented) { handled = true; } -- cgit v1.2.3