3
3
#![ allow( clippy:: match_like_matches_macro) ]
4
4
5
5
pub use std:: fmt:: Result ;
6
- use std:: { iter:: Peekable , str:: Chars } ;
6
+ use std:: { borrow :: Cow , iter:: Peekable , str:: Chars } ;
7
7
8
8
use swc_atoms:: { js_word, JsWord } ;
9
9
use swc_common:: Spanned ;
@@ -804,13 +804,23 @@ where
804
804
attribute. push ( '=' ) ;
805
805
806
806
if self . config . minify {
807
- let minifier = minify_attribute_value ( value, self . quotes ) ;
807
+ let ( minifier, quote) = minify_attribute_value ( value, self . quotes ) ;
808
+
809
+ if let Some ( quote) = quote {
810
+ attribute. push ( quote) ;
811
+ }
808
812
809
813
attribute. push_str ( & minifier) ;
814
+
815
+ if let Some ( quote) = quote {
816
+ attribute. push ( quote) ;
817
+ }
810
818
} else {
811
- let normalized = normalize_attribute_value ( value) ;
819
+ let normalized = escape_string ( value, true ) ;
812
820
821
+ attribute. push ( '"' ) ;
813
822
attribute. push_str ( & normalized) ;
823
+ attribute. push ( '"' ) ;
814
824
}
815
825
}
816
826
@@ -820,15 +830,11 @@ where
820
830
#[ emitter]
821
831
fn emit_text ( & mut self , n : & Text ) -> Result {
822
832
if self . ctx . need_escape_text {
823
- let mut data = String :: with_capacity ( n. data . len ( ) ) ;
824
-
825
833
if self . config . minify {
826
- data . push_str ( & minify_text ( & n. data ) ) ;
834
+ write_multiline_raw ! ( self , n . span , & minify_text( & n. data) ) ;
827
835
} else {
828
- data . push_str ( & escape_string ( & n. data , false ) ) ;
836
+ write_multiline_raw ! ( self , n . span , & escape_string( & n. data, false ) ) ;
829
837
}
830
-
831
- write_multiline_raw ! ( self , n. span, & data) ;
832
838
} else {
833
839
write_multiline_raw ! ( self , n. span, & n. data) ;
834
840
}
@@ -927,9 +933,20 @@ where
927
933
}
928
934
929
935
#[ allow( clippy:: unused_peekable) ]
930
- fn minify_attribute_value ( value : & str , quotes : bool ) -> String {
936
+ fn minify_attribute_value ( value : & str , quotes : bool ) -> ( Cow < ' _ , str > , Option < char > ) {
931
937
if value. is_empty ( ) {
932
- return "\" \" " . to_string ( ) ;
938
+ return ( Cow :: Borrowed ( value) , Some ( '"' ) ) ;
939
+ }
940
+
941
+ // Fast-path
942
+ if !quotes
943
+ && value. chars ( ) . all ( |c| match c {
944
+ '&' | '`' | '=' | '<' | '>' | '"' | '\'' => false ,
945
+ c if c. is_ascii_whitespace ( ) => false ,
946
+ _ => true ,
947
+ } )
948
+ {
949
+ return ( Cow :: Borrowed ( value) , None ) ;
933
950
}
934
951
935
952
let mut minified = String :: with_capacity ( value. len ( ) ) ;
@@ -943,7 +960,18 @@ fn minify_attribute_value(value: &str, quotes: bool) -> String {
943
960
while let Some ( c) = chars. next ( ) {
944
961
match c {
945
962
'&' => {
946
- minified. push_str ( & minify_amp ( & mut chars) ) ;
963
+ let next = chars. next ( ) ;
964
+
965
+ if let Some ( next) = next {
966
+ if matches ! ( next, '#' | 'a' ..='z' | 'A' ..='Z' ) {
967
+ minified. push_str ( & minify_amp ( next, & mut chars) ) ;
968
+ } else {
969
+ minified. push ( '&' ) ;
970
+ minified. push ( next) ;
971
+ }
972
+ } else {
973
+ minified. push ( '&' ) ;
974
+ }
947
975
948
976
continue ;
949
977
}
@@ -969,39 +997,49 @@ fn minify_attribute_value(value: &str, quotes: bool) -> String {
969
997
}
970
998
971
999
if !quotes && unquoted {
972
- return minified;
1000
+ return ( Cow :: Owned ( minified) , None ) ;
973
1001
}
974
1002
975
1003
if dq > sq {
976
- format ! ( "'{}'" , minified. replace( '\'' , "'" ) )
1004
+ return ( Cow :: Owned ( minified. replace ( '\'' , "'" ) ) , Some ( '\'' ) ) ;
977
1005
} else {
978
- format ! ( " \" {} \" " , minified. replace( '"' , """ ) )
1006
+ return ( Cow :: Owned ( minified. replace ( '"' , """ ) ) , Some ( '"' ) ) ;
979
1007
}
980
1008
}
981
1009
982
- fn normalize_attribute_value ( value : & str ) -> String {
1010
+ #[ allow( clippy:: unused_peekable) ]
1011
+ fn minify_text ( value : & str ) -> Cow < ' _ , str > {
1012
+ // Fast-path
983
1013
if value. is_empty ( ) {
984
- return " \" \" " . to_string ( ) ;
1014
+ return Cow :: Borrowed ( value ) ;
985
1015
}
986
1016
987
- let mut normalized = String :: with_capacity ( value. len ( ) + 2 ) ;
988
-
989
- normalized. push ( '"' ) ;
990
- normalized. push_str ( & escape_string ( value, true ) ) ;
991
- normalized. push ( '"' ) ;
992
-
993
- normalized
994
- }
1017
+ // Fast-path
1018
+ if value. chars ( ) . all ( |c| match c {
1019
+ '&' | '<' => false ,
1020
+ _ => true ,
1021
+ } ) {
1022
+ return Cow :: Borrowed ( value) ;
1023
+ }
995
1024
996
- #[ allow( clippy:: unused_peekable) ]
997
- fn minify_text ( value : & str ) -> String {
998
1025
let mut result = String :: with_capacity ( value. len ( ) ) ;
999
1026
let mut chars = value. chars ( ) . peekable ( ) ;
1000
1027
1001
1028
while let Some ( c) = chars. next ( ) {
1002
1029
match c {
1003
1030
'&' => {
1004
- result. push_str ( & minify_amp ( & mut chars) ) ;
1031
+ let next = chars. next ( ) ;
1032
+
1033
+ if let Some ( next) = next {
1034
+ if matches ! ( next, '#' | 'a' ..='z' | 'A' ..='Z' ) {
1035
+ result. push_str ( & minify_amp ( next, & mut chars) ) ;
1036
+ } else {
1037
+ result. push ( '&' ) ;
1038
+ result. push ( next) ;
1039
+ }
1040
+ } else {
1041
+ result. push ( '&' ) ;
1042
+ }
1005
1043
}
1006
1044
'<' => {
1007
1045
result. push_str ( "<" ) ;
@@ -1010,14 +1048,14 @@ fn minify_text(value: &str) -> String {
1010
1048
}
1011
1049
}
1012
1050
1013
- result
1051
+ Cow :: Owned ( result)
1014
1052
}
1015
1053
1016
- fn minify_amp ( chars : & mut Peekable < Chars > ) -> String {
1054
+ fn minify_amp ( next : char , chars : & mut Peekable < Chars > ) -> String {
1017
1055
let mut result = String :: with_capacity ( 7 ) ;
1018
1056
1019
- match chars . next ( ) {
1020
- Some ( hash @ '#' ) => {
1057
+ match next {
1058
+ hash @ '#' => {
1021
1059
match chars. next ( ) {
1022
1060
// HTML CODE
1023
1061
// Prevent `&#38;` -> `&`
@@ -1054,7 +1092,7 @@ fn minify_amp(chars: &mut Peekable<Chars>) -> String {
1054
1092
}
1055
1093
// Named entity
1056
1094
// Prevent `&current` -> `¤t`
1057
- Some ( c @ 'a' ..='z' ) | Some ( c @ 'A' ..='Z' ) => {
1095
+ c @ 'a' ..='z' | c @ 'A' ..='Z' => {
1058
1096
let mut entity_temporary_buffer = String :: with_capacity ( 33 ) ;
1059
1097
1060
1098
entity_temporary_buffer. push ( '&' ) ;
@@ -1091,10 +1129,7 @@ fn minify_amp(chars: &mut Peekable<Chars>) -> String {
1091
1129
}
1092
1130
any => {
1093
1131
result. push ( '&' ) ;
1094
-
1095
- if let Some ( any) = any {
1096
- result. push ( any) ;
1097
- }
1132
+ result. push ( any) ;
1098
1133
}
1099
1134
}
1100
1135
@@ -1115,7 +1150,22 @@ fn minify_amp(chars: &mut Peekable<Chars>) -> String {
1115
1150
// 4. If the algorithm was not invoked in the attribute mode, replace any
1116
1151
// occurrences of the "<" character by the string "<", and any occurrences of
1117
1152
// the ">" character by the string ">".
1118
- fn escape_string ( value : & str , is_attribute_mode : bool ) -> String {
1153
+ fn escape_string ( value : & str , is_attribute_mode : bool ) -> Cow < ' _ , str > {
1154
+ // Fast-path
1155
+ if value. is_empty ( ) {
1156
+ return Cow :: Borrowed ( value) ;
1157
+ }
1158
+
1159
+ if value. chars ( ) . all ( |c| match c {
1160
+ '&' | '\u{00A0}' => false ,
1161
+ '"' if is_attribute_mode => false ,
1162
+ '<' if !is_attribute_mode => false ,
1163
+ '>' if !is_attribute_mode => false ,
1164
+ _ => true ,
1165
+ } ) {
1166
+ return Cow :: Borrowed ( value) ;
1167
+ }
1168
+
1119
1169
let mut result = String :: with_capacity ( value. len ( ) ) ;
1120
1170
1121
1171
for c in value. chars ( ) {
@@ -1135,7 +1185,7 @@ fn escape_string(value: &str, is_attribute_mode: bool) -> String {
1135
1185
}
1136
1186
}
1137
1187
1138
- result
1188
+ Cow :: Owned ( result)
1139
1189
}
1140
1190
1141
1191
fn is_html_tag_name ( namespace : Namespace , tag_name : & JsWord ) -> bool {
1 commit comments
github-actions[bot] commentedon Dec 12, 2022
Benchmark
es/full/bugs-1
296685
ns/iter (± 5865
)295341
ns/iter (± 14112
)1.00
es/full/minify/libraries/antd
1668612733
ns/iter (± 16330412
)1781424470
ns/iter (± 13778411
)0.94
es/full/minify/libraries/d3
346073590
ns/iter (± 2829400
)352704115
ns/iter (± 5248892
)0.98
es/full/minify/libraries/echarts
1432114688
ns/iter (± 9216658
)1493309403
ns/iter (± 8025708
)0.96
es/full/minify/libraries/jquery
94020670
ns/iter (± 902366
)93526459
ns/iter (± 1127989
)1.01
es/full/minify/libraries/lodash
111407488
ns/iter (± 541717
)112080785
ns/iter (± 1947568
)0.99
es/full/minify/libraries/moment
54946161
ns/iter (± 313020
)54491005
ns/iter (± 437386
)1.01
es/full/minify/libraries/react
20023902
ns/iter (± 110720
)19935275
ns/iter (± 277051
)1.00
es/full/minify/libraries/terser
273702238
ns/iter (± 2027721
)275730174
ns/iter (± 5470924
)0.99
es/full/minify/libraries/three
498033086
ns/iter (± 3558852
)512272730
ns/iter (± 9725393
)0.97
es/full/minify/libraries/typescript
3195941230
ns/iter (± 19103537
)3350315132
ns/iter (± 23375614
)0.95
es/full/minify/libraries/victory
722749412
ns/iter (± 12656051
)738505873
ns/iter (± 14648240
)0.98
es/full/minify/libraries/vue
140260622
ns/iter (± 1263341
)138344290
ns/iter (± 2116424
)1.01
es/full/codegen/es3
27595
ns/iter (± 67
)27667
ns/iter (± 75
)1.00
es/full/codegen/es5
27628
ns/iter (± 85
)27706
ns/iter (± 45
)1.00
es/full/codegen/es2015
27534
ns/iter (± 51
)27757
ns/iter (± 46
)0.99
es/full/codegen/es2016
27552
ns/iter (± 67
)27739
ns/iter (± 33
)0.99
es/full/codegen/es2017
27541
ns/iter (± 21
)27695
ns/iter (± 46
)0.99
es/full/codegen/es2018
27591
ns/iter (± 73
)27692
ns/iter (± 30
)1.00
es/full/codegen/es2019
27576
ns/iter (± 45
)27700
ns/iter (± 97
)1.00
es/full/codegen/es2020
27542
ns/iter (± 78
)27704
ns/iter (± 35
)0.99
es/full/all/es3
168265749
ns/iter (± 2487126
)166520337
ns/iter (± 2415908
)1.01
es/full/all/es5
159587418
ns/iter (± 2393697
)159127703
ns/iter (± 2987023
)1.00
es/full/all/es2015
121125379
ns/iter (± 668699
)120064343
ns/iter (± 988475
)1.01
es/full/all/es2016
120519082
ns/iter (± 1059031
)119217787
ns/iter (± 1463850
)1.01
es/full/all/es2017
119585106
ns/iter (± 799626
)118403356
ns/iter (± 910211
)1.01
es/full/all/es2018
118131364
ns/iter (± 968313
)117412631
ns/iter (± 737604
)1.01
es/full/all/es2019
116958316
ns/iter (± 1080592
)116099688
ns/iter (± 822081
)1.01
es/full/all/es2020
112758959
ns/iter (± 784313
)111355760
ns/iter (± 683460
)1.01
es/full/parser
523597
ns/iter (± 6128
)520359
ns/iter (± 9108
)1.01
es/full/base/fixer
21949
ns/iter (± 28
)21864
ns/iter (± 23
)1.00
es/full/base/resolver_and_hygiene
77767
ns/iter (± 83
)78035
ns/iter (± 74
)1.00
serialization of ast node
143
ns/iter (± 0
)143
ns/iter (± 0
)1
serialization of serde
124
ns/iter (± 0
)123
ns/iter (± 0
)1.01
css/minify/libraries/bootstrap
27385798
ns/iter (± 108932
)27311905
ns/iter (± 228530
)1.00
css/visitor/compare/clone
2118261
ns/iter (± 16029
)2091366
ns/iter (± 13662
)1.01
css/visitor/compare/visit_mut_span
2327866
ns/iter (± 9079
)2304881
ns/iter (± 11213
)1.01
css/visitor/compare/visit_mut_span_panic
2340281
ns/iter (± 5848
)2328352
ns/iter (± 14061
)1.01
css/visitor/compare/fold_span
2991499
ns/iter (± 11225
)3014168
ns/iter (± 16322
)0.99
css/visitor/compare/fold_span_panic
3180056
ns/iter (± 20067
)3170656
ns/iter (± 23753
)1.00
css/lexer/bootstrap_5_1_3
5230952
ns/iter (± 1212
)5179025
ns/iter (± 6843
)1.01
css/lexer/foundation_6_7_4
4440891
ns/iter (± 2479
)4417731
ns/iter (± 1929
)1.01
css/lexer/tailwind_3_1_1
831402
ns/iter (± 324
)826537
ns/iter (± 645
)1.01
css/parser/bootstrap_5_1_3
20883898
ns/iter (± 116906
)21086265
ns/iter (± 261018
)0.99
css/parser/foundation_6_7_4
16706908
ns/iter (± 53899
)16688249
ns/iter (± 78100
)1.00
css/parser/tailwind_3_1_1
3177487
ns/iter (± 2541
)3168873
ns/iter (± 3747
)1.00
es/codegen/colors
330521
ns/iter (± 184982
)329236
ns/iter (± 184402
)1.00
es/codegen/large
1201394
ns/iter (± 607547
)1202060
ns/iter (± 607260
)1.00
es/codegen/with-parser/colors
46263
ns/iter (± 310
)46436
ns/iter (± 257
)1.00
es/codegen/with-parser/large
510920
ns/iter (± 1306
)509784
ns/iter (± 830
)1.00
es/minify/libraries/antd
1477701976
ns/iter (± 16192131
)1567922386
ns/iter (± 14032396
)0.94
es/minify/libraries/d3
300881794
ns/iter (± 2889391
)311462507
ns/iter (± 5302890
)0.97
es/minify/libraries/echarts
1258695679
ns/iter (± 9627760
)1327235818
ns/iter (± 6628354
)0.95
es/minify/libraries/jquery
80224897
ns/iter (± 643864
)81748113
ns/iter (± 518323
)0.98
es/minify/libraries/lodash
99179216
ns/iter (± 328181
)100702017
ns/iter (± 890022
)0.98
es/minify/libraries/moment
46684449
ns/iter (± 262995
)47194495
ns/iter (± 246258
)0.99
es/minify/libraries/react
17614274
ns/iter (± 67801
)17782930
ns/iter (± 83108
)0.99
es/minify/libraries/terser
228557681
ns/iter (± 1764152
)238132180
ns/iter (± 3716134
)0.96
es/minify/libraries/three
427375721
ns/iter (± 3477264
)432685113
ns/iter (± 3081711
)0.99
es/minify/libraries/typescript
2730471583
ns/iter (± 11207767
)2873735592
ns/iter (± 15582415
)0.95
es/minify/libraries/victory
634012547
ns/iter (± 7256763
)654440302
ns/iter (± 10802063
)0.97
es/minify/libraries/vue
121879137
ns/iter (± 550210
)123277795
ns/iter (± 1652069
)0.99
es/visitor/compare/clone
2443773
ns/iter (± 21202
)2451322
ns/iter (± 28521
)1.00
es/visitor/compare/visit_mut_span
2840846
ns/iter (± 6124
)2836410
ns/iter (± 10061
)1.00
es/visitor/compare/visit_mut_span_panic
2831952
ns/iter (± 5411
)2902161
ns/iter (± 42035
)0.98
es/visitor/compare/fold_span
3915824
ns/iter (± 21586
)4041827
ns/iter (± 38112
)0.97
es/visitor/compare/fold_span_panic
4082152
ns/iter (± 8479
)4224149
ns/iter (± 20967
)0.97
es/lexer/colors
17531
ns/iter (± 4
)17463
ns/iter (± 76
)1.00
es/lexer/angular
8243052
ns/iter (± 3852
)8226345
ns/iter (± 3652
)1.00
es/lexer/backbone
1077064
ns/iter (± 690
)1070762
ns/iter (± 465
)1.01
es/lexer/jquery
5973860
ns/iter (± 3932
)5946121
ns/iter (± 3623
)1.00
es/lexer/jquery mobile
9204201
ns/iter (± 6894
)9195402
ns/iter (± 3541
)1.00
es/lexer/mootools
4689115
ns/iter (± 3717
)4663561
ns/iter (± 4055
)1.01
es/lexer/underscore
899953
ns/iter (± 854
)891664
ns/iter (± 810
)1.01
es/lexer/three
28044651
ns/iter (± 15303
)27979228
ns/iter (± 19518
)1.00
es/lexer/yui
5071463
ns/iter (± 2113
)5061515
ns/iter (± 1668
)1.00
es/parser/colors
31570
ns/iter (± 157
)31594
ns/iter (± 134
)1.00
es/parser/angular
16439983
ns/iter (± 212046
)17258352
ns/iter (± 276881
)0.95
es/parser/backbone
2348859
ns/iter (± 11431
)2358813
ns/iter (± 12954
)1.00
es/parser/jquery
12999317
ns/iter (± 110736
)13057095
ns/iter (± 98679
)1.00
es/parser/jquery mobile
21292711
ns/iter (± 246042
)21491696
ns/iter (± 505816
)0.99
es/parser/mootools
9794680
ns/iter (± 44198
)9941641
ns/iter (± 109996
)0.99
es/parser/underscore
1974540
ns/iter (± 9545
)1983612
ns/iter (± 10504
)1.00
es/parser/three
60295486
ns/iter (± 149941
)61650257
ns/iter (± 252866
)0.98
es/parser/yui
9858804
ns/iter (± 40760
)10025617
ns/iter (± 121472
)0.98
es/preset-env/usage/builtin_type
144701
ns/iter (± 33230
)139719
ns/iter (± 31631
)1.04
es/preset-env/usage/property
21228
ns/iter (± 62
)21146
ns/iter (± 75
)1.00
es/resolver/typescript
113717294
ns/iter (± 2670410
)120540836
ns/iter (± 2127541
)0.94
es/fixer/typescript
87314430
ns/iter (± 577508
)94594164
ns/iter (± 1374232
)0.92
es/hygiene/typescript
171044100
ns/iter (± 550732
)190553478
ns/iter (± 826613
)0.90
es/resolver_with_hygiene/typescript
308152869
ns/iter (± 2403761
)330572889
ns/iter (± 2101345
)0.93
es/visitor/base-perf/module_clone
74258
ns/iter (± 1714
)74674
ns/iter (± 1261
)0.99
es/visitor/base-perf/fold_empty
86681
ns/iter (± 1298
)85787
ns/iter (± 1182
)1.01
es/visitor/base-perf/fold_noop_impl_all
86486
ns/iter (± 549
)86767
ns/iter (± 1363
)1.00
es/visitor/base-perf/fold_noop_impl_vec
86695
ns/iter (± 784
)86772
ns/iter (± 1707
)1.00
es/visitor/base-perf/boxing_boxed_clone
54
ns/iter (± 0
)54
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed_clone
58
ns/iter (± 0
)58
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
105
ns/iter (± 0
)100
ns/iter (± 0
)1.05
es/visitor/base-perf/boxing_unboxed
106
ns/iter (± 0
)101
ns/iter (± 0
)1.05
es/visitor/base-perf/visit_contains_this
3455
ns/iter (± 70
)3370
ns/iter (± 67
)1.03
es/base/parallel/resolver/typescript
4854986935
ns/iter (± 140822662
)5228508445
ns/iter (± 390203927
)0.93
es/base/parallel/hygiene/typescript
2015592858
ns/iter (± 39321767
)2236805415
ns/iter (± 38654919
)0.90
misc/visitors/time-complexity/time 5
94
ns/iter (± 0
)94
ns/iter (± 0
)1
misc/visitors/time-complexity/time 10
307
ns/iter (± 0
)309
ns/iter (± 4
)0.99
misc/visitors/time-complexity/time 15
663
ns/iter (± 31
)682
ns/iter (± 37
)0.97
misc/visitors/time-complexity/time 20
1196
ns/iter (± 6
)1237
ns/iter (± 52
)0.97
misc/visitors/time-complexity/time 40
6228
ns/iter (± 34
)6178
ns/iter (± 21
)1.01
misc/visitors/time-complexity/time 60
15524
ns/iter (± 35
)15495
ns/iter (± 11
)1.00
es/full-target/es2016
185980
ns/iter (± 564
)187058
ns/iter (± 431
)0.99
es/full-target/es2017
179137
ns/iter (± 438
)179580
ns/iter (± 538
)1.00
es/full-target/es2018
169039
ns/iter (± 595
)169703
ns/iter (± 326
)1.00
es2020_nullish_coalescing
65388
ns/iter (± 84
)65811
ns/iter (± 156
)0.99
es2020_optional_chaining
93229
ns/iter (± 321
)93578
ns/iter (± 240
)1.00
es2022_class_properties
91670
ns/iter (± 187
)92035
ns/iter (± 140
)1.00
es2018_object_rest_spread
69381
ns/iter (± 110
)70102
ns/iter (± 135
)0.99
es2019_optional_catch_binding
59256
ns/iter (± 120
)59626
ns/iter (± 116
)0.99
es2017_async_to_generator
59543
ns/iter (± 127
)60210
ns/iter (± 74
)0.99
es2016_exponentiation
63151
ns/iter (± 85
)63807
ns/iter (± 105
)0.99
es2015_arrow
68259
ns/iter (± 238
)68932
ns/iter (± 204
)0.99
es2015_block_scoped_fn
64026
ns/iter (± 90
)65107
ns/iter (± 170
)0.98
es2015_block_scoping
154314
ns/iter (± 10575
)146794
ns/iter (± 10254
)1.05
es2015_classes
114651
ns/iter (± 368
)115504
ns/iter (± 472
)0.99
es2015_computed_props
59263
ns/iter (± 165
)59815
ns/iter (± 542
)0.99
es2015_destructuring
114289
ns/iter (± 127
)114869
ns/iter (± 284
)0.99
es2015_duplicate_keys
62113
ns/iter (± 86
)62736
ns/iter (± 104
)0.99
es2015_parameters
77404
ns/iter (± 149
)77812
ns/iter (± 204
)0.99
es2015_fn_name
65128
ns/iter (± 432
)65600
ns/iter (± 738
)0.99
es2015_for_of
62210
ns/iter (± 120
)62873
ns/iter (± 86
)0.99
es2015_instanceof
61357
ns/iter (± 122
)61984
ns/iter (± 140
)0.99
es2015_shorthand_property
59219
ns/iter (± 118
)59732
ns/iter (± 107
)0.99
es2015_spread
59358
ns/iter (± 83
)59720
ns/iter (± 107
)0.99
es2015_sticky_regex
60376
ns/iter (± 91
)61333
ns/iter (± 97
)0.98
es2015_typeof_symbol
61035
ns/iter (± 133
)61021
ns/iter (± 129
)1.00
es/transform/baseline/base
50144
ns/iter (± 83
)50577
ns/iter (± 74
)0.99
es/transform/baseline/common_reserved_word
60876
ns/iter (± 74
)61378
ns/iter (± 139
)0.99
es/transform/baseline/common_typescript
141966
ns/iter (± 7021
)155885
ns/iter (± 11393
)0.91
es/target/es3
170643
ns/iter (± 179
)168831
ns/iter (± 319
)1.01
es/target/es2015
633789
ns/iter (± 1518
)628944
ns/iter (± 1314
)1.01
es/target/es2016
63266
ns/iter (± 78
)63621
ns/iter (± 145
)0.99
es/target/es2017
59784
ns/iter (± 83
)60410
ns/iter (± 91
)0.99
es/target/es2018
79374
ns/iter (± 67
)80110
ns/iter (± 174
)0.99
es/target/es2020
130920
ns/iter (± 230
)131575
ns/iter (± 741
)1.00
babelify-only
673748
ns/iter (± 802
)670174
ns/iter (± 2060
)1.01
parse_and_babelify_angular
42365938
ns/iter (± 434713
)43268893
ns/iter (± 688473
)0.98
parse_and_babelify_backbone
5468835
ns/iter (± 40415
)5520119
ns/iter (± 53253
)0.99
parse_and_babelify_jquery
32710161
ns/iter (± 370462
)33863708
ns/iter (± 497128
)0.97
parse_and_babelify_jquery_mobile
55945687
ns/iter (± 672183
)58562538
ns/iter (± 811434
)0.96
parse_and_babelify_mootools
33952802
ns/iter (± 403674
)35319647
ns/iter (± 315793
)0.96
parse_and_babelify_underscore
4378873
ns/iter (± 32337
)4355592
ns/iter (± 44361
)1.01
parse_and_babelify_yui
33091480
ns/iter (± 350873
)33989896
ns/iter (± 438258
)0.97
html/minify/document/css_spec
43934344
ns/iter (± 545825
)44776715
ns/iter (± 321297
)0.98
html/minify/document/github
18538161
ns/iter (± 33313
)18798311
ns/iter (± 102757
)0.99
html/minify/document/stackoverflow
16181366
ns/iter (± 34296
)16457237
ns/iter (± 89763
)0.98
html/minify/document_fragment/css_spec
42169907
ns/iter (± 178668
)43089736
ns/iter (± 419872
)0.98
html/minify/document_fragment/github
17619788
ns/iter (± 26183
)18069816
ns/iter (± 55216
)0.98
html/minify/document_fragment/stackoverflow
15737090
ns/iter (± 25448
)15996266
ns/iter (± 88711
)0.98
html/document/visitor/compare/clone
346537
ns/iter (± 1962
)343671
ns/iter (± 2156
)1.01
html/document/visitor/compare/visit_mut_span
376062
ns/iter (± 2875
)367974
ns/iter (± 1722
)1.02
html/document/visitor/compare/visit_mut_span_panic
380634
ns/iter (± 1758
)374988
ns/iter (± 3062
)1.02
html/document/visitor/compare/fold_span
404241
ns/iter (± 1559
)404174
ns/iter (± 2315
)1.00
html/document/visitor/compare/fold_span_panic
464326
ns/iter (± 2795
)459666
ns/iter (± 1529
)1.01
html/document_fragment/visitor/compare/clone
337424
ns/iter (± 2032
)342654
ns/iter (± 2595
)0.98
html/document_fragment/visitor/compare/visit_mut_span
364046
ns/iter (± 1488
)372332
ns/iter (± 2149
)0.98
html/document_fragment/visitor/compare/visit_mut_span_panic
371367
ns/iter (± 1827
)378972
ns/iter (± 2400
)0.98
html/document_fragment/visitor/compare/fold_span
402011
ns/iter (± 2455
)406950
ns/iter (± 1010
)0.99
html/document_fragment/visitor/compare/fold_span_panic
457742
ns/iter (± 1779
)457199
ns/iter (± 1630
)1.00
html/lexer/css_2021_spec
15458132
ns/iter (± 10145
)17347801
ns/iter (± 15457
)0.89
html/lexer/github_com_17_05_2022
5995017
ns/iter (± 3722
)6457140
ns/iter (± 2637
)0.93
html/lexer/stackoverflow_com_17_05_2022
5619216
ns/iter (± 4786
)6265217
ns/iter (± 2039
)0.90
html/parser/parser_document/css_2021_spec
27001928
ns/iter (± 73338
)26354326
ns/iter (± 238673
)1.02
html/parser/parser_document/github_com_17_05_2022
8788646
ns/iter (± 6722
)8766716
ns/iter (± 5240
)1.00
html/parser/parser_document/stackoverflow_com_17_05_2022
7747989
ns/iter (± 6692
)7729520
ns/iter (± 5140
)1.00
html/parser/parser_document_fragment/css_2021_spec
26745028
ns/iter (± 216463
)26410743
ns/iter (± 348710
)1.01
html/parser/parser_document_fragment/github_com_17_05_2022
8789976
ns/iter (± 14095
)8783127
ns/iter (± 18869
)1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7752926
ns/iter (± 16046
)7730750
ns/iter (± 3786
)1.00
This comment was automatically generated by workflow using github-action-benchmark.