-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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): Report
is_fn_local
even if var is hoisted (#7876)
**Related issue:** - Closes #7847
- Loading branch information
Showing
4 changed files
with
32 additions
and
2 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
17 changes: 17 additions & 0 deletions
17
crates/swc_ecma_minifier/tests/fixture/issues/7847/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,17 @@ | ||
function requireState() { | ||
if (hasRequiredState) return state; | ||
hasRequiredState = 1; | ||
return state = { | ||
getHighWaterMark: function(o) { | ||
return o.objectMode ? 16 : 16384; | ||
} | ||
}; | ||
} | ||
if (g()) { | ||
var state, hasRequiredState; | ||
const a = requireState() | ||
console.log(a.getHighWaterMark()) | ||
|
||
const b = requireState() | ||
console.log(b.getHighWaterMark()) | ||
} |
14 changes: 14 additions & 0 deletions
14
crates/swc_ecma_minifier/tests/fixture/issues/7847/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,14 @@ | ||
function requireState() { | ||
return hasRequiredState ? state : (hasRequiredState = 1, state = { | ||
getHighWaterMark: function(o) { | ||
return o.objectMode ? 16 : 16384; | ||
} | ||
}); | ||
} | ||
if (g()) { | ||
var state, hasRequiredState; | ||
const a = requireState(); | ||
console.log(a.getHighWaterMark()); | ||
const b = requireState(); | ||
console.log(b.getHighWaterMark()); | ||
} |
87a47bf
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
280521
ns/iter (± 10904
)284121
ns/iter (± 7856
)0.99
es/full/minify/libraries/antd
1382944484
ns/iter (± 20127286
)1340191977
ns/iter (± 9309604
)1.03
es/full/minify/libraries/d3
281325827
ns/iter (± 5135455
)282717171
ns/iter (± 3731227
)1.00
es/full/minify/libraries/echarts
1111263229
ns/iter (± 5073030
)1094872664
ns/iter (± 21300696
)1.01
es/full/minify/libraries/jquery
85189053
ns/iter (± 112995
)84068208
ns/iter (± 259870
)1.01
es/full/minify/libraries/lodash
98208874
ns/iter (± 276555
)97606336
ns/iter (± 342719
)1.01
es/full/minify/libraries/moment
50316784
ns/iter (± 614603
)49839576
ns/iter (± 218339
)1.01
es/full/minify/libraries/react
18099921
ns/iter (± 47432
)18142544
ns/iter (± 156850
)1.00
es/full/minify/libraries/terser
227345972
ns/iter (± 3333644
)224190702
ns/iter (± 4666589
)1.01
es/full/minify/libraries/three
402114353
ns/iter (± 1740664
)405068954
ns/iter (± 14221761
)0.99
es/full/minify/libraries/typescript
2730144519
ns/iter (± 11465944
)2740477063
ns/iter (± 43451146
)1.00
es/full/minify/libraries/victory
594376189
ns/iter (± 5982262
)611895605
ns/iter (± 11843132
)0.97
es/full/minify/libraries/vue
121704355
ns/iter (± 690087
)124675747
ns/iter (± 1886866
)0.98
es/full/codegen/es3
34347
ns/iter (± 103
)35312
ns/iter (± 61
)0.97
es/full/codegen/es5
34423
ns/iter (± 80
)35310
ns/iter (± 195
)0.97
es/full/codegen/es2015
34499
ns/iter (± 44
)35318
ns/iter (± 80
)0.98
es/full/codegen/es2016
34461
ns/iter (± 84
)35315
ns/iter (± 108
)0.98
es/full/codegen/es2017
34445
ns/iter (± 58
)35331
ns/iter (± 309
)0.97
es/full/codegen/es2018
34510
ns/iter (± 402
)35350
ns/iter (± 62
)0.98
es/full/codegen/es2019
34504
ns/iter (± 114
)35256
ns/iter (± 45
)0.98
es/full/codegen/es2020
34469
ns/iter (± 63
)35293
ns/iter (± 98
)0.98
es/full/all/es3
167167498
ns/iter (± 1037949
)171500106
ns/iter (± 1327009
)0.97
es/full/all/es5
160012929
ns/iter (± 1222452
)162370254
ns/iter (± 1168677
)0.99
es/full/all/es2015
120092080
ns/iter (± 868763
)120994136
ns/iter (± 606286
)0.99
es/full/all/es2016
119294778
ns/iter (± 726228
)120577779
ns/iter (± 568005
)0.99
es/full/all/es2017
118098725
ns/iter (± 1714645
)120049998
ns/iter (± 627620
)0.98
es/full/all/es2018
116254671
ns/iter (± 701768
)117723480
ns/iter (± 827805
)0.99
es/full/all/es2019
115590517
ns/iter (± 680237
)116768165
ns/iter (± 308619
)0.99
es/full/all/es2020
111833069
ns/iter (± 512645
)112169735
ns/iter (± 543188
)1.00
es/full/parser
490341
ns/iter (± 8169
)493071
ns/iter (± 5532
)0.99
es/full/base/fixer
18673
ns/iter (± 75
)17402
ns/iter (± 102
)1.07
es/full/base/resolver_and_hygiene
80660
ns/iter (± 203
)79774
ns/iter (± 212
)1.01
serialization of serde
290
ns/iter (± 0
)291
ns/iter (± 3
)1.00
css/minify/libraries/bootstrap
29135902
ns/iter (± 115956
)29229806
ns/iter (± 194376
)1.00
css/visitor/compare/clone
1625122
ns/iter (± 9706
)1653504
ns/iter (± 20340
)0.98
css/visitor/compare/visit_mut_span
1771745
ns/iter (± 6772
)1783900
ns/iter (± 15756
)0.99
css/visitor/compare/visit_mut_span_panic
1837496
ns/iter (± 2975
)1859793
ns/iter (± 7127
)0.99
css/visitor/compare/fold_span
2557131
ns/iter (± 10836
)2599967
ns/iter (± 25261
)0.98
css/visitor/compare/fold_span_panic
2755292
ns/iter (± 10000
)2786982
ns/iter (± 17764
)0.99
css/lexer/bootstrap_5_1_3
4426982
ns/iter (± 4789
)4506390
ns/iter (± 19663
)0.98
css/lexer/foundation_6_7_4
3731947
ns/iter (± 4766
)3787057
ns/iter (± 6347
)0.99
css/lexer/tailwind_3_1_1
711082
ns/iter (± 1036
)721350
ns/iter (± 2289
)0.99
css/parser/bootstrap_5_1_3
20409509
ns/iter (± 262150
)19997067
ns/iter (± 85460
)1.02
css/parser/foundation_6_7_4
16413296
ns/iter (± 131352
)16224174
ns/iter (± 191854
)1.01
css/parser/tailwind_3_1_1
3089095
ns/iter (± 21233
)3081842
ns/iter (± 5007
)1.00
es/codegen/colors
738218
ns/iter (± 403264
)728150
ns/iter (± 396422
)1.01
es/codegen/large
2891692
ns/iter (± 1524442
)2905229
ns/iter (± 1531182
)1.00
es/codegen/with-parser/colors
45725
ns/iter (± 208
)45721
ns/iter (± 266
)1.00
es/codegen/with-parser/large
492998
ns/iter (± 1033
)496069
ns/iter (± 869
)0.99
es/minify/libraries/antd
1200020091
ns/iter (± 13757323
)1223766934
ns/iter (± 22033676
)0.98
es/minify/libraries/d3
249318977
ns/iter (± 1095101
)248912815
ns/iter (± 2695670
)1.00
es/minify/libraries/echarts
955129921
ns/iter (± 9018481
)985014493
ns/iter (± 15103597
)0.97
es/minify/libraries/jquery
75261126
ns/iter (± 1530348
)74863426
ns/iter (± 834606
)1.01
es/minify/libraries/lodash
88186126
ns/iter (± 361152
)88711143
ns/iter (± 491604
)0.99
es/minify/libraries/moment
43900581
ns/iter (± 169257
)43794265
ns/iter (± 231441
)1.00
es/minify/libraries/react
16040473
ns/iter (± 41515
)16092557
ns/iter (± 80998
)1.00
es/minify/libraries/terser
192154564
ns/iter (± 1095882
)201349726
ns/iter (± 3856912
)0.95
es/minify/libraries/three
341319139
ns/iter (± 4729274
)351561037
ns/iter (± 8129563
)0.97
es/minify/libraries/typescript
2329003528
ns/iter (± 10954881
)2363755528
ns/iter (± 32424499
)0.99
es/minify/libraries/victory
508428005
ns/iter (± 4815178
)516568759
ns/iter (± 12548699
)0.98
es/minify/libraries/vue
107932717
ns/iter (± 371580
)107919787
ns/iter (± 719030
)1.00
es/visitor/compare/clone
1953714
ns/iter (± 6356
)1983964
ns/iter (± 5317
)0.98
es/visitor/compare/visit_mut_span
2268606
ns/iter (± 7129
)2302585
ns/iter (± 4976
)0.99
es/visitor/compare/visit_mut_span_panic
2369556
ns/iter (± 31026
)2369577
ns/iter (± 8847
)1.00
es/visitor/compare/fold_span
3349757
ns/iter (± 8013
)3390620
ns/iter (± 8381
)0.99
es/visitor/compare/fold_span_panic
3486669
ns/iter (± 15477
)3518725
ns/iter (± 10206
)0.99
es/lexer/colors
13328
ns/iter (± 33
)12992
ns/iter (± 115
)1.03
es/lexer/angular
6242383
ns/iter (± 27753
)6045234
ns/iter (± 5633
)1.03
es/lexer/backbone
804285
ns/iter (± 1784
)779178
ns/iter (± 1193
)1.03
es/lexer/jquery
4559541
ns/iter (± 11640
)4429120
ns/iter (± 42578
)1.03
es/lexer/jquery mobile
6940348
ns/iter (± 35264
)6795063
ns/iter (± 7989
)1.02
es/lexer/mootools
3620990
ns/iter (± 6232
)3548046
ns/iter (± 2669
)1.02
es/lexer/underscore
675145
ns/iter (± 1789
)657141
ns/iter (± 841
)1.03
es/lexer/three
21829662
ns/iter (± 42205
)21350964
ns/iter (± 42271
)1.02
es/lexer/yui
3852306
ns/iter (± 16663
)3811699
ns/iter (± 9301
)1.01
es/parser/colors
27847
ns/iter (± 46
)27299
ns/iter (± 142
)1.02
es/parser/angular
13634469
ns/iter (± 105998
)13589859
ns/iter (± 81351
)1.00
es/parser/backbone
2007280
ns/iter (± 9909
)2002679
ns/iter (± 10500
)1.00
es/parser/jquery
11142801
ns/iter (± 353624
)10938710
ns/iter (± 47346
)1.02
es/parser/jquery mobile
17006485
ns/iter (± 270654
)16821974
ns/iter (± 63592
)1.01
es/parser/mootools
8436700
ns/iter (± 25341
)8379139
ns/iter (± 20713
)1.01
es/parser/underscore
1729750
ns/iter (± 7171
)1725067
ns/iter (± 10247
)1.00
es/parser/three
49364786
ns/iter (± 615553
)47668735
ns/iter (± 434397
)1.04
es/parser/yui
8347804
ns/iter (± 53548
)8343221
ns/iter (± 43015
)1.00
es/preset-env/usage/builtin_type
136089
ns/iter (± 31312
)137796
ns/iter (± 33128
)0.99
es/preset-env/usage/property
16861
ns/iter (± 99
)16977
ns/iter (± 50
)0.99
es/resolver/typescript
91495511
ns/iter (± 945779
)91735087
ns/iter (± 923034
)1.00
es/fixer/typescript
64837023
ns/iter (± 613701
)66238379
ns/iter (± 422374
)0.98
es/hygiene/typescript
135073345
ns/iter (± 2539023
)134731392
ns/iter (± 930923
)1.00
es/resolver_with_hygiene/typescript
252514105
ns/iter (± 6558708
)256345299
ns/iter (± 4165891
)0.99
es/visitor/base-perf/module_clone
59765
ns/iter (± 316
)59569
ns/iter (± 279
)1.00
es/visitor/base-perf/fold_empty
63796
ns/iter (± 318
)63411
ns/iter (± 325
)1.01
es/visitor/base-perf/fold_noop_impl_all
64006
ns/iter (± 303
)63231
ns/iter (± 226
)1.01
es/visitor/base-perf/fold_noop_impl_vec
63982
ns/iter (± 273
)63544
ns/iter (± 232
)1.01
es/visitor/base-perf/boxing_boxed_clone
57
ns/iter (± 0
)56
ns/iter (± 0
)1.02
es/visitor/base-perf/boxing_unboxed_clone
40
ns/iter (± 0
)41
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_boxed
106
ns/iter (± 0
)110
ns/iter (± 0
)0.96
es/visitor/base-perf/boxing_unboxed
75
ns/iter (± 0
)79
ns/iter (± 0
)0.95
es/visitor/base-perf/visit_empty
0
ns/iter (± 0
)0
ns/iter (± 0
)NaN
es/visitor/base-perf/visit_contains_this
2619
ns/iter (± 9
)2627
ns/iter (± 13
)1.00
es/base/parallel/resolver/typescript
4264623762
ns/iter (± 196636226
)3808827405
ns/iter (± 270193472
)1.12
es/base/parallel/hygiene/typescript
1480415768
ns/iter (± 17911964
)1471037004
ns/iter (± 6661214
)1.01
misc/visitors/time-complexity/time 5
121
ns/iter (± 0
)138
ns/iter (± 1
)0.88
misc/visitors/time-complexity/time 10
391
ns/iter (± 2
)390
ns/iter (± 6
)1.00
misc/visitors/time-complexity/time 15
719
ns/iter (± 2
)715
ns/iter (± 19
)1.01
misc/visitors/time-complexity/time 20
1087
ns/iter (± 12
)1129
ns/iter (± 23
)0.96
misc/visitors/time-complexity/time 40
3644
ns/iter (± 20
)3661
ns/iter (± 30
)1.00
misc/visitors/time-complexity/time 60
7419
ns/iter (± 28
)7381
ns/iter (± 26
)1.01
es/full-target/es2016
231258
ns/iter (± 1697
)234873
ns/iter (± 447
)0.98
es/full-target/es2017
221642
ns/iter (± 1141
)227996
ns/iter (± 650
)0.97
es/full-target/es2018
209115
ns/iter (± 613
)213579
ns/iter (± 399
)0.98
es2020_nullish_coalescing
72155
ns/iter (± 355
)70898
ns/iter (± 343
)1.02
es2020_optional_chaining
79922
ns/iter (± 511
)81692
ns/iter (± 327
)0.98
es2022_class_properties
115279
ns/iter (± 1919
)117431
ns/iter (± 339
)0.98
es2018_object_rest_spread
76298
ns/iter (± 674
)75209
ns/iter (± 184
)1.01
es2019_optional_catch_binding
63810
ns/iter (± 339
)65363
ns/iter (± 331
)0.98
es2017_async_to_generator
64141
ns/iter (± 261
)63005
ns/iter (± 180
)1.02
es2016_exponentiation
67937
ns/iter (± 331
)66391
ns/iter (± 217
)1.02
es2015_arrow
70628
ns/iter (± 205
)73176
ns/iter (± 220
)0.97
es2015_block_scoped_fn
67454
ns/iter (± 859
)69602
ns/iter (± 225
)0.97
es2015_block_scoping
121047
ns/iter (± 421
)124917
ns/iter (± 356
)0.97
This comment was automatically generated by workflow using github-action-benchmark.