I used such a succinct AST structure to implement a JavaScript parser and interpreter for a severely memory constrained environment (embedded): V7 (https://github.com/cesanta/v7)
We later switched to a ast->bytecode compilation step but for a while the implicit AST was directly traversed during interpretation.
We later switched to a ast->bytecode compilation step but for a while the implicit AST was directly traversed during interpretation.