|
| 1 | +//! Lookup table for byte handlers. |
| 2 | +//! |
| 3 | +//! Idea is taken from ratel. |
| 4 | +//! |
| 5 | +//! https://github.com/ratel-rust/ratel-core/blob/e55a1310ba69a3f5ce2a9a6eef643feced02ac08/ratel/src/lexer/mod.rs#L665 |
| 6 | +
|
| 7 | +use either::Either; |
| 8 | +use swc_common::input::Input; |
| 9 | + |
| 10 | +use super::{pos_span, util::CharExt, LexResult, Lexer}; |
| 11 | +use crate::{ |
| 12 | + error::SyntaxError, |
| 13 | + token::{AssignOpToken, BinOpToken, Token}, |
| 14 | +}; |
| 15 | + |
| 16 | +pub(super) type ByteHandler = Option<for<'aa> fn(&mut Lexer<'aa>) -> LexResult<Option<Token>>>; |
| 17 | + |
| 18 | +/// Lookup table mapping any incoming byte to a handler function defined below. |
| 19 | +pub(super) static BYTE_HANDLERS: [ByteHandler; 256] = [ |
| 20 | + // 0 1 2 3 4 5 6 7 8 9 A B C D E F // |
| 21 | + EOF, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, // 0 |
| 22 | + ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, // 1 |
| 23 | + ___, EXL, QOT, HSH, IDT, PRC, AMP, QOT, PNO, PNC, ATR, PLS, COM, MIN, PRD, SLH, // 2 |
| 24 | + ZER, DIG, DIG, DIG, DIG, DIG, DIG, DIG, DIG, DIG, COL, SEM, LSS, EQL, MOR, QST, // 3 |
| 25 | + AT_, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, // 4 |
| 26 | + IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, BTO, IDT, BTC, CRT, IDT, // 5 |
| 27 | + TPL, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, // 6 |
| 28 | + IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, IDT, BEO, PIP, BEC, TLD, ERR, // 7 |
| 29 | + UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, // 8 |
| 30 | + UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, // 9 |
| 31 | + UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, // A |
| 32 | + UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, // B |
| 33 | + UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, // C |
| 34 | + UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, // D |
| 35 | + UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, // E |
| 36 | + UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, UNI, // F |
| 37 | +]; |
| 38 | + |
| 39 | +const ___: ByteHandler = None; |
| 40 | + |
| 41 | +const EOF: ByteHandler = Some(|lexer| { |
| 42 | + lexer.input.bump_bytes(1); |
| 43 | + |
| 44 | + Ok(None) |
| 45 | +}); |
| 46 | + |
| 47 | +const ERR: ByteHandler = Some(|lexer| { |
| 48 | + let c = unsafe { |
| 49 | + // Safety: Byte handler is only called for non-last chracters |
| 50 | + lexer.input.cur().unwrap_unchecked() |
| 51 | + }; |
| 52 | + |
| 53 | + let start = lexer.cur_pos(); |
| 54 | + lexer.input.bump(); |
| 55 | + lexer.error_span(pos_span(start), SyntaxError::UnexpectedChar { c })? |
| 56 | +}); |
| 57 | + |
| 58 | +/// Identifier |
| 59 | +const IDT: ByteHandler = Some(|lexer| lexer.read_ident_or_keyword().map(Some)); |
| 60 | + |
| 61 | +/// `0` |
| 62 | +const ZER: ByteHandler = Some(|lexer| lexer.read_token_zero().map(Some)); |
| 63 | + |
| 64 | +/// Numbers |
| 65 | +const DIG: ByteHandler = Some(|lexer| { |
| 66 | + lexer |
| 67 | + .read_number(false) |
| 68 | + .map(|v| match v { |
| 69 | + Either::Left((value, raw)) => Token::Num { value, raw }, |
| 70 | + Either::Right((value, raw)) => Token::BigInt { value, raw }, |
| 71 | + }) |
| 72 | + .map(Some) |
| 73 | +}); |
| 74 | + |
| 75 | +/// String literals with `'` or `"` |
| 76 | +const QOT: ByteHandler = Some(|lexer| lexer.read_str_lit().map(Some)); |
| 77 | + |
| 78 | +/// Unicode |
| 79 | +const UNI: ByteHandler = Some(|lexer| { |
| 80 | + let c = unsafe { |
| 81 | + // Safety: Byte handler is only called for non-last chracters |
| 82 | + lexer.input.cur().unwrap_unchecked() |
| 83 | + }; |
| 84 | + |
| 85 | + // Identifier or keyword. '\uXXXX' sequences are allowed in |
| 86 | + // identifiers, so '\' also dispatches to that. |
| 87 | + if c == '\\' || c.is_ident_start() { |
| 88 | + return lexer.read_ident_or_keyword().map(Some); |
| 89 | + } |
| 90 | + |
| 91 | + let start = lexer.cur_pos(); |
| 92 | + lexer.input.bump(); |
| 93 | + lexer.error_span(pos_span(start), SyntaxError::UnexpectedChar { c })? |
| 94 | +}); |
| 95 | + |
| 96 | +/// `:` |
| 97 | +const COL: ByteHandler = Some(|lexer| lexer.read_token_colon().map(Some)); |
| 98 | + |
| 99 | +/// `%` |
| 100 | +const PRC: ByteHandler = Some(|lexer| lexer.read_token_mul_mod(b'%').map(Some)); |
| 101 | + |
| 102 | +/// `*` |
| 103 | +const ATR: ByteHandler = Some(|lexer| lexer.read_token_mul_mod(b'*').map(Some)); |
| 104 | + |
| 105 | +/// `?` |
| 106 | +const QST: ByteHandler = Some(|lexer| lexer.read_token_question_mark().map(Some)); |
| 107 | + |
| 108 | +/// `&` |
| 109 | +const AMP: ByteHandler = Some(|lexer| lexer.read_token_logical(b'&').map(Some)); |
| 110 | + |
| 111 | +/// `|` |
| 112 | +const PIP: ByteHandler = Some(|lexer| lexer.read_token_logical(b'|').map(Some)); |
| 113 | + |
| 114 | +macro_rules! single_char { |
| 115 | + ($name:ident, $c:literal, $token:ident) => { |
| 116 | + const $name: ByteHandler = Some(|lexer| { |
| 117 | + lexer.input.bump_bytes(1); |
| 118 | + Ok(Some(Token::$token)) |
| 119 | + }); |
| 120 | + }; |
| 121 | +} |
| 122 | + |
| 123 | +single_char!(SEM, b';', Semi); |
| 124 | +single_char!(COM, b',', Comma); |
| 125 | +single_char!(TPL, b'`', BackQuote); |
| 126 | +single_char!(TLD, b'~', Tilde); |
| 127 | +single_char!(AT_, b'@', At); |
| 128 | + |
| 129 | +single_char!(PNO, b'(', LParen); |
| 130 | +single_char!(PNC, b')', RParen); |
| 131 | + |
| 132 | +single_char!(BTO, b'[', LBracket); |
| 133 | +single_char!(BTC, b']', RBracket); |
| 134 | + |
| 135 | +single_char!(BEO, b'{', LBrace); |
| 136 | +single_char!(BEC, b'}', RBrace); |
| 137 | + |
| 138 | +/// `^` |
| 139 | +const CRT: ByteHandler = Some(|lexer| { |
| 140 | + // Bitwise xor |
| 141 | + lexer.input.bump_bytes(1); |
| 142 | + Ok(Some(if lexer.input.cur_as_ascii() == Some(b'=') { |
| 143 | + lexer.input.bump_bytes(1); |
| 144 | + Token::AssignOp(AssignOpToken::BitXorAssign) |
| 145 | + } else { |
| 146 | + Token::BinOp(BinOpToken::BitXor) |
| 147 | + })) |
| 148 | +}); |
| 149 | + |
| 150 | +/// `+` |
| 151 | +const PLS: ByteHandler = Some(|lexer| lexer.read_token_plus_minus(b'+')); |
| 152 | + |
| 153 | +/// `-` |
| 154 | +const MIN: ByteHandler = Some(|lexer| lexer.read_token_plus_minus(b'-')); |
| 155 | + |
| 156 | +/// `!` |
| 157 | +const EXL: ByteHandler = Some(|lexer| lexer.read_token_bang_or_eq(b'!')); |
| 158 | + |
| 159 | +/// `=` |
| 160 | +const EQL: ByteHandler = Some(|lexer| lexer.read_token_bang_or_eq(b'=')); |
| 161 | + |
| 162 | +/// `.` |
| 163 | +const PRD: ByteHandler = Some(|lexer| lexer.read_token_dot().map(Some)); |
| 164 | + |
| 165 | +/// `<` |
| 166 | +const LSS: ByteHandler = Some(|lexer| lexer.read_token_lt_gt()); |
| 167 | + |
| 168 | +/// `>` |
| 169 | +const MOR: ByteHandler = Some(|lexer| lexer.read_token_lt_gt()); |
| 170 | + |
| 171 | +/// `/` |
| 172 | +const SLH: ByteHandler = Some(|lexer| lexer.read_slash()); |
| 173 | + |
| 174 | +/// `#` |
| 175 | +const HSH: ByteHandler = Some(|lexer| lexer.read_token_number_sign()); |
1 commit comments
github-actions[bot] commentedon Mar 11, 2023
Benchmark
es/full/bugs-1
316228
ns/iter (± 8679
)301755
ns/iter (± 7533
)1.05
es/full/minify/libraries/antd
1589467448
ns/iter (± 21828492
)1439697968
ns/iter (± 30162675
)1.10
es/full/minify/libraries/d3
303569507
ns/iter (± 8096583
)283195212
ns/iter (± 5600633
)1.07
es/full/minify/libraries/echarts
1232522903
ns/iter (± 13889498
)1116629304
ns/iter (± 25024911
)1.10
es/full/minify/libraries/jquery
91945402
ns/iter (± 640136
)86571867
ns/iter (± 1150905
)1.06
es/full/minify/libraries/lodash
106431008
ns/iter (± 1089162
)100583171
ns/iter (± 1316174
)1.06
es/full/minify/libraries/moment
52847404
ns/iter (± 548584
)49933985
ns/iter (± 593495
)1.06
es/full/minify/libraries/react
19420114
ns/iter (± 256531
)18501213
ns/iter (± 88764
)1.05
es/full/minify/libraries/terser
250062904
ns/iter (± 4420099
)229445993
ns/iter (± 4158921
)1.09
es/full/minify/libraries/three
442376180
ns/iter (± 13549322
)402659824
ns/iter (± 8750555
)1.10
es/full/minify/libraries/typescript
2988207883
ns/iter (± 21239955
)2763199193
ns/iter (± 16208770
)1.08
es/full/minify/libraries/victory
669356674
ns/iter (± 8720596
)584791192
ns/iter (± 5894515
)1.14
es/full/minify/libraries/vue
132808567
ns/iter (± 949060
)122080456
ns/iter (± 765656
)1.09
es/full/codegen/es3
26178
ns/iter (± 64
)25206
ns/iter (± 171
)1.04
es/full/codegen/es5
26292
ns/iter (± 51
)25518
ns/iter (± 127
)1.03
es/full/codegen/es2015
26259
ns/iter (± 59
)25089
ns/iter (± 134
)1.05
es/full/codegen/es2016
26272
ns/iter (± 67
)25179
ns/iter (± 241
)1.04
es/full/codegen/es2017
26243
ns/iter (± 31
)25450
ns/iter (± 373
)1.03
es/full/codegen/es2018
26286
ns/iter (± 58
)25319
ns/iter (± 93
)1.04
es/full/codegen/es2019
26224
ns/iter (± 64
)25863
ns/iter (± 513
)1.01
es/full/codegen/es2020
26261
ns/iter (± 63
)25107
ns/iter (± 284
)1.05
es/full/all/es3
174990710
ns/iter (± 2833298
)171971839
ns/iter (± 2680310
)1.02
es/full/all/es5
162172676
ns/iter (± 2623244
)165102512
ns/iter (± 3839537
)0.98
es/full/all/es2015
128334540
ns/iter (± 1987942
)125162076
ns/iter (± 2283377
)1.03
es/full/all/es2016
126678101
ns/iter (± 3093983
)123676380
ns/iter (± 1167597
)1.02
es/full/all/es2017
125185410
ns/iter (± 1206712
)122823662
ns/iter (± 1900584
)1.02
es/full/all/es2018
121617412
ns/iter (± 1232328
)120727024
ns/iter (± 1032090
)1.01
es/full/all/es2019
121599783
ns/iter (± 1140294
)120284375
ns/iter (± 1492429
)1.01
es/full/all/es2020
115930081
ns/iter (± 584043
)115529217
ns/iter (± 1798364
)1.00
es/full/parser
534538
ns/iter (± 8419
)522469
ns/iter (± 9554
)1.02
es/full/base/fixer
23614
ns/iter (± 45
)21363
ns/iter (± 164
)1.11
es/full/base/resolver_and_hygiene
82260
ns/iter (± 91
)78622
ns/iter (± 749
)1.05
serialization of ast node
124
ns/iter (± 0
)119
ns/iter (± 0
)1.04
serialization of serde
126
ns/iter (± 0
)123
ns/iter (± 0
)1.02
css/minify/libraries/bootstrap
28599230
ns/iter (± 151909
)27695250
ns/iter (± 322663
)1.03
css/visitor/compare/clone
2107060
ns/iter (± 18885
)2110859
ns/iter (± 21857
)1.00
css/visitor/compare/visit_mut_span
2291270
ns/iter (± 10869
)2249743
ns/iter (± 12837
)1.02
css/visitor/compare/visit_mut_span_panic
2374367
ns/iter (± 5203
)2322964
ns/iter (± 23638
)1.02
css/visitor/compare/fold_span
3080608
ns/iter (± 16478
)3063436
ns/iter (± 16103
)1.01
css/visitor/compare/fold_span_panic
3213037
ns/iter (± 19028
)3169562
ns/iter (± 47112
)1.01
css/lexer/bootstrap_5_1_3
5135469
ns/iter (± 1255
)5165683
ns/iter (± 43708
)0.99
css/lexer/foundation_6_7_4
4331026
ns/iter (± 1100
)4233098
ns/iter (± 21344
)1.02
css/lexer/tailwind_3_1_1
821897
ns/iter (± 531
)823517
ns/iter (± 4364
)1.00
css/parser/bootstrap_5_1_3
21850933
ns/iter (± 111987
)21614102
ns/iter (± 183708
)1.01
css/parser/foundation_6_7_4
17418079
ns/iter (± 59395
)17354493
ns/iter (± 81720
)1.00
css/parser/tailwind_3_1_1
3301752
ns/iter (± 2145
)3292173
ns/iter (± 20875
)1.00
es/codegen/colors
328906
ns/iter (± 183818
)334876
ns/iter (± 187466
)0.98
es/codegen/large
1182128
ns/iter (± 606884
)1260923
ns/iter (± 649697
)0.94
es/codegen/with-parser/colors
46063
ns/iter (± 140
)47338
ns/iter (± 550
)0.97
es/codegen/with-parser/large
510543
ns/iter (± 1324
)506480
ns/iter (± 7444
)1.01
es/minify/libraries/antd
1407877136
ns/iter (± 18223088
)1308346788
ns/iter (± 37056659
)1.08
es/minify/libraries/d3
267531585
ns/iter (± 4594788
)253544270
ns/iter (± 7167016
)1.06
es/minify/libraries/echarts
1062463529
ns/iter (± 11283751
)975686658
ns/iter (± 19471774
)1.09
es/minify/libraries/jquery
79279509
ns/iter (± 560489
)78095048
ns/iter (± 1342854
)1.02
es/minify/libraries/lodash
95332236
ns/iter (± 1925771
)92175044
ns/iter (± 1473067
)1.03
es/minify/libraries/moment
45949792
ns/iter (± 547707
)45025337
ns/iter (± 503998
)1.02
es/minify/libraries/react
17331041
ns/iter (± 172540
)16723110
ns/iter (± 149500
)1.04
es/minify/libraries/terser
214215014
ns/iter (± 4203195
)202347090
ns/iter (± 6722573
)1.06
es/minify/libraries/three
372614304
ns/iter (± 5314341
)337958233
ns/iter (± 8756811
)1.10
es/minify/libraries/typescript
2537385870
ns/iter (± 13659169
)2390063095
ns/iter (± 27458678
)1.06
es/minify/libraries/victory
589826174
ns/iter (± 9282944
)497346367
ns/iter (± 7076740
)1.19
es/minify/libraries/vue
117657732
ns/iter (± 1371028
)112739356
ns/iter (± 1680631
)1.04
es/visitor/compare/clone
2361780
ns/iter (± 13175
)2328368
ns/iter (± 15785
)1.01
es/visitor/compare/visit_mut_span
2754217
ns/iter (± 13258
)2634718
ns/iter (± 30114
)1.05
es/visitor/compare/visit_mut_span_panic
2792585
ns/iter (± 10967
)2699391
ns/iter (± 54090
)1.03
es/visitor/compare/fold_span
3843113
ns/iter (± 15907
)3728847
ns/iter (± 51797
)1.03
es/visitor/compare/fold_span_panic
4035049
ns/iter (± 27840
)3960995
ns/iter (± 21178
)1.02
es/lexer/colors
15429
ns/iter (± 13
)14977
ns/iter (± 118
)1.03
es/lexer/angular
7643427
ns/iter (± 3834
)7407273
ns/iter (± 70148
)1.03
es/lexer/backbone
982072
ns/iter (± 589
)974806
ns/iter (± 4205
)1.01
es/lexer/jquery
5485861
ns/iter (± 4034
)5410234
ns/iter (± 61918
)1.01
es/lexer/jquery mobile
8469190
ns/iter (± 5569
)8284175
ns/iter (± 56548
)1.02
es/lexer/mootools
4333424
ns/iter (± 2523
)4311684
ns/iter (± 52276
)1.01
es/lexer/underscore
824414
ns/iter (± 354
)805008
ns/iter (± 4782
)1.02
es/lexer/three
25647840
ns/iter (± 48152
)25082903
ns/iter (± 124981
)1.02
es/lexer/yui
4666269
ns/iter (± 1074
)4485420
ns/iter (± 29126
)1.04
es/parser/colors
29634
ns/iter (± 54
)29414
ns/iter (± 331
)1.01
es/parser/angular
15783425
ns/iter (± 118111
)14632438
ns/iter (± 154745
)1.08
es/parser/backbone
2250593
ns/iter (± 13205
)2188248
ns/iter (± 22795
)1.03
es/parser/jquery
12359690
ns/iter (± 99401
)11873945
ns/iter (± 89400
)1.04
es/parser/jquery mobile
19733513
ns/iter (± 253806
)18917672
ns/iter (± 248849
)1.04
es/parser/mootools
9414575
ns/iter (± 55518
)9285180
ns/iter (± 52602
)1.01
es/parser/underscore
1907420
ns/iter (± 10022
)1900956
ns/iter (± 9577
)1.00
es/parser/three
56711521
ns/iter (± 427598
)51258673
ns/iter (± 1278805
)1.11
es/parser/yui
9373301
ns/iter (± 76081
)8986198
ns/iter (± 91181
)1.04
es/preset-env/usage/builtin_type
141203
ns/iter (± 32803
)139824
ns/iter (± 32816
)1.01
es/preset-env/usage/property
21639
ns/iter (± 30
)20031
ns/iter (± 119
)1.08
es/resolver/typescript
107183732
ns/iter (± 1737405
)101347449
ns/iter (± 4068104
)1.06
es/fixer/typescript
78433217
ns/iter (± 241401
)76697188
ns/iter (± 2443291
)1.02
es/hygiene/typescript
169307006
ns/iter (± 2691387
)163268032
ns/iter (± 906797
)1.04
es/resolver_with_hygiene/typescript
306203131
ns/iter (± 2350724
)295353438
ns/iter (± 3697021
)1.04
es/visitor/base-perf/module_clone
77763
ns/iter (± 1796
)75376
ns/iter (± 1905
)1.03
es/visitor/base-perf/fold_empty
86861
ns/iter (± 1523
)85143
ns/iter (± 1684
)1.02
es/visitor/base-perf/fold_noop_impl_all
87699
ns/iter (± 1710
)84882
ns/iter (± 1332
)1.03
es/visitor/base-perf/fold_noop_impl_vec
88077
ns/iter (± 1833
)86988
ns/iter (± 1757
)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
103
ns/iter (± 0
)98
ns/iter (± 0
)1.05
es/visitor/base-perf/boxing_unboxed
97
ns/iter (± 0
)96
ns/iter (± 0
)1.01
es/visitor/base-perf/visit_contains_this
3477
ns/iter (± 90
)3493
ns/iter (± 37
)1.00
es/base/parallel/resolver/typescript
4864635544
ns/iter (± 375078788
)5285036182
ns/iter (± 495612630
)0.92
es/base/parallel/hygiene/typescript
1981060742
ns/iter (± 27958056
)1951284413
ns/iter (± 11682399
)1.02
misc/visitors/time-complexity/time 5
97
ns/iter (± 0
)102
ns/iter (± 0
)0.95
misc/visitors/time-complexity/time 10
329
ns/iter (± 0
)335
ns/iter (± 11
)0.98
misc/visitors/time-complexity/time 15
657
ns/iter (± 0
)692
ns/iter (± 22
)0.95
misc/visitors/time-complexity/time 20
1229
ns/iter (± 13
)1267
ns/iter (± 6
)0.97
misc/visitors/time-complexity/time 40
6192
ns/iter (± 2
)6749
ns/iter (± 30
)0.92
misc/visitors/time-complexity/time 60
15569
ns/iter (± 7
)17205
ns/iter (± 150
)0.90
es/full-target/es2016
189258
ns/iter (± 314
)188035
ns/iter (± 560
)1.01
es/full-target/es2017
184628
ns/iter (± 592
)182187
ns/iter (± 603
)1.01
es/full-target/es2018
173668
ns/iter (± 652
)171780
ns/iter (± 840
)1.01
es2020_nullish_coalescing
67593
ns/iter (± 127
)67021
ns/iter (± 169
)1.01
es2020_optional_chaining
96624
ns/iter (± 333
)96386
ns/iter (± 8451
)1.00
es2022_class_properties
94474
ns/iter (± 246
)93230
ns/iter (± 305
)1.01
es2018_object_rest_spread
71958
ns/iter (± 135
)71516
ns/iter (± 141
)1.01
es2019_optional_catch_binding
62357
ns/iter (± 134
)61114
ns/iter (± 208
)1.02
es2017_async_to_generator
62369
ns/iter (± 107
)61594
ns/iter (± 198
)1.01
es2016_exponentiation
66283
ns/iter (± 105
)65317
ns/iter (± 267
)1.01
es2015_arrow
70101
ns/iter (± 78
)69635
ns/iter (± 238
)1.01
es2015_block_scoped_fn
67288
ns/iter (± 156
)66181
ns/iter (± 315
)1.02
es2015_block_scoping
139444
ns/iter (± 6583
)137303
ns/iter (± 685
)1.02
es2015_classes
118229
ns/iter (± 466
)116872
ns/iter (± 301
)1.01
es2015_computed_props
62214
ns/iter (± 90
)61288
ns/iter (± 171
)1.02
es2015_destructuring
117163
ns/iter (± 389
)117451
ns/iter (± 555
)1.00
es2015_duplicate_keys
64661
ns/iter (± 124
)63499
ns/iter (± 235
)1.02
es2015_parameters
80902
ns/iter (± 122
)79652
ns/iter (± 330
)1.02
es2015_fn_name
67422
ns/iter (± 399
)66404
ns/iter (± 647
)1.02
es2015_for_of
65266
ns/iter (± 117
)64039
ns/iter (± 449
)1.02
es2015_instanceof
64445
ns/iter (± 86
)63256
ns/iter (± 221
)1.02
es2015_shorthand_property
61761
ns/iter (± 91
)60917
ns/iter (± 365
)1.01
es2015_spread
61917
ns/iter (± 77
)60938
ns/iter (± 137
)1.02
es2015_sticky_regex
63461
ns/iter (± 96
)62374
ns/iter (± 191
)1.02
es2015_typeof_symbol
63173
ns/iter (± 95
)62364
ns/iter (± 84
)1.01
es/transform/baseline/base
52620
ns/iter (± 56
)51490
ns/iter (± 227
)1.02
es/transform/baseline/common_reserved_word
63636
ns/iter (± 110
)63052
ns/iter (± 131
)1.01
es/transform/baseline/common_typescript
142833
ns/iter (± 354
)167511
ns/iter (± 397
)0.85
es/target/es3
170781
ns/iter (± 170
)169466
ns/iter (± 285
)1.01
es/target/es2015
632274
ns/iter (± 1191
)627546
ns/iter (± 2234
)1.01
es/target/es2016
66253
ns/iter (± 109
)65400
ns/iter (± 163
)1.01
es/target/es2017
62444
ns/iter (± 147
)61785
ns/iter (± 367
)1.01
es/target/es2018
82170
ns/iter (± 141
)81636
ns/iter (± 217
)1.01
es/target/es2020
133675
ns/iter (± 210
)133294
ns/iter (± 417
)1.00
babelify-only
679401
ns/iter (± 9207
)668885
ns/iter (± 4490
)1.02
parse_and_babelify_angular
45672767
ns/iter (± 1243075
)44735247
ns/iter (± 738614
)1.02
parse_and_babelify_backbone
5511518
ns/iter (± 60785
)5399517
ns/iter (± 66577
)1.02
parse_and_babelify_jquery
32518643
ns/iter (± 919592
)31077300
ns/iter (± 382571
)1.05
parse_and_babelify_jquery_mobile
56371754
ns/iter (± 956671
)52337561
ns/iter (± 717690
)1.08
parse_and_babelify_mootools
33829593
ns/iter (± 518571
)32392512
ns/iter (± 495018
)1.04
parse_and_babelify_underscore
4360509
ns/iter (± 46527
)4265521
ns/iter (± 29769
)1.02
parse_and_babelify_yui
33886593
ns/iter (± 737284
)31785304
ns/iter (± 525010
)1.07
html/minify/document/css_spec
43791040
ns/iter (± 483221
)42045594
ns/iter (± 416011
)1.04
html/minify/document/github
17835001
ns/iter (± 101535
)17478857
ns/iter (± 56266
)1.02
html/minify/document/stackoverflow
15951789
ns/iter (± 104233
)15692889
ns/iter (± 52735
)1.02
html/minify/document_fragment/css_spec
41867335
ns/iter (± 333076
)39733949
ns/iter (± 223939
)1.05
html/minify/document_fragment/github
17003483
ns/iter (± 51360
)16688373
ns/iter (± 54698
)1.02
html/minify/document_fragment/stackoverflow
15387097
ns/iter (± 77696
)15255229
ns/iter (± 60271
)1.01
html/document/visitor/compare/clone
343577
ns/iter (± 1781
)341115
ns/iter (± 2009
)1.01
html/document/visitor/compare/visit_mut_span
370500
ns/iter (± 1826
)366030
ns/iter (± 2195
)1.01
html/document/visitor/compare/visit_mut_span_panic
379342
ns/iter (± 2273
)376164
ns/iter (± 1699
)1.01
html/document/visitor/compare/fold_span
408078
ns/iter (± 1686
)402728
ns/iter (± 2135
)1.01
html/document/visitor/compare/fold_span_panic
465350
ns/iter (± 1205
)459246
ns/iter (± 1837
)1.01
html/document_fragment/visitor/compare/clone
342910
ns/iter (± 2287
)337988
ns/iter (± 1682
)1.01
html/document_fragment/visitor/compare/visit_mut_span
367800
ns/iter (± 1863
)366475
ns/iter (± 7125
)1.00
html/document_fragment/visitor/compare/visit_mut_span_panic
381867
ns/iter (± 2771
)372245
ns/iter (± 2255
)1.03
html/document_fragment/visitor/compare/fold_span
411443
ns/iter (± 1939
)404601
ns/iter (± 2331
)1.02
html/document_fragment/visitor/compare/fold_span_panic
462120
ns/iter (± 2466
)460167
ns/iter (± 2630
)1.00
html/lexer/css_2021_spec
15490740
ns/iter (± 6781
)15433036
ns/iter (± 54800
)1.00
html/lexer/github_com_17_05_2022
5973797
ns/iter (± 2137
)5921030
ns/iter (± 9670
)1.01
html/lexer/stackoverflow_com_17_05_2022
5576863
ns/iter (± 1092
)5553368
ns/iter (± 9251
)1.00
html/parser/parser_document/css_2021_spec
26620179
ns/iter (± 398884
)26118689
ns/iter (± 409858
)1.02
html/parser/parser_document/github_com_17_05_2022
8794393
ns/iter (± 16904
)8756527
ns/iter (± 16702
)1.00
html/parser/parser_document/stackoverflow_com_17_05_2022
7690204
ns/iter (± 7991
)7671563
ns/iter (± 15954
)1.00
html/parser/parser_document_fragment/css_2021_spec
26831307
ns/iter (± 225186
)25949001
ns/iter (± 134062
)1.03
html/parser/parser_document_fragment/github_com_17_05_2022
8819990
ns/iter (± 60170
)8769966
ns/iter (± 79058
)1.01
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7759943
ns/iter (± 12279
)7670221
ns/iter (± 18335
)1.01
This comment was automatically generated by workflow using github-action-benchmark.