summaryrefslogtreecommitdiffstats
path: root/site/robo.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'site/robo.mjs')
-rw-r--r--site/robo.mjs30
1 files changed, 13 insertions, 17 deletions
diff --git a/site/robo.mjs b/site/robo.mjs
index ba879fa..5302920 100644
--- a/site/robo.mjs
+++ b/site/robo.mjs
@@ -17,8 +17,19 @@ function tick() {
postMessage({ kind: 'tick', trans: vm.trans() });
}
+let mod;
+async function initWasm() {
+ if (mod === undefined) {
+ console.debug('worker running init');
+ mod = await init();
+ console.debug('worker init done');
+ vm = make_vm();
+ console.debug('worker vm made');
+ }
+}
+
async function messageHandler(e) {
- console.debug('worker messageHandler')
+ await initWasm();
const { kind } = e.data;
switch (kind) {
case 'compile':
@@ -36,19 +47,4 @@ async function messageHandler(e) {
}
}
-let mod;
-async function loaded() {
- console.debug('loading robo worker');
- if (mod === undefined) {
- console.debug('worker running init');
- mod = await init();
- console.debug('worker init done');
- vm = make_vm();
- console.debug('worker vm made');
- }
-
- addEventListener('message', messageHandler);
- console.debug('bjc loaded robo');
-}
-
-loaded();
+self.addEventListener('message', messageHandler);