NodeTransformer
Rewrites the IR into the lower-level form the code generator wants.
This is the pass that resolves names to variable slots where it can, turns break and continue into plain gotos with the right unwinding, threads finally blocks onto every return, and either flattens block scopes into variable slots or turns them into with objects, depending on whether the enclosing function needs an activation.