A New Bytecode Format for JavaScriptCore
I'm unclear,  why transform to a bytecode as a first step? 
Wouldn't it be simpler to instead to transform to an AST and work against that for everything?  Wouldn't it make sense to generate the bytecode as sort of a last step before doing heavy duty optimizations?<p>Seems like with JS you would be constantly transforming from bytecode -> AST -> bytecode -> machine code, such as every time a method adds a new field to an object or some optimization assumption is violated.  It doesn't seem like it would be easier or faster to work with.  I'm guessing there wouldn't be a whole lot of memory benefits either.<p>Would someone mind illuminating me on this design choice? (Granted, I've not taken a compilers course, so feel free to call me an idiot for not knowing something basic about how compilers work).