swc_ecma_transforms:
- global codemap / parser session for config parsing
- cache parsing result of react pass
- InjectHelpers pass does not require source map
swc_atoms:
- add some atoms
swc_ecma_ast:
- ast nodes for typescript
- `ClassMethod` -> `Method`, `ClassMethodKind` -> `MethodKind`
- private class method / class property
- use separate type for tagged template literals
- add `declare` field to `Decl`s
- make function body optional
swc_ecma_parser:
- rename Type to TokenContext
- support decorators
Note: error reporting for invalid decorator is not implemented yet
- merge `Config` into `Syntax`
- Use DiagnosticBuilder for error type
This is to make backtracking cheaper.
swc_ecma_transforms:
- add `strip` pass
swc_common:
- implement VisitWith for &T and [T]
swc_ecma_ast:
- fix codegen of `===`
swc_ecma_parser:
- fix parsing of array pattern
swc_ecma_transforms:
- implement es2015::destructuring
- implement es2015::computed_properties
- implement es2015::duplicate_keys
- implement es2015::parameters
- fix `InjectHelper` pass
Note that getters / setters in class are not supported yet
- Run execution tests via jest
- ignore es2016::exponentation tests
testing:
- preserve context of the span in `::testing::DropSpan`
swc_ecma_codegen:
- disable get_text_of_node to avoid deoptimization
swc_ecma_transforms:
- allow using this inside arrow expression
- implement es2015::block_scoping with hygiene ident
common:
- upgrade rustc-ap crates to 297
- swc_common does not reexport sourcemap anymore
- update rustfmt to 0.99.6
simplifier:
- make some tests success when source code is equavalent
- implement fixer to fix ast broken by simplifier
- implement bit shift operators
- fix str.length
- ignore some tests
compat:
- fix `**=`
- fix es3::prop_lits