Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
71 additions
and
0 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
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,31 @@ | ||
use swc_common::{chain, DUMMY_SP}; | ||
use swc_ecma_ast::{Module, Program}; | ||
use swc_ecma_visit::{Visit, VisitWith}; | ||
|
||
#[test] | ||
fn should_visit_program() { | ||
struct Pass1<'a>(&'a mut usize); | ||
struct Pass2; | ||
|
||
impl<'a> Visit for Pass1<'a> { | ||
fn visit_program(&mut self, _program: &Program) { | ||
*self.0 += 1; | ||
} | ||
} | ||
|
||
impl Visit for Pass2 {} | ||
|
||
let n = Program::Module(Module { | ||
span: DUMMY_SP, | ||
body: vec![], | ||
shebang: None, | ||
}); | ||
|
||
let mut counter = 0; | ||
let p1 = Pass1(&mut counter); | ||
let p2 = Pass2; | ||
let mut pass = chain!(p1, p2); | ||
n.visit_with(&mut pass); | ||
|
||
assert_eq!(counter, 1); | ||
} |
d50689e
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
302346
ns/iter (± 22348
)294792
ns/iter (± 8692
)1.03
es/full/minify/libraries/antd
1493029808
ns/iter (± 10259250
)1636485310
ns/iter (± 19211180
)0.91
es/full/minify/libraries/d3
290961039
ns/iter (± 4702439
)299706338
ns/iter (± 4528581
)0.97
es/full/minify/libraries/echarts
1162218856
ns/iter (± 13702972
)1227852490
ns/iter (± 9988016
)0.95
es/full/minify/libraries/jquery
89076585
ns/iter (± 696229
)89557235
ns/iter (± 518929
)0.99
es/full/minify/libraries/lodash
102946416
ns/iter (± 988108
)105039736
ns/iter (± 950168
)0.98
es/full/minify/libraries/moment
51229014
ns/iter (± 277945
)52120501
ns/iter (± 479065
)0.98
es/full/minify/libraries/react
18857335
ns/iter (± 69067
)18954445
ns/iter (± 121474
)0.99
es/full/minify/libraries/terser
237085100
ns/iter (± 2422916
)244169630
ns/iter (± 1616264
)0.97
es/full/minify/libraries/three
410755373
ns/iter (± 4675368
)440597634
ns/iter (± 5181987
)0.93
es/full/minify/libraries/typescript
2848573413
ns/iter (± 20581620
)3092986821
ns/iter (± 19635304
)0.92
es/full/minify/libraries/victory
617902093
ns/iter (± 10956438
)664834940
ns/iter (± 9001330
)0.93
es/full/minify/libraries/vue
127505099
ns/iter (± 854231
)130773228
ns/iter (± 1284448
)0.98
es/full/codegen/es3
26576
ns/iter (± 110
)26663
ns/iter (± 75
)1.00
es/full/codegen/es5
26648
ns/iter (± 71
)26815
ns/iter (± 106
)0.99
es/full/codegen/es2015
26415
ns/iter (± 123
)26818
ns/iter (± 47
)0.98
es/full/codegen/es2016
26521
ns/iter (± 113
)26767
ns/iter (± 51
)0.99
es/full/codegen/es2017
26362
ns/iter (± 160
)26791
ns/iter (± 39
)0.98
es/full/codegen/es2018
26356
ns/iter (± 96
)26843
ns/iter (± 70
)0.98
es/full/codegen/es2019
26424
ns/iter (± 189
)26825
ns/iter (± 63
)0.99
es/full/codegen/es2020
26407
ns/iter (± 207
)26809
ns/iter (± 64
)0.99
es/full/all/es3
181671721
ns/iter (± 2953735
)182181569
ns/iter (± 2545629
)1.00
es/full/all/es5
172273484
ns/iter (± 3431854
)172512583
ns/iter (± 3312106
)1.00
es/full/all/es2015
136774789
ns/iter (± 1967896
)136990129
ns/iter (± 1538485
)1.00
es/full/all/es2016
135549168
ns/iter (± 1566014
)133809188
ns/iter (± 2725141
)1.01
es/full/all/es2017
134303317
ns/iter (± 1952082
)133201251
ns/iter (± 1635445
)1.01
es/full/all/es2018
129167147
ns/iter (± 2624101
)128644649
ns/iter (± 2317575
)1.00
es/full/all/es2019
128172715
ns/iter (± 2311319
)127822448
ns/iter (± 1628042
)1.00
es/full/all/es2020
117851741
ns/iter (± 767862
)119083468
ns/iter (± 1311019
)0.99
es/full/parser
527427
ns/iter (± 7707
)532861
ns/iter (± 8529
)0.99
es/full/base/fixer
23548
ns/iter (± 171
)22066
ns/iter (± 50
)1.07
es/full/base/resolver_and_hygiene
83548
ns/iter (± 442
)82280
ns/iter (± 265
)1.02
serialization of ast node
123
ns/iter (± 0
)124
ns/iter (± 1
)0.99
serialization of serde
125
ns/iter (± 0
)127
ns/iter (± 0
)0.98
css/minify/libraries/bootstrap
28023524
ns/iter (± 125601
)28433894
ns/iter (± 129566
)0.99
css/visitor/compare/clone
2056060
ns/iter (± 14831
)2103256
ns/iter (± 11933
)0.98
css/visitor/compare/visit_mut_span
2250148
ns/iter (± 25994
)2284649
ns/iter (± 7592
)0.98
css/visitor/compare/visit_mut_span_panic
2282428
ns/iter (± 12347
)2371497
ns/iter (± 38970
)0.96
css/visitor/compare/fold_span
3008825
ns/iter (± 31157
)3089656
ns/iter (± 21659
)0.97
css/visitor/compare/fold_span_panic
3165960
ns/iter (± 31324
)3204298
ns/iter (± 21575
)0.99
css/lexer/bootstrap_5_1_3
5072462
ns/iter (± 11923
)5107644
ns/iter (± 7300
)0.99
css/lexer/foundation_6_7_4
4272425
ns/iter (± 26028
)4310392
ns/iter (± 21208
)0.99
css/lexer/tailwind_3_1_1
810431
ns/iter (± 5731
)816063
ns/iter (± 2974
)0.99
css/parser/bootstrap_5_1_3
21535820
ns/iter (± 166825
)21908482
ns/iter (± 85971
)0.98
css/parser/foundation_6_7_4
17104856
ns/iter (± 87729
)17405984
ns/iter (± 58679
)0.98
css/parser/tailwind_3_1_1
3317039
ns/iter (± 18373
)3354250
ns/iter (± 8071
)0.99
es/codegen/colors
324054
ns/iter (± 183159
)327358
ns/iter (± 184774
)0.99
es/codegen/large
1161727
ns/iter (± 606627
)1207352
ns/iter (± 615510
)0.96
es/codegen/with-parser/colors
46706
ns/iter (± 362
)46786
ns/iter (± 225
)1.00
es/codegen/with-parser/large
512422
ns/iter (± 2321
)520005
ns/iter (± 1523
)0.99
es/minify/libraries/antd
1312178875
ns/iter (± 12054356
)1409765201
ns/iter (± 12111197
)0.93
es/minify/libraries/d3
243499234
ns/iter (± 2512296
)262948367
ns/iter (± 3148450
)0.93
es/minify/libraries/echarts
979667194
ns/iter (± 8089462
)1093902891
ns/iter (± 14164344
)0.90
es/minify/libraries/jquery
76633744
ns/iter (± 489088
)79071891
ns/iter (± 478849
)0.97
es/minify/libraries/lodash
92012410
ns/iter (± 735749
)95564818
ns/iter (± 479153
)0.96
es/minify/libraries/moment
44765857
ns/iter (± 219756
)46052848
ns/iter (± 242089
)0.97
es/minify/libraries/react
16700777
ns/iter (± 113893
)17062332
ns/iter (± 57505
)0.98
es/minify/libraries/terser
202829056
ns/iter (± 2688596
)211035135
ns/iter (± 1345431
)0.96
es/minify/libraries/three
337905586
ns/iter (± 4616802
)371088341
ns/iter (± 4289014
)0.91
es/minify/libraries/typescript
2412247148
ns/iter (± 15842881
)2632948971
ns/iter (± 5676888
)0.92
es/minify/libraries/victory
515372570
ns/iter (± 5357179
)600225162
ns/iter (± 8288276
)0.86
es/minify/libraries/vue
111846714
ns/iter (± 1358470
)116677725
ns/iter (± 1233421
)0.96
es/visitor/compare/clone
2279343
ns/iter (± 25743
)2318201
ns/iter (± 19068
)0.98
es/visitor/compare/visit_mut_span
2639929
ns/iter (± 14670
)2661323
ns/iter (± 7688
)0.99
es/visitor/compare/visit_mut_span_panic
2698631
ns/iter (± 9537
)2703329
ns/iter (± 9033
)1.00
es/visitor/compare/fold_span
3759974
ns/iter (± 18095
)3780523
ns/iter (± 15571
)0.99
es/visitor/compare/fold_span_panic
3903049
ns/iter (± 14360
)3925816
ns/iter (± 12460
)0.99
es/lexer/colors
15324
ns/iter (± 82
)15399
ns/iter (± 12
)1.00
es/lexer/angular
7309904
ns/iter (± 34368
)7399315
ns/iter (± 7875
)0.99
es/lexer/backbone
980702
ns/iter (± 3614
)987351
ns/iter (± 522
)0.99
es/lexer/jquery
5517005
ns/iter (± 45851
)5556336
ns/iter (± 4400
)0.99
es/lexer/jquery mobile
8421544
ns/iter (± 42110
)8556375
ns/iter (± 4849
)0.98
es/lexer/mootools
4352364
ns/iter (± 27506
)4410428
ns/iter (± 11005
)0.99
es/lexer/underscore
819948
ns/iter (± 4643
)832504
ns/iter (± 517
)0.98
es/lexer/three
25739524
ns/iter (± 154602
)26154534
ns/iter (± 37513
)0.98
es/lexer/yui
4620799
ns/iter (± 16325
)4653380
ns/iter (± 5278
)0.99
es/parser/colors
28981
ns/iter (± 151
)29164
ns/iter (± 46
)0.99
es/parser/angular
14889287
ns/iter (± 136051
)17152675
ns/iter (± 285922
)0.87
es/parser/backbone
2181746
ns/iter (± 12229
)2280165
ns/iter (± 21192
)0.96
es/parser/jquery
11951947
ns/iter (± 98360
)13850924
ns/iter (± 423405
)0.86
es/parser/jquery mobile
18513662
ns/iter (± 159268
)21727797
ns/iter (± 377531
)0.85
es/parser/mootools
9160362
ns/iter (± 40936
)10070037
ns/iter (± 101046
)0.91
es/parser/underscore
1848937
ns/iter (± 15532
)1900777
ns/iter (± 8524
)0.97
es/parser/three
52871480
ns/iter (± 893039
)56601175
ns/iter (± 497544
)0.93
es/parser/yui
9074301
ns/iter (± 58403
)9253553
ns/iter (± 72728
)0.98
es/preset-env/usage/builtin_type
138929
ns/iter (± 32613
)143235
ns/iter (± 34211
)0.97
es/preset-env/usage/property
20396
ns/iter (± 117
)21418
ns/iter (± 90
)0.95
es/resolver/typescript
109764339
ns/iter (± 2540558
)125503207
ns/iter (± 3501918
)0.87
es/fixer/typescript
76385650
ns/iter (± 503962
)90878441
ns/iter (± 2676079
)0.84
es/hygiene/typescript
161169780
ns/iter (± 1126345
)191030363
ns/iter (± 2460193
)0.84
es/resolver_with_hygiene/typescript
303390702
ns/iter (± 2676898
)349503752
ns/iter (± 2007629
)0.87
es/visitor/base-perf/module_clone
79118
ns/iter (± 3471
)79928
ns/iter (± 687
)0.99
es/visitor/base-perf/fold_empty
87995
ns/iter (± 849
)89494
ns/iter (± 1264
)0.98
es/visitor/base-perf/fold_noop_impl_all
89584
ns/iter (± 1344
)89308
ns/iter (± 1374
)1.00
es/visitor/base-perf/fold_noop_impl_vec
90782
ns/iter (± 1403
)90240
ns/iter (± 1094
)1.01
es/visitor/base-perf/boxing_boxed_clone
55
ns/iter (± 0
)56
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed_clone
53
ns/iter (± 0
)53
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
102
ns/iter (± 0
)103
ns/iter (± 0
)0.99
es/visitor/base-perf/boxing_unboxed
95
ns/iter (± 0
)99
ns/iter (± 0
)0.96
es/visitor/base-perf/visit_contains_this
3437
ns/iter (± 65
)3509
ns/iter (± 88
)0.98
es/base/parallel/resolver/typescript
6352093598
ns/iter (± 456585124
)7097046157
ns/iter (± 545388083
)0.90
es/base/parallel/hygiene/typescript
1946022808
ns/iter (± 26733812
)2180118476
ns/iter (± 12676137
)0.89
misc/visitors/time-complexity/time 5
95
ns/iter (± 0
)95
ns/iter (± 0
)1
misc/visitors/time-complexity/time 10
291
ns/iter (± 1
)292
ns/iter (± 4
)1.00
misc/visitors/time-complexity/time 15
601
ns/iter (± 2
)599
ns/iter (± 16
)1.00
misc/visitors/time-complexity/time 20
1198
ns/iter (± 5
)1127
ns/iter (± 53
)1.06
misc/visitors/time-complexity/time 40
5952
ns/iter (± 53
)5969
ns/iter (± 26
)1.00
misc/visitors/time-complexity/time 60
15247
ns/iter (± 127
)15561
ns/iter (± 27
)0.98
es/full-target/es2016
248358
ns/iter (± 1879
)250746
ns/iter (± 501
)0.99
es/full-target/es2017
239163
ns/iter (± 1412
)242502
ns/iter (± 836
)0.99
es/full-target/es2018
228322
ns/iter (± 1215
)231992
ns/iter (± 355
)0.98
es2020_nullish_coalescing
90422
ns/iter (± 509
)90741
ns/iter (± 435
)1.00
es2020_optional_chaining
122895
ns/iter (± 1003
)124351
ns/iter (± 442
)0.99
es2022_class_properties
144265
ns/iter (± 824
)146822
ns/iter (± 227
)0.98
es2018_object_rest_spread
93903
ns/iter (± 181
)94731
ns/iter (± 173
)0.99
es2019_optional_catch_binding
84069
ns/iter (± 174
)83942
ns/iter (± 202
)1.00
es2017_async_to_generator
84293
ns/iter (± 396
)84468
ns/iter (± 236
)1.00
es2016_exponentiation
88524
ns/iter (± 587
)88685
ns/iter (± 246
)1.00
es2015_arrow
91712
ns/iter (± 484
)93072
ns/iter (± 534
)0.99
es2015_block_scoped_fn
89546
ns/iter (± 698
)90115
ns/iter (± 467
)0.99
es2015_block_scoping
166989
ns/iter (± 826
)169646
ns/iter (± 349
)0.98
This comment was automatically generated by workflow using github-action-benchmark.