In general scheme follows:
Parser -> ?Optimizer -> Transpiler -> Generator -> Bundler
Parser produces AST from source code.
Additionally, it allocates all symbols.
Symbol
- is a mediator to bind Identifier
to it's Ref
.
During parse stage we don't try to resolve
identifiers because of all the ambiguities present when parsing javascript.
Instead, we reference all symbols after parse was complete.
This is done w/o traversing over AST as all symbols
stored separately in Module
's SymbolsScope
.
Question stands for an optional step. Optimizations available: TODO
Transpiler will modify AST to conform target ES version.
Produces code from AST and generates source map.
Bundles all modules into chunks.