- We don't need a list of bindings to check if an identifier is unresolved.
- Checking if an identifier is unresolved is now one CPU instruction.
- Previously it was one hashmap operation.
- This PR also improves performance, by removing the hashmaps mentioned above.
swc_ecma_ast:
- Split `MemberExpr` into `MemberExpr` and `SuperPropExpr`.
- Use `Box<Expr>` for `MemberExpr.obj`.
- Use ad-hoc type for `MemberExpr.prop`.
- Use ad-hoc type for `SuperPropExpr.prop`.
- Use `Callee` instead of `ExprOrSpread` for `CallExpr`.
- Simplify types for meta property expressions.
swc_ecma_transforms_base:
- `resolver`: Ignore named export with source.
- `hygiene`: Ignore named export with source. (Closes#2924, Closes#3114)
swc_ecma_minifier:
- Handle `export default` declarations as declaration instead of expressions. (Closes#2717)
- Don't override already-processed identifiers. (Closes#2988)
swc_bundler:
- Adjust the syntax context for named re-exports.