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): Preserve
this
in more cases (#6226)
**Related issue (if exists):** - Closes #6175. - Closes #6137. Co-authored-by: Justin Ridgewell <justin@ridgewell.name>
- Loading branch information
1 parent
fefbd0f
commit e9d421b
Showing
5 changed files
with
47 additions
and
5 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
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
11 changes: 11 additions & 0 deletions
11
crates/swc_ecma_minifier/tests/fixture/issues/6175/1/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,11 @@ | ||
let o = { | ||
f() { | ||
assert.ok(this !== o); | ||
} | ||
}; | ||
(1, o.f)``; | ||
(true ? o.f : false)``; | ||
(true && o.f)``; | ||
|
||
let a; | ||
(a = o.f)``; |
6 changes: 6 additions & 0 deletions
6
crates/swc_ecma_minifier/tests/fixture/issues/6175/1/output.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,6 @@ | ||
let o = { | ||
f () { | ||
assert.ok(this !== o); | ||
} | ||
}; | ||
(0, o.f)``, (0, o.f)``, (0, o.f)``, (0, o.f)``; |
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
e9d421b
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
352728
ns/iter (± 16461
)433925
ns/iter (± 38854
)0.81
es/full/minify/libraries/antd
1876121238
ns/iter (± 93998476
)2900162799
ns/iter (± 357856406
)0.65
es/full/minify/libraries/d3
445690106
ns/iter (± 27738608
)610340593
ns/iter (± 106665463
)0.73
es/full/minify/libraries/echarts
1594371426
ns/iter (± 39370578
)1851163897
ns/iter (± 124920337
)0.86
es/full/minify/libraries/jquery
109874804
ns/iter (± 7379159
)115024018
ns/iter (± 6847072
)0.96
es/full/minify/libraries/lodash
128895187
ns/iter (± 9028078
)140669572
ns/iter (± 16482145
)0.92
es/full/minify/libraries/moment
68306559
ns/iter (± 21662268
)65390387
ns/iter (± 3743164
)1.04
es/full/minify/libraries/react
20977761
ns/iter (± 1439685
)25299342
ns/iter (± 2628572
)0.83
es/full/minify/libraries/terser
307325056
ns/iter (± 18334503
)353976016
ns/iter (± 20066380
)0.87
es/full/minify/libraries/three
579597432
ns/iter (± 86831830
)613540580
ns/iter (± 44793577
)0.94
es/full/minify/libraries/typescript
3726982724
ns/iter (± 424264117
)4004659232
ns/iter (± 152887625
)0.93
es/full/minify/libraries/victory
839567529
ns/iter (± 42528527
)918133987
ns/iter (± 33881405
)0.91
es/full/minify/libraries/vue
178545541
ns/iter (± 7709082
)195697752
ns/iter (± 8747150
)0.91
es/full/codegen/es3
33208
ns/iter (± 319
)37465
ns/iter (± 4336
)0.89
es/full/codegen/es5
33076
ns/iter (± 762
)37043
ns/iter (± 4160
)0.89
es/full/codegen/es2015
33244
ns/iter (± 741
)37035
ns/iter (± 3058
)0.90
es/full/codegen/es2016
33257
ns/iter (± 1193
)36505
ns/iter (± 3931
)0.91
es/full/codegen/es2017
33142
ns/iter (± 313
)35917
ns/iter (± 2605
)0.92
es/full/codegen/es2018
33211
ns/iter (± 829
)36440
ns/iter (± 6533
)0.91
es/full/codegen/es2019
33267
ns/iter (± 978
)36560
ns/iter (± 3160
)0.91
es/full/codegen/es2020
33403
ns/iter (± 1144
)35733
ns/iter (± 5351
)0.93
es/full/all/es3
207342424
ns/iter (± 19351195
)237253394
ns/iter (± 343091007
)0.87
es/full/all/es5
186954468
ns/iter (± 11101064
)221275023
ns/iter (± 223437294
)0.84
es/full/all/es2015
144819831
ns/iter (± 7179057
)183971269
ns/iter (± 2002816904
)0.79
es/full/all/es2016
143267185
ns/iter (± 6264083
)224500350
ns/iter (± 357848316
)0.64
es/full/all/es2017
142216613
ns/iter (± 7793784
)217189224
ns/iter (± 28406458
)0.65
es/full/all/es2018
143954849
ns/iter (± 9959615
)205483375
ns/iter (± 436891866
)0.70
es/full/all/es2019
146541444
ns/iter (± 12200107
)198906303
ns/iter (± 384642806
)0.74
es/full/all/es2020
147261279
ns/iter (± 14146789
)175947456
ns/iter (± 22220554
)0.84
es/full/parser
716481
ns/iter (± 136439
)795402
ns/iter (± 130039
)0.90
es/full/base/fixer
26046
ns/iter (± 1040
)27192
ns/iter (± 3698
)0.96
es/full/base/resolver_and_hygiene
90465
ns/iter (± 4402
)99277
ns/iter (± 16008
)0.91
serialization of ast node
215
ns/iter (± 6
)256
ns/iter (± 59
)0.84
serialization of serde
219
ns/iter (± 2
)233
ns/iter (± 941
)0.94
This comment was automatically generated by workflow using github-action-benchmark.