@@ -9,7 +9,6 @@ pub type SourceFileInput<'a> = StringInput<'a>;
9
9
/// Implementation of [Input].
10
10
#[ derive( Clone ) ]
11
11
pub struct StringInput < ' a > {
12
- start_pos_of_iter : BytePos ,
13
12
last_pos : BytePos ,
14
13
/// Current cursor
15
14
iter : str:: CharIndices < ' a > ,
@@ -31,7 +30,6 @@ impl<'a> StringInput<'a> {
31
30
assert ! ( start <= end) ;
32
31
33
32
StringInput {
34
- start_pos_of_iter : start,
35
33
last_pos : start,
36
34
orig : src,
37
35
iter : src. char_indices ( ) ,
@@ -82,8 +80,8 @@ impl<'a> Input for StringInput<'a> {
82
80
83
81
#[ inline]
84
82
unsafe fn bump ( & mut self ) {
85
- if let Some ( ( i , c) ) = self . iter . next ( ) {
86
- self . last_pos = self . start_pos_of_iter + BytePos ( ( i + c. len_utf8 ( ) ) as u32 ) ;
83
+ if let Some ( ( _ , c) ) = self . iter . next ( ) {
84
+ self . last_pos = self . last_pos + BytePos ( ( c. len_utf8 ( ) ) as u32 ) ;
87
85
} else {
88
86
unsafe {
89
87
debug_unreachable ! ( "bump should not be called when cur() == None" ) ;
@@ -131,7 +129,6 @@ impl<'a> Input for StringInput<'a> {
131
129
132
130
self . iter = unsafe { s. get_unchecked ( end_idx..) } . char_indices ( ) ;
133
131
self . last_pos = end;
134
- self . start_pos_of_iter = end;
135
132
136
133
ret
137
134
}
@@ -155,7 +152,6 @@ impl<'a> Input for StringInput<'a> {
155
152
let ret = unsafe { s. get_unchecked ( ..last) } ;
156
153
157
154
self . last_pos = self . last_pos + BytePos ( last as _ ) ;
158
- self . start_pos_of_iter = self . last_pos ;
159
155
self . iter = unsafe { s. get_unchecked ( last..) } . char_indices ( ) ;
160
156
161
157
ret
@@ -181,7 +177,6 @@ impl<'a> Input for StringInput<'a> {
181
177
debug_assert ! ( last <= s. len( ) ) ;
182
178
183
179
self . last_pos = self . last_pos + BytePos ( last as _ ) ;
184
- self . start_pos_of_iter = self . last_pos ;
185
180
self . iter = unsafe { s. get_unchecked ( last..) } . char_indices ( ) ;
186
181
187
182
Some ( self . last_pos )
@@ -195,7 +190,6 @@ impl<'a> Input for StringInput<'a> {
195
190
debug_assert ! ( idx <= orig. len( ) ) ;
196
191
let s = unsafe { orig. get_unchecked ( idx..) } ;
197
192
self . iter = s. char_indices ( ) ;
198
- self . start_pos_of_iter = to;
199
193
self . last_pos = to;
200
194
}
201
195
@@ -217,15 +211,8 @@ impl<'a> Input for StringInput<'a> {
217
211
#[ inline]
218
212
fn eat_byte ( & mut self , c : u8 ) -> bool {
219
213
if self . is_byte ( c) {
220
- if let Some ( ( i, _) ) = self . iter . next ( ) {
221
- self . last_pos = self . start_pos_of_iter + BytePos ( ( i + 1 ) as u32 ) ;
222
- } else {
223
- unsafe {
224
- debug_unreachable ! (
225
- "We can't enter here as we already checked the state using `is_byte`"
226
- )
227
- }
228
- }
214
+ self . iter . next ( ) ;
215
+ self . last_pos = self . last_pos + BytePos ( 1_u32 ) ;
229
216
true
230
217
} else {
231
218
false
@@ -340,13 +327,11 @@ mod tests {
340
327
with_test_sess ( "foo/d" , |mut i| {
341
328
assert_eq ! ( unsafe { i. slice( BytePos ( 1 ) , BytePos ( 2 ) ) } , "f" ) ;
342
329
assert_eq ! ( i. last_pos, BytePos ( 2 ) ) ;
343
- assert_eq ! ( i. start_pos_of_iter, BytePos ( 2 ) ) ;
344
330
assert_eq ! ( i. cur( ) , Some ( 'o' ) ) ;
345
331
346
332
assert_eq ! ( unsafe { i. slice( BytePos ( 2 ) , BytePos ( 4 ) ) } , "oo" ) ;
347
333
assert_eq ! ( unsafe { i. slice( BytePos ( 1 ) , BytePos ( 4 ) ) } , "foo" ) ;
348
334
assert_eq ! ( i. last_pos, BytePos ( 4 ) ) ;
349
- assert_eq ! ( i. start_pos_of_iter, BytePos ( 4 ) ) ;
350
335
assert_eq ! ( i. cur( ) , Some ( '/' ) ) ;
351
336
} ) ;
352
337
}
@@ -356,13 +341,11 @@ mod tests {
356
341
with_test_sess ( "load" , |mut i| {
357
342
assert_eq ! ( unsafe { i. slice( BytePos ( 1 ) , BytePos ( 3 ) ) } , "lo" ) ;
358
343
assert_eq ! ( i. last_pos, BytePos ( 3 ) ) ;
359
- assert_eq ! ( i. start_pos_of_iter, BytePos ( 3 ) ) ;
360
344
assert_eq ! ( i. cur( ) , Some ( 'a' ) ) ;
361
345
unsafe { i. reset_to ( BytePos ( 1 ) ) } ;
362
346
363
347
assert_eq ! ( i. cur( ) , Some ( 'l' ) ) ;
364
348
assert_eq ! ( i. last_pos, BytePos ( 1 ) ) ;
365
- assert_eq ! ( i. start_pos_of_iter, BytePos ( 1 ) ) ;
366
349
} ) ;
367
350
}
368
351
@@ -371,12 +354,10 @@ mod tests {
371
354
with_test_sess ( "foo/d" , |mut i| {
372
355
assert_eq ! ( i. cur_pos( ) , BytePos ( 1 ) ) ;
373
356
assert_eq ! ( i. last_pos, BytePos ( 1 ) ) ;
374
- assert_eq ! ( i. start_pos_of_iter, BytePos ( 1 ) ) ;
375
357
assert_eq ! ( i. uncons_while( |c| c. is_alphabetic( ) ) , "foo" ) ;
376
358
377
359
// assert_eq!(i.cur_pos(), BytePos(4));
378
360
assert_eq ! ( i. last_pos, BytePos ( 4 ) ) ;
379
- assert_eq ! ( i. start_pos_of_iter, BytePos ( 4 ) ) ;
380
361
assert_eq ! ( i. cur( ) , Some ( '/' ) ) ;
381
362
382
363
unsafe {
@@ -398,10 +379,8 @@ mod tests {
398
379
with_test_sess ( "foo/d" , |mut i| {
399
380
assert_eq ! ( i. cur_pos( ) , BytePos ( 1 ) ) ;
400
381
assert_eq ! ( i. last_pos, BytePos ( 1 ) ) ;
401
- assert_eq ! ( i. start_pos_of_iter, BytePos ( 1 ) ) ;
402
382
403
383
assert_eq ! ( i. find( |c| c == '/' ) , Some ( BytePos ( 5 ) ) ) ;
404
- assert_eq ! ( i. start_pos_of_iter, BytePos ( 5 ) ) ;
405
384
assert_eq ! ( i. last_pos, BytePos ( 5 ) ) ;
406
385
assert_eq ! ( i. cur( ) , Some ( 'd' ) ) ;
407
386
} ) ;
1 commit comments
github-actions[bot] commentedon Jun 18, 2024
Benchmark
es/full/bugs-1
298404
ns/iter (± 7389
)276806
ns/iter (± 2708
)1.08
es/full/minify/libraries/antd
1776794993
ns/iter (± 85834534
)1775197361
ns/iter (± 38370083
)1.00
es/full/minify/libraries/d3
340009579
ns/iter (± 1198619
)343969819
ns/iter (± 2606464
)0.99
es/full/minify/libraries/echarts
1448185177
ns/iter (± 57215045
)1501173311
ns/iter (± 18164791
)0.96
es/full/minify/libraries/jquery
102620388
ns/iter (± 328948
)103152825
ns/iter (± 345404
)0.99
es/full/minify/libraries/lodash
114180397
ns/iter (± 210575
)114381057
ns/iter (± 203713
)1.00
es/full/minify/libraries/moment
59497708
ns/iter (± 113926
)59949144
ns/iter (± 154846
)0.99
es/full/minify/libraries/react
18440265
ns/iter (± 34169
)18468183
ns/iter (± 23208
)1.00
es/full/minify/libraries/terser
273836591
ns/iter (± 812847
)275930999
ns/iter (± 2986853
)0.99
es/full/minify/libraries/three
465472623
ns/iter (± 1926269
)469200391
ns/iter (± 4033313
)0.99
es/full/minify/libraries/typescript
3307073236
ns/iter (± 66794527
)3242314516
ns/iter (± 22886511
)1.02
es/full/minify/libraries/victory
778814392
ns/iter (± 41362395
)732126398
ns/iter (± 17609658
)1.06
es/full/minify/libraries/vue
146983765
ns/iter (± 1449861
)146382973
ns/iter (± 445805
)1.00
es/full/codegen/es3
59683
ns/iter (± 500
)59433
ns/iter (± 179
)1.00
es/full/codegen/es5
59802
ns/iter (± 544
)60223
ns/iter (± 344
)0.99
es/full/codegen/es2015
59643
ns/iter (± 837
)59750
ns/iter (± 129
)1.00
es/full/codegen/es2016
59363
ns/iter (± 225
)59555
ns/iter (± 88
)1.00
es/full/codegen/es2017
59922
ns/iter (± 486
)59444
ns/iter (± 127
)1.01
es/full/codegen/es2018
59558
ns/iter (± 251
)59558
ns/iter (± 311
)1
es/full/codegen/es2019
59539
ns/iter (± 292
)59687
ns/iter (± 124
)1.00
es/full/codegen/es2020
59522
ns/iter (± 258
)59589
ns/iter (± 124
)1.00
es/full/all/es3
163304623
ns/iter (± 863134
)163857586
ns/iter (± 500847
)1.00
es/full/all/es5
157410189
ns/iter (± 944630
)158320732
ns/iter (± 1270723
)0.99
es/full/all/es2015
117606130
ns/iter (± 657633
)118311382
ns/iter (± 546503
)0.99
es/full/all/es2016
116507800
ns/iter (± 731290
)116986396
ns/iter (± 941812
)1.00
es/full/all/es2017
116006693
ns/iter (± 405918
)116573294
ns/iter (± 611717
)1.00
es/full/all/es2018
113359110
ns/iter (± 1290446
)114176931
ns/iter (± 557222
)0.99
es/full/all/es2019
113166007
ns/iter (± 880351
)113743086
ns/iter (± 625226
)0.99
es/full/all/es2020
108889352
ns/iter (± 901090
)109919158
ns/iter (± 1430361
)0.99
es/full/parser
471641
ns/iter (± 3575
)479660
ns/iter (± 2123
)0.98
es/full/base/fixer
15396
ns/iter (± 84
)16231
ns/iter (± 111
)0.95
es/full/base/resolver_and_hygiene
80207
ns/iter (± 1059
)81629
ns/iter (± 363
)0.98
serialization of serde
283
ns/iter (± 5
)283
ns/iter (± 1
)1
css/minify/libraries/bootstrap
22138820
ns/iter (± 159663
)22134904
ns/iter (± 152367
)1.00
css/visitor/compare/clone
1386424
ns/iter (± 8019
)1386120
ns/iter (± 18098
)1.00
css/visitor/compare/visit_mut_span
1513463
ns/iter (± 3707
)1509238
ns/iter (± 5745
)1.00
css/visitor/compare/visit_mut_span_panic
1528328
ns/iter (± 27601
)1546440
ns/iter (± 23388
)0.99
css/visitor/compare/fold_span
2041419
ns/iter (± 7657
)2019398
ns/iter (± 8705
)1.01
css/visitor/compare/fold_span_panic
2177620
ns/iter (± 21379
)2167035
ns/iter (± 9491
)1.00
css/lexer/bootstrap_5_1_3
3456385
ns/iter (± 39317
)3443347
ns/iter (± 14131
)1.00
css/lexer/foundation_6_7_4
2796930
ns/iter (± 3929
)2783031
ns/iter (± 4421
)1.00
css/lexer/tailwind_3_1_1
538937
ns/iter (± 775
)532985
ns/iter (± 773
)1.01
css/parser/bootstrap_5_1_3
16545483
ns/iter (± 137019
)16107989
ns/iter (± 149250
)1.03
css/parser/foundation_6_7_4
13124173
ns/iter (± 119272
)12869520
ns/iter (± 22296
)1.02
css/parser/tailwind_3_1_1
2550064
ns/iter (± 3689
)2543938
ns/iter (± 11924
)1.00
es/codegen/colors
728851
ns/iter (± 397041
)735491
ns/iter (± 408238
)0.99
es/codegen/large
2983940
ns/iter (± 1625054
)2992674
ns/iter (± 1606215
)1.00
es/codegen/with-parser/colors
42861
ns/iter (± 752
)43173
ns/iter (± 210
)0.99
es/codegen/with-parser/large
463201
ns/iter (± 4098
)467093
ns/iter (± 2937
)0.99
es/minify/libraries/antd
1513500764
ns/iter (± 25599337
)1439457464
ns/iter (± 36673194
)1.05
es/minify/libraries/d3
288267559
ns/iter (± 7617598
)285662113
ns/iter (± 5249859
)1.01
es/minify/libraries/echarts
1240120004
ns/iter (± 21590249
)1170164309
ns/iter (± 14949633
)1.06
es/minify/libraries/jquery
82730473
ns/iter (± 266598
)82586949
ns/iter (± 405363
)1.00
es/minify/libraries/lodash
105214327
ns/iter (± 419612
)105128179
ns/iter (± 211494
)1.00
es/minify/libraries/moment
48489880
ns/iter (± 312850
)48295516
ns/iter (± 70956
)1.00
es/minify/libraries/react
16217688
ns/iter (± 105146
)16199453
ns/iter (± 34603
)1.00
es/minify/libraries/terser
220720334
ns/iter (± 2242913
)216286510
ns/iter (± 798911
)1.02
es/minify/libraries/three
378929763
ns/iter (± 11942029
)368498737
ns/iter (± 5626273
)1.03
es/minify/libraries/typescript
2790346985
ns/iter (± 33552215
)2715281684
ns/iter (± 25664593
)1.03
es/minify/libraries/victory
619834605
ns/iter (± 12233761
)591470493
ns/iter (± 7952854
)1.05
es/minify/libraries/vue
121795427
ns/iter (± 649642
)121398326
ns/iter (± 372699
)1.00
es/visitor/compare/clone
1696722
ns/iter (± 5310
)1713411
ns/iter (± 14268
)0.99
es/visitor/compare/visit_mut_span
2042908
ns/iter (± 10336
)2048905
ns/iter (± 10058
)1.00
es/visitor/compare/visit_mut_span_panic
2042237
ns/iter (± 28066
)2045473
ns/iter (± 41457
)1.00
es/visitor/compare/fold_span
2776874
ns/iter (± 11132
)2772337
ns/iter (± 6743
)1.00
es/visitor/compare/fold_span_panic
2812427
ns/iter (± 20426
)2820538
ns/iter (± 5833
)1.00
es/lexer/colors
10691
ns/iter (± 85
)10206
ns/iter (± 91
)1.05
es/lexer/angular
5534263
ns/iter (± 28585
)5214165
ns/iter (± 34944
)1.06
es/lexer/backbone
655838
ns/iter (± 4645
)629176
ns/iter (± 1605
)1.04
es/lexer/jquery
3915086
ns/iter (± 19192
)3633085
ns/iter (± 12200
)1.08
es/lexer/jquery mobile
5815009
ns/iter (± 16885
)5536835
ns/iter (± 23727
)1.05
es/lexer/mootools
3052463
ns/iter (± 10752
)2849917
ns/iter (± 5374
)1.07
es/lexer/underscore
563484
ns/iter (± 1971
)532613
ns/iter (± 2920
)1.06
es/lexer/three
17109930
ns/iter (± 133284
)16306356
ns/iter (± 38543
)1.05
es/lexer/yui
3015053
ns/iter (± 29154
)3002907
ns/iter (± 3010
)1.00
es/lexer/cal-com
13918241
ns/iter (± 67615
)13633090
ns/iter (± 57692
)1.02
es/lexer/typescript
94039195
ns/iter (± 1370052
)92648171
ns/iter (± 355589
)1.02
es/parser/colors
25309
ns/iter (± 111
)25332
ns/iter (± 113
)1.00
es/parser/angular
12846321
ns/iter (± 74576
)12885464
ns/iter (± 280849
)1.00
es/parser/backbone
1860392
ns/iter (± 11844
)1857796
ns/iter (± 8970
)1.00
es/parser/jquery
10302454
ns/iter (± 65260
)10259686
ns/iter (± 68907
)1.00
es/parser/jquery mobile
15480345
ns/iter (± 99111
)15582878
ns/iter (± 99629
)0.99
es/parser/mootools
8012240
ns/iter (± 28885
)7996509
ns/iter (± 33679
)1.00
es/parser/underscore
1639893
ns/iter (± 8571
)1616671
ns/iter (± 6097
)1.01
es/parser/three
45414497
ns/iter (± 460074
)45039401
ns/iter (± 480377
)1.01
es/parser/yui
7615016
ns/iter (± 42554
)7654266
ns/iter (± 30951
)0.99
es/parser/cal-com
42831274
ns/iter (± 639576
)42289782
ns/iter (± 748184
)1.01
es/parser/typescript
277522985
ns/iter (± 1277989
)274300310
ns/iter (± 7167512
)1.01
es/preset-env/usage/builtin_type
135538
ns/iter (± 33325
)136058
ns/iter (± 33335
)1.00
es/preset-env/usage/property
16039
ns/iter (± 92
)16281
ns/iter (± 88
)0.99
es/resolver/typescript
102309416
ns/iter (± 3037993
)102555464
ns/iter (± 1365729
)1.00
es/fixer/typescript
80536188
ns/iter (± 3452806
)81560688
ns/iter (± 3697622
)0.99
es/hygiene/typescript
180336595
ns/iter (± 3601611
)182196149
ns/iter (± 2158027
)0.99
es/resolver_with_hygiene/typescript
304889774
ns/iter (± 3959176
)323507695
ns/iter (± 2333822
)0.94
es/visitor/base-perf/module_clone
55652
ns/iter (± 522
)55585
ns/iter (± 359
)1.00
es/visitor/base-perf/fold_empty
59116
ns/iter (± 648
)58896
ns/iter (± 559
)1.00
es/visitor/base-perf/fold_noop_impl_all
58932
ns/iter (± 1376
)59084
ns/iter (± 380
)1.00
es/visitor/base-perf/fold_noop_impl_vec
59112
ns/iter (± 829
)59131
ns/iter (± 264
)1.00
es/visitor/base-perf/boxing_boxed_clone
63
ns/iter (± 2
)59
ns/iter (± 0
)1.07
es/visitor/base-perf/boxing_unboxed_clone
47
ns/iter (± 0
)47
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
106
ns/iter (± 0
)104
ns/iter (± 0
)1.02
es/visitor/base-perf/boxing_unboxed
80
ns/iter (± 0
)80
ns/iter (± 0
)1
es/visitor/base-perf/visit_contains_this
2597
ns/iter (± 12
)2612
ns/iter (± 24
)0.99
es/base/parallel/resolver/typescript
2436017107
ns/iter (± 72836518
)2380471652
ns/iter (± 128751168
)1.02
es/base/parallel/hygiene/typescript
3139457241
ns/iter (± 61243789
)3261009079
ns/iter (± 41248450
)0.96
babelify-only
478735
ns/iter (± 3149
)473918
ns/iter (± 8144
)1.01
parse_and_babelify_angular
45531651
ns/iter (± 1604539
)43476548
ns/iter (± 365649
)1.05
parse_and_babelify_backbone
4568744
ns/iter (± 136873
)4382243
ns/iter (± 92113
)1.04
parse_and_babelify_jquery
30799783
ns/iter (± 807998
)29831873
ns/iter (± 432730
)1.03
parse_and_babelify_jquery_mobile
52077767
ns/iter (± 606159
)51297593
ns/iter (± 1140609
)1.02
parse_and_babelify_mootools
27603262
ns/iter (± 366593
)26654944
ns/iter (± 430449
)1.04
parse_and_babelify_underscore
3758173
ns/iter (± 50246
)3719071
ns/iter (± 317861
)1.01
parse_and_babelify_yui
25805334
ns/iter (± 450343
)23909403
ns/iter (± 407830
)1.08
html/minify/document/css_spec
45443479
ns/iter (± 175720
)45865777
ns/iter (± 84665
)0.99
html/minify/document/github
18191952
ns/iter (± 411843
)18580770
ns/iter (± 70040
)0.98
html/minify/document/stackoverflow
16698712
ns/iter (± 561420
)16763175
ns/iter (± 225949
)1.00
html/minify/document_fragment/css_spec
43941909
ns/iter (± 81582
)44936090
ns/iter (± 103232
)0.98
html/minify/document_fragment/github
17770515
ns/iter (± 19087
)18207564
ns/iter (± 47733
)0.98
html/minify/document_fragment/stackoverflow
16273228
ns/iter (± 12522
)16520892
ns/iter (± 15909
)0.99
html/document/visitor/compare/clone
165338
ns/iter (± 2596
)166009
ns/iter (± 1049
)1.00
html/document/visitor/compare/visit_mut_span
182918
ns/iter (± 631
)181627
ns/iter (± 1085
)1.01
html/document/visitor/compare/visit_mut_span_panic
189903
ns/iter (± 5648
)192007
ns/iter (± 5626
)0.99
html/document/visitor/compare/fold_span
231199
ns/iter (± 656
)227009
ns/iter (± 806
)1.02
html/document/visitor/compare/fold_span_panic
283812
ns/iter (± 1416
)279091
ns/iter (± 1433
)1.02
html/document_fragment/visitor/compare/clone
170277
ns/iter (± 947
)166976
ns/iter (± 942
)1.02
html/document_fragment/visitor/compare/visit_mut_span
185527
ns/iter (± 1369
)181363
ns/iter (± 801
)1.02
html/document_fragment/visitor/compare/visit_mut_span_panic
190603
ns/iter (± 1847
)184907
ns/iter (± 590
)1.03
html/document_fragment/visitor/compare/fold_span
229256
ns/iter (± 950
)226840
ns/iter (± 1262
)1.01
html/document_fragment/visitor/compare/fold_span_panic
284213
ns/iter (± 723
)277386
ns/iter (± 740
)1.02
html/lexer/css_2021_spec
13011994
ns/iter (± 33124
)13192877
ns/iter (± 26308
)0.99
html/lexer/github_com_17_05_2022
4981924
ns/iter (± 11618
)5070885
ns/iter (± 6753
)0.98
html/lexer/stackoverflow_com_17_05_2022
4737239
ns/iter (± 6519
)4804463
ns/iter (± 101773
)0.99
html/parser/parser_document/css_2021_spec
25436241
ns/iter (± 58674
)25360492
ns/iter (± 50573
)1.00
html/parser/parser_document/github_com_17_05_2022
8486533
ns/iter (± 40552
)8571934
ns/iter (± 25019
)0.99
html/parser/parser_document/stackoverflow_com_17_05_2022
7351350
ns/iter (± 9532
)7542405
ns/iter (± 7971
)0.97
html/parser/parser_document_fragment/css_2021_spec
25043667
ns/iter (± 116284
)25284252
ns/iter (± 80956
)0.99
html/parser/parser_document_fragment/github_com_17_05_2022
8443954
ns/iter (± 13464
)8523139
ns/iter (± 30603
)0.99
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7294208
ns/iter (± 5476
)7508153
ns/iter (± 11702
)0.97
This comment was automatically generated by workflow using github-action-benchmark.