improve compression of undefined, NaN & Infinitiy (#1748)
authorAlex Lam S.L <alexlamsl@gmail.com>
Fri, 31 Mar 2017 19:02:14 +0000 (03:02 +0800)
committerGitHub <noreply@github.com>
Fri, 31 Mar 2017 19:02:14 +0000 (03:02 +0800)
commit257ddc3bdb37efdb48fc23371f5f523e2044afd8
tree8b91508961f0acd7c43db5a0e08dc8f932df4a55
parent1ddc05725d078ccf73d711e376c3c530cd517cdb
improve compression of undefined, NaN & Infinitiy (#1748)

- migrate transformation logic from `OutputStream` to `Compressor`
- always turn `undefined` into `void 0` (unless `unsafe`)
- always keep `NaN` except when avoiding local variable redefinition
- introduce `keep_infinity` to suppress `1/0` transform, except when avoiding local variable redefinition

supersedes #1723
fixes #1730
README.md
lib/compress.js
lib/output.js
test/compress/conditionals.js
test/compress/evaluate.js
test/compress/issue-1105.js
test/compress/issue-597.js
test/compress/numbers.js
test/compress/properties.js