diff options
Diffstat (limited to 'main.mjs')
| -rw-r--r-- | main.mjs | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -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); |
