swc_ecma_minifier:
- Don't change depth of function while negating if statements. (#2558)
swc_ecma_transforms_optimization:
- `dead_branch_remover`: Preserve `this`. (#2465, #2466)
swc:
- Make `toplevel` default to true if `module` is true. (#2254)
swc_ecma_transforms_optimization:
- `inline_globals`: Support inlining into shorthand properties.
- `inline_globals`: Support replacing member expressions.
swc:
- Add an option to disable simplifier when using `inline_globals`.
node_swc:
- Improve error message on panic.
swc_ecma_transforms_optimization:
- `inline_globals`: Support inlining of `typeof`s.
swc:
- Change error message for parsing failure to mention `Syntax Error`.
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_minifier:
- Enable some sequential merging if `collapse_vars` is set.
- Enable sequential merging for top level items.
- `if_return`: Don't inject `void` if it's not exact function body. (#2072)
- `sequences`: Add some condition for aborting. (#2078)
swc_ecma_utils:
- Add `collect_decls`.
- Add `collect_decls_with_ctxt`.
swc_ecma_transforms_optimization:
- `inline_globals`: Don't replace if a binding exists. (#1294)
swc_common:
- Add `Span.has_mark`.
swc_ecma_codegen:
- Emit `1e3` for `1000`.
- Optimize output. (#1986)
swc_ecma_minifier:
- name mangler: Don't use keywords as an id.
- `properties`: Optimize member expression with string properties.
- `inline`: Inline some function expressions even if it's not fn-local.
- `analyzer`: Track reassignment correctly.
- `analyzer`: Track fn-local correctly.
- `sequences`: Inject `void` if required.
- `inline`: Inline function declarations correctly.
- `sequences`: Merge expressions into test of if statements.
- `sequences`: Reduce calls to an assigned variable.
- Use `Marks` instead of `&dyn Comments`.
swc_ecma_transforms_optimization:
- `expr_simplifier`: Fix infinite loops.
node/swc:
- Ensure that `.transform` performs minification. (#1989)
swc_ecma_minifier:
- Implement more rules.
swc_ecma_transforms_base:
- `resolver`: Fix syntax context of catch block.
swc_ecma_transforms_optimization:
- `expr_simplifier`: Fix a bug related to `this` of call expressions.
- `dead_branch_remover`: Don't reduce switch cases if test is now known.
- `dead_branch_remover`: Don't break `&&`.
swc_ecma_transforms_optimization:
- `dce`: Mark references from decorator as usage. (denoland/deno#10789)
swc_ecma_transforms_proposal:
- Allow using `super` in decorated class methods. (#846)
swc_ecma_minifier:
- Implement `evaluate` partially.
- Store 'expected output' from terser along with our result.
swc_ecma_transforms_base:
- `fixer`: Don't wrap `+ (a % b)`.
swc_ecma_transforms_optimization:
- `expr_simplifier`: Preserve this in calls.
swc_ecma_parser:
- Allow a class member named `declare`. (#1671)
swc_ecma_transforms_optimization:
- Preserve side effects while inlining array index operations. (#1674)
wasm/web:
- Fix ci script. (#1675)
swc_bundler:
- Ensure that denoland/deno#10141 is fixed.
- Run deno tests on ci.
- Support nested `export *`. (denoland/deno#10153, denoland/deno#10174)
swc_ecma_codegen:
- Remove `,` after rest elements. (#1573, denoland/deno#10167)
swc_ecma_transforms_optimization:
- Don't drop items used by the discriminant of a switch.
swc_ecma_transforms_typescript:
- Remove constructors without a body.
swc_bundler:
- Create variables for export while preparing a module. (denoland/deno#9560)
- Fix order of statements.
- Invoke dce multiple time if required. (denoland/deno#9546)
swc_ecma_transforms_optimization:
- dce: Track modifications correctly.
swc_bundler:
- Add a testing system for constant inliner.
swc_ecma_transforms_optimization:
- const_propagation: Handle export specifiers.
- const_propagation: Handle inlining of variables whose initializer is inlined.
- dce: Allow dropping identifiers used in `exported` part of export specifiers.