From 0753ea2b9e10b0f5030b05e84cd8490cc9ec7b34 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Sat, 23 Aug 2025 13:05:07 -0400 Subject: highlight running code --- main.mjs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'main.mjs') diff --git a/main.mjs b/main.mjs index bcb7f0a..7bc2ba4 100644 --- a/main.mjs +++ b/main.mjs @@ -14,6 +14,12 @@ function wordlistElts(wordlist) { }) } +function selectorForIP(word, offset) { + const sel = `#wordlist x-bytecode[x-index='${word}'] x-op[x-index='${offset}']`; + console.debug('using sel', sel); + return sel; +} + async function loaded() { console.debug('running init'); const mod = await init(); @@ -39,10 +45,25 @@ async function loaded() { if (res) { const wordlist = wordlistElts(interp.wordlist()); wordlist.forEach(elt => wordlistContainer.appendChild(elt)); + const sel = selectorForIP(0, 0); + document.querySelectorAll(sel).forEach(e => { + e.classList.add('ip') + }); } }; document.querySelector('#tick').onclick = e => { console.debug('tick clicked', e); + interp.tick(); + console.info('callstack', interp.callstack()); + console.info('stack', interp.stack()); + + const { word, offset } = interp.ip(); + console.info('ip', word, offset); + document.querySelectorAll('#wordlist .ip').forEach(e => e.classList.remove('ip')); + const sel = selectorForIP(word, offset); + document.querySelectorAll(sel).forEach(e => { + e.classList.add('ip') + }); }; document.querySelector('#run').onclick = e => { console.debug('run clicked', e); -- cgit v1.3