swc/ecmascript/minifier/README.md
강동윤 b02e189d07
feat(es/minifier): Implement more rules (#1871)
swc_ecma_codegen:
 - Fix codegen of `U+0028` and `U+0029`. 

swc_ecma_minifier:
 - Implement MVP.

swc_ecma_transforms_base:
 - `fixer`: Handle seq/await in rhs of for-of.
2021-07-30 10:11:27 +09:00

42 lines
1.2 KiB
Markdown

# 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
### Real-library tests
You can use vscode to see diffs. Select a file from `tests/projects/output` and select the corresponding file from `tests/projects/refs`. Then you can right click to see an option to open diff.
#### Splitting a library test
Extracting only subset from a library test makes development much easier.
Split status:
- [ ] angular-1.2.5
- [x] backbone-1.1.0
- [ ] jquery-1.9.1
- [ ] jquery.mobile-1.4.2
- [ ] mootools-1.4.5
- [x] underscore-1.5.2
- [ ] yui-3.12.0
### Tests from terser
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`