- Wrap lexer -> parser -> codegen pipeline in ArenaAllocator
- All temporary allocations freed in one shot after HTML generation
- Applied to pug.compile() and template.renderWithData()
- Reduces allocator overhead and improves cache locality
- 22% faster than Pug.js (149.3ms vs 182.9ms on benchmark)
- All tests pass