Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(es/codegen): Don't print trailing coma for a rest argument (#6610)
**Related issue:** - Closes #6589.
- Loading branch information
1 parent
fc21895
commit 68d76af
Showing
6 changed files
with
68 additions
and
12 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
14 changes: 14 additions & 0 deletions
14
crates/swc_ecma_codegen/tests/fixture/issue-6589/js/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 @@ | ||
export function func({a, b, ...rest}) { | ||
console.log(a,b, rest) | ||
} | ||
|
||
const other = { unknow: "foo" } | ||
|
||
let foo = { | ||
...other, | ||
bar: "baz" | ||
}; | ||
let bar = { | ||
bar: "baz", | ||
...other | ||
}; |
14 changes: 14 additions & 0 deletions
14
crates/swc_ecma_codegen/tests/fixture/issue-6589/js/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 @@ | ||
export function func({ a , b , ...rest }) { | ||
console.log(a, b, rest); | ||
} | ||
const other = { | ||
unknow: "foo" | ||
}; | ||
let foo = { | ||
...other, | ||
bar: "baz" | ||
}; | ||
let bar = { | ||
bar: "baz", | ||
...other | ||
}; |
1 change: 1 addition & 0 deletions
1
crates/swc_ecma_codegen/tests/fixture/issue-6589/js/output.min.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 @@ | ||
export function func({a,b,...rest}){console.log(a,b,rest)}const other={unknow:"foo"};let foo={...other,bar:"baz"};let bar={bar:"baz",...other}; |
21 changes: 21 additions & 0 deletions
21
crates/swc_ecma_codegen/tests/fixture/issue-6589/ts/input.ts
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,21 @@ | ||
export function func({ | ||
a, | ||
b, | ||
...rest | ||
}: { | ||
a: string, | ||
b: string, | ||
}) { | ||
console.log(a,b, rest) | ||
} | ||
|
||
const other = { unknow: "foo" } | ||
|
||
let foo = { | ||
...other, | ||
bar: "baz" | ||
}; | ||
let bar = { | ||
bar: "baz", | ||
...other | ||
}; |
17 changes: 17 additions & 0 deletions
17
crates/swc_ecma_codegen/tests/fixture/issue-6589/ts/output.ts
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 @@ | ||
export function func({ a , b , ...rest }: { | ||
a: string; | ||
b: string; | ||
}) { | ||
console.log(a, b, rest); | ||
} | ||
const other = { | ||
unknow: "foo" | ||
}; | ||
let foo = { | ||
...other, | ||
bar: "baz" | ||
}; | ||
let bar = { | ||
bar: "baz", | ||
...other | ||
}; |
68d76af
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
309500
ns/iter (± 8890
)299750
ns/iter (± 12569
)1.03
es/full/minify/libraries/antd
1785622375
ns/iter (± 19421733
)1655797100
ns/iter (± 21058812
)1.08
es/full/minify/libraries/d3
363193293
ns/iter (± 4015670
)350193720
ns/iter (± 4295993
)1.04
es/full/minify/libraries/echarts
1499831082
ns/iter (± 13802456
)1423267861
ns/iter (± 15508396
)1.05
es/full/minify/libraries/jquery
101008667
ns/iter (± 4769217
)94485374
ns/iter (± 1514669
)1.07
es/full/minify/libraries/lodash
117633045
ns/iter (± 2586140
)113153583
ns/iter (± 1771164
)1.04
es/full/minify/libraries/moment
54831554
ns/iter (± 418798
)54493292
ns/iter (± 1011220
)1.01
es/full/minify/libraries/react
21026877
ns/iter (± 439541
)19764963
ns/iter (± 189262
)1.06
es/full/minify/libraries/terser
301450703
ns/iter (± 7505848
)264571326
ns/iter (± 6228607
)1.14
es/full/minify/libraries/three
541583696
ns/iter (± 18196176
)491042786
ns/iter (± 8858485
)1.10
es/full/minify/libraries/typescript
3375349541
ns/iter (± 29193818
)3174248560
ns/iter (± 21727834
)1.06
es/full/minify/libraries/victory
787946662
ns/iter (± 12073245
)706279499
ns/iter (± 11058687
)1.12
es/full/minify/libraries/vue
141104448
ns/iter (± 2583404
)138482946
ns/iter (± 1784285
)1.02
es/full/codegen/es3
28072
ns/iter (± 30
)27952
ns/iter (± 64
)1.00
es/full/codegen/es5
28052
ns/iter (± 36
)27955
ns/iter (± 20
)1.00
es/full/codegen/es2015
28064
ns/iter (± 35
)27953
ns/iter (± 53
)1.00
es/full/codegen/es2016
27992
ns/iter (± 74
)27940
ns/iter (± 88
)1.00
es/full/codegen/es2017
28053
ns/iter (± 59
)27964
ns/iter (± 55
)1.00
es/full/codegen/es2018
28050
ns/iter (± 30
)28070
ns/iter (± 46
)1.00
es/full/codegen/es2019
28062
ns/iter (± 72
)28055
ns/iter (± 87
)1.00
es/full/codegen/es2020
28007
ns/iter (± 94
)28058
ns/iter (± 39
)1.00
es/full/all/es3
173413469
ns/iter (± 4041070
)169693381
ns/iter (± 3732036
)1.02
es/full/all/es5
161782484
ns/iter (± 2919133
)163145482
ns/iter (± 4379997
)0.99
es/full/all/es2015
123603614
ns/iter (± 2284542
)121953688
ns/iter (± 1332736
)1.01
es/full/all/es2016
122558989
ns/iter (± 2378668
)121029934
ns/iter (± 1367890
)1.01
es/full/all/es2017
120027042
ns/iter (± 2390699
)119666816
ns/iter (± 1607577
)1.00
es/full/all/es2018
117986125
ns/iter (± 767165
)118206239
ns/iter (± 1037672
)1.00
es/full/all/es2019
119810494
ns/iter (± 1659436
)117003895
ns/iter (± 1759131
)1.02
es/full/all/es2020
114184105
ns/iter (± 1761387
)112570376
ns/iter (± 1151914
)1.01
es/full/parser
507390
ns/iter (± 8545
)522076
ns/iter (± 7756
)0.97
es/full/base/fixer
21855
ns/iter (± 16
)21400
ns/iter (± 21
)1.02
es/full/base/resolver_and_hygiene
77488
ns/iter (± 83
)77733
ns/iter (± 65
)1.00
serialization of ast node
140
ns/iter (± 0
)140
ns/iter (± 0
)1
serialization of serde
123
ns/iter (± 0
)130
ns/iter (± 0
)0.95
css/minify/libraries/bootstrap
27510141
ns/iter (± 129780
)28245535
ns/iter (± 331503
)0.97
css/visitor/compare/clone
2101684
ns/iter (± 28773
)2113619
ns/iter (± 11178
)0.99
css/visitor/compare/visit_mut_span
2326054
ns/iter (± 33294
)2298884
ns/iter (± 9584
)1.01
css/visitor/compare/visit_mut_span_panic
2372116
ns/iter (± 30756
)2346178
ns/iter (± 9580
)1.01
css/visitor/compare/fold_span
3023661
ns/iter (± 25475
)3023192
ns/iter (± 26549
)1.00
css/visitor/compare/fold_span_panic
3228231
ns/iter (± 43716
)3175026
ns/iter (± 21658
)1.02
css/lexer/bootstrap_5_1_3
5328744
ns/iter (± 1288
)5348786
ns/iter (± 2579
)1.00
css/lexer/foundation_6_7_4
4483925
ns/iter (± 812
)4482825
ns/iter (± 1285
)1.00
css/lexer/tailwind_3_1_1
845583
ns/iter (± 291
)849252
ns/iter (± 234
)1.00
css/parser/bootstrap_5_1_3
21629541
ns/iter (± 201053
)21451931
ns/iter (± 228628
)1.01
css/parser/foundation_6_7_4
17242871
ns/iter (± 189565
)16927841
ns/iter (± 73795
)1.02
css/parser/tailwind_3_1_1
3250759
ns/iter (± 2731
)3250858
ns/iter (± 2604
)1.00
es/codegen/colors
321731
ns/iter (± 180268
)330422
ns/iter (± 184940
)0.97
es/codegen/large
1077568
ns/iter (± 543144
)1238575
ns/iter (± 627921
)0.87
es/codegen/with-parser/colors
45110
ns/iter (± 66
)44948
ns/iter (± 129
)1.00
es/codegen/with-parser/large
505000
ns/iter (± 1410
)507320
ns/iter (± 21317
)1.00
es/minify/libraries/antd
1601537500
ns/iter (± 14328386
)1439513420
ns/iter (± 22381028
)1.11
es/minify/libraries/d3
323646323
ns/iter (± 6703742
)297245383
ns/iter (± 11072411
)1.09
es/minify/libraries/echarts
1322868829
ns/iter (± 21440376
)1219612246
ns/iter (± 16556044
)1.08
es/minify/libraries/jquery
82878396
ns/iter (± 1473350
)79833456
ns/iter (± 706014
)1.04
es/minify/libraries/lodash
99057116
ns/iter (± 1061789
)98479629
ns/iter (± 1582805
)1.01
es/minify/libraries/moment
47459124
ns/iter (± 643574
)46725777
ns/iter (± 248932
)1.02
es/minify/libraries/react
17657755
ns/iter (± 126388
)17263406
ns/iter (± 62809
)1.02
es/minify/libraries/terser
245979445
ns/iter (± 5819705
)219595865
ns/iter (± 5293624
)1.12
es/minify/libraries/three
429308618
ns/iter (± 11239449
)392181557
ns/iter (± 7679417
)1.09
es/minify/libraries/typescript
2907883240
ns/iter (± 19861237
)2653796978
ns/iter (± 23581529
)1.10
es/minify/libraries/victory
653518991
ns/iter (± 12362414
)587346535
ns/iter (± 9011120
)1.11
es/minify/libraries/vue
125166408
ns/iter (± 4444821
)118125981
ns/iter (± 974979
)1.06
es/visitor/compare/clone
2397529
ns/iter (± 29818
)2456357
ns/iter (± 19828
)0.98
es/visitor/compare/visit_mut_span
2899799
ns/iter (± 49079
)2818923
ns/iter (± 8511
)1.03
es/visitor/compare/visit_mut_span_panic
2984127
ns/iter (± 216880
)2879485
ns/iter (± 6524
)1.04
es/visitor/compare/fold_span
4272517
ns/iter (± 102367
)3932673
ns/iter (± 13949
)1.09
es/visitor/compare/fold_span_panic
4504484
ns/iter (± 101717
)4103473
ns/iter (± 5868
)1.10
es/lexer/colors
17375
ns/iter (± 35
)17390
ns/iter (± 10
)1.00
es/lexer/angular
8216208
ns/iter (± 5175
)8245093
ns/iter (± 6941
)1.00
es/lexer/backbone
1075085
ns/iter (± 810
)1077432
ns/iter (± 1221
)1.00
es/lexer/jquery
5941258
ns/iter (± 981
)5968914
ns/iter (± 1843
)1.00
es/lexer/jquery mobile
9153348
ns/iter (± 4000
)9203236
ns/iter (± 9966
)0.99
es/lexer/mootools
4654357
ns/iter (± 2145
)4694384
ns/iter (± 1685
)0.99
es/lexer/underscore
892964
ns/iter (± 315
)898016
ns/iter (± 397
)0.99
es/lexer/three
27843646
ns/iter (± 32904
)27964494
ns/iter (± 34529
)1.00
es/lexer/yui
5053199
ns/iter (± 2172
)5066510
ns/iter (± 2289
)1.00
es/parser/colors
31573
ns/iter (± 171
)31330
ns/iter (± 127
)1.01
es/parser/angular
17584665
ns/iter (± 292605
)16550825
ns/iter (± 352763
)1.06
es/parser/backbone
2335748
ns/iter (± 12241
)2356527
ns/iter (± 13405
)0.99
es/parser/jquery
13109596
ns/iter (± 260793
)12679933
ns/iter (± 72098
)1.03
es/parser/jquery mobile
22639468
ns/iter (± 775850
)20433794
ns/iter (± 276194
)1.11
es/parser/mootools
9960080
ns/iter (± 86257
)9699247
ns/iter (± 49281
)1.03
es/parser/underscore
1989959
ns/iter (± 24174
)1983114
ns/iter (± 9814
)1.00
es/parser/three
62514312
ns/iter (± 183733
)59302465
ns/iter (± 282824
)1.05
es/parser/yui
10183350
ns/iter (± 149235
)9710236
ns/iter (± 58310
)1.05
es/preset-env/usage/builtin_type
138345
ns/iter (± 30163
)140272
ns/iter (± 31610
)0.99
es/preset-env/usage/property
22225
ns/iter (± 75
)21671
ns/iter (± 116
)1.03
es/resolver/typescript
118132506
ns/iter (± 1478479
)109954138
ns/iter (± 4524137
)1.07
es/fixer/typescript
96885795
ns/iter (± 4169814
)83426341
ns/iter (± 1260702
)1.16
es/hygiene/typescript
197849063
ns/iter (± 2548424
)165806139
ns/iter (± 1657961
)1.19
es/resolver_with_hygiene/typescript
329608152
ns/iter (± 3537702
)294166959
ns/iter (± 3540360
)1.12
es/visitor/base-perf/module_clone
74521
ns/iter (± 1108
)75161
ns/iter (± 1311
)0.99
es/visitor/base-perf/fold_empty
85456
ns/iter (± 1590
)86035
ns/iter (± 1595
)0.99
es/visitor/base-perf/fold_noop_impl_all
86071
ns/iter (± 950
)86423
ns/iter (± 1699
)1.00
es/visitor/base-perf/fold_noop_impl_vec
86714
ns/iter (± 1563
)86333
ns/iter (± 1693
)1.00
es/visitor/base-perf/boxing_boxed_clone
54
ns/iter (± 0
)54
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed_clone
58
ns/iter (± 0
)58
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
102
ns/iter (± 0
)100
ns/iter (± 0
)1.02
es/visitor/base-perf/boxing_unboxed
102
ns/iter (± 0
)101
ns/iter (± 0
)1.01
es/visitor/base-perf/visit_contains_this
3569
ns/iter (± 49
)3389
ns/iter (± 40
)1.05
es/base/parallel/resolver/typescript
5117522878
ns/iter (± 419413850
)5191611385
ns/iter (± 411745247
)0.99
es/base/parallel/hygiene/typescript
2249103124
ns/iter (± 43087139
)2008468770
ns/iter (± 26010890
)1.12
misc/visitors/time-complexity/time 5
108
ns/iter (± 0
)97
ns/iter (± 0
)1.11
misc/visitors/time-complexity/time 10
334
ns/iter (± 2
)319
ns/iter (± 0
)1.05
misc/visitors/time-complexity/time 15
680
ns/iter (± 1
)671
ns/iter (± 6
)1.01
misc/visitors/time-complexity/time 20
1260
ns/iter (± 3
)1217
ns/iter (± 4
)1.04
misc/visitors/time-complexity/time 40
6757
ns/iter (± 19
)6260
ns/iter (± 53
)1.08
misc/visitors/time-complexity/time 60
17253
ns/iter (± 43
)15592
ns/iter (± 6
)1.11
es/full-target/es2016
186611
ns/iter (± 353
)187747
ns/iter (± 533
)0.99
es/full-target/es2017
180451
ns/iter (± 701
)180815
ns/iter (± 677
)1.00
es/full-target/es2018
169235
ns/iter (± 353
)169976
ns/iter (± 395
)1.00
es2020_nullish_coalescing
65632
ns/iter (± 534
)65498
ns/iter (± 293
)1.00
es2020_optional_chaining
94230
ns/iter (± 3264
)94027
ns/iter (± 1027
)1.00
es2022_class_properties
92211
ns/iter (± 162
)92141
ns/iter (± 277
)1.00
es2018_object_rest_spread
69903
ns/iter (± 121
)70081
ns/iter (± 106
)1.00
es2019_optional_catch_binding
59440
ns/iter (± 108
)59585
ns/iter (± 153
)1.00
es2017_async_to_generator
59945
ns/iter (± 107
)60353
ns/iter (± 99
)0.99
es2016_exponentiation
63393
ns/iter (± 92
)63251
ns/iter (± 109
)1.00
es2015_arrow
68274
ns/iter (± 271
)69017
ns/iter (± 251
)0.99
es2015_block_scoped_fn
64710
ns/iter (± 56
)64291
ns/iter (± 167
)1.01
es2015_block_scoping
147155
ns/iter (± 10420
)155402
ns/iter (± 10920
)0.95
es2015_classes
115268
ns/iter (± 502
)115588
ns/iter (± 537
)1.00
es2015_computed_props
59661
ns/iter (± 148
)59718
ns/iter (± 71
)1.00
es2015_destructuring
114739
ns/iter (± 235
)113850
ns/iter (± 202
)1.01
es2015_duplicate_keys
62664
ns/iter (± 109
)62370
ns/iter (± 130
)1.00
es2015_parameters
77775
ns/iter (± 196
)77590
ns/iter (± 118
)1.00
es2015_fn_name
66046
ns/iter (± 668
)65676
ns/iter (± 579
)1.01
es2015_for_of
63035
ns/iter (± 100
)62860
ns/iter (± 98
)1.00
es2015_instanceof
61479
ns/iter (± 87
)61701
ns/iter (± 134
)1.00
es2015_shorthand_property
59949
ns/iter (± 151
)59565
ns/iter (± 92
)1.01
es2015_spread
59402
ns/iter (± 116
)59966
ns/iter (± 127
)0.99
es2015_sticky_regex
60862
ns/iter (± 117
)60767
ns/iter (± 107
)1.00
es2015_typeof_symbol
60999
ns/iter (± 80
)60753
ns/iter (± 288
)1.00
es/transform/baseline/base
50560
ns/iter (± 126
)50328
ns/iter (± 144
)1.00
es/transform/baseline/common_reserved_word
61196
ns/iter (± 130
)61173
ns/iter (± 74
)1.00
es/transform/baseline/common_typescript
167942
ns/iter (± 315
)141026
ns/iter (± 2459
)1.19
es/target/es3
166917
ns/iter (± 316
)167499
ns/iter (± 338
)1.00
es/target/es2015
627843
ns/iter (± 1156
)629973
ns/iter (± 1411
)1.00
es/target/es2016
63554
ns/iter (± 99
)63436
ns/iter (± 142
)1.00
es/target/es2017
60144
ns/iter (± 72
)60560
ns/iter (± 76
)0.99
es/target/es2018
79923
ns/iter (± 79
)80549
ns/iter (± 139
)0.99
es/target/es2020
130809
ns/iter (± 170
)131302
ns/iter (± 210
)1.00
babelify-only
675258
ns/iter (± 2132
)664806
ns/iter (± 1739
)1.02
parse_and_babelify_angular
42947157
ns/iter (± 614219
)44256109
ns/iter (± 1160180
)0.97
parse_and_babelify_backbone
5759263
ns/iter (± 212817
)5581128
ns/iter (± 147765
)1.03
parse_and_babelify_jquery
35307489
ns/iter (± 1046612
)34560501
ns/iter (± 1150369
)1.02
parse_and_babelify_jquery_mobile
60095423
ns/iter (± 1067014
)58873419
ns/iter (± 1316190
)1.02
parse_and_babelify_mootools
35816031
ns/iter (± 833065
)35498845
ns/iter (± 1136604
)1.01
parse_and_babelify_underscore
4365319
ns/iter (± 113785
)4536196
ns/iter (± 129838
)0.96
parse_and_babelify_yui
34457571
ns/iter (± 335326
)33410617
ns/iter (± 363577
)1.03
html/minify/document/css_spec
44819001
ns/iter (± 706270
)45316638
ns/iter (± 253833
)0.99
html/minify/document/github
18717011
ns/iter (± 80708
)18738219
ns/iter (± 175366
)1.00
html/minify/document/stackoverflow
16491200
ns/iter (± 68855
)16400210
ns/iter (± 36376
)1.01
html/minify/document_fragment/css_spec
43198065
ns/iter (± 562121
)43461200
ns/iter (± 291797
)0.99
html/minify/document_fragment/github
18073932
ns/iter (± 135280
)18030153
ns/iter (± 38166
)1.00
html/minify/document_fragment/stackoverflow
15951259
ns/iter (± 101112
)15988277
ns/iter (± 126052
)1.00
html/document/visitor/compare/clone
343243
ns/iter (± 1503
)344361
ns/iter (± 1701
)1.00
html/document/visitor/compare/visit_mut_span
367020
ns/iter (± 2235
)366846
ns/iter (± 2075
)1.00
html/document/visitor/compare/visit_mut_span_panic
379154
ns/iter (± 2553
)378970
ns/iter (± 2056
)1.00
html/document/visitor/compare/fold_span
411413
ns/iter (± 1870
)410913
ns/iter (± 1855
)1.00
html/document/visitor/compare/fold_span_panic
459845
ns/iter (± 1811
)466857
ns/iter (± 2775
)0.98
html/document_fragment/visitor/compare/clone
340046
ns/iter (± 2856
)341296
ns/iter (± 1708
)1.00
html/document_fragment/visitor/compare/visit_mut_span
366351
ns/iter (± 1358
)369346
ns/iter (± 1930
)0.99
html/document_fragment/visitor/compare/visit_mut_span_panic
373514
ns/iter (± 1911
)375233
ns/iter (± 2097
)1.00
html/document_fragment/visitor/compare/fold_span
407876
ns/iter (± 2240
)404880
ns/iter (± 2135
)1.01
html/document_fragment/visitor/compare/fold_span_panic
459955
ns/iter (± 2586
)464409
ns/iter (± 2712
)0.99
html/lexer/css_2021_spec
15670413
ns/iter (± 8131
)15511276
ns/iter (± 7074
)1.01
html/lexer/github_com_17_05_2022
6070654
ns/iter (± 3653
)6042070
ns/iter (± 2388
)1.00
html/lexer/stackoverflow_com_17_05_2022
5683620
ns/iter (± 1851
)5637731
ns/iter (± 4240
)1.01
html/parser/parser_document/css_2021_spec
26941820
ns/iter (± 333539
)26223145
ns/iter (± 112285
)1.03
html/parser/parser_document/github_com_17_05_2022
8828463
ns/iter (± 10813
)8832893
ns/iter (± 8021
)1.00
html/parser/parser_document/stackoverflow_com_17_05_2022
7782835
ns/iter (± 6572
)7812422
ns/iter (± 4295
)1.00
html/parser/parser_document_fragment/css_2021_spec
26978025
ns/iter (± 276128
)25981841
ns/iter (± 154846
)1.04
html/parser/parser_document_fragment/github_com_17_05_2022
8817954
ns/iter (± 31058
)8777791
ns/iter (± 9558
)1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7800908
ns/iter (± 5681
)7781604
ns/iter (± 32893
)1.00
This comment was automatically generated by workflow using github-action-benchmark.