Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(css/compat): Support color with hex alpha (#6643)
- Loading branch information
1 parent
d831fb3
commit fe06b80
Showing
6 changed files
with
294 additions
and
2 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
use swc_atoms::js_word; | ||
use swc_common::DUMMY_SP; | ||
use swc_css_ast::{ | ||
AbsoluteColorBase, AlphaValue, Color, ComponentValue, Delimiter, DelimiterValue, Function, | ||
Ident, Number, | ||
}; | ||
|
||
use crate::compiler::Compiler; | ||
|
||
#[inline] | ||
fn from_hex(c: u8) -> u8 { | ||
match c { | ||
b'0'..=b'9' => c - b'0', | ||
b'a'..=b'f' => c - b'a' + 10, | ||
b'A'..=b'F' => c - b'A' + 10, | ||
_ => { | ||
unreachable!(); | ||
} | ||
} | ||
} | ||
|
||
#[inline] | ||
fn clamp_unit_f32(val: f64) -> u8 { | ||
(val * 255.).round().max(0.).min(255.) as u8 | ||
} | ||
|
||
fn shorten_hex_color(value: &str) -> Option<&str> { | ||
let length = value.len(); | ||
let chars = value.as_bytes(); | ||
|
||
if length == 8 | ||
&& (chars[6] == b'f' || chars[6] == b'F') | ||
&& (chars[7] == b'f' || chars[7] == b'F') | ||
{ | ||
return Some(&value[0..6]); | ||
} else if length == 4 && chars[3] == b'f' || chars[3] == b'F' { | ||
return Some(&value[0..3]); | ||
} | ||
|
||
None | ||
} | ||
|
||
fn hex_to_rgba(hex: &str) -> (u8, u8, u8, f64) { | ||
let hex = hex.as_bytes(); | ||
|
||
match hex.len() { | ||
8 => { | ||
let r = from_hex(hex[0]) * 16 + from_hex(hex[1]); | ||
let g = from_hex(hex[2]) * 16 + from_hex(hex[3]); | ||
let b = from_hex(hex[4]) * 16 + from_hex(hex[5]); | ||
let a = (from_hex(hex[6]) * 16 + from_hex(hex[7])) as f64 / 255.0; | ||
|
||
(r, g, b, a) | ||
} | ||
4 => { | ||
let r = from_hex(hex[0]) * 17; | ||
let g = from_hex(hex[1]) * 17; | ||
let b = from_hex(hex[2]) * 17; | ||
let a = (from_hex(hex[3]) * 17) as f64 / 255.0; | ||
|
||
(r, g, b, a) | ||
} | ||
|
||
_ => { | ||
unreachable!() | ||
} | ||
} | ||
} | ||
|
||
impl Compiler { | ||
pub(crate) fn process_color_hex_alpha(&mut self, n: &mut ComponentValue) { | ||
if let ComponentValue::Color(box Color::AbsoluteColorBase(AbsoluteColorBase::HexColor( | ||
hex_color, | ||
))) = n | ||
{ | ||
if hex_color.value.len() != 4 && hex_color.value.len() != 8 { | ||
return; | ||
} | ||
|
||
if let Some(shortened) = shorten_hex_color(&hex_color.value) { | ||
hex_color.value = shortened.into(); | ||
hex_color.raw = None; | ||
|
||
return; | ||
} | ||
|
||
let rgba = hex_to_rgba(&hex_color.value); | ||
|
||
let r = rgba.0 as f64; | ||
let g = rgba.1 as f64; | ||
let b = rgba.2 as f64; | ||
let a = rgba.3; | ||
|
||
let mut rounded_alpha = (a * 100.).round() / 100.; | ||
|
||
if clamp_unit_f32(rounded_alpha) != clamp_unit_f32(a) { | ||
rounded_alpha = (a * 1000.).round() / 1000.; | ||
} | ||
|
||
*n = ComponentValue::Color(Box::new(Color::AbsoluteColorBase( | ||
AbsoluteColorBase::Function(Function { | ||
span: hex_color.span, | ||
name: Ident { | ||
span: DUMMY_SP, | ||
value: js_word!("rgba"), | ||
raw: None, | ||
}, | ||
value: vec![ | ||
ComponentValue::Number(Box::new(Number { | ||
span: DUMMY_SP, | ||
value: r, | ||
raw: None, | ||
})), | ||
ComponentValue::Delimiter(Box::new(Delimiter { | ||
span: DUMMY_SP, | ||
value: DelimiterValue::Comma, | ||
})), | ||
ComponentValue::Number(Box::new(Number { | ||
span: DUMMY_SP, | ||
value: g, | ||
raw: None, | ||
})), | ||
ComponentValue::Delimiter(Box::new(Delimiter { | ||
span: DUMMY_SP, | ||
value: DelimiterValue::Comma, | ||
})), | ||
ComponentValue::Number(Box::new(Number { | ||
span: DUMMY_SP, | ||
value: b, | ||
raw: None, | ||
})), | ||
ComponentValue::Delimiter(Box::new(Delimiter { | ||
span: DUMMY_SP, | ||
value: DelimiterValue::Comma, | ||
})), | ||
ComponentValue::AlphaValue(Box::new(AlphaValue::Number(Number { | ||
span: DUMMY_SP, | ||
value: rounded_alpha, | ||
raw: None, | ||
}))), | ||
], | ||
}), | ||
))); | ||
} | ||
} | ||
} |
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
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,52 @@ | ||
body { | ||
background: #9d9 linear-gradient(#9823f8a9, #9823f834); | ||
color: red; | ||
color: #f00; | ||
color: #f00f; | ||
color: #FC0F; | ||
color: #0000ff; | ||
color: #0000ff00; | ||
color: #FFFFFF; | ||
content: "#f00"; | ||
content: "#0000ff00"; | ||
} | ||
|
||
body { | ||
background-color: #f3f3f3f3; | ||
color: #0003; | ||
} | ||
|
||
#svg-element { | ||
clip-path: url(#SVGID_1_); | ||
clip-path: url(#aaaa); | ||
} | ||
|
||
.other { | ||
background: #ff0099; | ||
background: #ff0099ff; | ||
background: #ff009900; | ||
} | ||
|
||
.short { | ||
color: #ffff; | ||
color: #ffffffff; | ||
color: #abdabcff; | ||
color: #000000FF; | ||
color: #abcf; | ||
color: #ff0f; | ||
color: #000f; | ||
color: #0000; | ||
color: #001e; | ||
} | ||
|
||
@supports (color: #1111) { | ||
.a { | ||
color: #1111; | ||
} | ||
} | ||
|
||
@supports (color: #11111111) { | ||
.a { | ||
color: #11111111; | ||
} | ||
} |
46 changes: 46 additions & 0 deletions
46
crates/swc_css_compat/tests/color-hex-alpha/input.expect.css
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,46 @@ | ||
body { | ||
background: #9d9 linear-gradient(rgba(152, 35, 248, 0.663), rgba(152, 35, 248, 0.204)); | ||
color: red; | ||
color: #f00; | ||
color: #f00; | ||
color: #FC0; | ||
color: #0000ff; | ||
color: rgba(0, 0, 255, 0); | ||
color: #FFFFFF; | ||
content: "#f00"; | ||
content: "#0000ff00"; | ||
} | ||
body { | ||
background-color: rgba(243, 243, 243, 0.953); | ||
color: rgba(0, 0, 0, 0.2); | ||
} | ||
#svg-element { | ||
clip-path: url(#SVGID_1_); | ||
clip-path: url(#aaaa); | ||
} | ||
.other { | ||
background: #ff0099; | ||
background: #ff0099; | ||
background: rgba(255, 0, 153, 0); | ||
} | ||
.short { | ||
color: #fff; | ||
color: #ffffff; | ||
color: #abdabc; | ||
color: #000000; | ||
color: #abc; | ||
color: #ff0; | ||
color: #000; | ||
color: rgba(0, 0, 0, 0); | ||
color: rgba(0, 0, 17, 0.933); | ||
} | ||
@supports (color: #1111) { | ||
.a { | ||
color: rgba(17, 17, 17, 0.067); | ||
} | ||
} | ||
@supports (color: #11111111) { | ||
.a { | ||
color: rgba(17, 17, 17, 0.067); | ||
} | ||
} |
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
fe06b80
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
300996
ns/iter (± 18288
)299433
ns/iter (± 18704
)1.01
es/full/minify/libraries/antd
1646758161
ns/iter (± 20064096
)1626232816
ns/iter (± 15620583
)1.01
es/full/minify/libraries/d3
337817001
ns/iter (± 6895005
)333611911
ns/iter (± 5536587
)1.01
es/full/minify/libraries/echarts
1399611670
ns/iter (± 11818302
)1405835474
ns/iter (± 14542912
)1.00
es/full/minify/libraries/jquery
92174554
ns/iter (± 1931942
)92221038
ns/iter (± 967960
)1.00
es/full/minify/libraries/lodash
109521052
ns/iter (± 2003821
)110616947
ns/iter (± 1757873
)0.99
es/full/minify/libraries/moment
53853046
ns/iter (± 508668
)53278394
ns/iter (± 690598
)1.01
es/full/minify/libraries/react
19778994
ns/iter (± 165687
)19743294
ns/iter (± 335990
)1.00
es/full/minify/libraries/terser
260888839
ns/iter (± 4276569
)256926888
ns/iter (± 3093971
)1.02
es/full/minify/libraries/three
472499837
ns/iter (± 9724658
)471768023
ns/iter (± 6628468
)1.00
es/full/minify/libraries/typescript
3099704751
ns/iter (± 23605560
)3070819297
ns/iter (± 24547972
)1.01
es/full/minify/libraries/victory
711212209
ns/iter (± 21301581
)675538048
ns/iter (± 8534132
)1.05
es/full/minify/libraries/vue
134625025
ns/iter (± 3359579
)135247028
ns/iter (± 1946211
)1.00
es/full/codegen/es3
27635
ns/iter (± 48
)28457
ns/iter (± 104
)0.97
es/full/codegen/es5
27578
ns/iter (± 73
)28446
ns/iter (± 39
)0.97
es/full/codegen/es2015
27580
ns/iter (± 75
)28450
ns/iter (± 68
)0.97
es/full/codegen/es2016
27568
ns/iter (± 46
)28420
ns/iter (± 71
)0.97
es/full/codegen/es2017
27582
ns/iter (± 46
)28480
ns/iter (± 83
)0.97
es/full/codegen/es2018
27592
ns/iter (± 29
)28540
ns/iter (± 45
)0.97
es/full/codegen/es2019
27543
ns/iter (± 74
)28456
ns/iter (± 44
)0.97
es/full/codegen/es2020
27601
ns/iter (± 67
)28490
ns/iter (± 87
)0.97
es/full/all/es3
169035866
ns/iter (± 2559614
)167756246
ns/iter (± 3366952
)1.01
es/full/all/es5
163037029
ns/iter (± 3852142
)160496324
ns/iter (± 3280817
)1.02
es/full/all/es2015
121300582
ns/iter (± 1471173
)120257407
ns/iter (± 919529
)1.01
es/full/all/es2016
120441512
ns/iter (± 2071211
)122167821
ns/iter (± 1832109
)0.99
es/full/all/es2017
120316950
ns/iter (± 1096381
)119360856
ns/iter (± 1141148
)1.01
es/full/all/es2018
120205716
ns/iter (± 2449222
)118101182
ns/iter (± 1654961
)1.02
es/full/all/es2019
118703904
ns/iter (± 1852033
)117329299
ns/iter (± 891268
)1.01
es/full/all/es2020
111880447
ns/iter (± 1349510
)113327928
ns/iter (± 1787787
)0.99
es/full/parser
508462
ns/iter (± 7336
)510695
ns/iter (± 7136
)1.00
es/full/base/fixer
21775
ns/iter (± 36
)22076
ns/iter (± 34
)0.99
es/full/base/resolver_and_hygiene
76958
ns/iter (± 78
)77771
ns/iter (± 97
)0.99
serialization of ast node
142
ns/iter (± 0
)161
ns/iter (± 0
)0.88
serialization of serde
127
ns/iter (± 0
)126
ns/iter (± 0
)1.01
css/minify/libraries/bootstrap
26864173
ns/iter (± 66116
)27053336
ns/iter (± 64260
)0.99
css/visitor/compare/clone
2085745
ns/iter (± 15243
)2115201
ns/iter (± 8857
)0.99
css/visitor/compare/visit_mut_span
2259912
ns/iter (± 4476
)2308505
ns/iter (± 6436
)0.98
css/visitor/compare/visit_mut_span_panic
2318806
ns/iter (± 3308
)2343089
ns/iter (± 7483
)0.99
css/visitor/compare/fold_span
2986589
ns/iter (± 47914
)3023430
ns/iter (± 27152
)0.99
css/visitor/compare/fold_span_panic
3106316
ns/iter (± 38801
)3139339
ns/iter (± 27395
)0.99
css/lexer/bootstrap_5_1_3
5186669
ns/iter (± 1244
)5195039
ns/iter (± 5260
)1.00
css/lexer/foundation_6_7_4
4395803
ns/iter (± 720
)4401551
ns/iter (± 4586
)1.00
css/lexer/tailwind_3_1_1
824885
ns/iter (± 828
)826341
ns/iter (± 542
)1.00
css/parser/bootstrap_5_1_3
20674921
ns/iter (± 110657
)20657876
ns/iter (± 46703
)1.00
css/parser/foundation_6_7_4
16390537
ns/iter (± 19223
)16560747
ns/iter (± 101193
)0.99
css/parser/tailwind_3_1_1
3177072
ns/iter (± 2470
)3186149
ns/iter (± 2285
)1.00
es/codegen/colors
332488
ns/iter (± 186186
)326618
ns/iter (± 182990
)1.02
es/codegen/large
1218788
ns/iter (± 637353
)1240883
ns/iter (± 627669
)0.98
es/codegen/with-parser/colors
45488
ns/iter (± 283
)45473
ns/iter (± 435
)1.00
es/codegen/with-parser/large
513831
ns/iter (± 1062
)513692
ns/iter (± 2248
)1.00
es/minify/libraries/antd
1407542773
ns/iter (± 24620448
)1418475939
ns/iter (± 9416368
)0.99
es/minify/libraries/d3
302143683
ns/iter (± 10636144
)287448463
ns/iter (± 5727087
)1.05
es/minify/libraries/echarts
1230040855
ns/iter (± 18167194
)1211713336
ns/iter (± 15291257
)1.02
es/minify/libraries/jquery
81336683
ns/iter (± 1197576
)79669683
ns/iter (± 1150208
)1.02
es/minify/libraries/lodash
98832833
ns/iter (± 1415497
)97599042
ns/iter (± 785136
)1.01
es/minify/libraries/moment
49246812
ns/iter (± 857161
)46291122
ns/iter (± 405462
)1.06
es/minify/libraries/react
17429067
ns/iter (± 266936
)17449239
ns/iter (± 271709
)1.00
es/minify/libraries/terser
229942705
ns/iter (± 5976977
)218835906
ns/iter (± 2262928
)1.05
es/minify/libraries/three
400820561
ns/iter (± 10546240
)388569218
ns/iter (± 5867866
)1.03
es/minify/libraries/typescript
2707082729
ns/iter (± 29965951
)2654368341
ns/iter (± 12815825
)1.02
es/minify/libraries/victory
586860015
ns/iter (± 13101763
)574555195
ns/iter (± 12623719
)1.02
es/minify/libraries/vue
119922740
ns/iter (± 3135900
)119376583
ns/iter (± 2282741
)1.00
es/visitor/compare/clone
2404892
ns/iter (± 32371
)2421477
ns/iter (± 30440
)0.99
es/visitor/compare/visit_mut_span
2784413
ns/iter (± 13986
)2829008
ns/iter (± 15440
)0.98
es/visitor/compare/visit_mut_span_panic
2873928
ns/iter (± 30437
)2871575
ns/iter (± 9397
)1.00
es/visitor/compare/fold_span
3981743
ns/iter (± 48130
)3982781
ns/iter (± 47724
)1.00
es/visitor/compare/fold_span_panic
4114624
ns/iter (± 31046
)4099937
ns/iter (± 7792
)1.00
es/lexer/colors
17381
ns/iter (± 21
)17364
ns/iter (± 24
)1.00
es/lexer/angular
8210028
ns/iter (± 37460
)8242480
ns/iter (± 6566
)1.00
es/lexer/backbone
1072320
ns/iter (± 336
)1077334
ns/iter (± 1444
)1.00
es/lexer/jquery
5946733
ns/iter (± 1222
)5972973
ns/iter (± 11405
)1.00
es/lexer/jquery mobile
9162127
ns/iter (± 2055
)9208351
ns/iter (± 8175
)0.99
es/lexer/mootools
4671572
ns/iter (± 1010
)4684491
ns/iter (± 2813
)1.00
es/lexer/underscore
895197
ns/iter (± 247
)896995
ns/iter (± 1572
)1.00
es/lexer/three
27915316
ns/iter (± 12304
)27982188
ns/iter (± 38175
)1.00
es/lexer/yui
5044733
ns/iter (± 963
)5053541
ns/iter (± 1453
)1.00
es/parser/colors
31314
ns/iter (± 142
)30954
ns/iter (± 175
)1.01
es/parser/angular
15993951
ns/iter (± 174141
)16116953
ns/iter (± 144473
)0.99
es/parser/backbone
2324087
ns/iter (± 13149
)2330480
ns/iter (± 10874
)1.00
es/parser/jquery
12563443
ns/iter (± 87061
)12835828
ns/iter (± 157933
)0.98
es/parser/jquery mobile
20750588
ns/iter (± 401706
)20355035
ns/iter (± 299088
)1.02
es/parser/mootools
9700858
ns/iter (± 34441
)9637606
ns/iter (± 73482
)1.01
es/parser/underscore
1971469
ns/iter (± 9347
)1979843
ns/iter (± 10585
)1.00
es/parser/three
59160260
ns/iter (± 451020
)59081327
ns/iter (± 412221
)1.00
es/parser/yui
9666270
ns/iter (± 47865
)9750696
ns/iter (± 92096
)0.99
es/preset-env/usage/builtin_type
142049
ns/iter (± 32935
)143844
ns/iter (± 33506
)0.99
es/preset-env/usage/property
21250
ns/iter (± 69
)21394
ns/iter (± 108
)0.99
es/resolver/typescript
110616766
ns/iter (± 2272648
)110286926
ns/iter (± 1639109
)1.00
es/fixer/typescript
86531316
ns/iter (± 670971
)86708097
ns/iter (± 1118326
)1.00
es/hygiene/typescript
168055581
ns/iter (± 1166489
)169138590
ns/iter (± 2426743
)0.99
es/resolver_with_hygiene/typescript
295267668
ns/iter (± 742375
)299457886
ns/iter (± 4037017
)0.99
es/visitor/base-perf/module_clone
74275
ns/iter (± 1041
)74168
ns/iter (± 640
)1.00
es/visitor/base-perf/fold_empty
86278
ns/iter (± 1445
)85938
ns/iter (± 1881
)1.00
es/visitor/base-perf/fold_noop_impl_all
85696
ns/iter (± 723
)85940
ns/iter (± 928
)1.00
es/visitor/base-perf/fold_noop_impl_vec
86463
ns/iter (± 1157
)86324
ns/iter (± 1225
)1.00
es/visitor/base-perf/boxing_boxed_clone
54
ns/iter (± 0
)56
ns/iter (± 0
)0.96
es/visitor/base-perf/boxing_unboxed_clone
58
ns/iter (± 0
)58
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
101
ns/iter (± 0
)103
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed
101
ns/iter (± 0
)102
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_contains_this
3666
ns/iter (± 83
)3552
ns/iter (± 46
)1.03
es/base/parallel/resolver/typescript
4917048540
ns/iter (± 251501171
)5328541224
ns/iter (± 428587174
)0.92
es/base/parallel/hygiene/typescript
2012932844
ns/iter (± 15815560
)1986643377
ns/iter (± 27521604
)1.01
misc/visitors/time-complexity/time 5
103
ns/iter (± 0
)102
ns/iter (± 0
)1.01
misc/visitors/time-complexity/time 10
337
ns/iter (± 1
)344
ns/iter (± 2
)0.98
misc/visitors/time-complexity/time 15
649
ns/iter (± 0
)672
ns/iter (± 0
)0.97
misc/visitors/time-complexity/time 20
1271
ns/iter (± 47
)1218
ns/iter (± 1
)1.04
misc/visitors/time-complexity/time 40
6665
ns/iter (± 11
)6652
ns/iter (± 27
)1.00
misc/visitors/time-complexity/time 60
17257
ns/iter (± 228
)17028
ns/iter (± 25
)1.01
es/full-target/es2016
187609
ns/iter (± 333
)188176
ns/iter (± 629
)1.00
es/full-target/es2017
180569
ns/iter (± 402
)181526
ns/iter (± 742
)0.99
es/full-target/es2018
169690
ns/iter (± 660
)170870
ns/iter (± 717
)0.99
es2020_nullish_coalescing
65473
ns/iter (± 125
)65597
ns/iter (± 155
)1.00
es2020_optional_chaining
94407
ns/iter (± 8042
)95376
ns/iter (± 8791
)0.99
es2022_class_properties
92115
ns/iter (± 128
)92970
ns/iter (± 157
)0.99
es2018_object_rest_spread
70103
ns/iter (± 973
)70345
ns/iter (± 178
)1.00
es2019_optional_catch_binding
59898
ns/iter (± 110
)60238
ns/iter (± 117
)0.99
es2017_async_to_generator
60382
ns/iter (± 146
)60809
ns/iter (± 66
)0.99
es2016_exponentiation
63379
ns/iter (± 153
)64096
ns/iter (± 137
)0.99
es2015_arrow
69079
ns/iter (± 231
)68934
ns/iter (± 227
)1.00
es2015_block_scoped_fn
64735
ns/iter (± 86
)64714
ns/iter (± 236
)1.00
es2015_block_scoping
156824
ns/iter (± 9823
)137355
ns/iter (± 6956
)1.14
es2015_classes
115189
ns/iter (± 435
)115287
ns/iter (± 515
)1.00
es2015_computed_props
59801
ns/iter (± 104
)59772
ns/iter (± 122
)1.00
es2015_destructuring
114442
ns/iter (± 281
)113999
ns/iter (± 359
)1.00
es2015_duplicate_keys
62521
ns/iter (± 115
)62537
ns/iter (± 61
)1.00
es2015_parameters
78008
ns/iter (± 147
)77918
ns/iter (± 202
)1.00
es2015_fn_name
65529
ns/iter (± 542
)65365
ns/iter (± 469
)1.00
es2015_for_of
62639
ns/iter (± 170
)62950
ns/iter (± 71
)1.00
es2015_instanceof
61645
ns/iter (± 87
)61950
ns/iter (± 58
)1.00
es2015_shorthand_property
59303
ns/iter (± 146
)59819
ns/iter (± 77
)0.99
es2015_spread
59595
ns/iter (± 108
)59858
ns/iter (± 84
)1.00
es2015_sticky_regex
60974
ns/iter (± 113
)59852
ns/iter (± 695
)1.02
es2015_typeof_symbol
61077
ns/iter (± 103
)59929
ns/iter (± 88
)1.02
es/transform/baseline/base
50346
ns/iter (± 79
)49697
ns/iter (± 117
)1.01
es/transform/baseline/common_reserved_word
61268
ns/iter (± 145
)60292
ns/iter (± 98
)1.02
es/transform/baseline/common_typescript
141937
ns/iter (± 1812
)141233
ns/iter (± 3139
)1.00
es/target/es3
168127
ns/iter (± 217
)164391
ns/iter (± 105
)1.02
es/target/es2015
627727
ns/iter (± 1080
)598561
ns/iter (± 503
)1.05
es/target/es2016
63348
ns/iter (± 151
)62529
ns/iter (± 45
)1.01
es/target/es2017
60420
ns/iter (± 88
)59428
ns/iter (± 140
)1.02
es/target/es2018
80211
ns/iter (± 116
)78593
ns/iter (± 119
)1.02
es/target/es2020
131363
ns/iter (± 227
)127546
ns/iter (± 162
)1.03
babelify-only
668025
ns/iter (± 4674
)669406
ns/iter (± 614
)1.00
parse_and_babelify_angular
43868900
ns/iter (± 610831
)42550439
ns/iter (± 696545
)1.03
parse_and_babelify_backbone
5404051
ns/iter (± 81222
)5452056
ns/iter (± 79406
)0.99
parse_and_babelify_jquery
32249270
ns/iter (± 364518
)31776033
ns/iter (± 579495
)1.01
parse_and_babelify_jquery_mobile
55082815
ns/iter (± 732057
)55678555
ns/iter (± 986857
)0.99
parse_and_babelify_mootools
33835474
ns/iter (± 612432
)33354360
ns/iter (± 499484
)1.01
parse_and_babelify_underscore
4368925
ns/iter (± 54973
)4352357
ns/iter (± 43580
)1.00
parse_and_babelify_yui
32922537
ns/iter (± 379733
)32860112
ns/iter (± 448389
)1.00
html/minify/document/css_spec
41584284
ns/iter (± 386390
)42051354
ns/iter (± 282472
)0.99
html/minify/document/github
17401033
ns/iter (± 39904
)17450089
ns/iter (± 44176
)1.00
html/minify/document/stackoverflow
15473526
ns/iter (± 35016
)15674955
ns/iter (± 77683
)0.99
html/minify/document_fragment/css_spec
39820186
ns/iter (± 366765
)40382348
ns/iter (± 216792
)0.99
html/minify/document_fragment/github
16698929
ns/iter (± 70330
)16721735
ns/iter (± 26060
)1.00
html/minify/document_fragment/stackoverflow
15489816
ns/iter (± 104970
)15151818
ns/iter (± 46354
)1.02
html/document/visitor/compare/clone
340841
ns/iter (± 2047
)345897
ns/iter (± 1638
)0.99
html/document/visitor/compare/visit_mut_span
365522
ns/iter (± 1457
)369942
ns/iter (± 2910
)0.99
html/document/visitor/compare/visit_mut_span_panic
376416
ns/iter (± 2248
)375657
ns/iter (± 1719
)1.00
html/document/visitor/compare/fold_span
404181
ns/iter (± 1567
)409177
ns/iter (± 1411
)0.99
html/document/visitor/compare/fold_span_panic
460993
ns/iter (± 2751
)466111
ns/iter (± 1633
)0.99
html/document_fragment/visitor/compare/clone
339078
ns/iter (± 2004
)338861
ns/iter (± 2933
)1.00
html/document_fragment/visitor/compare/visit_mut_span
365634
ns/iter (± 2232
)366556
ns/iter (± 1880
)1.00
html/document_fragment/visitor/compare/visit_mut_span_panic
372208
ns/iter (± 1961
)373524
ns/iter (± 2556
)1.00
html/document_fragment/visitor/compare/fold_span
401328
ns/iter (± 2071
)404504
ns/iter (± 1671
)0.99
html/document_fragment/visitor/compare/fold_span_panic
459460
ns/iter (± 1971
)461193
ns/iter (± 2042
)1.00
html/lexer/css_2021_spec
15592866
ns/iter (± 6709
)15550596
ns/iter (± 7913
)1.00
html/lexer/github_com_17_05_2022
6052926
ns/iter (± 7556
)6048146
ns/iter (± 4869
)1.00
html/lexer/stackoverflow_com_17_05_2022
5659403
ns/iter (± 2080
)5643404
ns/iter (± 1973
)1.00
html/parser/parser_document/css_2021_spec
25682802
ns/iter (± 267786
)25993460
ns/iter (± 204758
)0.99
html/parser/parser_document/github_com_17_05_2022
8777695
ns/iter (± 33271
)8801247
ns/iter (± 73728
)1.00
html/parser/parser_document/stackoverflow_com_17_05_2022
7730492
ns/iter (± 11063
)7732675
ns/iter (± 8547
)1.00
html/parser/parser_document_fragment/css_2021_spec
26115903
ns/iter (± 151647
)26056368
ns/iter (± 339685
)1.00
html/parser/parser_document_fragment/github_com_17_05_2022
8793057
ns/iter (± 9808
)8809003
ns/iter (± 28645
)1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7728190
ns/iter (± 4919
)7759193
ns/iter (± 4421
)1.00
This comment was automatically generated by workflow using github-action-benchmark.