1
1
#![ feature( box_patterns) ]
2
2
3
3
use rustc_hash:: FxHashMap ;
4
- use serde:: Serialize ;
5
4
use swc_atoms:: { js_word, JsWord } ;
6
- use swc_common:: util:: take:: Take ;
5
+ use swc_common:: { util:: take:: Take , Span } ;
7
6
use swc_css_ast:: {
8
7
ComplexSelector , ComplexSelectorChildren , ComponentValue , Declaration , DeclarationName ,
9
8
Delimiter , DelimiterValue , FunctionName , Ident , KeyframesName , PseudoClassSelectorChildren ,
@@ -28,19 +27,18 @@ pub trait TransformConfig {
28
27
// ComponentValue;
29
28
}
30
29
31
- #[ derive( Debug , Clone , PartialEq , Eq , PartialOrd , Ord , Hash , Serialize ) ]
32
- #[ serde( tag = "type" , rename_all = "camelCase" ) ]
30
+ #[ derive( Debug , Clone , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
33
31
pub enum CssClassName {
34
32
Local {
35
33
/// Tranformed css class name
36
- name : JsWord ,
34
+ name : Ident ,
37
35
} ,
38
36
Global {
39
- name : JsWord ,
37
+ name : Ident ,
40
38
} ,
41
39
Import {
42
40
/// The exported class name. This is the value specified by the user.
43
- name : JsWord ,
41
+ name : Ident ,
44
42
/// The module specifier.
45
43
from : JsWord ,
46
44
} ,
100
98
n. raw = None ;
101
99
102
100
rename (
101
+ n. span ,
103
102
& mut self . config ,
104
103
& mut self . result ,
105
104
& mut self . data . orig_to_renamed ,
@@ -111,6 +110,7 @@ where
111
110
n. raw = None ;
112
111
113
112
rename (
113
+ n. span ,
114
114
& mut self . config ,
115
115
& mut self . result ,
116
116
& mut self . data . orig_to_renamed ,
@@ -265,11 +265,9 @@ where
265
265
ComponentValue :: Str ( import_source) ,
266
266
) => {
267
267
for class_name in n. value . iter ( ) . take ( n. value . len ( ) - 2 ) {
268
- if let ComponentValue :: Ident ( box Ident { value, .. } ) =
269
- class_name
270
- {
268
+ if let ComponentValue :: Ident ( value) = class_name {
271
269
composes_for_current. push ( CssClassName :: Import {
272
- name : value. clone ( ) ,
270
+ name : * value. clone ( ) ,
273
271
from : import_source. value . clone ( ) ,
274
272
} ) ;
275
273
}
@@ -288,11 +286,9 @@ where
288
286
} ) ,
289
287
) => {
290
288
for class_name in n. value . iter ( ) . take ( n. value . len ( ) - 2 ) {
291
- if let ComponentValue :: Ident ( box Ident { value, .. } ) =
292
- class_name
293
- {
289
+ if let ComponentValue :: Ident ( value) = class_name {
294
290
composes_for_current. push ( CssClassName :: Global {
295
- name : value. clone ( ) ,
291
+ name : * value. clone ( ) ,
296
292
} ) ;
297
293
}
298
294
}
@@ -303,10 +299,14 @@ where
303
299
}
304
300
305
301
for class_name in n. value . iter ( ) {
306
- if let ComponentValue :: Ident ( box Ident { value, .. } ) = class_name {
302
+ if let ComponentValue :: Ident ( box Ident { span , value, .. } ) = class_name {
307
303
if let Some ( value) = self . data . orig_to_renamed . get ( value) {
308
304
composes_for_current. push ( CssClassName :: Local {
309
- name : value. clone ( ) ,
305
+ name : Ident {
306
+ span : * span,
307
+ value : value. clone ( ) ,
308
+ raw : None ,
309
+ } ,
310
310
} ) ;
311
311
}
312
312
}
@@ -328,7 +328,9 @@ where
328
328
329
329
for v in & mut n. value {
330
330
match v {
331
- ComponentValue :: Ident ( box Ident { value, raw, .. } ) => {
331
+ ComponentValue :: Ident ( box Ident {
332
+ span, value, raw, ..
333
+ } ) => {
332
334
if !can_change {
333
335
continue ;
334
336
}
@@ -388,6 +390,7 @@ where
388
390
* raw = None ;
389
391
390
392
rename (
393
+ * span,
391
394
& mut self . config ,
392
395
& mut self . result ,
393
396
& mut self . data . orig_to_renamed ,
@@ -438,10 +441,14 @@ where
438
441
}
439
442
js_word ! ( "animation-name" ) => {
440
443
for v in & mut n. value {
441
- if let ComponentValue :: Ident ( box Ident { value, raw, .. } ) = v {
444
+ if let ComponentValue :: Ident ( box Ident {
445
+ span, value, raw, ..
446
+ } ) = v
447
+ {
442
448
* raw = None ;
443
449
444
450
rename (
451
+ * span,
445
452
& mut self . config ,
446
453
& mut self . result ,
447
454
& mut self . data . orig_to_renamed ,
@@ -565,6 +572,7 @@ where
565
572
}
566
573
567
574
fn rename < C > (
575
+ span : Span ,
568
576
config : & mut C ,
569
577
result : & mut TransformResult ,
570
578
orig_to_renamed : & mut FxHashMap < JsWord , JsWord > ,
@@ -586,7 +594,13 @@ fn rename<C>(
586
594
{
587
595
let e = result. renamed . entry ( name. clone ( ) ) . or_default ( ) ;
588
596
589
- let v = CssClassName :: Local { name : new. clone ( ) } ;
597
+ let v = CssClassName :: Local {
598
+ name : Ident {
599
+ span,
600
+ value : new. clone ( ) ,
601
+ raw : None ,
602
+ } ,
603
+ } ;
590
604
if !e. contains ( & v) {
591
605
e. push ( v) ;
592
606
}
@@ -609,6 +623,7 @@ fn process_local<C>(
609
623
sel. text . raw = None ;
610
624
611
625
rename (
626
+ sel. span ,
612
627
config,
613
628
result,
614
629
orig_to_renamed,
@@ -620,6 +635,7 @@ fn process_local<C>(
620
635
sel. text . raw = None ;
621
636
622
637
rename (
638
+ sel. span ,
623
639
config,
624
640
result,
625
641
orig_to_renamed,
1 commit comments
github-actions[bot] commentedon Apr 1, 2023
Benchmark
es/full/bugs-1
308518
ns/iter (± 5262
)319640
ns/iter (± 7150
)0.97
es/full/minify/libraries/antd
1618657672
ns/iter (± 40418617
)1726344554
ns/iter (± 10561559
)0.94
es/full/minify/libraries/d3
298840073
ns/iter (± 7936825
)323931996
ns/iter (± 4661319
)0.92
es/full/minify/libraries/echarts
1226898101
ns/iter (± 17894600
)1325201138
ns/iter (± 8392097
)0.93
es/full/minify/libraries/jquery
90277760
ns/iter (± 521093
)100419271
ns/iter (± 2201704
)0.90
es/full/minify/libraries/lodash
104815922
ns/iter (± 912919
)114339196
ns/iter (± 2217249
)0.92
es/full/minify/libraries/moment
52346299
ns/iter (± 423367
)57279717
ns/iter (± 1159558
)0.91
es/full/minify/libraries/react
19138856
ns/iter (± 227146
)20530480
ns/iter (± 388203
)0.93
es/full/minify/libraries/terser
248247521
ns/iter (± 3636671
)281659173
ns/iter (± 3220533
)0.88
es/full/minify/libraries/three
434551669
ns/iter (± 3377169
)514723601
ns/iter (± 8546985
)0.84
es/full/minify/libraries/typescript
3085532926
ns/iter (± 60312318
)3214993155
ns/iter (± 39668692
)0.96
es/full/minify/libraries/victory
704530067
ns/iter (± 11596938
)744374271
ns/iter (± 12072637
)0.95
es/full/minify/libraries/vue
132311610
ns/iter (± 1241176
)146259233
ns/iter (± 1401424
)0.90
es/full/codegen/es3
28789
ns/iter (± 57
)28788
ns/iter (± 94
)1.00
es/full/codegen/es5
28937
ns/iter (± 39
)28822
ns/iter (± 55
)1.00
es/full/codegen/es2015
28896
ns/iter (± 47
)28817
ns/iter (± 61
)1.00
es/full/codegen/es2016
28905
ns/iter (± 38
)28841
ns/iter (± 63
)1.00
es/full/codegen/es2017
28790
ns/iter (± 69
)28863
ns/iter (± 48
)1.00
es/full/codegen/es2018
28925
ns/iter (± 62
)28796
ns/iter (± 55
)1.00
es/full/codegen/es2019
28842
ns/iter (± 80
)28863
ns/iter (± 51
)1.00
es/full/codegen/es2020
28844
ns/iter (± 49
)28838
ns/iter (± 49
)1.00
es/full/all/es3
180580662
ns/iter (± 2351385
)181173783
ns/iter (± 4573435
)1.00
es/full/all/es5
170547068
ns/iter (± 2784161
)173563835
ns/iter (± 3461751
)0.98
es/full/all/es2015
134320395
ns/iter (± 2096706
)133250644
ns/iter (± 2618505
)1.01
es/full/all/es2016
130730819
ns/iter (± 5604847
)134658935
ns/iter (± 3663162
)0.97
es/full/all/es2017
132278857
ns/iter (± 1663664
)131076265
ns/iter (± 2336010
)1.01
es/full/all/es2018
125214455
ns/iter (± 1847700
)126530134
ns/iter (± 1018461
)0.99
es/full/all/es2019
124151561
ns/iter (± 2126899
)125942342
ns/iter (± 982743
)0.99
es/full/all/es2020
116930865
ns/iter (± 675254
)118520078
ns/iter (± 1078796
)0.99
es/full/parser
517571
ns/iter (± 8678
)518430
ns/iter (± 9278
)1.00
es/full/base/fixer
22634
ns/iter (± 54
)22659
ns/iter (± 31
)1.00
es/full/base/resolver_and_hygiene
83764
ns/iter (± 171
)85357
ns/iter (± 84
)0.98
serialization of serde
126
ns/iter (± 0
)126
ns/iter (± 0
)1
css/minify/libraries/bootstrap
27472937
ns/iter (± 118756
)28550237
ns/iter (± 206194
)0.96
css/visitor/compare/clone
2149341
ns/iter (± 7396
)2135819
ns/iter (± 17211
)1.01
css/visitor/compare/visit_mut_span
2313866
ns/iter (± 6592
)2363945
ns/iter (± 10295
)0.98
css/visitor/compare/visit_mut_span_panic
2377476
ns/iter (± 48690
)2381459
ns/iter (± 4263
)1.00
css/visitor/compare/fold_span
3088903
ns/iter (± 12000
)3097252
ns/iter (± 24038
)1.00
css/visitor/compare/fold_span_panic
3286742
ns/iter (± 15002
)3288468
ns/iter (± 14268
)1.00
css/lexer/bootstrap_5_1_3
5139974
ns/iter (± 28215
)5127739
ns/iter (± 17179
)1.00
css/lexer/foundation_6_7_4
4329641
ns/iter (± 2664
)4315051
ns/iter (± 2953
)1.00
css/lexer/tailwind_3_1_1
822982
ns/iter (± 1023
)820416
ns/iter (± 467
)1.00
css/parser/bootstrap_5_1_3
20912642
ns/iter (± 55083
)21912567
ns/iter (± 106670
)0.95
css/parser/foundation_6_7_4
16804827
ns/iter (± 208160
)17243412
ns/iter (± 78088
)0.97
css/parser/tailwind_3_1_1
3221675
ns/iter (± 3038
)3208342
ns/iter (± 5229
)1.00
es/codegen/colors
318092
ns/iter (± 180851
)319195
ns/iter (± 179658
)1.00
es/codegen/large
1278025
ns/iter (± 638888
)1108834
ns/iter (± 553706
)1.15
es/codegen/with-parser/colors
46839
ns/iter (± 336
)47391
ns/iter (± 104
)0.99
es/codegen/with-parser/large
508458
ns/iter (± 1469
)510664
ns/iter (± 1650
)1.00
es/minify/libraries/antd
1428047242
ns/iter (± 48440549
)1554411977
ns/iter (± 21720740
)0.92
es/minify/libraries/d3
253226985
ns/iter (± 4129214
)283503715
ns/iter (± 3056566
)0.89
es/minify/libraries/echarts
1076650813
ns/iter (± 15075787
)1147105523
ns/iter (± 7195882
)0.94
es/minify/libraries/jquery
78774305
ns/iter (± 510272
)85285603
ns/iter (± 887372
)0.92
es/minify/libraries/lodash
94091429
ns/iter (± 515591
)101769111
ns/iter (± 1910453
)0.92
es/minify/libraries/moment
45428124
ns/iter (± 420796
)47037527
ns/iter (± 496431
)0.97
es/minify/libraries/react
17039051
ns/iter (± 189833
)17721400
ns/iter (± 217209
)0.96
es/minify/libraries/terser
208628727
ns/iter (± 2663152
)227810590
ns/iter (± 2176494
)0.92
es/minify/libraries/three
359759426
ns/iter (± 3565709
)409644998
ns/iter (± 6446489
)0.88
es/minify/libraries/typescript
2616041810
ns/iter (± 15188129
)2710772256
ns/iter (± 16365195
)0.97
es/minify/libraries/victory
570016089
ns/iter (± 11792975
)643034972
ns/iter (± 7629931
)0.89
es/minify/libraries/vue
115094218
ns/iter (± 657153
)120150639
ns/iter (± 1564301
)0.96
es/visitor/compare/clone
2320256
ns/iter (± 7677
)2361211
ns/iter (± 16070
)0.98
es/visitor/compare/visit_mut_span
2704710
ns/iter (± 5796
)2723003
ns/iter (± 8174
)0.99
es/visitor/compare/visit_mut_span_panic
2728456
ns/iter (± 2172
)2782484
ns/iter (± 12330
)0.98
es/visitor/compare/fold_span
3788494
ns/iter (± 13854
)3850667
ns/iter (± 21907
)0.98
es/visitor/compare/fold_span_panic
3931931
ns/iter (± 6808
)4016819
ns/iter (± 58524
)0.98
es/lexer/colors
13115
ns/iter (± 13
)13100
ns/iter (± 15
)1.00
es/lexer/angular
6398592
ns/iter (± 7314
)6407649
ns/iter (± 3214
)1.00
es/lexer/backbone
766827
ns/iter (± 652
)767754
ns/iter (± 600
)1.00
es/lexer/jquery
4311618
ns/iter (± 1820
)4326775
ns/iter (± 6123
)1.00
es/lexer/jquery mobile
6749973
ns/iter (± 7837
)6768438
ns/iter (± 5453
)1.00
es/lexer/mootools
3415719
ns/iter (± 2022
)3411408
ns/iter (± 24834
)1.00
es/lexer/underscore
634231
ns/iter (± 231
)633554
ns/iter (± 383
)1.00
es/lexer/three
20524357
ns/iter (± 19427
)20588356
ns/iter (± 12252
)1.00
es/lexer/yui
3837992
ns/iter (± 1346
)3835597
ns/iter (± 5982
)1.00
es/parser/colors
28529
ns/iter (± 99
)28620
ns/iter (± 148
)1.00
es/parser/angular
14986657
ns/iter (± 176217
)15831337
ns/iter (± 292628
)0.95
es/parser/backbone
2164748
ns/iter (± 20346
)2154059
ns/iter (± 10522
)1.00
es/parser/jquery
11686919
ns/iter (± 133893
)11994324
ns/iter (± 384937
)0.97
es/parser/jquery mobile
18270061
ns/iter (± 220408
)19689832
ns/iter (± 208056
)0.93
es/parser/mootools
8857632
ns/iter (± 20665
)8950141
ns/iter (± 64218
)0.99
es/parser/underscore
1814800
ns/iter (± 14864
)1810161
ns/iter (± 8761
)1.00
es/parser/three
53443028
ns/iter (± 845450
)56262059
ns/iter (± 688752
)0.95
es/parser/yui
8974021
ns/iter (± 59228
)9119986
ns/iter (± 68342
)0.98
es/preset-env/usage/builtin_type
144111
ns/iter (± 34326
)143545
ns/iter (± 33774
)1.00
es/preset-env/usage/property
21214
ns/iter (± 65
)20390
ns/iter (± 90
)1.04
es/resolver/typescript
119434908
ns/iter (± 2414700
)127056930
ns/iter (± 4015100
)0.94
es/fixer/typescript
86814490
ns/iter (± 610088
)86912428
ns/iter (± 470601
)1.00
es/hygiene/typescript
190336323
ns/iter (± 2892377
)200724923
ns/iter (± 2274196
)0.95
es/resolver_with_hygiene/typescript
321832300
ns/iter (± 2687353
)338863316
ns/iter (± 776061
)0.95
es/visitor/base-perf/module_clone
80983
ns/iter (± 600
)80751
ns/iter (± 369
)1.00
es/visitor/base-perf/fold_empty
90903
ns/iter (± 250
)90949
ns/iter (± 395
)1.00
es/visitor/base-perf/fold_noop_impl_all
91274
ns/iter (± 388
)90880
ns/iter (± 484
)1.00
es/visitor/base-perf/fold_noop_impl_vec
91441
ns/iter (± 445
)91747
ns/iter (± 349
)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
104
ns/iter (± 0
)105
ns/iter (± 0
)0.99
es/visitor/base-perf/boxing_unboxed
78
ns/iter (± 0
)80
ns/iter (± 0
)0.97
es/visitor/base-perf/visit_contains_this
3650
ns/iter (± 64
)3356
ns/iter (± 81
)1.09
es/base/parallel/resolver/typescript
6457017670
ns/iter (± 515271659
)5758831979
ns/iter (± 543405085
)1.12
es/base/parallel/hygiene/typescript
2176684035
ns/iter (± 16616356
)2253374882
ns/iter (± 25398573
)0.97
misc/visitors/time-complexity/time 5
104
ns/iter (± 0
)105
ns/iter (± 10
)0.99
misc/visitors/time-complexity/time 10
326
ns/iter (± 0
)326
ns/iter (± 0
)1
misc/visitors/time-complexity/time 15
661
ns/iter (± 6
)661
ns/iter (± 8
)1
misc/visitors/time-complexity/time 20
1218
ns/iter (± 3
)1221
ns/iter (± 2
)1.00
misc/visitors/time-complexity/time 40
6216
ns/iter (± 27
)6200
ns/iter (± 14
)1.00
misc/visitors/time-complexity/time 60
15585
ns/iter (± 19
)15577
ns/iter (± 11
)1.00
es/full-target/es2016
252365
ns/iter (± 1700
)253256
ns/iter (± 378
)1.00
es/full-target/es2017
246342
ns/iter (± 364
)246019
ns/iter (± 329
)1.00
es/full-target/es2018
234916
ns/iter (± 374
)234988
ns/iter (± 240
)1.00
es2020_nullish_coalescing
92634
ns/iter (± 287
)92697
ns/iter (± 267
)1.00
es2020_optional_chaining
124332
ns/iter (± 107
)124239
ns/iter (± 215
)1.00
es2022_class_properties
149017
ns/iter (± 185
)147928
ns/iter (± 251
)1.01
es2018_object_rest_spread
96319
ns/iter (± 225
)96590
ns/iter (± 251
)1.00
es2019_optional_catch_binding
85295
ns/iter (± 285
)85373
ns/iter (± 140
)1.00
es2017_async_to_generator
85939
ns/iter (± 305
)85953
ns/iter (± 176
)1.00
es2016_exponentiation
90044
ns/iter (± 198
)90452
ns/iter (± 100
)1.00
es2015_arrow
93812
ns/iter (± 341
)94191
ns/iter (± 255
)1.00
es2015_block_scoped_fn
91810
ns/iter (± 202
)92120
ns/iter (± 307
)1.00
es2015_block_scoping
169290
ns/iter (± 405
)169871
ns/iter (± 430
)1.00
This comment was automatically generated by workflow using github-action-benchmark.