File tree 7 files changed +130
-0
lines changed
swc/tests/fixture/issues-7xxx/7228
tests/fixture/issues/7228/1
7 files changed +130
-0
lines changed Original file line number Diff line number Diff line change
1
+ {
2
+ "jsc" : {
3
+ "parser" : {
4
+ "syntax" : " ecmascript" ,
5
+ "jsx" : false
6
+ },
7
+ "target" : " es2022" ,
8
+ "loose" : false ,
9
+ "minify" : {
10
+ "compress" : {
11
+ "arguments" : false ,
12
+ "arrows" : false ,
13
+ "booleans" : false ,
14
+ "booleans_as_integers" : false ,
15
+ "collapse_vars" : false ,
16
+ "comparisons" : false ,
17
+ "computed_props" : false ,
18
+ "conditionals" : false ,
19
+ "dead_code" : false ,
20
+ "directives" : false ,
21
+ "drop_console" : false ,
22
+ "drop_debugger" : false ,
23
+ "evaluate" : false ,
24
+ "expression" : false ,
25
+ "hoist_funs" : false ,
26
+ "hoist_props" : true ,
27
+ "hoist_vars" : false ,
28
+ "if_return" : false ,
29
+ "join_vars" : false ,
30
+ "keep_classnames" : false ,
31
+ "keep_fargs" : false ,
32
+ "keep_fnames" : false ,
33
+ "keep_infinity" : false ,
34
+ "loops" : false ,
35
+ "negate_iife" : false ,
36
+ "properties" : false ,
37
+ "reduce_funcs" : false ,
38
+ "reduce_vars" : false ,
39
+ "side_effects" : false ,
40
+ "switches" : false ,
41
+ "typeofs" : false ,
42
+ "unsafe" : false ,
43
+ "unsafe_arrows" : false ,
44
+ "unsafe_comps" : false ,
45
+ "unsafe_Function" : false ,
46
+ "unsafe_math" : false ,
47
+ "unsafe_symbols" : false ,
48
+ "unsafe_methods" : false ,
49
+ "unsafe_proto" : false ,
50
+ "unsafe_regexp" : false ,
51
+ "unsafe_undefined" : false ,
52
+ "unused" : false ,
53
+ "const_to_let" : false ,
54
+ "pristine_globals" : false
55
+ },
56
+ "mangle" : false
57
+ }
58
+ },
59
+ "module" : {
60
+ "type" : " es6"
61
+ },
62
+ "minify" : false ,
63
+ "isModule" : true
64
+ }
Original file line number Diff line number Diff line change
1
+ function f ( ) {
2
+ const foos = something . getFoos ( ) ;
3
+ return foos ?. [ 0 ] ;
4
+ }
Original file line number Diff line number Diff line change
1
+ function f ( ) {
2
+ return something . getFoos ( ) ?. [ 0 ] ;
3
+ }
Original file line number Diff line number Diff line change @@ -195,6 +195,10 @@ where
195
195
pub ( super ) fn replace_props ( & mut self , e : & mut Expr ) {
196
196
let member = match e {
197
197
Expr :: Member ( m) => m,
198
+ Expr :: OptChain ( m) => match & mut * m. base {
199
+ OptChainBase :: Member ( m) => m,
200
+ _ => return ,
201
+ } ,
198
202
_ => return ,
199
203
} ;
200
204
if let Expr :: Ident ( obj) = & * member. obj {
Original file line number Diff line number Diff line change
1
+ {
2
+ "arguments" : false ,
3
+ "arrows" : false ,
4
+ "booleans" : false ,
5
+ "booleans_as_integers" : false ,
6
+ "collapse_vars" : false ,
7
+ "comparisons" : false ,
8
+ "computed_props" : false ,
9
+ "conditionals" : false ,
10
+ "dead_code" : false ,
11
+ "directives" : false ,
12
+ "drop_console" : false ,
13
+ "drop_debugger" : false ,
14
+ "evaluate" : false ,
15
+ "expression" : false ,
16
+ "hoist_funs" : false ,
17
+ "hoist_props" : true ,
18
+ "hoist_vars" : false ,
19
+ "if_return" : false ,
20
+ "join_vars" : false ,
21
+ "keep_classnames" : false ,
22
+ "keep_fargs" : false ,
23
+ "keep_fnames" : false ,
24
+ "keep_infinity" : false ,
25
+ "loops" : false ,
26
+ "negate_iife" : false ,
27
+ "properties" : false ,
28
+ "reduce_funcs" : false ,
29
+ "reduce_vars" : false ,
30
+ "side_effects" : false ,
31
+ "switches" : false ,
32
+ "typeofs" : false ,
33
+ "unsafe" : false ,
34
+ "unsafe_arrows" : false ,
35
+ "unsafe_comps" : false ,
36
+ "unsafe_Function" : false ,
37
+ "unsafe_math" : false ,
38
+ "unsafe_symbols" : false ,
39
+ "unsafe_methods" : false ,
40
+ "unsafe_proto" : false ,
41
+ "unsafe_regexp" : false ,
42
+ "unsafe_undefined" : false ,
43
+ "unused" : false ,
44
+ "const_to_let" : false ,
45
+ "pristine_globals" : false ,
46
+ "defaults" : true
47
+ }
Original file line number Diff line number Diff line change
1
+ export function f ( ) {
2
+ const foos = something . getFoos ( ) ;
3
+ return foos ?. [ 0 ] ;
4
+ }
Original file line number Diff line number Diff line change
1
+ export function f ( ) {
2
+ const foos = something . getFoos ( ) ;
3
+ return foos ?. [ 0 ] ;
4
+ }
You can’t perform that action at this time.
1 commit comments
github-actions[bot] commentedon Apr 13, 2023
Benchmark
es/full/bugs-1
321627
ns/iter (± 16870
)293405
ns/iter (± 11815
)1.10
es/full/minify/libraries/antd
1562282824
ns/iter (± 22363391
)1553815340
ns/iter (± 20650409
)1.01
es/full/minify/libraries/d3
309762723
ns/iter (± 8618615
)302760721
ns/iter (± 6027602
)1.02
es/full/minify/libraries/echarts
1214217603
ns/iter (± 11172791
)1201064793
ns/iter (± 14532282
)1.01
es/full/minify/libraries/jquery
90816328
ns/iter (± 1518822
)90394766
ns/iter (± 620464
)1.00
es/full/minify/libraries/lodash
107733143
ns/iter (± 1883081
)104819610
ns/iter (± 1228118
)1.03
es/full/minify/libraries/moment
52807734
ns/iter (± 466518
)52227456
ns/iter (± 382148
)1.01
es/full/minify/libraries/react
19452493
ns/iter (± 355120
)18912023
ns/iter (± 80765
)1.03
es/full/minify/libraries/terser
244036265
ns/iter (± 3832527
)237841685
ns/iter (± 1730056
)1.03
es/full/minify/libraries/three
435998234
ns/iter (± 8855533
)418484077
ns/iter (± 3413038
)1.04
es/full/minify/libraries/typescript
2945507478
ns/iter (± 19015204
)2876485289
ns/iter (± 27712696
)1.02
es/full/minify/libraries/victory
647450600
ns/iter (± 12982972
)640869258
ns/iter (± 6779449
)1.01
es/full/minify/libraries/vue
130674464
ns/iter (± 1196927
)129212582
ns/iter (± 559562
)1.01
es/full/codegen/es3
28677
ns/iter (± 65
)28359
ns/iter (± 92
)1.01
es/full/codegen/es5
28866
ns/iter (± 70
)28533
ns/iter (± 55
)1.01
es/full/codegen/es2015
28792
ns/iter (± 66
)28505
ns/iter (± 125
)1.01
es/full/codegen/es2016
28821
ns/iter (± 102
)28497
ns/iter (± 30
)1.01
es/full/codegen/es2017
28767
ns/iter (± 53
)28458
ns/iter (± 130
)1.01
es/full/codegen/es2018
28761
ns/iter (± 68
)28211
ns/iter (± 62
)1.02
es/full/codegen/es2019
28738
ns/iter (± 39
)28315
ns/iter (± 122
)1.01
es/full/codegen/es2020
28800
ns/iter (± 84
)28289
ns/iter (± 159
)1.02
es/full/all/es3
184757716
ns/iter (± 2603690
)177380010
ns/iter (± 3297651
)1.04
es/full/all/es5
174877409
ns/iter (± 2234745
)173681366
ns/iter (± 2215956
)1.01
es/full/all/es2015
135586840
ns/iter (± 2275650
)135088567
ns/iter (± 1521635
)1.00
es/full/all/es2016
134439221
ns/iter (± 1540759
)131943735
ns/iter (± 2021923
)1.02
es/full/all/es2017
132618432
ns/iter (± 2122569
)129819665
ns/iter (± 906702
)1.02
es/full/all/es2018
128777947
ns/iter (± 1741175
)126179109
ns/iter (± 759846
)1.02
es/full/all/es2019
126836499
ns/iter (± 1404964
)123794082
ns/iter (± 1299203
)1.02
es/full/all/es2020
119890145
ns/iter (± 1634846
)116804863
ns/iter (± 1025793
)1.03
es/full/parser
516626
ns/iter (± 7334
)513383
ns/iter (± 7205
)1.01
es/full/base/fixer
22711
ns/iter (± 33
)22716
ns/iter (± 116
)1.00
es/full/base/resolver_and_hygiene
84982
ns/iter (± 167
)83113
ns/iter (± 261
)1.02
serialization of serde
125
ns/iter (± 0
)123
ns/iter (± 0
)1.02
css/minify/libraries/bootstrap
27740219
ns/iter (± 170878
)27463476
ns/iter (± 127463
)1.01
css/visitor/compare/clone
2102054
ns/iter (± 6027
)2132511
ns/iter (± 26220
)0.99
css/visitor/compare/visit_mut_span
2321407
ns/iter (± 9029
)2278829
ns/iter (± 12891
)1.02
css/visitor/compare/visit_mut_span_panic
2362299
ns/iter (± 5053
)2338728
ns/iter (± 25187
)1.01
css/visitor/compare/fold_span
3091433
ns/iter (± 12084
)3083250
ns/iter (± 8883
)1.00
css/visitor/compare/fold_span_panic
3264311
ns/iter (± 14972
)3220070
ns/iter (± 10083
)1.01
css/lexer/bootstrap_5_1_3
5134481
ns/iter (± 2971
)5140793
ns/iter (± 14545
)1.00
css/lexer/foundation_6_7_4
4334645
ns/iter (± 5976
)4305617
ns/iter (± 8982
)1.01
css/lexer/tailwind_3_1_1
822617
ns/iter (± 811
)812652
ns/iter (± 3449
)1.01
css/parser/bootstrap_5_1_3
21004371
ns/iter (± 160406
)20904122
ns/iter (± 139286
)1.00
css/parser/foundation_6_7_4
16710794
ns/iter (± 46687
)16669212
ns/iter (± 74998
)1.00
css/parser/tailwind_3_1_1
3240105
ns/iter (± 4425
)3215097
ns/iter (± 16984
)1.01
es/codegen/colors
328269
ns/iter (± 185596
)327663
ns/iter (± 185315
)1.00
es/codegen/large
1254198
ns/iter (± 658348
)1237986
ns/iter (± 642679
)1.01
es/codegen/with-parser/colors
47217
ns/iter (± 286
)47378
ns/iter (± 251
)1.00
es/codegen/with-parser/large
512148
ns/iter (± 1717
)508924
ns/iter (± 2585
)1.01
es/minify/libraries/antd
1342774017
ns/iter (± 17838871
)1327719590
ns/iter (± 17030034
)1.01
es/minify/libraries/d3
252237294
ns/iter (± 2716727
)247256109
ns/iter (± 1164884
)1.02
es/minify/libraries/echarts
1025233343
ns/iter (± 11360448
)1002629585
ns/iter (± 7736466
)1.02
es/minify/libraries/jquery
80150811
ns/iter (± 1502732
)77954881
ns/iter (± 756240
)1.03
es/minify/libraries/lodash
95368834
ns/iter (± 1200564
)93043504
ns/iter (± 897382
)1.02
es/minify/libraries/moment
46121629
ns/iter (± 438334
)45195742
ns/iter (± 293645
)1.02
es/minify/libraries/react
17200270
ns/iter (± 221050
)16880614
ns/iter (± 68635
)1.02
es/minify/libraries/terser
211084374
ns/iter (± 3538709
)205922514
ns/iter (± 1979632
)1.03
es/minify/libraries/three
357384225
ns/iter (± 5068194
)348213835
ns/iter (± 3490802
)1.03
es/minify/libraries/typescript
2494169630
ns/iter (± 15026270
)2475162640
ns/iter (± 10482907
)1.01
es/minify/libraries/victory
553995721
ns/iter (± 10930661
)527929146
ns/iter (± 2841263
)1.05
es/minify/libraries/vue
115366493
ns/iter (± 712142
)113514763
ns/iter (± 906452
)1.02
es/visitor/compare/clone
2315161
ns/iter (± 7852
)2313269
ns/iter (± 9290
)1.00
es/visitor/compare/visit_mut_span
2693103
ns/iter (± 3039
)2670596
ns/iter (± 7419
)1.01
es/visitor/compare/visit_mut_span_panic
2738488
ns/iter (± 3705
)2723669
ns/iter (± 9253
)1.01
es/visitor/compare/fold_span
3792718
ns/iter (± 5431
)3788092
ns/iter (± 21559
)1.00
es/visitor/compare/fold_span_panic
3926577
ns/iter (± 11462
)3927439
ns/iter (± 26393
)1.00
es/lexer/colors
13269
ns/iter (± 38
)13032
ns/iter (± 49
)1.02
es/lexer/angular
6364330
ns/iter (± 10092
)6318964
ns/iter (± 42463
)1.01
es/lexer/backbone
788193
ns/iter (± 925
)776403
ns/iter (± 2600
)1.02
es/lexer/jquery
4411043
ns/iter (± 4891
)4365476
ns/iter (± 21375
)1.01
es/lexer/jquery mobile
6891729
ns/iter (± 3733
)6810831
ns/iter (± 28402
)1.01
es/lexer/mootools
3466980
ns/iter (± 3097
)3441384
ns/iter (± 13749
)1.01
es/lexer/underscore
651874
ns/iter (± 563
)643500
ns/iter (± 1758
)1.01
es/lexer/three
20869632
ns/iter (± 37289
)20706845
ns/iter (± 94713
)1.01
es/lexer/yui
3868671
ns/iter (± 3058
)3825730
ns/iter (± 13113
)1.01
es/parser/colors
29324
ns/iter (± 39
)29042
ns/iter (± 151
)1.01
es/parser/angular
15042745
ns/iter (± 178688
)14763146
ns/iter (± 100946
)1.02
es/parser/backbone
2159993
ns/iter (± 10468
)2149872
ns/iter (± 11182
)1.00
es/parser/jquery
11713776
ns/iter (± 112865
)11586266
ns/iter (± 85764
)1.01
es/parser/jquery mobile
18298846
ns/iter (± 93563
)17930085
ns/iter (± 87467
)1.02
es/parser/mootools
8970302
ns/iter (± 30585
)8883797
ns/iter (± 30281
)1.01
es/parser/underscore
1823666
ns/iter (± 11212
)1807406
ns/iter (± 16747
)1.01
es/parser/three
53741207
ns/iter (± 371018
)51970765
ns/iter (± 675110
)1.03
es/parser/yui
9039571
ns/iter (± 70675
)8951258
ns/iter (± 123127
)1.01
es/preset-env/usage/builtin_type
141827
ns/iter (± 34729
)140195
ns/iter (± 34484
)1.01
es/preset-env/usage/property
20241
ns/iter (± 98
)19858
ns/iter (± 97
)1.02
es/resolver/typescript
110812529
ns/iter (± 3964694
)108249844
ns/iter (± 1958341
)1.02
es/fixer/typescript
79063631
ns/iter (± 549409
)76302204
ns/iter (± 569953
)1.04
es/hygiene/typescript
167250090
ns/iter (± 1448387
)165244778
ns/iter (± 1200456
)1.01
es/resolver_with_hygiene/typescript
303995859
ns/iter (± 2665938
)298881740
ns/iter (± 2518858
)1.02
es/visitor/base-perf/module_clone
81553
ns/iter (± 330
)80481
ns/iter (± 633
)1.01
es/visitor/base-perf/fold_empty
90573
ns/iter (± 285
)89638
ns/iter (± 791
)1.01
es/visitor/base-perf/fold_noop_impl_all
90666
ns/iter (± 467
)90169
ns/iter (± 581
)1.01
es/visitor/base-perf/fold_noop_impl_vec
90686
ns/iter (± 508
)90670
ns/iter (± 654
)1.00
es/visitor/base-perf/boxing_boxed_clone
56
ns/iter (± 0
)56
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed_clone
42
ns/iter (± 0
)42
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
102
ns/iter (± 0
)102
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed
78
ns/iter (± 0
)77
ns/iter (± 0
)1.01
es/visitor/base-perf/visit_contains_this
3502
ns/iter (± 73
)3591
ns/iter (± 94
)0.98
es/base/parallel/resolver/typescript
5640906172
ns/iter (± 241261595
)5694497487
ns/iter (± 487269330
)0.99
es/base/parallel/hygiene/typescript
1983362158
ns/iter (± 39814403
)2002897884
ns/iter (± 19648338
)0.99
misc/visitors/time-complexity/time 5
98
ns/iter (± 0
)98
ns/iter (± 0
)1
misc/visitors/time-complexity/time 10
332
ns/iter (± 5
)328
ns/iter (± 1
)1.01
misc/visitors/time-complexity/time 15
655
ns/iter (± 19
)630
ns/iter (± 2
)1.04
misc/visitors/time-complexity/time 20
1228
ns/iter (± 22
)1210
ns/iter (± 15
)1.01
misc/visitors/time-complexity/time 40
6548
ns/iter (± 9
)6511
ns/iter (± 26
)1.01
misc/visitors/time-complexity/time 60
17185
ns/iter (± 105
)16824
ns/iter (± 124
)1.02
es/full-target/es2016
253822
ns/iter (± 568
)253372
ns/iter (± 838
)1.00
es/full-target/es2017
246893
ns/iter (± 342
)243801
ns/iter (± 498
)1.01
es/full-target/es2018
236584
ns/iter (± 485
)232943
ns/iter (± 1032
)1.02
es2020_nullish_coalescing
92950
ns/iter (± 280
)91603
ns/iter (± 482
)1.01
es2020_optional_chaining
124885
ns/iter (± 354
)123961
ns/iter (± 668
)1.01
es2022_class_properties
149840
ns/iter (± 253
)148682
ns/iter (± 602
)1.01
es2018_object_rest_spread
96810
ns/iter (± 124
)95013
ns/iter (± 528
)1.02
es2019_optional_catch_binding
86097
ns/iter (± 127
)83641
ns/iter (± 279
)1.03
es2017_async_to_generator
86399
ns/iter (± 221
)84336
ns/iter (± 378
)1.02
es2016_exponentiation
90574
ns/iter (± 270
)88773
ns/iter (± 528
)1.02
es2015_arrow
93994
ns/iter (± 306
)92089
ns/iter (± 422
)1.02
es2015_block_scoped_fn
92516
ns/iter (± 314
)91581
ns/iter (± 290
)1.01
es2015_block_scoping
170345
ns/iter (± 257
)169326
ns/iter (± 489
)1.01
This comment was automatically generated by workflow using github-action-benchmark.