Skip to content

Commit

Permalink
fix(plugin): Make span_to_source use dedicated function (#6853)
Browse files Browse the repository at this point in the history
**Related issue:**

 - Closes #6852.
 - Closes #6404.
  • Loading branch information
kdy1 committed Jan 26, 2023
1 parent 28be71d commit 99d48e3
Show file tree
Hide file tree
Showing 9 changed files with 2,207 additions and 91 deletions.
12 changes: 8 additions & 4 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,14 @@
"crates/swc_html_parser/tests/html5lib-tests"
],
"eslint.enable": false,
"cSpell.allowCompoundWords": true,
"cSpell.caseSensitive": true,
"rust-analyzer.checkOnSave.command": "clippy",
"rust-analyzer.checkOnSave.features": [
"rust-analyzer.check.command": "clippy",
"rust-analyzer.check.features": [
// We use this to make IDE faster
"rust-analyzer",
"rkyv-impl",
"debug"
],
"rust-analyzer.cargo.features": [
// We use this to make IDE faster
"rust-analyzer",
"rkyv-impl",
Expand Down
8 changes: 8 additions & 0 deletions crates/swc_common/src/syntax_pos.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1267,6 +1267,10 @@ pub enum SpanLinesError {
}

#[derive(Clone, PartialEq, Eq, Debug)]
#[cfg_attr(
any(feature = "rkyv-impl", feature = "rkyv-bytecheck-impl"),
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)
)]
pub enum SpanSnippetError {
DummyBytePos,
IllFormedSpan(Span),
Expand All @@ -1286,6 +1290,10 @@ pub struct DistinctSources {
}

#[derive(Clone, PartialEq, Eq, Debug)]
#[cfg_attr(
any(feature = "rkyv-impl", feature = "rkyv-bytecheck-impl"),
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)
)]
pub struct MalformedSourceMapPositions {
pub name: FileName,
pub source_len: usize,
Expand Down
95 changes: 11 additions & 84 deletions crates/swc_plugin_proxy/src/source_map/plugin_source_map_proxy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ extern "C" {
span_ctxt: u32,
allocated_ret_ptr: u32,
) -> u32;
fn __span_to_source_proxy(
span_lo: u32,
span_hi: u32,
span_ctxt: u32,
allocated_ret_ptr: u32,
) -> u32;
fn __span_to_lines_proxy(
span_lo: u32,
span_hi: u32,
Expand All @@ -67,49 +73,6 @@ pub struct PluginSourceMapProxy {
#[cfg(all(feature = "__rkyv", feature = "__plugin_mode", target_arch = "wasm32"))]
#[swc_trace]
impl PluginSourceMapProxy {
/*
fn sss<F, Ret>(&self, sp: Span, extract_source: F) -> Result<Ret, Box<SpanSnippetError>>
where
F: FnOnce(&str, usize, usize) -> Ret,
{
if sp.lo() > sp.hi() {
return Err(SpanSnippetError::IllFormedSpan(sp));
}
if sp.lo.is_dummy() || sp.hi.is_dummy() {
return Err(SpanSnippetError::DummyBytePos);
}
let local_begin = self.lookup_byte_offset(sp.lo());
let local_end = self.lookup_byte_offset(sp.hi());
if local_begin.sf.start_pos != local_end.sf.start_pos {
Err(SpanSnippetError::DistinctSources(DistinctSources {
begin: (local_begin.sf.name.clone(), local_begin.sf.start_pos),
end: (local_end.sf.name.clone(), local_end.sf.start_pos),
}))
} else {
let pos: BytePos = BytePos(0);
let start_index = pos.to_usize();
let end_index = local_end.pos.to_usize();
let source_len = (local_begin.sf.end_pos - local_begin.sf.start_pos).to_usize();
if start_index > end_index || end_index > source_len {
return Err(SpanSnippetError::MalformedForSourcemap(
MalformedSourceMapPositions {
name: local_begin.sf.name.clone(),
source_len,
begin_pos: local_begin.pos,
end_pos: local_end.pos,
},
));
}
let src = &local_begin.sf.src;
Ok(extract_source(src, start_index, end_index))
}
}
*/

pub fn span_to_source<F, Ret>(
&self,
sp: Span,
Expand All @@ -120,50 +83,14 @@ impl PluginSourceMapProxy {
{
#[cfg(target_arch = "wasm32")]
{
if sp.lo() > sp.hi() {
return Err(Box::new(SpanSnippetError::IllFormedSpan(sp)));
}
if sp.lo.is_dummy() || sp.hi.is_dummy() {
return Err(Box::new(SpanSnippetError::DummyBytePos));
}

let local_begin: SourceFileAndBytePos =
let src: Result<String, Box<SpanSnippetError>> =
read_returned_result_from_host_fallible(|serialized_ptr| unsafe {
__lookup_byte_offset_proxy(sp.lo().0, serialized_ptr)
__span_to_source_proxy(sp.lo.0, sp.hi.0, sp.ctxt.as_u32(), serialized_ptr)
})
.expect("Should return begin offset");
let local_end: SourceFileAndBytePos =
read_returned_result_from_host_fallible(|serialized_ptr| unsafe {
__lookup_byte_offset_proxy(sp.hi().0, serialized_ptr)
})
.expect("Should return end offset");

if local_begin.sf.start_pos != local_end.sf.start_pos {
Err(Box::new(SpanSnippetError::DistinctSources(
DistinctSources {
begin: (local_begin.sf.name.clone(), local_begin.sf.start_pos),
end: (local_end.sf.name.clone(), local_end.sf.start_pos),
},
)))
} else {
let start_index = local_begin.pos.to_usize();
let end_index = local_end.pos.to_usize();
let source_len = (local_begin.sf.end_pos - local_begin.sf.start_pos).to_usize();
.expect("Host should return source code");

if start_index > end_index || end_index > source_len {
return Err(Box::new(SpanSnippetError::MalformedForSourcemap(
MalformedSourceMapPositions {
name: local_begin.sf.name.clone(),
source_len,
begin_pos: local_begin.pos,
end_pos: local_end.pos,
},
)));
}

let src = &local_begin.sf.src;
return Ok(extract_source(src, start_index, end_index));
}
let src = src?;
return Ok(extract_source(&src, 0, src.len()));
}

#[cfg(not(target_arch = "wasm32"))]
Expand Down
11 changes: 9 additions & 2 deletions crates/swc_plugin_runner/src/imported_fn/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ use self::{
},
source_map::{
doctest_offset_line_proxy, lookup_byte_offset_proxy, lookup_char_pos_proxy,
merge_spans_proxy, span_to_filename_proxy, span_to_lines_proxy, span_to_string_proxy,
SourceMapHostEnvironment,
merge_spans_proxy, span_to_filename_proxy, span_to_lines_proxy, span_to_source_proxy,
span_to_string_proxy, SourceMapHostEnvironment,
},
};

Expand Down Expand Up @@ -281,6 +281,12 @@ pub(crate) fn build_import_object(
span_to_filename_proxy,
);

let span_to_source_fn_decl = Function::new_native_with_env(
store,
SourceMapHostEnvironment::new(&source_map, &source_map_buffer),
span_to_source_proxy,
);

let span_to_lines_fn_decl = Function::new_native_with_env(
store,
SourceMapHostEnvironment::new(&source_map, &source_map_buffer),
Expand Down Expand Up @@ -339,6 +345,7 @@ pub(crate) fn build_import_object(
"__merge_spans_proxy" => merge_spans_fn_decl,
"__span_to_string_proxy" => span_to_string_fn_decl,
"__span_to_filename_proxy" => span_to_filename_fn_decl,
"__span_to_source_proxy" => span_to_source_fn_decl,
"__span_to_lines_proxy" => span_to_lines_fn_decl,
"__lookup_byte_offset_proxy" => lookup_byte_offset_fn_decl
}
Expand Down
36 changes: 35 additions & 1 deletion crates/swc_plugin_runner/src/imported_fn/source_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use parking_lot::Mutex;
use swc_common::{
plugin::serialized::PluginSerializedBytes,
source_map::{PartialFileLines, PartialLoc},
BytePos, SourceMap, Span, SyntaxContext,
BytePos, SourceMap, SourceMapper, Span, SyntaxContext,
};
use wasmer::{LazyInit, Memory, NativeFunc};

Expand Down Expand Up @@ -267,3 +267,37 @@ pub fn span_to_filename_proxy(
0
}
}

#[tracing::instrument(level = "info", skip_all)]
pub fn span_to_source_proxy(
env: &SourceMapHostEnvironment,
span_lo: u32,
span_hi: u32,
span_ctxt: u32,
allocated_ret_ptr: u32,
) -> i32 {
if let Some(memory) = env.memory_ref() {
let span = Span {
lo: BytePos(span_lo),
hi: BytePos(span_hi),
ctxt: SyntaxContext::from_u32(span_ctxt),
};
let ret = (env.source_map.lock()).span_to_snippet(span);
let serialized_loc_bytes =
PluginSerializedBytes::try_serialize(&ret).expect("Should be serializable");

if let Some(alloc_guest_memory) = env.alloc_guest_memory_ref() {
allocate_return_values_into_guest(
memory,
alloc_guest_memory,
allocated_ret_ptr,
&serialized_loc_bytes,
);
1
} else {
0
}
} else {
0
}
}
Loading

1 comment on commit 99d48e3

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 99d48e3 Previous: 55225cb Ratio
es/full/bugs-1 304117 ns/iter (± 7566) 302235 ns/iter (± 9774) 1.01
es/full/minify/libraries/antd 1633803454 ns/iter (± 17171059) 1743334909 ns/iter (± 59800373) 0.94
es/full/minify/libraries/d3 305547968 ns/iter (± 2390102) 298823589 ns/iter (± 6011514) 1.02
es/full/minify/libraries/echarts 1286014698 ns/iter (± 17584189) 1247547706 ns/iter (± 26870982) 1.03
es/full/minify/libraries/jquery 92517551 ns/iter (± 3254526) 89674082 ns/iter (± 693929) 1.03
es/full/minify/libraries/lodash 109639152 ns/iter (± 2359637) 106094583 ns/iter (± 1311562) 1.03
es/full/minify/libraries/moment 53585162 ns/iter (± 484313) 52539498 ns/iter (± 519504) 1.02
es/full/minify/libraries/react 19479048 ns/iter (± 348710) 18850080 ns/iter (± 75178) 1.03
es/full/minify/libraries/terser 257675359 ns/iter (± 7160011) 249161017 ns/iter (± 3855517) 1.03
es/full/minify/libraries/three 443278586 ns/iter (± 4764516) 434630380 ns/iter (± 7658490) 1.02
es/full/minify/libraries/typescript 3058420940 ns/iter (± 25003289) 3166638342 ns/iter (± 27949171) 0.97
es/full/minify/libraries/victory 698627442 ns/iter (± 22432132) 651743769 ns/iter (± 17017566) 1.07
es/full/minify/libraries/vue 131205623 ns/iter (± 755640) 129512587 ns/iter (± 1877843) 1.01
es/full/codegen/es3 26155 ns/iter (± 60) 26123 ns/iter (± 130) 1.00
es/full/codegen/es5 26091 ns/iter (± 29) 26150 ns/iter (± 76) 1.00
es/full/codegen/es2015 26098 ns/iter (± 36) 26110 ns/iter (± 69) 1.00
es/full/codegen/es2016 26076 ns/iter (± 33) 26110 ns/iter (± 71) 1.00
es/full/codegen/es2017 26101 ns/iter (± 48) 26122 ns/iter (± 32) 1.00
es/full/codegen/es2018 26017 ns/iter (± 61) 26104 ns/iter (± 50) 1.00
es/full/codegen/es2019 26088 ns/iter (± 64) 26137 ns/iter (± 48) 1.00
es/full/codegen/es2020 26102 ns/iter (± 47) 26094 ns/iter (± 62) 1.00
es/full/all/es3 173905369 ns/iter (± 2415161) 169043052 ns/iter (± 3996681) 1.03
es/full/all/es5 164937259 ns/iter (± 4187473) 161863222 ns/iter (± 2557285) 1.02
es/full/all/es2015 125662873 ns/iter (± 1523379) 120940300 ns/iter (± 456621) 1.04
es/full/all/es2016 124795466 ns/iter (± 1989884) 120153007 ns/iter (± 547216) 1.04
es/full/all/es2017 124353330 ns/iter (± 1744888) 120252654 ns/iter (± 807205) 1.03
es/full/all/es2018 121350061 ns/iter (± 1425416) 117492828 ns/iter (± 877542) 1.03
es/full/all/es2019 121705595 ns/iter (± 1646576) 117615109 ns/iter (± 459442) 1.03
es/full/all/es2020 115546221 ns/iter (± 1553253) 112370864 ns/iter (± 1082614) 1.03
es/full/parser 537860 ns/iter (± 8466) 530874 ns/iter (± 7863) 1.01
es/full/base/fixer 21655 ns/iter (± 28) 21742 ns/iter (± 61) 1.00
es/full/base/resolver_and_hygiene 79100 ns/iter (± 61) 79289 ns/iter (± 99) 1.00
serialization of ast node 145 ns/iter (± 0) 145 ns/iter (± 0) 1
serialization of serde 129 ns/iter (± 0) 130 ns/iter (± 0) 0.99
css/minify/libraries/bootstrap 27818494 ns/iter (± 105677) 28741770 ns/iter (± 116080) 0.97
css/visitor/compare/clone 2057010 ns/iter (± 17662) 2077779 ns/iter (± 16202) 0.99
css/visitor/compare/visit_mut_span 2258410 ns/iter (± 6595) 2268354 ns/iter (± 18323) 1.00
css/visitor/compare/visit_mut_span_panic 2309985 ns/iter (± 4940) 2320678 ns/iter (± 13467) 1.00
css/visitor/compare/fold_span 3036183 ns/iter (± 15807) 3016520 ns/iter (± 19218) 1.01
css/visitor/compare/fold_span_panic 3193048 ns/iter (± 24764) 3178919 ns/iter (± 16337) 1.00
css/lexer/bootstrap_5_1_3 5179788 ns/iter (± 9509) 5178988 ns/iter (± 39521) 1.00
css/lexer/foundation_6_7_4 4368413 ns/iter (± 9746) 4358701 ns/iter (± 2115) 1.00
css/lexer/tailwind_3_1_1 828797 ns/iter (± 413) 825125 ns/iter (± 389) 1.00
css/parser/bootstrap_5_1_3 21525659 ns/iter (± 91822) 21543243 ns/iter (± 53640) 1.00
css/parser/foundation_6_7_4 17217413 ns/iter (± 24307) 17227954 ns/iter (± 23947) 1.00
css/parser/tailwind_3_1_1 3313393 ns/iter (± 1140) 3314565 ns/iter (± 9968) 1.00
es/codegen/colors 333022 ns/iter (± 185757) 342982 ns/iter (± 190432) 0.97
es/codegen/large 1176243 ns/iter (± 599393) 1178147 ns/iter (± 604680) 1.00
es/codegen/with-parser/colors 48442 ns/iter (± 318) 49034 ns/iter (± 428) 0.99
es/codegen/with-parser/large 534503 ns/iter (± 1265) 535245 ns/iter (± 2249) 1.00
es/minify/libraries/antd 1412117098 ns/iter (± 27796513) 1491228097 ns/iter (± 46485336) 0.95
es/minify/libraries/d3 253681263 ns/iter (± 2565669) 277804916 ns/iter (± 14773888) 0.91
es/minify/libraries/echarts 1106318788 ns/iter (± 16920844) 1128606675 ns/iter (± 19235502) 0.98
es/minify/libraries/jquery 79608850 ns/iter (± 1149436) 77955901 ns/iter (± 796024) 1.02
es/minify/libraries/lodash 99166873 ns/iter (± 2164704) 95347723 ns/iter (± 1217015) 1.04
es/minify/libraries/moment 47940192 ns/iter (± 1399259) 45832459 ns/iter (± 230165) 1.05
es/minify/libraries/react 17093838 ns/iter (± 124250) 16921387 ns/iter (± 66769) 1.01
es/minify/libraries/terser 215525661 ns/iter (± 4872333) 209223687 ns/iter (± 1639451) 1.03
es/minify/libraries/three 367050558 ns/iter (± 6007546) 371286156 ns/iter (± 14958176) 0.99
es/minify/libraries/typescript 2614703129 ns/iter (± 20615321) 2733650228 ns/iter (± 22385150) 0.96
es/minify/libraries/victory 568252749 ns/iter (± 16022883) 573551461 ns/iter (± 16916156) 0.99
es/minify/libraries/vue 117317768 ns/iter (± 1017725) 116301425 ns/iter (± 1176696) 1.01
es/visitor/compare/clone 2427005 ns/iter (± 8008) 2397160 ns/iter (± 2271) 1.01
es/visitor/compare/visit_mut_span 2794955 ns/iter (± 4861) 2780296 ns/iter (± 6515) 1.01
es/visitor/compare/visit_mut_span_panic 2835873 ns/iter (± 7323) 2817583 ns/iter (± 14854) 1.01
es/visitor/compare/fold_span 3941682 ns/iter (± 22877) 3895674 ns/iter (± 4712) 1.01
es/visitor/compare/fold_span_panic 4096294 ns/iter (± 83495) 4233520 ns/iter (± 79690) 0.97
es/lexer/colors 17186 ns/iter (± 19) 17294 ns/iter (± 113) 0.99
es/lexer/angular 8243996 ns/iter (± 3713) 8276056 ns/iter (± 4399) 1.00
es/lexer/backbone 1076785 ns/iter (± 572) 1083408 ns/iter (± 459) 0.99
es/lexer/jquery 5969914 ns/iter (± 1950) 5988284 ns/iter (± 865) 1.00
es/lexer/jquery mobile 9181489 ns/iter (± 10263) 9236220 ns/iter (± 70167) 0.99
es/lexer/mootools 4666869 ns/iter (± 972) 4693371 ns/iter (± 2700) 0.99
es/lexer/underscore 899761 ns/iter (± 466) 905069 ns/iter (± 356) 0.99
es/lexer/three 27920336 ns/iter (± 11544) 28127832 ns/iter (± 28768) 0.99
es/lexer/yui 5056362 ns/iter (± 3699) 5071789 ns/iter (± 2452) 1.00
es/parser/colors 30866 ns/iter (± 194) 31004 ns/iter (± 133) 1.00
es/parser/angular 15630080 ns/iter (± 213304) 16485455 ns/iter (± 231062) 0.95
es/parser/backbone 2341138 ns/iter (± 13843) 2352941 ns/iter (± 13750) 0.99
es/parser/jquery 12609792 ns/iter (± 66427) 13071436 ns/iter (± 115310) 0.96
es/parser/jquery mobile 20271664 ns/iter (± 285035) 21548639 ns/iter (± 352683) 0.94
es/parser/mootools 9732671 ns/iter (± 25720) 10098583 ns/iter (± 199062) 0.96
es/parser/underscore 1996630 ns/iter (± 13159) 1987343 ns/iter (± 10198) 1.00
es/parser/three 59871148 ns/iter (± 558103) 59748286 ns/iter (± 1739294) 1.00
es/parser/yui 9637553 ns/iter (± 43888) 9606975 ns/iter (± 94406) 1.00
es/preset-env/usage/builtin_type 141123 ns/iter (± 32105) 140338 ns/iter (± 32088) 1.01
es/preset-env/usage/property 21785 ns/iter (± 116) 21550 ns/iter (± 90) 1.01
es/resolver/typescript 110194602 ns/iter (± 5023944) 125227431 ns/iter (± 4204517) 0.88
es/fixer/typescript 83687421 ns/iter (± 3207799) 98540694 ns/iter (± 4053826) 0.85
es/hygiene/typescript 180295004 ns/iter (± 1887103) 203697427 ns/iter (± 3965394) 0.89
es/resolver_with_hygiene/typescript 312482588 ns/iter (± 2799271) 341019916 ns/iter (± 2061048) 0.92
es/visitor/base-perf/module_clone 75641 ns/iter (± 3908) 75476 ns/iter (± 907) 1.00
es/visitor/base-perf/fold_empty 86646 ns/iter (± 1566) 85552 ns/iter (± 1986) 1.01
es/visitor/base-perf/fold_noop_impl_all 85443 ns/iter (± 1588) 85895 ns/iter (± 1990) 0.99
es/visitor/base-perf/fold_noop_impl_vec 85820 ns/iter (± 1152) 85233 ns/iter (± 1003) 1.01
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 56 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 59 ns/iter (± 0) 59 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 103 ns/iter (± 0) 103 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed 105 ns/iter (± 0) 104 ns/iter (± 0) 1.01
es/visitor/base-perf/visit_contains_this 3522 ns/iter (± 83) 3417 ns/iter (± 71) 1.03
es/base/parallel/resolver/typescript 5296133884 ns/iter (± 434541478) 5296607499 ns/iter (± 464011954) 1.00
es/base/parallel/hygiene/typescript 2129862956 ns/iter (± 25177294) 2380448850 ns/iter (± 27800768) 0.89
misc/visitors/time-complexity/time 5 92 ns/iter (± 0) 92 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 312 ns/iter (± 0) 323 ns/iter (± 11) 0.97
misc/visitors/time-complexity/time 15 599 ns/iter (± 0) 607 ns/iter (± 7) 0.99
misc/visitors/time-complexity/time 20 1173 ns/iter (± 54) 1141 ns/iter (± 17) 1.03
misc/visitors/time-complexity/time 40 5950 ns/iter (± 14) 6026 ns/iter (± 95) 0.99
misc/visitors/time-complexity/time 60 15243 ns/iter (± 36) 15215 ns/iter (± 35) 1.00
es/full-target/es2016 186935 ns/iter (± 433) 188066 ns/iter (± 849) 0.99
es/full-target/es2017 182496 ns/iter (± 820) 181862 ns/iter (± 531) 1.00
es/full-target/es2018 171686 ns/iter (± 1195) 171567 ns/iter (± 440) 1.00
es2020_nullish_coalescing 66935 ns/iter (± 157) 66655 ns/iter (± 100) 1.00
es2020_optional_chaining 96448 ns/iter (± 4890) 95573 ns/iter (± 290) 1.01
es2022_class_properties 93249 ns/iter (± 141) 93361 ns/iter (± 127) 1.00
es2018_object_rest_spread 71546 ns/iter (± 121) 71475 ns/iter (± 81) 1.00
es2019_optional_catch_binding 61419 ns/iter (± 76) 61145 ns/iter (± 87) 1.00
es2017_async_to_generator 61910 ns/iter (± 79) 61414 ns/iter (± 127) 1.01
es2016_exponentiation 65593 ns/iter (± 73) 64786 ns/iter (± 129) 1.01
es2015_arrow 71083 ns/iter (± 250) 69895 ns/iter (± 245) 1.02
es2015_block_scoped_fn 66608 ns/iter (± 158) 66268 ns/iter (± 130) 1.01
es2015_block_scoping 149484 ns/iter (± 8305) 158556 ns/iter (± 8878) 0.94
es2015_classes 117139 ns/iter (± 391) 116643 ns/iter (± 476) 1.00
es2015_computed_props 61546 ns/iter (± 544) 61249 ns/iter (± 57) 1.00
es2015_destructuring 115359 ns/iter (± 176) 115011 ns/iter (± 315) 1.00
es2015_duplicate_keys 63945 ns/iter (± 87) 63307 ns/iter (± 60) 1.01
es2015_parameters 80104 ns/iter (± 173) 79155 ns/iter (± 113) 1.01
es2015_fn_name 66781 ns/iter (± 381) 66177 ns/iter (± 464) 1.01
es2015_for_of 64709 ns/iter (± 118) 64193 ns/iter (± 75) 1.01
es2015_instanceof 63248 ns/iter (± 77) 62793 ns/iter (± 61) 1.01
es2015_shorthand_property 61268 ns/iter (± 146) 60694 ns/iter (± 36) 1.01
es2015_spread 61494 ns/iter (± 122) 60946 ns/iter (± 101) 1.01
es2015_sticky_regex 62698 ns/iter (± 179) 62057 ns/iter (± 90) 1.01
es2015_typeof_symbol 62623 ns/iter (± 99) 61951 ns/iter (± 95) 1.01
es/transform/baseline/base 52327 ns/iter (± 73) 51616 ns/iter (± 160) 1.01
es/transform/baseline/common_reserved_word 63128 ns/iter (± 132) 62335 ns/iter (± 58) 1.01
es/transform/baseline/common_typescript 168781 ns/iter (± 415) 145088 ns/iter (± 3039) 1.16
es/target/es3 169679 ns/iter (± 300) 168882 ns/iter (± 196) 1.00
es/target/es2015 631643 ns/iter (± 1420) 625284 ns/iter (± 1088) 1.01
es/target/es2016 65704 ns/iter (± 147) 64927 ns/iter (± 103) 1.01
es/target/es2017 61896 ns/iter (± 104) 61569 ns/iter (± 80) 1.01
es/target/es2018 81915 ns/iter (± 123) 81887 ns/iter (± 134) 1.00
es/target/es2020 132166 ns/iter (± 245) 131908 ns/iter (± 323) 1.00
babelify-only 670505 ns/iter (± 1314) 671208 ns/iter (± 1499) 1.00
parse_and_babelify_angular 41023761 ns/iter (± 1032686) 45445699 ns/iter (± 1046262) 0.90
parse_and_babelify_backbone 5405775 ns/iter (± 57481) 5398427 ns/iter (± 34997) 1.00
parse_and_babelify_jquery 31759513 ns/iter (± 627265) 32214522 ns/iter (± 259826) 0.99
parse_and_babelify_jquery_mobile 54252470 ns/iter (± 723840) 55285190 ns/iter (± 1110985) 0.98
parse_and_babelify_mootools 32842605 ns/iter (± 533408) 32928334 ns/iter (± 786262) 1.00
parse_and_babelify_underscore 4397802 ns/iter (± 39432) 4381821 ns/iter (± 21276) 1.00
parse_and_babelify_yui 31878598 ns/iter (± 337313) 33281503 ns/iter (± 763993) 0.96
html/minify/document/css_spec 42726340 ns/iter (± 542464) 41470575 ns/iter (± 119667) 1.03
html/minify/document/github 17459267 ns/iter (± 16663) 17448280 ns/iter (± 24379) 1.00
html/minify/document/stackoverflow 15611167 ns/iter (± 22644) 15687755 ns/iter (± 25222) 1.00
html/minify/document_fragment/css_spec 40363980 ns/iter (± 440770) 39516606 ns/iter (± 237124) 1.02
html/minify/document_fragment/github 16755537 ns/iter (± 14590) 16845271 ns/iter (± 22264) 0.99
html/minify/document_fragment/stackoverflow 15283419 ns/iter (± 33080) 15313887 ns/iter (± 24618) 1.00
html/document/visitor/compare/clone 343740 ns/iter (± 1893) 338027 ns/iter (± 1932) 1.02
html/document/visitor/compare/visit_mut_span 367620 ns/iter (± 1636) 366537 ns/iter (± 1267) 1.00
html/document/visitor/compare/visit_mut_span_panic 376736 ns/iter (± 1914) 373973 ns/iter (± 1332) 1.01
html/document/visitor/compare/fold_span 402271 ns/iter (± 2030) 401277 ns/iter (± 1487) 1.00
html/document/visitor/compare/fold_span_panic 461963 ns/iter (± 1716) 462570 ns/iter (± 2308) 1.00
html/document_fragment/visitor/compare/clone 340548 ns/iter (± 2217) 342141 ns/iter (± 1737) 1.00
html/document_fragment/visitor/compare/visit_mut_span 367929 ns/iter (± 1602) 369402 ns/iter (± 2208) 1.00
html/document_fragment/visitor/compare/visit_mut_span_panic 378009 ns/iter (± 2453) 380078 ns/iter (± 2541) 0.99
html/document_fragment/visitor/compare/fold_span 406651 ns/iter (± 1895) 407366 ns/iter (± 2385) 1.00
html/document_fragment/visitor/compare/fold_span_panic 461729 ns/iter (± 1476) 455644 ns/iter (± 2271) 1.01
html/lexer/css_2021_spec 15558172 ns/iter (± 21892) 15662011 ns/iter (± 12170) 0.99
html/lexer/github_com_17_05_2022 6022385 ns/iter (± 7459) 6033115 ns/iter (± 3036) 1.00
html/lexer/stackoverflow_com_17_05_2022 5624316 ns/iter (± 2969) 5655201 ns/iter (± 1778) 0.99
html/parser/parser_document/css_2021_spec 25326469 ns/iter (± 141890) 25187780 ns/iter (± 88386) 1.01
html/parser/parser_document/github_com_17_05_2022 8744371 ns/iter (± 7058) 8713111 ns/iter (± 4857) 1.00
html/parser/parser_document/stackoverflow_com_17_05_2022 7701478 ns/iter (± 2113) 7712166 ns/iter (± 8186) 1.00
html/parser/parser_document_fragment/css_2021_spec 25572730 ns/iter (± 122561) 25353904 ns/iter (± 113697) 1.01
html/parser/parser_document_fragment/github_com_17_05_2022 8767114 ns/iter (± 12319) 8728311 ns/iter (± 19730) 1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7731803 ns/iter (± 5630) 7721929 ns/iter (± 10976) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.