Rewrote AST interpreter up to if-expressions, variable assignment, variable retrieval, and string interpolation.
Identify excerpts of source code to highlight as the interpreter interprets
Simplified todos by allowing nil sexps and combining enter_if_true & enter_if_false
Yet another implementation of AST-to-bytecode compiler
Reimplement BytecodeInterpreter
Integrate new bytecode compiler/interpreter with JS more
Call new compiler and interpreter from JavaScript
Simplified implementation to not need a stack of ifs
Redo DebuggerAnimator to use new BytecodeInterpreter; it intercepts $stdout now instead of p and puts calls; it doesn't bold lines yet though
Warn if can't add position to compiled output because sexp.source is nil.
Bug fix: error if method returned before any output was made
Now visualizing stack of partial calls
If there are no partial calls, show the list with only 10px height so it's distinguishable from having one blank partial call
Now highlighting partial call rows as they're being executed
Oops, comment got out of place.
Now highlighting Ruby code as it executes, token by token.  Also de-emphasizing receiver=main or method=<< so they don't stand out as much
Partial calls table header now shows Arguments instead of 1st Arg if there are no calls with arguments yet.
Show pending variable assignments
Bug fix: ... wasn't getting appended to the end of partial calls because max_num_cols was only considering args that existed
Bug fix: "" literal broke the compiler because it doesn't have a source