summaryrefslogtreecommitdiffstats
path: root/site/main.mjs
diff options
context:
space:
mode:
authorBrian Cully <bjc@spork.org>2025-12-18 15:10:08 -0500
committerBrian Cully <bjc@spork.org>2025-12-18 15:10:08 -0500
commit7522618ac3e913b904ada9d2e2529afa7acabad3 (patch)
treec3dda56d921b42c3d039330078927576574a0e3c /site/main.mjs
parent3d0d63ede8e267b320c672c248c9e731b0ed95c2 (diff)
downloadautomathon-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.mjs29
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);
});