Day Twenty Four
Rose at 0430. Continued fleshing out coroutines. Reviewing string api, reviewing patterns. Wrote a repl. try-catch is because immediate readline call was causing EAGAIN. Fixed string escapes to be decimal, not octal. Noticed this misunderstanding on my part while reading about string.pack. String.reverse & ran into issues while trying to call string functions so fixed. Went after that one since it looked obvious enough, don't know how I missed it first time around. Referenced jsperf for string reverse. I reference jsperf quite a bit. Hence not using Number.isNan. I'd been getting annoyed seeing print output always being an array

At this point my mind was fluttering, no thought could persist without forming a mantra, So sought rest. Realized that I'm going to have to drop using string & use Uint8Array as my string type. It'll be easier for wasm port, so that's a plus. Slowly going to start implementing objects to be wrappers around indices into a WebAssembly.Memory buffer

Then I found out that 'a=[1,2,3];delete a[2]' results in a.length still being 3, not 2. So figuratively rolled up my sleeves & reworked Table to now exist completely in the hash Map, tracking borders in a sorted array & deciding to raze any code which wasn't trivial to switch from fiddling with the array field. Turns out scopeVar was broken in calling scopeIndex. Trying to input table test cases into the REPL & getting syntaxes errors, joy. Got cute with appendix both in name & mixing postfix/prefix increment. Append opcodes now all take an index at which to start appending values

Fragment of mutter, don't know where to stash these things: A table is a map, a mapping, not a map, but a mathematical map.. at least imagine a table, not a table

Oh I get it, it's been an hour, now it all makes sense it makes sense