@@ -6,7 +6,6 @@ use std::{
6
6
fmt:: { self , Debug , Display , Formatter } ,
7
7
} ;
8
8
9
- use enum_kind:: Kind ;
10
9
use num_bigint:: BigInt as BigIntValue ;
11
10
use swc_atoms:: { js_word, Atom , JsWord } ;
12
11
use swc_common:: { Span , Spanned } ;
@@ -16,17 +15,14 @@ use swc_ecma_ast::BinaryOp;
16
15
pub ( crate ) use self :: { AssignOpToken :: * , BinOpToken :: * , Keyword :: * , Token :: * } ;
17
16
use crate :: { error:: Error , lexer:: LexResult } ;
18
17
19
- #[ derive( Kind , Clone , PartialEq ) ]
20
- #[ kind( functions( starts_expr = "bool" , before_expr = "bool" ) ) ]
18
+ #[ derive( Clone , PartialEq ) ]
21
19
pub enum Token {
22
20
/// Identifier, "null", "true", "false".
23
21
///
24
22
/// Contains `null` and ``
25
- #[ kind( delegate) ]
26
23
Word ( Word ) ,
27
24
28
25
/// '=>'
29
- #[ kind( before_expr) ]
30
26
Arrow ,
31
27
32
28
/// '#'
@@ -38,93 +34,72 @@ pub enum Token {
38
34
Dot ,
39
35
40
36
/// '...'
41
- #[ kind( before_expr) ]
42
37
DotDotDot ,
43
38
/// '!'
44
- #[ kind( before_expr, starts_expr) ]
45
39
Bang ,
46
40
47
41
/// '('
48
- #[ kind( before_expr, starts_expr) ]
49
42
LParen ,
50
43
/// ')'
51
44
RParen ,
52
45
/// `[`
53
- #[ kind( before_expr, starts_expr) ]
54
46
LBracket ,
55
47
/// ']'
56
48
RBracket ,
57
49
/// '{'
58
- #[ kind( before_expr, starts_expr) ]
59
50
LBrace ,
60
51
/// '}'
61
52
RBrace ,
62
53
63
54
/// ';'
64
- #[ kind( before_expr) ]
65
55
Semi ,
66
56
/// ','
67
- #[ kind( before_expr) ]
68
57
Comma ,
69
58
70
59
/// '`'
71
- #[ kind( starts_expr) ]
72
60
BackQuote ,
73
61
Template {
74
62
raw : Atom ,
75
63
cooked : LexResult < Atom > ,
76
64
} ,
77
65
/// ':'
78
- #[ kind( before_expr) ]
79
66
Colon ,
80
67
/// '::'
81
- #[ kind( before_expr) ]
82
68
ColonColon ,
83
69
///
84
- #[ kind( delegate) ]
85
70
BinOp ( BinOpToken ) ,
86
71
///
87
- #[ kind( before_expr) ]
88
72
AssignOp ( AssignOpToken ) ,
89
73
90
74
/// '${'
91
- #[ kind( before_expr, starts_expr) ]
92
75
DollarLBrace ,
93
76
94
77
/// '?'
95
- #[ kind( before_expr) ]
96
78
QuestionMark ,
97
79
98
80
/// `++`
99
- #[ kind( before_expr, starts_expr) ]
100
81
PlusPlus ,
101
82
/// `--`
102
- #[ kind( before_expr, starts_expr) ]
103
83
MinusMinus ,
104
84
105
85
/// `~`
106
- #[ kind( before_expr, starts_expr) ]
107
86
Tilde ,
108
87
109
88
/// String literal. Span of this token contains quote.
110
- #[ kind( starts_expr) ]
111
89
Str {
112
90
value : JsWord ,
113
91
raw : Atom ,
114
92
} ,
115
93
116
94
/// Regexp literal.
117
- #[ kind( starts_expr) ]
118
95
Regex ( Atom , Atom ) ,
119
96
120
97
/// TODO: Make Num as enum and separate decimal, binary, ..etc
121
- #[ kind( starts_expr) ]
122
98
Num {
123
99
value : f64 ,
124
100
raw : Atom ,
125
101
} ,
126
102
127
- #[ kind( starts_expr) ]
128
103
BigInt {
129
104
value : Box < BigIntValue > ,
130
105
raw : Atom ,
@@ -133,20 +108,66 @@ pub enum Token {
133
108
JSXName {
134
109
name : JsWord ,
135
110
} ,
136
- #[ kind( before_expr) ]
137
111
JSXText {
138
112
raw : Atom ,
139
113
} ,
140
- #[ kind( starts_expr) ]
141
114
JSXTagStart ,
142
115
JSXTagEnd ,
143
116
144
117
Shebang ( Atom ) ,
145
118
Error ( Error ) ,
146
119
}
147
120
148
- #[ derive( Kind , Debug , Clone , Copy , Eq , PartialEq , Hash ) ]
149
- #[ kind( functions( starts_expr = "bool" ) ) ]
121
+ impl Token {
122
+ pub ( crate ) const fn before_expr ( & self ) -> bool {
123
+ match self {
124
+ Self :: Word ( w) => w. before_expr ( ) ,
125
+ Self :: BinOp ( w) => w. before_expr ( ) ,
126
+ Self :: Arrow
127
+ | Self :: DotDotDot
128
+ | Self :: Bang
129
+ | Self :: LParen
130
+ | Self :: LBrace
131
+ | Self :: LBracket
132
+ | Self :: Semi
133
+ | Self :: Comma
134
+ | Self :: Colon
135
+ | Self :: ColonColon
136
+ | Self :: AssignOp ( ..)
137
+ | Self :: DollarLBrace
138
+ | Self :: QuestionMark
139
+ | Self :: PlusPlus
140
+ | Self :: MinusMinus
141
+ | Self :: Tilde
142
+ | Self :: JSXText { .. } => true ,
143
+ _ => false ,
144
+ }
145
+ }
146
+
147
+ pub ( crate ) const fn starts_expr ( & self ) -> bool {
148
+ match self {
149
+ Self :: Word ( w) => w. starts_expr ( ) ,
150
+ Self :: BinOp ( w) => w. starts_expr ( ) ,
151
+ Self :: Bang
152
+ | Self :: LParen
153
+ | Self :: LBrace
154
+ | Self :: LBracket
155
+ | Self :: BackQuote
156
+ | Self :: DollarLBrace
157
+ | Self :: PlusPlus
158
+ | Self :: MinusMinus
159
+ | Self :: Tilde
160
+ | Self :: Str { .. }
161
+ | Self :: Regex ( ..)
162
+ | Self :: Num { .. }
163
+ | Self :: BigInt { .. }
164
+ | Self :: JSXTagStart => true ,
165
+ _ => false ,
166
+ }
167
+ }
168
+ }
169
+
170
+ #[ derive( Debug , Clone , Copy , Eq , PartialEq , Hash ) ]
150
171
pub enum BinOpToken {
151
172
/// `==`
152
173
EqEq ,
@@ -172,10 +193,8 @@ pub enum BinOpToken {
172
193
ZeroFillRShift ,
173
194
174
195
/// `+`
175
- #[ kind( starts_expr) ]
176
196
Add ,
177
197
/// `-`
178
- #[ kind( starts_expr) ]
179
198
Sub ,
180
199
/// `*`
181
200
Mul ,
@@ -210,7 +229,11 @@ pub enum BinOpToken {
210
229
}
211
230
212
231
impl BinOpToken {
213
- pub const fn before_expr ( self ) -> bool {
232
+ pub ( crate ) const fn starts_expr ( & self ) -> bool {
233
+ matches ! ( self , Self :: Add | Self :: Sub )
234
+ }
235
+
236
+ pub ( crate ) const fn before_expr ( self ) -> bool {
214
237
true
215
238
}
216
239
}
@@ -230,23 +253,33 @@ impl Spanned for TokenAndSpan {
230
253
}
231
254
}
232
255
233
- #[ derive( Kind , Clone , PartialEq , Eq , Hash ) ]
234
- #[ kind( functions( starts_expr = "bool" , before_expr = "bool" ) ) ]
256
+ #[ derive( Clone , PartialEq , Eq , Hash ) ]
235
257
pub enum Word {
236
- #[ kind( delegate) ]
237
258
Keyword ( Keyword ) ,
238
259
239
- #[ kind( starts_expr) ]
240
260
Null ,
241
- #[ kind( starts_expr) ]
242
261
True ,
243
- #[ kind( starts_expr) ]
244
262
False ,
245
263
246
- #[ kind( starts_expr) ]
247
264
Ident ( JsWord ) ,
248
265
}
249
266
267
+ impl Word {
268
+ pub ( crate ) const fn before_expr ( & self ) -> bool {
269
+ match self {
270
+ Word :: Keyword ( k) => k. before_expr ( ) ,
271
+ _ => false ,
272
+ }
273
+ }
274
+
275
+ pub ( crate ) const fn starts_expr ( & self ) -> bool {
276
+ match self {
277
+ Word :: Keyword ( k) => k. starts_expr ( ) ,
278
+ _ => true ,
279
+ }
280
+ }
281
+ }
282
+
250
283
impl From < JsWord > for Word {
251
284
fn from ( i : JsWord ) -> Self {
252
285
match i {
@@ -377,40 +410,30 @@ impl Debug for Word {
377
410
}
378
411
379
412
/// Keywords
380
- #[ derive( Kind , Clone , Copy , PartialEq , Eq , Hash ) ]
381
- #[ kind( function( before_expr = "bool" , starts_expr = "bool" ) ) ]
413
+ #[ derive( Clone , Copy , PartialEq , Eq , Hash ) ]
382
414
pub enum Keyword {
383
415
/// Spec says this might be identifier.
384
- #[ kind( before_expr, starts_expr) ]
385
416
Await ,
386
-
387
417
Break ,
388
- #[ kind( before_expr) ]
389
418
Case ,
390
419
Catch ,
391
420
Continue ,
392
421
Debugger ,
393
- #[ kind( before_expr) ]
394
422
Default_ ,
395
- #[ kind( before_expr) ]
396
423
Do ,
397
- #[ kind( before_expr) ]
398
424
Else ,
399
425
400
426
Finally ,
401
427
For ,
402
428
403
- #[ kind( starts_expr) ]
404
429
Function ,
405
430
406
431
If ,
407
432
408
- #[ kind( before_expr) ]
409
433
Return ,
410
434
411
435
Switch ,
412
436
413
- #[ kind( before_expr, starts_expr) ]
414
437
Throw ,
415
438
416
439
Try ,
@@ -420,44 +443,68 @@ pub enum Keyword {
420
443
While ,
421
444
With ,
422
445
423
- #[ kind( before_expr, starts_expr) ]
424
446
New ,
425
- #[ kind( starts_expr) ]
426
447
This ,
427
- #[ kind( starts_expr) ]
428
448
Super ,
429
449
430
- #[ kind( starts_expr) ]
431
450
Class ,
432
451
433
- #[ kind( before_expr) ]
434
452
Extends ,
435
453
436
454
Export ,
437
- #[ kind( starts_expr) ]
438
455
Import ,
439
456
440
457
/// Spec says this might be identifier.
441
- #[ kind( before_expr, starts_expr) ]
442
458
Yield ,
443
459
444
- #[ kind( before_expr) ]
445
460
In ,
446
- #[ kind( before_expr) ]
447
461
InstanceOf ,
448
-
449
- #[ kind( before_expr, starts_expr) ]
450
462
TypeOf ,
451
-
452
- #[ kind( before_expr, starts_expr) ]
453
463
Void ,
454
-
455
- #[ kind( before_expr, starts_expr) ]
456
464
Delete ,
457
465
}
458
466
459
467
impl Keyword {
460
- pub ( crate ) fn into_js_word ( self ) -> JsWord {
468
+ pub ( crate ) const fn before_expr ( & self ) -> bool {
469
+ matches ! (
470
+ self ,
471
+ Self :: Await
472
+ | Self :: Case
473
+ | Self :: Default_
474
+ | Self :: Do
475
+ | Self :: Else
476
+ | Self :: Return
477
+ | Self :: Throw
478
+ | Self :: New
479
+ | Self :: Extends
480
+ | Self :: Yield
481
+ | Self :: In
482
+ | Self :: InstanceOf
483
+ | Self :: TypeOf
484
+ | Self :: Void
485
+ | Self :: Delete
486
+ )
487
+ }
488
+
489
+ pub ( crate ) const fn starts_expr ( & self ) -> bool {
490
+ matches ! (
491
+ self ,
492
+ Self :: Await
493
+ | Self :: Function
494
+ | Self :: Throw
495
+ | Self :: New
496
+ | Self :: This
497
+ | Self :: Super
498
+ | Self :: Class
499
+ | Self :: Import
500
+ | Self :: Yield
501
+ | Self :: TypeOf
502
+ | Self :: Void
503
+ | Self :: Delete
504
+ )
505
+ }
506
+
507
+ pub ( crate ) const fn into_js_word ( self ) -> JsWord {
461
508
match self {
462
509
Await => js_word ! ( "await" ) ,
463
510
Break => js_word ! ( "break" ) ,
1 commit comments
github-actions[bot] commentedon Mar 24, 2023
Benchmark
es/full/bugs-1
300846
ns/iter (± 7717
)315323
ns/iter (± 6430
)0.95
es/full/minify/libraries/antd
1479115392
ns/iter (± 12787975
)1569610948
ns/iter (± 19467873
)0.94
es/full/minify/libraries/d3
287499574
ns/iter (± 7257839
)299419103
ns/iter (± 4311538
)0.96
es/full/minify/libraries/echarts
1146739455
ns/iter (± 13730371
)1202365221
ns/iter (± 8302934
)0.95
es/full/minify/libraries/jquery
89522581
ns/iter (± 584030
)91587950
ns/iter (± 724273
)0.98
es/full/minify/libraries/lodash
103899708
ns/iter (± 1436847
)106031434
ns/iter (± 2093594
)0.98
es/full/minify/libraries/moment
51509933
ns/iter (± 267214
)53049652
ns/iter (± 678799
)0.97
es/full/minify/libraries/react
18863355
ns/iter (± 134540
)19287456
ns/iter (± 176139
)0.98
es/full/minify/libraries/terser
237453491
ns/iter (± 4829318
)247454291
ns/iter (± 1879704
)0.96
es/full/minify/libraries/three
415375516
ns/iter (± 3835100
)433871947
ns/iter (± 4225323
)0.96
es/full/minify/libraries/typescript
2875622091
ns/iter (± 13249709
)2947579584
ns/iter (± 10990184
)0.98
es/full/minify/libraries/victory
620840968
ns/iter (± 5830673
)660403306
ns/iter (± 9229098
)0.94
es/full/minify/libraries/vue
127723764
ns/iter (± 1178946
)133399476
ns/iter (± 1042471
)0.96
es/full/codegen/es3
28433
ns/iter (± 147
)28776
ns/iter (± 95
)0.99
es/full/codegen/es5
28449
ns/iter (± 173
)28920
ns/iter (± 151
)0.98
es/full/codegen/es2015
28179
ns/iter (± 192
)28864
ns/iter (± 91
)0.98
es/full/codegen/es2016
28221
ns/iter (± 124
)28858
ns/iter (± 84
)0.98
es/full/codegen/es2017
28213
ns/iter (± 152
)28854
ns/iter (± 74
)0.98
es/full/codegen/es2018
28094
ns/iter (± 106
)28927
ns/iter (± 66
)0.97
es/full/codegen/es2019
28434
ns/iter (± 167
)28865
ns/iter (± 72
)0.99
es/full/codegen/es2020
28034
ns/iter (± 158
)28907
ns/iter (± 74
)0.97
es/full/all/es3
181201651
ns/iter (± 2078411
)185648491
ns/iter (± 2928418
)0.98
es/full/all/es5
175080985
ns/iter (± 1459635
)175159197
ns/iter (± 3557475
)1.00
es/full/all/es2015
136730915
ns/iter (± 2316395
)139310574
ns/iter (± 2786085
)0.98
es/full/all/es2016
134422588
ns/iter (± 1460800
)138231538
ns/iter (± 1628856
)0.97
es/full/all/es2017
132109563
ns/iter (± 1691235
)137224712
ns/iter (± 2081055
)0.96
es/full/all/es2018
126501463
ns/iter (± 1147883
)132559155
ns/iter (± 2051957
)0.95
es/full/all/es2019
125658841
ns/iter (± 2124096
)131027966
ns/iter (± 2003315
)0.96
es/full/all/es2020
119626373
ns/iter (± 1932720
)121990756
ns/iter (± 1829782
)0.98
es/full/parser
526675
ns/iter (± 7959
)538233
ns/iter (± 9156
)0.98
es/full/base/fixer
22601
ns/iter (± 82
)22704
ns/iter (± 60
)1.00
es/full/base/resolver_and_hygiene
82324
ns/iter (± 225
)82992
ns/iter (± 105
)0.99
serialization of ast node
124
ns/iter (± 0
)124
ns/iter (± 1
)1
serialization of serde
125
ns/iter (± 0
)126
ns/iter (± 0
)0.99
css/minify/libraries/bootstrap
28358977
ns/iter (± 148465
)29049545
ns/iter (± 118867
)0.98
css/visitor/compare/clone
2093499
ns/iter (± 7153
)2097823
ns/iter (± 20488
)1.00
css/visitor/compare/visit_mut_span
2311648
ns/iter (± 7671
)2265959
ns/iter (± 8142
)1.02
css/visitor/compare/visit_mut_span_panic
2357921
ns/iter (± 13274
)2327552
ns/iter (± 5191
)1.01
css/visitor/compare/fold_span
3081334
ns/iter (± 27727
)3034099
ns/iter (± 18924
)1.02
css/visitor/compare/fold_span_panic
3183882
ns/iter (± 40105
)3232526
ns/iter (± 21977
)0.98
css/lexer/bootstrap_5_1_3
5153914
ns/iter (± 15836
)5180354
ns/iter (± 4826
)0.99
css/lexer/foundation_6_7_4
4343933
ns/iter (± 3025
)4368360
ns/iter (± 22958
)0.99
css/lexer/tailwind_3_1_1
824702
ns/iter (± 483
)827535
ns/iter (± 550
)1.00
css/parser/bootstrap_5_1_3
21856830
ns/iter (± 244201
)22250375
ns/iter (± 165055
)0.98
css/parser/foundation_6_7_4
17453385
ns/iter (± 70633
)17741174
ns/iter (± 121932
)0.98
css/parser/tailwind_3_1_1
3330771
ns/iter (± 2467
)3382022
ns/iter (± 5396
)0.98
es/codegen/colors
322669
ns/iter (± 183813
)328732
ns/iter (± 184084
)0.98
es/codegen/large
1239053
ns/iter (± 638766
)1171946
ns/iter (± 594834
)1.06
es/codegen/with-parser/colors
48246
ns/iter (± 319
)47789
ns/iter (± 448
)1.01
es/codegen/with-parser/large
529593
ns/iter (± 1572
)522765
ns/iter (± 1366
)1.01
es/minify/libraries/antd
1320451245
ns/iter (± 59050614
)1372840843
ns/iter (± 19733567
)0.96
es/minify/libraries/d3
248806777
ns/iter (± 2009562
)256952643
ns/iter (± 1768696
)0.97
es/minify/libraries/echarts
1002208829
ns/iter (± 12443495
)1051914303
ns/iter (± 10652007
)0.95
es/minify/libraries/jquery
77510425
ns/iter (± 706394
)79214024
ns/iter (± 390762
)0.98
es/minify/libraries/lodash
93468395
ns/iter (± 1378017
)94427887
ns/iter (± 760874
)0.99
es/minify/libraries/moment
45259015
ns/iter (± 301338
)45928014
ns/iter (± 526926
)0.99
es/minify/libraries/react
16740688
ns/iter (± 181879
)17128136
ns/iter (± 161710
)0.98
es/minify/libraries/terser
201087256
ns/iter (± 2315661
)211126949
ns/iter (± 1815042
)0.95
es/minify/libraries/three
344634466
ns/iter (± 8708344
)364691696
ns/iter (± 12567378
)0.95
es/minify/libraries/typescript
2500569629
ns/iter (± 25684466
)2577839705
ns/iter (± 13513438
)0.97
es/minify/libraries/victory
558526829
ns/iter (± 30863092
)604721027
ns/iter (± 6666373
)0.92
es/minify/libraries/vue
115340637
ns/iter (± 3313671
)121115283
ns/iter (± 2878289
)0.95
es/visitor/compare/clone
2344367
ns/iter (± 11848
)2333069
ns/iter (± 11452
)1.00
es/visitor/compare/visit_mut_span
2756721
ns/iter (± 64434
)2708603
ns/iter (± 6975
)1.02
es/visitor/compare/visit_mut_span_panic
2725224
ns/iter (± 18663
)2733576
ns/iter (± 6323
)1.00
es/visitor/compare/fold_span
3804709
ns/iter (± 14955
)3840092
ns/iter (± 8983
)0.99
es/visitor/compare/fold_span_panic
3913463
ns/iter (± 17338
)3988930
ns/iter (± 16142
)0.98
es/lexer/colors
15318
ns/iter (± 163
)15315
ns/iter (± 11
)1.00
es/lexer/angular
7491391
ns/iter (± 39109
)7374241
ns/iter (± 5203
)1.02
es/lexer/backbone
965758
ns/iter (± 3765
)982291
ns/iter (± 638
)0.98
es/lexer/jquery
5413912
ns/iter (± 25559
)5536021
ns/iter (± 1408
)0.98
es/lexer/jquery mobile
8434889
ns/iter (± 41020
)8496848
ns/iter (± 3012
)0.99
es/lexer/mootools
4273826
ns/iter (± 21298
)4392421
ns/iter (± 21092
)0.97
es/lexer/underscore
815093
ns/iter (± 4199
)826173
ns/iter (± 2193
)0.99
es/lexer/three
25527760
ns/iter (± 119339
)26077684
ns/iter (± 9913
)0.98
es/lexer/yui
4643644
ns/iter (± 13650
)4653886
ns/iter (± 3426
)1.00
es/parser/colors
28858
ns/iter (± 186
)29477
ns/iter (± 18
)0.98
es/parser/angular
14869059
ns/iter (± 135090
)15677874
ns/iter (± 220113
)0.95
es/parser/backbone
2171435
ns/iter (± 19624
)2247605
ns/iter (± 14429
)0.97
es/parser/jquery
11860099
ns/iter (± 116541
)12548874
ns/iter (± 119709
)0.95
es/parser/jquery mobile
18716421
ns/iter (± 227420
)20327311
ns/iter (± 297493
)0.92
es/parser/mootools
9135580
ns/iter (± 33224
)9376481
ns/iter (± 53397
)0.97
es/parser/underscore
1868152
ns/iter (± 10567
)1896791
ns/iter (± 11096
)0.98
es/parser/three
55644755
ns/iter (± 148088
)57569070
ns/iter (± 129948
)0.97
es/parser/yui
9089341
ns/iter (± 40675
)9461557
ns/iter (± 178489
)0.96
es/preset-env/usage/builtin_type
141405
ns/iter (± 34190
)142411
ns/iter (± 34306
)0.99
es/preset-env/usage/property
20605
ns/iter (± 82
)21078
ns/iter (± 135
)0.98
es/resolver/typescript
115072322
ns/iter (± 1998078
)120544105
ns/iter (± 3341382
)0.95
es/fixer/typescript
80114862
ns/iter (± 2926722
)81278461
ns/iter (± 822772
)0.99
es/hygiene/typescript
166935246
ns/iter (± 1985004
)174011916
ns/iter (± 1973410
)0.96
es/resolver_with_hygiene/typescript
313866224
ns/iter (± 3338626
)316261369
ns/iter (± 3063587
)0.99
es/visitor/base-perf/module_clone
80601
ns/iter (± 1854
)79819
ns/iter (± 1637
)1.01
es/visitor/base-perf/fold_empty
89540
ns/iter (± 1598
)88782
ns/iter (± 1287
)1.01
es/visitor/base-perf/fold_noop_impl_all
91247
ns/iter (± 1138
)90342
ns/iter (± 1836
)1.01
es/visitor/base-perf/fold_noop_impl_vec
91614
ns/iter (± 1028
)91073
ns/iter (± 1127
)1.01
es/visitor/base-perf/boxing_boxed_clone
57
ns/iter (± 0
)56
ns/iter (± 0
)1.02
es/visitor/base-perf/boxing_unboxed_clone
54
ns/iter (± 0
)54
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
100
ns/iter (± 0
)101
ns/iter (± 0
)0.99
es/visitor/base-perf/boxing_unboxed
97
ns/iter (± 0
)98
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_contains_this
3333
ns/iter (± 63
)3476
ns/iter (± 93
)0.96
es/base/parallel/resolver/typescript
6877933065
ns/iter (± 424645495
)6352565857
ns/iter (± 354731913
)1.08
es/base/parallel/hygiene/typescript
1966309984
ns/iter (± 17762635
)2009172220
ns/iter (± 28090662
)0.98
misc/visitors/time-complexity/time 5
89
ns/iter (± 0
)93
ns/iter (± 0
)0.96
misc/visitors/time-complexity/time 10
305
ns/iter (± 4
)308
ns/iter (± 3
)0.99
misc/visitors/time-complexity/time 15
599
ns/iter (± 4
)678
ns/iter (± 1
)0.88
misc/visitors/time-complexity/time 20
1163
ns/iter (± 20
)1158
ns/iter (± 17
)1.00
misc/visitors/time-complexity/time 40
5733
ns/iter (± 113
)5738
ns/iter (± 44
)1.00
misc/visitors/time-complexity/time 60
12969
ns/iter (± 73
)12946
ns/iter (± 105
)1.00
es/full-target/es2016
249797
ns/iter (± 1979
)247960
ns/iter (± 579
)1.01
es/full-target/es2017
239908
ns/iter (± 1741
)240579
ns/iter (± 436
)1.00
es/full-target/es2018
227521
ns/iter (± 1120
)230277
ns/iter (± 429
)0.99
es2020_nullish_coalescing
90109
ns/iter (± 545
)91904
ns/iter (± 510
)0.98
es2020_optional_chaining
122938
ns/iter (± 728
)124121
ns/iter (± 520
)0.99
es2022_class_properties
144523
ns/iter (± 973
)146341
ns/iter (± 147
)0.99
es2018_object_rest_spread
92332
ns/iter (± 505
)95183
ns/iter (± 213
)0.97
es2019_optional_catch_binding
82453
ns/iter (± 592
)84737
ns/iter (± 133
)0.97
es2017_async_to_generator
83182
ns/iter (± 877
)85099
ns/iter (± 191
)0.98
es2016_exponentiation
87628
ns/iter (± 329
)89437
ns/iter (± 270
)0.98
es2015_arrow
91398
ns/iter (± 582
)93670
ns/iter (± 210
)0.98
es2015_block_scoped_fn
89338
ns/iter (± 487
)91314
ns/iter (± 183
)0.98
es2015_block_scoping
167559
ns/iter (± 507
)168548
ns/iter (± 201
)0.99
This comment was automatically generated by workflow using github-action-benchmark.