mirror of
https://github.com/swc-project/swc.git
synced 2024-12-22 13:11:31 +03:00
f44e25c3af
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)
34 lines
484 B
JavaScript
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';
|