swc/ecmascript/minifier
강동윤 33a43f85b1
feat(es/minifier): Implement more rules (#1766)
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 `&&`.
2021-06-29 16:11:22 +09:00
..
scripts feat(es/minifier): Implement more rules (#1766) 2021-06-29 16:11:22 +09:00
src feat(es/minifier): Implement more rules (#1766) 2021-06-29 16:11:22 +09:00
tests feat(es/minifier): Implement more rules (#1766) 2021-06-29 16:11:22 +09:00
Cargo.toml feat(es/minifier): Implement more rules (#1766) 2021-06-29 16:11:22 +09:00
README.md feat(es/minifier): Implement more rules (#1735) 2021-05-25 16:39:07 +09:00

Minifier

EcmaScript minifier for the swc project. This is basically a port of terser.

Note

Currently name mangler is very simple. To focus on creating a MVP, I (kdy1) will use simple logic for name mangler and implement the content-aware name mangler after publishing first non-beta version.

Testing

Tests ported from terser has

  • input.js
  • config.json
  • mangle.json (if name mangling is enabled)
  • output.js (if exists and can be modified if our one is better or due to lack of frequency-aware base54)
  • output.terser.js (if exists)

Copying tests

Replace the content of terser/test/compress.js with it of scripts/compress.js and run npm run test:compress