diff options
| author | Brian Cully <bjc@spork.org> | 2025-12-18 15:10:08 -0500 |
|---|---|---|
| committer | Brian Cully <bjc@spork.org> | 2025-12-18 15:10:08 -0500 |
| commit | 7522618ac3e913b904ada9d2e2529afa7acabad3 (patch) | |
| tree | c3dda56d921b42c3d039330078927576574a0e3c /site/main.mjs | |
| parent | 3d0d63ede8e267b320c672c248c9e731b0ed95c2 (diff) | |
| download | automathon-7522618ac3e913b904ada9d2e2529afa7acabad3.tar.gz automathon-7522618ac3e913b904ada9d2e2529afa7acabad3.zip | |
rust, js: do plain old object translation is wasm. use workers
Diffstat (limited to 'site/main.mjs')
| -rw-r--r-- | site/main.mjs | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/site/main.mjs b/site/main.mjs index 5358616..31f1375 100644 --- a/site/main.mjs +++ b/site/main.mjs @@ -167,38 +167,37 @@ async function loaded() { speedy: 0, }; roboWorker.onmessage = e => { - const { kind, res, vm } = e.data; + const { kind, res, trans } = e.data; switch (kind) { case 'compile': if (res) { let wordlistContainer = document.querySelector(WORDLIST_SELECTOR); - console.debug('bjc new vm', vm); - const wordlist = wordlistElts(vm.wordlist); + const wordlist = wordlistElts(trans.wordlist); wordlist.forEach(elt => wordlistContainer.appendChild(elt)); initWordlist(); - renderStack(vm.stack); - renderCallStack(vm.callstack); - renderVars(vm.vars); - renderTextHighlight(vm); + renderStack(trans.stack); + renderCallStack(trans.callstack); + renderVars(trans.vars); + renderTextHighlight(trans); renderArena([robo]); } break; case 'tick': - const { word, offset } = vm.ip; + const { word, offset } = trans.ip; document.querySelectorAll(IP_SELECTOR).forEach(e => e.classList.remove('ip')); const sel = selectorForIP(word, offset); document.querySelectorAll(sel).forEach(e => { e.classList.add('ip'); }); - renderStack(vm.stack); - renderCallStack(vm.callstack); - renderVars(vm.vars); - renderTextHighlight(vm); + renderStack(trans.stack); + renderCallStack(trans.callstack); + renderVars(trans.vars); + renderTextHighlight(trans); robo.lastTick = document.timeline.currentTime; - robo.heading = vm.vars.heading; - robo.speed = vm.vars.speed; + robo.heading = trans.vars.heading; + robo.speed = trans.vars.speed; const [speedx, speedy] = [ Math.cos(2 * Math.PI * robo.heading / 360), Math.sin(2 * Math.PI * robo.heading / 360) @@ -217,7 +216,7 @@ async function loaded() { console.error('error in roboWorker', e); }; - document.querySelectorAll(SRC_SELECT_SELECTOR).forEach(async sel => { + document.querySelectorAll(SRC_SELECT_SELECTOR).forEach(sel => { sel.onchange = _ => loadForth(sel.value); loadForth(sel.value); }); |
