I was pretty disappointed that moving Builder to be defined in the parse closure in order to get an upval to lx proved a negative impact. I also tried rewriting Binop to use a hand rolled switch, negative impact there too. Probably because I didn't constant propagate the case values. Compile time is 90% ast.js
Operator precedence is nowhere to be seen. Probably best off working the rules into the grammar like the C standard listed out
Nothing to say about runbc. I feel getting bits onto the screen is an important step to any project, & I wasn't feeling it reading intermediate data structures off the console
A lot of this code is written knowing it's planned to be thrown away. I want the Lua stuff moving towards a point that it can be tested so that when I get to writing raw wast I can test for regressions
So my short term goals are: begin unit testing in node, operator precedence, continue working on implementing a more accurate vm class, which'll probably dig up bugs in bc. I might start on basic metatable stuff, just to make sure the architecture fits it in. Rewriting ast.js can wait for when it won't be written in js; perhaps I'll look to create a wasm generator just for it. Again getting away from the short term..