Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(es/minifier): Fix
collapse_vars
(#6235)
**Related issue:** - Closes #6217
- Loading branch information
Showing
9 changed files
with
204 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
{ | ||
"jsc": { | ||
"parser": { | ||
"syntax": "ecmascript", | ||
"jsx": false | ||
}, | ||
"target": "es2019", | ||
"loose": false, | ||
"minify": { | ||
"compress": { | ||
"arguments": false, | ||
"arrows": false, | ||
"booleans": false, | ||
"booleans_as_integers": false, | ||
"collapse_vars": true, | ||
"comparisons": false, | ||
"computed_props": false, | ||
"conditionals": false, | ||
"dead_code": false, | ||
"directives": false, | ||
"drop_console": false, | ||
"drop_debugger": false, | ||
"evaluate": false, | ||
"expression": false, | ||
"hoist_funs": false, | ||
"hoist_props": false, | ||
"hoist_vars": false, | ||
"if_return": false, | ||
"join_vars": false, | ||
"keep_classnames": false, | ||
"keep_fargs": false, | ||
"keep_fnames": false, | ||
"keep_infinity": false, | ||
"loops": false, | ||
"negate_iife": false, | ||
"properties": false, | ||
"reduce_funcs": false, | ||
"reduce_vars": false, | ||
"side_effects": false, | ||
"switches": false, | ||
"typeofs": false, | ||
"unsafe": false, | ||
"unsafe_arrows": false, | ||
"unsafe_comps": false, | ||
"unsafe_Function": false, | ||
"unsafe_math": false, | ||
"unsafe_symbols": false, | ||
"unsafe_methods": false, | ||
"unsafe_proto": false, | ||
"unsafe_regexp": false, | ||
"unsafe_undefined": false, | ||
"unused": false, | ||
"const_to_let": false, | ||
"pristine_globals": false | ||
}, | ||
"mangle": false | ||
} | ||
}, | ||
"module": { | ||
"type": "es6" | ||
}, | ||
"minify": false, | ||
"isModule": true | ||
} |
13 changes: 13 additions & 0 deletions
13
crates/swc/tests/fixture/issues-6xxx/6217/1/input/input.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
const a = 0; | ||
let b; | ||
for (let i = 0; i < 2; ++i) { | ||
if (i === 0) { | ||
b = 1; | ||
} else { | ||
b = 2; | ||
} | ||
console.log(a, b); | ||
} | ||
|
||
let c = 1, d; | ||
while (c--) { } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
let b; | ||
for(let i = 0; i < 2; ++i)console.log(0, b = 0 === i ? 1 : 2); | ||
let c = 1, d; | ||
while(c--); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
{ | ||
"jsc": { | ||
"parser": { | ||
"syntax": "ecmascript", | ||
"jsx": false | ||
}, | ||
"target": "es2019", | ||
"loose": false, | ||
"minify": { | ||
"compress": { | ||
"arguments": false, | ||
"arrows": false, | ||
"booleans": false, | ||
"booleans_as_integers": false, | ||
"collapse_vars": true, | ||
"comparisons": false, | ||
"computed_props": false, | ||
"conditionals": false, | ||
"dead_code": false, | ||
"directives": false, | ||
"drop_console": false, | ||
"drop_debugger": false, | ||
"evaluate": false, | ||
"expression": false, | ||
"hoist_funs": false, | ||
"hoist_props": false, | ||
"hoist_vars": false, | ||
"if_return": false, | ||
"join_vars": false, | ||
"keep_classnames": false, | ||
"keep_fargs": false, | ||
"keep_fnames": false, | ||
"keep_infinity": false, | ||
"loops": false, | ||
"negate_iife": false, | ||
"properties": false, | ||
"reduce_funcs": false, | ||
"reduce_vars": false, | ||
"side_effects": false, | ||
"switches": false, | ||
"typeofs": false, | ||
"unsafe": false, | ||
"unsafe_arrows": false, | ||
"unsafe_comps": false, | ||
"unsafe_Function": false, | ||
"unsafe_math": false, | ||
"unsafe_symbols": false, | ||
"unsafe_methods": false, | ||
"unsafe_proto": false, | ||
"unsafe_regexp": false, | ||
"unsafe_undefined": false, | ||
"unused": false, | ||
"const_to_let": false, | ||
"pristine_globals": false | ||
}, | ||
"mangle": false | ||
} | ||
}, | ||
"module": { | ||
"type": "es6" | ||
}, | ||
"minify": false, | ||
"isModule": true | ||
} |
14 changes: 14 additions & 0 deletions
14
crates/swc/tests/fixture/issues-6xxx/6217/2/input/input.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
const a = 0; | ||
let b; | ||
for (let i = 0; i < 2; ++i) { | ||
if (i === 0) { | ||
b = 1; | ||
} else { | ||
b = 2; | ||
} | ||
console.log(a, b); | ||
} | ||
|
||
let c, d; | ||
c = 1 | ||
while (c--) { } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
let b, c, d; | ||
for(let i = 0; i < 2; ++i)console.log(0, b = 0 === i ? 1 : 2); | ||
c = 1; | ||
while(c--); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 4 additions & 4 deletions
8
crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js
Large diffs are not rendered by default.
Oops, something went wrong.
48bb0cc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark
es/full/bugs-1
330466
ns/iter (± 17476
)355400
ns/iter (± 36968
)0.93
es/full/minify/libraries/antd
1778429726
ns/iter (± 25039169
)1811454597
ns/iter (± 38003432
)0.98
es/full/minify/libraries/d3
420899933
ns/iter (± 18968822
)393229153
ns/iter (± 15423522
)1.07
es/full/minify/libraries/echarts
1530756720
ns/iter (± 18502448
)1547064241
ns/iter (± 48450832
)0.99
es/full/minify/libraries/jquery
98248786
ns/iter (± 4281056
)102090045
ns/iter (± 2525431
)0.96
es/full/minify/libraries/lodash
132422486
ns/iter (± 10466979
)116027910
ns/iter (± 3111979
)1.14
es/full/minify/libraries/moment
62867333
ns/iter (± 2580900
)62199599
ns/iter (± 7207774
)1.01
es/full/minify/libraries/react
21230147
ns/iter (± 1218990
)21210005
ns/iter (± 813021
)1.00
es/full/minify/libraries/terser
282838156
ns/iter (± 11186122
)330256402
ns/iter (± 11377486
)0.86
es/full/minify/libraries/three
550146154
ns/iter (± 15057353
)580301508
ns/iter (± 25364145
)0.95
es/full/minify/libraries/typescript
3279492102
ns/iter (± 31170846
)3280295049
ns/iter (± 23532606
)1.00
es/full/minify/libraries/victory
783806163
ns/iter (± 14292383
)782087702
ns/iter (± 14015832
)1.00
es/full/minify/libraries/vue
149003863
ns/iter (± 5359185
)147424260
ns/iter (± 3849611
)1.01
es/full/codegen/es3
33125
ns/iter (± 971
)32822
ns/iter (± 2268
)1.01
es/full/codegen/es5
33080
ns/iter (± 1755
)32348
ns/iter (± 823
)1.02
es/full/codegen/es2015
32964
ns/iter (± 594
)32328
ns/iter (± 1239
)1.02
es/full/codegen/es2016
32867
ns/iter (± 1273
)32401
ns/iter (± 693
)1.01
es/full/codegen/es2017
33111
ns/iter (± 645
)32722
ns/iter (± 1368
)1.01
es/full/codegen/es2018
32936
ns/iter (± 1414
)32543
ns/iter (± 1411
)1.01
es/full/codegen/es2019
33512
ns/iter (± 1076
)32489
ns/iter (± 1972
)1.03
es/full/codegen/es2020
33538
ns/iter (± 1069
)32928
ns/iter (± 405
)1.02
es/full/all/es3
189430771
ns/iter (± 4845827
)189124039
ns/iter (± 4798009
)1.00
es/full/all/es5
180788323
ns/iter (± 5885743
)180291595
ns/iter (± 8839620
)1.00
es/full/all/es2015
145451221
ns/iter (± 4753537
)143373696
ns/iter (± 5764054
)1.01
es/full/all/es2016
142768655
ns/iter (± 3759121
)142534850
ns/iter (± 3827517
)1.00
es/full/all/es2017
141460070
ns/iter (± 4031847
)141811895
ns/iter (± 4774052
)1.00
es/full/all/es2018
138973019
ns/iter (± 3348169
)140683347
ns/iter (± 7212672
)0.99
es/full/all/es2019
140564007
ns/iter (± 7007476
)139783809
ns/iter (± 3691302
)1.01
es/full/all/es2020
134548355
ns/iter (± 5005863
)136331026
ns/iter (± 6546232
)0.99
es/full/parser
693512
ns/iter (± 24219
)694424
ns/iter (± 23902
)1.00
es/full/base/fixer
25647
ns/iter (± 714
)25860
ns/iter (± 531
)0.99
es/full/base/resolver_and_hygiene
89477
ns/iter (± 4516
)91362
ns/iter (± 3610
)0.98
serialization of ast node
214
ns/iter (± 3
)214
ns/iter (± 12
)1
serialization of serde
217
ns/iter (± 2
)217
ns/iter (± 4
)1
This comment was automatically generated by workflow using github-action-benchmark.