swc_common:
- Use `Mutex` from `parking_lot` instead of it from std.
swc_bundler:
- Use `fxhash` if possible.
- Don't `clone()` all modules if the entry has only one item.
swc_ecma_loader:
- `NodeModulesResolver`: Use `path-clean` instead of `canonicalize`.
swc_ecma_transforms_optimization:
- Reimplement `dce`
node_bundler:
- Enable `concurrent` of `swc_bundler`.
swc_ecma_ast:
- Implement `Take` for `Function`.
- Implement `Take` for `FnExpr`.
- Implement `Take` for `ClassExpr`.
swc_ecma_transforms_compat:
- Migrate `es2015::duplicate_keys` to `VisitMut`.
- Migrate `es2015::template_literals` to `VisitMut`.
- Migrate `es2015::function_name` to `VisitMut`.
- Add more fast-path to `reserved_words` pass.
swc_ecma_transforms_react:
- Reduce allocations of `pure_annotations`.
- Migrate `pure_annotations` to `VisitMut`.
- Migrate `jsx::display_name` to `VisitMut`.
swc_ecma_transforms_optimization:
- Migrate `inline_globals` to `VisitMut`.
- `inline_globals`: Use `Lrc<FxHashMap<K, V>>`.
swc:
- Cache `current_dir()`.
- `ModuleConfig::build`: cacnonicalize only if `paths` is used.
swc_ecma_codegen:
- Fix source map of string literals. (#2253)
swc_ecma_transforms_typescript:
- Allow using same name for a module with function. (#2243)
swc_ecma_minifier:
- `if_return`: Allow side-effect-free statements to come after `if_return`.
- `collapse_vars`: Move variables without init to first.
- `analyzer`: Remove useless fields.
- Don't drop `return` tokens if there's a finally block.
- `drop_return_value`: Drop side-effect-free return arguments.
- `make_sequences`: Don't inject `void 0` to return args.
- `if_terminate`: Move to the pure optimizer.
- Fix a bug related to `RegExp`.
swc_ecma_transforms_compat:
- Fix `this` in class properties. (#2228)
swc_ecma_transforms_typescript:
- Handle `import =` correctly. (#2234)
- Ensure that #1653 is not the case anymore. (#1653)
swc:
- Ensure that #2232 is not the case. (#2232)
swc_ecma_loader:
- `TsConfigResolver`: Use `baseUrl`. (#2050)
swc:
- Change type of `JscConfig.base_url` to `PathBuf`.
testing:
- Improve `NormalizedOutput::compare_to_file`.
swc_ecma_parser:
- Don't panic on `typeof import(T)`. (#2198)
- Fix parsing of ternary. (#2196)
swc_ecma_transforms_base:
- `fixer`: Handle unary in lhs of an exponentation expression. (#2191)
swc_ecma_transforms_compat:
- Use variable for `this` in arrow expressions. (#2212)
swc_ecma_visit:
- Add a trait `InjectVars`.
node_swc:
- Increease recursion limit while deserializing. (#2223)
swc_ecma_codegen:
- Don't panic on `Pat::Invalid`.
- Fix codegen of unary minus. (#2213)
swc_ecma_minifier:
- Remove identifier of function expressions if a variable with same name exists.
- `sequences`: Merge into the argument of a throw statement.
- Use `ignore_return_value` for `void` expressions.
- Improve inlining.
- Drop last `return` if the return value is not used.
- `sequences`: Merge `c++; use(c)` as `use(++c)`.
- `sequences`: Merge assignments with an operator.
- `comparisons`: Optimize the comparison operator if type is equivalent.
- Fix `negate_cost`.
- `unused`: Fix order or variable initalizer when variables are dropped.
- Fix `top_retain` option.
- `if_return`: Don't merge nested if it's wrong to do so. (#2214)
- Fix negation of `if_return`.