2 possible solutions: 1. Throw away function ASTs right after parsing. Reparse when compiling to bytecode. Use an AST cache to reduce performance hit. 2. Parse function bodies just enough to determine they're syntactically valid. Parse for real the first time the function executes. Also * Eagerly compiling to bytecode might work if we shrink bytecode footprint; for now, it's even worse than AST footprint. * There's low-hanging fruit for reducing the size of AST nodes
Created attachment 24792 [details] patch - remove LabelStack from AST
Comment on attachment 24792 [details] patch - remove LabelStack from AST r=mw assuming perf is okay
<rdar://problem/6170161>
Committed attachment 24792 [details] as revision 38047. I'll keep this bug open to monitor the rest of the work.
Created attachment 24828 [details] patch - remove reference count and symbol table from FunctionBodyNode
Comment on attachment 24828 [details] patch - remove reference count and symbol table from FunctionBodyNode Clearing the review flag because this patch turned out to be a performance regression. Maybe someone else can finish it off.
Comment on attachment 24792 [details] patch - remove LabelStack from AST Clearing review flag on landed patch.
This was fixed in r38047