swc/ecmascript/codegen/tests/test262/ecba8fb326c2c985.js
강동윤 f44e25c3af
fix(es/minifier): Improve output of minifier (#1990)
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)
2021-08-04 00:52:47 +09:00

34 lines
484 B
JavaScript

var a, b, c, d, e;
// compress these
if (b) {
a = 1 + 2;
} else {
a = 3;
}
if (b) {
a = 4 + 5;
} else if (c) {
a = 6;
} else {
a = 7 - 8;
}
a = b ? 'f' : 'g' + 'h';
a = b ? 'f' : b ? 'f' : 'g' + 'h';
// Compress conditions that have side effects
if (i()) {
a = 9 + 10;
} else {
a = 11;
}
if (c) {
a = 'j';
} else if (i()) {
a = 'k' + 'l';
} else {
a = 'j';
}
a = i() ? 'm' : 'f' + 'n';
// don't compress these
a = b ? d : e;
a = b ? 'f' : 'g';