summaryrefslogtreecommitdiffstats
path: root/site/robo.mjs
diff options
context:
space:
mode:
authorbrian cully <bjc@spork.org>2025-12-24 14:00:27 -0500
committerbrian cully <bjc@spork.org>2025-12-24 14:00:27 -0500
commitc26985d780edea7028e9e0203672d3376e66b450 (patch)
treefcf677da99ccf94ea55a8946c5225fc78f8d0848 /site/robo.mjs
parentc0f04b7b82ef971c1a50da3c65f155ad2c75031b (diff)
downloadautomathon-c26985d780edea7028e9e0203672d3376e66b450.tar.gz
automathon-c26985d780edea7028e9e0203672d3376e66b450.zip
js: auto-compile loaded source
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);