-
-
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): Don't create invalid property names (#7010)
- Loading branch information
1 parent
28ee1e0
commit bb2486c
Showing
4 changed files
with
85 additions
and
1 deletion.
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
46 changes: 46 additions & 0 deletions
46
crates/swc_ecma_minifier/tests/fixture/issues/7009/config.json
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,46 @@ | ||
{ | ||
"arguments": true, | ||
"arrows": true, | ||
"booleans": true, | ||
"booleans_as_integers": false, | ||
"collapse_vars": true, | ||
"comparisons": true, | ||
"computed_props": true, | ||
"conditionals": true, | ||
"dead_code": true, | ||
"directives": true, | ||
"drop_console": false, | ||
"drop_debugger": true, | ||
"evaluate": true, | ||
"expression": false, | ||
"hoist_funs": false, | ||
"hoist_props": true, | ||
"hoist_vars": false, | ||
"if_return": true, | ||
"join_vars": true, | ||
"keep_classnames": false, | ||
"keep_fargs": true, | ||
"keep_fnames": false, | ||
"keep_infinity": false, | ||
"loops": true, | ||
"negate_iife": true, | ||
"properties": true, | ||
"reduce_funcs": false, | ||
"reduce_vars": false, | ||
"side_effects": true, | ||
"switches": true, | ||
"typeofs": true, | ||
"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": true, | ||
"const_to_let": true, | ||
"pristine_globals": true | ||
} |
20 changes: 20 additions & 0 deletions
20
crates/swc_ecma_minifier/tests/fixture/issues/7009/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,20 @@ | ||
export const example1 = (param) => | ||
param => param["There is something wrong!"]; | ||
|
||
export const example2 = (param) => | ||
param => param["123 is fine"]; | ||
|
||
export const example3 = (param) => | ||
param => param["! That is fine !"]; | ||
|
||
export const example4 = (param) => | ||
param => param[" space in start works fine"]; | ||
|
||
export const example5 = (param) => | ||
param => param[123]; | ||
|
||
export class Foo extends Bar { | ||
foo() { | ||
super["a space b"](); | ||
} | ||
} |
10 changes: 10 additions & 0 deletions
10
crates/swc_ecma_minifier/tests/fixture/issues/7009/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,10 @@ | ||
export const example1 = (param)=>(param)=>param["There is something wrong!"]; | ||
export const example2 = (param)=>(param)=>param["123 is fine"]; | ||
export const example3 = (param)=>(param)=>param["! That is fine !"]; | ||
export const example4 = (param)=>(param)=>param[" space in start works fine"]; | ||
export const example5 = (param)=>(param)=>param[123]; | ||
export class Foo extends Bar { | ||
foo() { | ||
super["a space b"](); | ||
} | ||
} |
bb2486c
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
312837
ns/iter (± 18734
)323247
ns/iter (± 13490
)0.97
es/full/minify/libraries/antd
1784895320
ns/iter (± 33965472
)1870745596
ns/iter (± 24531993
)0.95
es/full/minify/libraries/d3
326213405
ns/iter (± 6309793
)347399605
ns/iter (± 4545707
)0.94
es/full/minify/libraries/echarts
1363344113
ns/iter (± 31656594
)1419258897
ns/iter (± 8022353
)0.96
es/full/minify/libraries/jquery
97976869
ns/iter (± 2977271
)100113421
ns/iter (± 2697464
)0.98
es/full/minify/libraries/lodash
112819611
ns/iter (± 2626682
)115005927
ns/iter (± 1223892
)0.98
es/full/minify/libraries/moment
55804747
ns/iter (± 1265407
)56851891
ns/iter (± 786501
)0.98
es/full/minify/libraries/react
20160313
ns/iter (± 401088
)20444960
ns/iter (± 140695
)0.99
es/full/minify/libraries/terser
262782627
ns/iter (± 11161932
)275773216
ns/iter (± 4132626
)0.95
es/full/minify/libraries/three
473490213
ns/iter (± 8228999
)511796938
ns/iter (± 9667460
)0.93
es/full/minify/libraries/typescript
3295695168
ns/iter (± 31372213
)3438046605
ns/iter (± 18729509
)0.96
es/full/minify/libraries/victory
710409839
ns/iter (± 20893514
)808182583
ns/iter (± 12695936
)0.88
es/full/minify/libraries/vue
134231341
ns/iter (± 1929872
)144350716
ns/iter (± 1607964
)0.93
es/full/codegen/es3
26542
ns/iter (± 30
)26218
ns/iter (± 87
)1.01
es/full/codegen/es5
26551
ns/iter (± 59
)26225
ns/iter (± 359
)1.01
es/full/codegen/es2015
26470
ns/iter (± 46
)26247
ns/iter (± 40
)1.01
es/full/codegen/es2016
26540
ns/iter (± 42
)26203
ns/iter (± 31
)1.01
es/full/codegen/es2017
26566
ns/iter (± 73
)26190
ns/iter (± 88
)1.01
es/full/codegen/es2018
26475
ns/iter (± 49
)26155
ns/iter (± 52
)1.01
es/full/codegen/es2019
26553
ns/iter (± 49
)26227
ns/iter (± 47
)1.01
es/full/codegen/es2020
26478
ns/iter (± 49
)26178
ns/iter (± 94
)1.01
es/full/all/es3
177024319
ns/iter (± 2008782
)168611584
ns/iter (± 3801871
)1.05
es/full/all/es5
168503257
ns/iter (± 3334603
)163064822
ns/iter (± 1933427
)1.03
es/full/all/es2015
132054805
ns/iter (± 1875265
)126998456
ns/iter (± 2537856
)1.04
es/full/all/es2016
131593227
ns/iter (± 1684583
)123250897
ns/iter (± 1368951
)1.07
es/full/all/es2017
127411089
ns/iter (± 1993917
)124733680
ns/iter (± 2046347
)1.02
es/full/all/es2018
125026315
ns/iter (± 1913835
)121164637
ns/iter (± 1282608
)1.03
es/full/all/es2019
126250854
ns/iter (± 2373171
)119260890
ns/iter (± 1471134
)1.06
es/full/all/es2020
120186771
ns/iter (± 1841783
)116607365
ns/iter (± 2118738
)1.03
es/full/parser
546531
ns/iter (± 8235
)532219
ns/iter (± 8524
)1.03
es/full/base/fixer
22029
ns/iter (± 31
)22186
ns/iter (± 161
)0.99
es/full/base/resolver_and_hygiene
82013
ns/iter (± 139
)81679
ns/iter (± 45
)1.00
serialization of ast node
125
ns/iter (± 0
)124
ns/iter (± 0
)1.01
serialization of serde
125
ns/iter (± 0
)124
ns/iter (± 0
)1.01
css/minify/libraries/bootstrap
28244895
ns/iter (± 71448
)29540822
ns/iter (± 374551
)0.96
css/visitor/compare/clone
2097745
ns/iter (± 19099
)2104276
ns/iter (± 14667
)1.00
css/visitor/compare/visit_mut_span
2272142
ns/iter (± 4509
)2297176
ns/iter (± 20932
)0.99
css/visitor/compare/visit_mut_span_panic
2324591
ns/iter (± 7152
)2333117
ns/iter (± 15702
)1.00
css/visitor/compare/fold_span
3050335
ns/iter (± 20539
)3037056
ns/iter (± 15601
)1.00
css/visitor/compare/fold_span_panic
3216472
ns/iter (± 26590
)3217333
ns/iter (± 30860
)1.00
css/lexer/bootstrap_5_1_3
5227430
ns/iter (± 4595
)5179218
ns/iter (± 30062
)1.01
css/lexer/foundation_6_7_4
4364059
ns/iter (± 2140
)4358375
ns/iter (± 1938
)1.00
css/lexer/tailwind_3_1_1
829869
ns/iter (± 309
)829718
ns/iter (± 494
)1.00
css/parser/bootstrap_5_1_3
21854989
ns/iter (± 317126
)22620515
ns/iter (± 53510
)0.97
css/parser/foundation_6_7_4
17466743
ns/iter (± 140276
)18039888
ns/iter (± 48639
)0.97
css/parser/tailwind_3_1_1
3334271
ns/iter (± 3136
)3322905
ns/iter (± 8097
)1.00
es/codegen/colors
330824
ns/iter (± 185376
)331147
ns/iter (± 184782
)1.00
es/codegen/large
1175114
ns/iter (± 592174
)1206909
ns/iter (± 608945
)0.97
es/codegen/with-parser/colors
48187
ns/iter (± 533
)47997
ns/iter (± 316
)1.00
es/codegen/with-parser/large
533959
ns/iter (± 5238
)528216
ns/iter (± 1895
)1.01
es/minify/libraries/antd
1555371304
ns/iter (± 22527562
)1637533874
ns/iter (± 9540850
)0.95
es/minify/libraries/d3
272912557
ns/iter (± 8386964
)291543084
ns/iter (± 3158373
)0.94
es/minify/libraries/echarts
1206733319
ns/iter (± 14438228
)1228390397
ns/iter (± 14327199
)0.98
es/minify/libraries/jquery
84174422
ns/iter (± 2891623
)85450284
ns/iter (± 655124
)0.99
es/minify/libraries/lodash
100012799
ns/iter (± 2177516
)103901126
ns/iter (± 1267061
)0.96
es/minify/libraries/moment
47606295
ns/iter (± 1188113
)48491170
ns/iter (± 330069
)0.98
es/minify/libraries/react
17815081
ns/iter (± 343114
)18032469
ns/iter (± 197019
)0.99
es/minify/libraries/terser
227972602
ns/iter (± 8229409
)249995441
ns/iter (± 4320741
)0.91
es/minify/libraries/three
390154633
ns/iter (± 10407897
)449505076
ns/iter (± 6946060
)0.87
es/minify/libraries/typescript
2803879620
ns/iter (± 28260943
)2949361408
ns/iter (± 23615708
)0.95
es/minify/libraries/victory
648734253
ns/iter (± 12215767
)689235634
ns/iter (± 6115665
)0.94
es/minify/libraries/vue
126699179
ns/iter (± 2820716
)128384238
ns/iter (± 2370415
)0.99
es/visitor/compare/clone
2398607
ns/iter (± 15764
)2426703
ns/iter (± 27515
)0.99
es/visitor/compare/visit_mut_span
2797332
ns/iter (± 13376
)2825840
ns/iter (± 16858
)0.99
es/visitor/compare/visit_mut_span_panic
2860052
ns/iter (± 52596
)2884596
ns/iter (± 28409
)0.99
es/visitor/compare/fold_span
3984766
ns/iter (± 32545
)4123226
ns/iter (± 30645
)0.97
es/visitor/compare/fold_span_panic
4114299
ns/iter (± 29437
)4190472
ns/iter (± 53786
)0.98
es/lexer/colors
16324
ns/iter (± 42
)16322
ns/iter (± 25
)1.00
es/lexer/angular
7865266
ns/iter (± 5715
)7851917
ns/iter (± 1793
)1.00
es/lexer/backbone
1009849
ns/iter (± 954
)1011843
ns/iter (± 691
)1.00
es/lexer/jquery
5621931
ns/iter (± 3461
)5615967
ns/iter (± 3759
)1.00
es/lexer/jquery mobile
8642471
ns/iter (± 19797
)8638358
ns/iter (± 8302
)1.00
es/lexer/mootools
4432416
ns/iter (± 3248
)4439090
ns/iter (± 2364
)1.00
es/lexer/underscore
844057
ns/iter (± 298
)845688
ns/iter (± 820
)1.00
es/lexer/three
26339412
ns/iter (± 24192
)26420963
ns/iter (± 14971
)1.00
es/lexer/yui
4835987
ns/iter (± 1126
)4830922
ns/iter (± 2710
)1.00
es/parser/colors
30069
ns/iter (± 38
)30150
ns/iter (± 110
)1.00
es/parser/angular
15996557
ns/iter (± 150511
)16828087
ns/iter (± 289340
)0.95
es/parser/backbone
2320645
ns/iter (± 11438
)2318460
ns/iter (± 14230
)1.00
es/parser/jquery
12694176
ns/iter (± 136940
)12870234
ns/iter (± 189890
)0.99
es/parser/jquery mobile
20602614
ns/iter (± 539515
)20709542
ns/iter (± 207768
)0.99
es/parser/mootools
9653273
ns/iter (± 62392
)9735203
ns/iter (± 167318
)0.99
es/parser/underscore
1967245
ns/iter (± 13407
)1959498
ns/iter (± 11218
)1.00
es/parser/three
60163549
ns/iter (± 318520
)61532138
ns/iter (± 210003
)0.98
es/parser/yui
9642914
ns/iter (± 61778
)9913635
ns/iter (± 147929
)0.97
es/preset-env/usage/builtin_type
140510
ns/iter (± 31402
)140334
ns/iter (± 31360
)1.00
es/preset-env/usage/property
21098
ns/iter (± 109
)21245
ns/iter (± 84
)0.99
es/resolver/typescript
125105385
ns/iter (± 1944771
)125740581
ns/iter (± 2327154
)0.99
es/fixer/typescript
96037930
ns/iter (± 1123787
)99625298
ns/iter (± 1066540
)0.96
es/hygiene/typescript
209964463
ns/iter (± 3548449
)219518248
ns/iter (± 1427454
)0.96
es/resolver_with_hygiene/typescript
352892592
ns/iter (± 4250749
)371512638
ns/iter (± 3535832
)0.95
es/visitor/base-perf/module_clone
75779
ns/iter (± 1781
)76361
ns/iter (± 2013
)0.99
es/visitor/base-perf/fold_empty
86507
ns/iter (± 1332
)85795
ns/iter (± 1063
)1.01
es/visitor/base-perf/fold_noop_impl_all
86680
ns/iter (± 2045
)85418
ns/iter (± 1609
)1.01
es/visitor/base-perf/fold_noop_impl_vec
86965
ns/iter (± 1903
)85890
ns/iter (± 1665
)1.01
es/visitor/base-perf/boxing_boxed_clone
56
ns/iter (± 0
)57
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed_clone
59
ns/iter (± 0
)59
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
103
ns/iter (± 0
)103
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed
102
ns/iter (± 0
)103
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_contains_this
3451
ns/iter (± 89
)3422
ns/iter (± 77
)1.01
es/base/parallel/resolver/typescript
5072750937
ns/iter (± 457646295
)5422421996
ns/iter (± 533306563
)0.94
es/base/parallel/hygiene/typescript
2422006922
ns/iter (± 28743698
)2452145289
ns/iter (± 15920037
)0.99
misc/visitors/time-complexity/time 5
100
ns/iter (± 0
)100
ns/iter (± 2
)1
misc/visitors/time-complexity/time 10
331
ns/iter (± 3
)338
ns/iter (± 1
)0.98
misc/visitors/time-complexity/time 15
657
ns/iter (± 0
)665
ns/iter (± 8
)0.99
misc/visitors/time-complexity/time 20
1216
ns/iter (± 0
)1215
ns/iter (± 0
)1.00
misc/visitors/time-complexity/time 40
6196
ns/iter (± 3
)6192
ns/iter (± 2
)1.00
misc/visitors/time-complexity/time 60
15571
ns/iter (± 12
)15562
ns/iter (± 1
)1.00
es/full-target/es2016
187629
ns/iter (± 797
)188560
ns/iter (± 487
)1.00
es/full-target/es2017
182432
ns/iter (± 565
)183208
ns/iter (± 526
)1.00
es/full-target/es2018
171763
ns/iter (± 532
)171859
ns/iter (± 381
)1.00
es2020_nullish_coalescing
66994
ns/iter (± 116
)67492
ns/iter (± 239
)0.99
es2020_optional_chaining
96600
ns/iter (± 1086
)96285
ns/iter (± 5859
)1.00
es2022_class_properties
94363
ns/iter (± 154
)94890
ns/iter (± 119
)0.99
es2018_object_rest_spread
71387
ns/iter (± 189
)72149
ns/iter (± 123
)0.99
es2019_optional_catch_binding
61217
ns/iter (± 79
)61805
ns/iter (± 167
)0.99
es2017_async_to_generator
61800
ns/iter (± 118
)62387
ns/iter (± 149
)0.99
es2016_exponentiation
65626
ns/iter (± 147
)66141
ns/iter (± 139
)0.99
es2015_arrow
70453
ns/iter (± 263
)71275
ns/iter (± 132
)0.99
es2015_block_scoped_fn
66353
ns/iter (± 155
)67521
ns/iter (± 195
)0.98
es2015_block_scoping
159833
ns/iter (± 6401
)139624
ns/iter (± 9121
)1.14
es2015_classes
117213
ns/iter (± 517
)117628
ns/iter (± 528
)1.00
es2015_computed_props
61166
ns/iter (± 120
)62018
ns/iter (± 146
)0.99
es2015_destructuring
117752
ns/iter (± 211
)118039
ns/iter (± 227
)1.00
es2015_duplicate_keys
63883
ns/iter (± 84
)64469
ns/iter (± 165
)0.99
es2015_parameters
79539
ns/iter (± 207
)80722
ns/iter (± 239
)0.99
es2015_fn_name
66592
ns/iter (± 397
)67946
ns/iter (± 645
)0.98
es2015_for_of
64151
ns/iter (± 67
)65254
ns/iter (± 132
)0.98
es2015_instanceof
63371
ns/iter (± 85
)64019
ns/iter (± 113
)0.99
es2015_shorthand_property
61076
ns/iter (± 67
)61564
ns/iter (± 106
)0.99
es2015_spread
60979
ns/iter (± 83
)61768
ns/iter (± 118
)0.99
es2015_sticky_regex
62213
ns/iter (± 63
)62908
ns/iter (± 160
)0.99
es2015_typeof_symbol
62437
ns/iter (± 124
)63353
ns/iter (± 109
)0.99
es/transform/baseline/base
51777
ns/iter (± 72
)52433
ns/iter (± 123
)0.99
es/transform/baseline/common_reserved_word
62554
ns/iter (± 104
)63212
ns/iter (± 96
)0.99
es/transform/baseline/common_typescript
141658
ns/iter (± 3928
)168047
ns/iter (± 1714
)0.84
es/target/es3
170788
ns/iter (± 392
)171820
ns/iter (± 212
)0.99
es/target/es2015
632648
ns/iter (± 1268
)634474
ns/iter (± 1967
)1.00
es/target/es2016
65441
ns/iter (± 109
)65999
ns/iter (± 86
)0.99
es/target/es2017
61690
ns/iter (± 103
)62444
ns/iter (± 103
)0.99
es/target/es2018
81298
ns/iter (± 121
)82038
ns/iter (± 85
)0.99
es/target/es2020
132849
ns/iter (± 252
)133455
ns/iter (± 304
)1.00
babelify-only
679250
ns/iter (± 1630
)671037
ns/iter (± 1535
)1.01
parse_and_babelify_angular
49261102
ns/iter (± 946448
)49582976
ns/iter (± 1635602
)0.99
parse_and_babelify_backbone
5826357
ns/iter (± 168108
)5948836
ns/iter (± 144351
)0.98
parse_and_babelify_jquery
36605700
ns/iter (± 1413531
)36693704
ns/iter (± 749833
)1.00
parse_and_babelify_jquery_mobile
60456303
ns/iter (± 1676943
)62258216
ns/iter (± 289232
)0.97
parse_and_babelify_mootools
37365353
ns/iter (± 1120661
)38347969
ns/iter (± 361213
)0.97
parse_and_babelify_underscore
4626119
ns/iter (± 143752
)4484115
ns/iter (± 58462
)1.03
parse_and_babelify_yui
37756159
ns/iter (± 1475286
)37653016
ns/iter (± 945563
)1.00
html/minify/document/css_spec
43199171
ns/iter (± 562376
)45601452
ns/iter (± 468308
)0.95
html/minify/document/github
17799723
ns/iter (± 78362
)18323834
ns/iter (± 68109
)0.97
html/minify/document/stackoverflow
15891529
ns/iter (± 83803
)16575737
ns/iter (± 35890
)0.96
html/minify/document_fragment/css_spec
41660647
ns/iter (± 458124
)43314479
ns/iter (± 233215
)0.96
html/minify/document_fragment/github
17095102
ns/iter (± 43411
)17253384
ns/iter (± 52771
)0.99
html/minify/document_fragment/stackoverflow
15599151
ns/iter (± 117008
)15743729
ns/iter (± 104239
)0.99
html/document/visitor/compare/clone
346603
ns/iter (± 1901
)346497
ns/iter (± 1757
)1.00
html/document/visitor/compare/visit_mut_span
372357
ns/iter (± 1867
)372838
ns/iter (± 2216
)1.00
html/document/visitor/compare/visit_mut_span_panic
382476
ns/iter (± 2151
)383156
ns/iter (± 1424
)1.00
html/document/visitor/compare/fold_span
412029
ns/iter (± 1876
)412387
ns/iter (± 1726
)1.00
html/document/visitor/compare/fold_span_panic
466522
ns/iter (± 1715
)468560
ns/iter (± 1872
)1.00
html/document_fragment/visitor/compare/clone
342587
ns/iter (± 2082
)340007
ns/iter (± 2161
)1.01
html/document_fragment/visitor/compare/visit_mut_span
369776
ns/iter (± 2483
)372055
ns/iter (± 2116
)0.99
html/document_fragment/visitor/compare/visit_mut_span_panic
377332
ns/iter (± 1944
)378863
ns/iter (± 2181
)1.00
html/document_fragment/visitor/compare/fold_span
408840
ns/iter (± 1884
)412007
ns/iter (± 2483
)0.99
html/document_fragment/visitor/compare/fold_span_panic
467560
ns/iter (± 2727
)463616
ns/iter (± 2177
)1.01
html/lexer/css_2021_spec
15661647
ns/iter (± 9749
)15546871
ns/iter (± 75200
)1.01
html/lexer/github_com_17_05_2022
6076133
ns/iter (± 4770
)6047839
ns/iter (± 3106
)1.00
html/lexer/stackoverflow_com_17_05_2022
5683758
ns/iter (± 2261
)5640584
ns/iter (± 2790
)1.01
html/parser/parser_document/css_2021_spec
26197607
ns/iter (± 268430
)27705120
ns/iter (± 79346
)0.95
html/parser/parser_document/github_com_17_05_2022
8791746
ns/iter (± 8149
)8819761
ns/iter (± 9962
)1.00
html/parser/parser_document/stackoverflow_com_17_05_2022
7731965
ns/iter (± 4954
)7746002
ns/iter (± 7273
)1.00
html/parser/parser_document_fragment/css_2021_spec
26676209
ns/iter (± 121217
)28188449
ns/iter (± 148536
)0.95
html/parser/parser_document_fragment/github_com_17_05_2022
8813583
ns/iter (± 11350
)8850264
ns/iter (± 24319
)1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7730436
ns/iter (± 7424
)7774892
ns/iter (± 8910
)0.99
This comment was automatically generated by workflow using github-action-benchmark.