summaryrefslogtreecommitdiffstats
path: root/main.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'main.mjs')
-rw-r--r--main.mjs21
1 files changed, 21 insertions, 0 deletions
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);