@@ -30,7 +30,24 @@ struct ReservedWord {
30
30
impl Fold for ReservedWord {
31
31
noop_fold_type ! ( ) ;
32
32
33
- fn fold_export_specifier ( & mut self , n : ExportSpecifier ) -> ExportSpecifier {
33
+ fn fold_export_named_specifier ( & mut self , n : ExportNamedSpecifier ) -> ExportNamedSpecifier {
34
+ let ident = match n. orig {
35
+ ModuleExportName :: Ident ( ident) if ident. is_reserved_in_es3 ( ) => ident,
36
+ _ => return n,
37
+ } ;
38
+
39
+ ExportNamedSpecifier {
40
+ orig : ident. clone ( ) . fold_with ( self ) . into ( ) ,
41
+ exported : n. exported . or_else ( || Some ( ident. into ( ) ) ) ,
42
+ ..n
43
+ }
44
+ }
45
+
46
+ fn fold_named_export ( & mut self , n : NamedExport ) -> NamedExport {
47
+ if n. src . is_none ( ) {
48
+ return n. fold_children_with ( self ) ;
49
+ }
50
+
34
51
n
35
52
}
36
53
@@ -39,16 +56,14 @@ impl Fold for ReservedWord {
39
56
}
40
57
41
58
fn fold_import_named_specifier ( & mut self , s : ImportNamedSpecifier ) -> ImportNamedSpecifier {
42
- if s. imported . is_some ( ) {
59
+ if s. local . is_reserved_in_es3 ( ) {
43
60
ImportNamedSpecifier {
61
+ imported : s. imported . or_else ( || Some ( s. local . clone ( ) . into ( ) ) ) ,
44
62
local : s. local . fold_with ( self ) ,
45
63
..s
46
64
}
47
65
} else {
48
- ImportNamedSpecifier {
49
- imported : s. imported . fold_with ( self ) ,
50
- ..s
51
- }
66
+ s
52
67
}
53
68
}
54
69
@@ -131,4 +146,22 @@ function utf8CheckByte(_byte) {
131
146
) ;
132
147
133
148
identical ! ( export_as_default, "export { Foo as default }" ) ;
149
+
150
+ test ! (
151
+ :: swc_ecma_parser:: Syntax :: default ( ) ,
152
+ |_| ReservedWord {
153
+ preserve_import: false
154
+ } ,
155
+ issue_7164,
156
+ r#"
157
+ import { int } from './a.js'
158
+ console.log(int)
159
+ export { int };
160
+ "# ,
161
+ r#"
162
+ import { int as _int } from './a.js';
163
+ console.log(_int);
164
+ export { _int as int };
165
+ "#
166
+ ) ;
134
167
}
1 commit comments
github-actions[bot] commentedon Mar 30, 2023
Benchmark
es/full/bugs-1
310573
ns/iter (± 7616
)303773
ns/iter (± 6390
)1.02
es/full/minify/libraries/antd
1655685673
ns/iter (± 15279300
)1602580295
ns/iter (± 19911681
)1.03
es/full/minify/libraries/d3
305183655
ns/iter (± 6987096
)296833439
ns/iter (± 6396378
)1.03
es/full/minify/libraries/echarts
1273011758
ns/iter (± 11514661
)1211389918
ns/iter (± 10429939
)1.05
es/full/minify/libraries/jquery
91481560
ns/iter (± 660085
)90930289
ns/iter (± 514708
)1.01
es/full/minify/libraries/lodash
106271655
ns/iter (± 1135306
)104775102
ns/iter (± 779643
)1.01
es/full/minify/libraries/moment
52868094
ns/iter (± 360026
)52403671
ns/iter (± 413840
)1.01
es/full/minify/libraries/react
19380410
ns/iter (± 163680
)18898646
ns/iter (± 157651
)1.03
es/full/minify/libraries/terser
251678979
ns/iter (± 3284225
)243546473
ns/iter (± 4372881
)1.03
es/full/minify/libraries/three
448765914
ns/iter (± 5268233
)430844182
ns/iter (± 3866972
)1.04
es/full/minify/libraries/typescript
3120238668
ns/iter (± 16004181
)2962700813
ns/iter (± 16823854
)1.05
es/full/minify/libraries/victory
698293530
ns/iter (± 8489142
)676366011
ns/iter (± 6687502
)1.03
es/full/minify/libraries/vue
133166982
ns/iter (± 619218
)130375134
ns/iter (± 1358764
)1.02
es/full/codegen/es3
28476
ns/iter (± 55
)28361
ns/iter (± 58
)1.00
es/full/codegen/es5
28613
ns/iter (± 31
)28531
ns/iter (± 48
)1.00
es/full/codegen/es2015
28566
ns/iter (± 37
)28472
ns/iter (± 54
)1.00
es/full/codegen/es2016
28528
ns/iter (± 48
)28469
ns/iter (± 80
)1.00
es/full/codegen/es2017
28539
ns/iter (± 44
)28613
ns/iter (± 338
)1.00
es/full/codegen/es2018
28592
ns/iter (± 41
)28500
ns/iter (± 51
)1.00
es/full/codegen/es2019
28556
ns/iter (± 26
)28466
ns/iter (± 57
)1.00
es/full/codegen/es2020
28592
ns/iter (± 35
)28422
ns/iter (± 50
)1.01
es/full/all/es3
184634738
ns/iter (± 2153135
)178055239
ns/iter (± 3931757
)1.04
es/full/all/es5
172542744
ns/iter (± 3141689
)170158582
ns/iter (± 3001066
)1.01
es/full/all/es2015
134825965
ns/iter (± 1579401
)132224788
ns/iter (± 1254739
)1.02
es/full/all/es2016
133230657
ns/iter (± 1102992
)130654381
ns/iter (± 1930551
)1.02
es/full/all/es2017
131357056
ns/iter (± 1643288
)128829038
ns/iter (± 2297105
)1.02
es/full/all/es2018
126875600
ns/iter (± 1155014
)125406050
ns/iter (± 2470789
)1.01
es/full/all/es2019
125695140
ns/iter (± 1832035
)125044943
ns/iter (± 1592036
)1.01
es/full/all/es2020
118764557
ns/iter (± 662712
)117251532
ns/iter (± 1001671
)1.01
es/full/parser
522091
ns/iter (± 8342
)513341
ns/iter (± 7527
)1.02
es/full/base/fixer
22653
ns/iter (± 33
)22545
ns/iter (± 29
)1.00
es/full/base/resolver_and_hygiene
84496
ns/iter (± 137
)85791
ns/iter (± 78
)0.98
serialization of serde
126
ns/iter (± 0
)121
ns/iter (± 0
)1.04
css/minify/libraries/bootstrap
28141315
ns/iter (± 162086
)27856170
ns/iter (± 141246
)1.01
css/visitor/compare/clone
2140557
ns/iter (± 42383
)2136880
ns/iter (± 21786
)1.00
css/visitor/compare/visit_mut_span
2315020
ns/iter (± 7648
)2343299
ns/iter (± 17532
)0.99
css/visitor/compare/visit_mut_span_panic
2382548
ns/iter (± 6482
)2384801
ns/iter (± 28455
)1.00
css/visitor/compare/fold_span
3084131
ns/iter (± 15389
)3054094
ns/iter (± 16573
)1.01
css/visitor/compare/fold_span_panic
3258936
ns/iter (± 10284
)3208234
ns/iter (± 14058
)1.02
css/lexer/bootstrap_5_1_3
5113849
ns/iter (± 1358
)5107007
ns/iter (± 2140
)1.00
css/lexer/foundation_6_7_4
4333383
ns/iter (± 1648
)4344408
ns/iter (± 1544
)1.00
css/lexer/tailwind_3_1_1
819753
ns/iter (± 206
)823351
ns/iter (± 118
)1.00
css/parser/bootstrap_5_1_3
21133991
ns/iter (± 133033
)21149917
ns/iter (± 119952
)1.00
css/parser/foundation_6_7_4
16644967
ns/iter (± 57818
)16776152
ns/iter (± 75576
)0.99
css/parser/tailwind_3_1_1
3201637
ns/iter (± 3646
)3229234
ns/iter (± 4789
)0.99
es/codegen/colors
325410
ns/iter (± 184498
)326779
ns/iter (± 184873
)1.00
es/codegen/large
1092420
ns/iter (± 552959
)1252477
ns/iter (± 659862
)0.87
es/codegen/with-parser/colors
47269
ns/iter (± 81
)47346
ns/iter (± 117
)1.00
es/codegen/with-parser/large
507926
ns/iter (± 2072
)506833
ns/iter (± 6405
)1.00
es/minify/libraries/antd
1451031002
ns/iter (± 12940828
)1362148127
ns/iter (± 27358036
)1.07
es/minify/libraries/d3
259422440
ns/iter (± 2764506
)264018553
ns/iter (± 6415229
)0.98
es/minify/libraries/echarts
1097567034
ns/iter (± 11992089
)1061968409
ns/iter (± 14326944
)1.03
es/minify/libraries/jquery
80752407
ns/iter (± 565357
)79317336
ns/iter (± 911816
)1.02
es/minify/libraries/lodash
96166360
ns/iter (± 773636
)94646438
ns/iter (± 716978
)1.02
es/minify/libraries/moment
46258310
ns/iter (± 383040
)45492172
ns/iter (± 219949
)1.02
es/minify/libraries/react
17125933
ns/iter (± 122407
)16959703
ns/iter (± 106670
)1.01
es/minify/libraries/terser
217739793
ns/iter (± 2564270
)209086919
ns/iter (± 3013243
)1.04
es/minify/libraries/three
374754332
ns/iter (± 5188191
)359661731
ns/iter (± 4760763
)1.04
es/minify/libraries/typescript
2675912407
ns/iter (± 17611453
)2496163452
ns/iter (± 24177281
)1.07
es/minify/libraries/victory
592714094
ns/iter (± 9869612
)565457402
ns/iter (± 8085607
)1.05
es/minify/libraries/vue
116815636
ns/iter (± 1060100
)115720130
ns/iter (± 969936
)1.01
es/visitor/compare/clone
2347263
ns/iter (± 10761
)2345259
ns/iter (± 14080
)1.00
es/visitor/compare/visit_mut_span
2727461
ns/iter (± 4644
)2702594
ns/iter (± 5110
)1.01
es/visitor/compare/visit_mut_span_panic
2762658
ns/iter (± 4064
)2782321
ns/iter (± 5112
)0.99
es/visitor/compare/fold_span
3834399
ns/iter (± 6576
)3836674
ns/iter (± 11375
)1.00
es/visitor/compare/fold_span_panic
3939326
ns/iter (± 9108
)3928433
ns/iter (± 4930
)1.00
es/lexer/colors
12906
ns/iter (± 17
)13002
ns/iter (± 23
)0.99
es/lexer/angular
6316600
ns/iter (± 1752
)6345124
ns/iter (± 2930
)1.00
es/lexer/backbone
777122
ns/iter (± 291
)779903
ns/iter (± 560
)1.00
es/lexer/jquery
4367738
ns/iter (± 2311
)4375616
ns/iter (± 17390
)1.00
es/lexer/jquery mobile
6805913
ns/iter (± 3954
)6822050
ns/iter (± 11308
)1.00
es/lexer/mootools
3413916
ns/iter (± 1115
)3432484
ns/iter (± 2582
)0.99
es/lexer/underscore
643955
ns/iter (± 2227
)645259
ns/iter (± 292
)1.00
es/lexer/three
20682074
ns/iter (± 18182
)20649906
ns/iter (± 7066
)1.00
es/lexer/yui
3811512
ns/iter (± 15465
)3835968
ns/iter (± 3223
)0.99
es/parser/colors
29007
ns/iter (± 124
)28511
ns/iter (± 60
)1.02
es/parser/angular
15131606
ns/iter (± 153769
)14947977
ns/iter (± 154079
)1.01
es/parser/backbone
2146744
ns/iter (± 11918
)2164948
ns/iter (± 15158
)0.99
es/parser/jquery
12005720
ns/iter (± 179808
)11765740
ns/iter (± 135012
)1.02
es/parser/jquery mobile
19217572
ns/iter (± 258163
)18424580
ns/iter (± 156670
)1.04
es/parser/mootools
8934562
ns/iter (± 25957
)8932125
ns/iter (± 32048
)1.00
es/parser/underscore
1815985
ns/iter (± 9304
)1822427
ns/iter (± 9673
)1.00
es/parser/three
55777560
ns/iter (± 326598
)53760489
ns/iter (± 441668
)1.04
es/parser/yui
9054058
ns/iter (± 80812
)8966886
ns/iter (± 52897
)1.01
es/preset-env/usage/builtin_type
145565
ns/iter (± 34581
)145235
ns/iter (± 35174
)1.00
es/preset-env/usage/property
21006
ns/iter (± 63
)21104
ns/iter (± 107
)1.00
es/resolver/typescript
121375498
ns/iter (± 2609756
)111539249
ns/iter (± 1980711
)1.09
es/fixer/typescript
87895778
ns/iter (± 1993675
)79927142
ns/iter (± 3192747
)1.10
es/hygiene/typescript
190054824
ns/iter (± 1070914
)176664109
ns/iter (± 3734612
)1.08
es/resolver_with_hygiene/typescript
330346195
ns/iter (± 2317008
)307210402
ns/iter (± 2686664
)1.08
es/visitor/base-perf/module_clone
81143
ns/iter (± 507
)80932
ns/iter (± 368
)1.00
es/visitor/base-perf/fold_empty
90330
ns/iter (± 382
)90792
ns/iter (± 930
)0.99
es/visitor/base-perf/fold_noop_impl_all
90755
ns/iter (± 287
)90748
ns/iter (± 332
)1.00
es/visitor/base-perf/fold_noop_impl_vec
90489
ns/iter (± 495
)91489
ns/iter (± 318
)0.99
es/visitor/base-perf/boxing_boxed_clone
58
ns/iter (± 0
)56
ns/iter (± 0
)1.04
es/visitor/base-perf/boxing_unboxed_clone
43
ns/iter (± 0
)42
ns/iter (± 0
)1.02
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
)78
ns/iter (± 0
)1
es/visitor/base-perf/visit_contains_this
3446
ns/iter (± 67
)3518
ns/iter (± 60
)0.98
es/base/parallel/resolver/typescript
6266369265
ns/iter (± 568116739
)5960677271
ns/iter (± 506314201
)1.05
es/base/parallel/hygiene/typescript
2218254561
ns/iter (± 29379558
)2024342669
ns/iter (± 31855275
)1.10
misc/visitors/time-complexity/time 5
102
ns/iter (± 0
)109
ns/iter (± 0
)0.94
misc/visitors/time-complexity/time 10
339
ns/iter (± 0
)355
ns/iter (± 0
)0.95
misc/visitors/time-complexity/time 15
659
ns/iter (± 0
)682
ns/iter (± 0
)0.97
misc/visitors/time-complexity/time 20
1236
ns/iter (± 27
)1266
ns/iter (± 21
)0.98
misc/visitors/time-complexity/time 40
6715
ns/iter (± 44
)6827
ns/iter (± 80
)0.98
misc/visitors/time-complexity/time 60
17214
ns/iter (± 132
)17320
ns/iter (± 148
)0.99
es/full-target/es2016
252122
ns/iter (± 423
)253859
ns/iter (± 304
)0.99
es/full-target/es2017
245040
ns/iter (± 444
)245370
ns/iter (± 331
)1.00
es/full-target/es2018
235263
ns/iter (± 514
)235364
ns/iter (± 497
)1.00
es2020_nullish_coalescing
92571
ns/iter (± 173
)93579
ns/iter (± 269
)0.99
es2020_optional_chaining
124396
ns/iter (± 211
)124365
ns/iter (± 275
)1.00
es2022_class_properties
148573
ns/iter (± 315
)149493
ns/iter (± 315
)0.99
es2018_object_rest_spread
95984
ns/iter (± 224
)96430
ns/iter (± 218
)1.00
es2019_optional_catch_binding
85028
ns/iter (± 212
)85597
ns/iter (± 198
)0.99
es2017_async_to_generator
85440
ns/iter (± 150
)85920
ns/iter (± 217
)0.99
es2016_exponentiation
90448
ns/iter (± 279
)90756
ns/iter (± 296
)1.00
es2015_arrow
93830
ns/iter (± 277
)94546
ns/iter (± 315
)0.99
es2015_block_scoped_fn
91716
ns/iter (± 768
)92490
ns/iter (± 197
)0.99
es2015_block_scoping
166759
ns/iter (± 233
)170357
ns/iter (± 250
)0.98
This comment was automatically generated by workflow using github-action-benchmark.