Skip to content

Commit 65db1ba

Browse files
authoredAug 24, 2023
refactor(es/minifier): Pre-calculate reassigned (#7832)
1 parent 662f236 commit 65db1ba

File tree

10 files changed

+58
-58
lines changed

10 files changed

+58
-58
lines changed
 

‎crates/swc_ecma_minifier/src/compress/optimize/evaluate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ impl Optimizer<'_> {
4040

4141
let usage = self.data.vars.get(&obj.to_id())?;
4242

43-
if usage.reassigned() {
43+
if usage.reassigned {
4444
return None;
4545
}
4646

‎crates/swc_ecma_minifier/src/compress/optimize/iife.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ impl Optimizer<'_> {
181181
match &mut **param {
182182
Pat::Ident(param) => {
183183
if let Some(usage) = self.data.vars.get(&param.to_id()) {
184-
if usage.reassigned() {
184+
if usage.reassigned {
185185
continue;
186186
}
187187
if usage.ref_count != 1 {
@@ -222,7 +222,7 @@ impl Optimizer<'_> {
222222
Pat::Rest(rest_pat) => {
223223
if let Pat::Ident(param_id) = &*rest_pat.arg {
224224
if let Some(usage) = self.data.vars.get(&param_id.to_id()) {
225-
if usage.reassigned()
225+
if usage.reassigned
226226
|| usage.ref_count != 1
227227
|| !usage.has_property_access
228228
{
@@ -906,7 +906,7 @@ impl Optimizer<'_> {
906906
if let Some(arg) = arg {
907907
if let Some(usage) = self.data.vars.get(&orig_params[idx].to_id()) {
908908
if usage.ref_count == 1
909-
&& !usage.reassigned()
909+
&& !usage.reassigned
910910
&& !usage.has_property_mutation
911911
&& matches!(
912912
&*arg,

‎crates/swc_ecma_minifier/src/compress/optimize/inline.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ impl Optimizer<'_> {
9898
//
9999
// TODO: Allow `length` in usage.accessed_props
100100
if usage.declared
101-
&& !usage.reassigned()
101+
&& !usage.reassigned
102102
&& !usage.mutated
103103
&& !usage.has_property_mutation
104104
&& usage.accessed_props.is_empty()
@@ -153,7 +153,7 @@ impl Optimizer<'_> {
153153
}
154154
}
155155

156-
if !usage.reassigned() {
156+
if !usage.reassigned {
157157
match init {
158158
Expr::Fn(..) | Expr::Arrow(..) => {
159159
self.typeofs.insert(ident.to_id(), js_word!("function"));
@@ -188,7 +188,7 @@ impl Optimizer<'_> {
188188
if !usage.assigned_fn_local {
189189
false
190190
} else if let Some(u) = self.data.vars.get(&id.to_id()) {
191-
let mut should_inline = !u.reassigned() && u.declared;
191+
let mut should_inline = !u.reassigned && u.declared;
192192

193193
should_inline &=
194194
// Function declarations are hoisted
@@ -322,7 +322,7 @@ impl Optimizer<'_> {
322322
&& is_inline_enabled
323323
&& usage.declared
324324
&& may_remove
325-
&& !usage.reassigned()
325+
&& !usage.reassigned
326326
&& (usage.can_inline_var() || usage.is_mutated_only_by_one_call())
327327
&& ref_count == 1
328328
{
@@ -371,7 +371,7 @@ impl Optimizer<'_> {
371371
continue;
372372
}
373373
if let Some(v_usage) = self.data.vars.get(&id) {
374-
if v_usage.reassigned() {
374+
if v_usage.reassigned {
375375
return;
376376
}
377377
} else {
@@ -388,7 +388,7 @@ impl Optimizer<'_> {
388388
continue;
389389
}
390390
if let Some(v_usage) = self.data.vars.get(&id) {
391-
if v_usage.reassigned() {
391+
if v_usage.reassigned {
392392
return;
393393
}
394394
} else {
@@ -400,7 +400,7 @@ impl Optimizer<'_> {
400400
Expr::Object(..) if self.options.pristine_globals => {
401401
for id in idents_used_by_ignoring_nested(init) {
402402
if let Some(v_usage) = self.data.vars.get(&id) {
403-
if v_usage.reassigned() {
403+
if v_usage.reassigned {
404404
return;
405405
}
406406
}
@@ -413,7 +413,7 @@ impl Optimizer<'_> {
413413
}
414414

415415
if let Some(init_usage) = self.data.vars.get(&id.to_id()) {
416-
if init_usage.reassigned() || !init_usage.declared {
416+
if init_usage.reassigned || !init_usage.declared {
417417
return;
418418
}
419419
}
@@ -422,7 +422,7 @@ impl Optimizer<'_> {
422422
_ => {
423423
for id in idents_used_by(init) {
424424
if let Some(v_usage) = self.data.vars.get(&id) {
425-
if v_usage.reassigned() || v_usage.has_property_mutation {
425+
if v_usage.reassigned || v_usage.has_property_mutation {
426426
return;
427427
}
428428
}
@@ -534,7 +534,7 @@ impl Optimizer<'_> {
534534
}
535535

536536
if let Some(usage) = self.data.vars.get(&i.to_id()) {
537-
if !usage.reassigned() {
537+
if !usage.reassigned {
538538
trace_op!("typeofs: Storing typeof `{}{:?}`", i.sym, i.span.ctxt);
539539
match &*decl {
540540
Decl::Fn(..) => {
@@ -601,10 +601,10 @@ impl Optimizer<'_> {
601601
return;
602602
}
603603

604-
if usage.reassigned() || usage.inline_prevented {
604+
if usage.reassigned || usage.inline_prevented {
605605
log_abort!(
606606
"inline: [x] reassigned = {}, inline_prevented = {}",
607-
usage.reassigned(),
607+
usage.reassigned,
608608
usage.inline_prevented
609609
);
610610
return;

‎crates/swc_ecma_minifier/src/compress/optimize/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,7 @@ impl Optimizer<'_> {
842842
if let Expr::Ident(callee) = &**callee {
843843
if self.options.reduce_vars && self.options.side_effects {
844844
if let Some(usage) = self.data.vars.get(&callee.to_id()) {
845-
if !usage.reassigned() && usage.pure_fn {
845+
if !usage.reassigned && usage.pure_fn {
846846
self.changed = true;
847847
report_change!("Reducing function call to a variable");
848848

‎crates/swc_ecma_minifier/src/compress/optimize/props.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ impl Optimizer<'_> {
3535
&& !v.used_as_arg
3636
&& !v.used_in_cond
3737
&& (!v.is_fn_local || !self.mode.should_be_very_correct())
38-
&& !v.reassigned()
38+
&& !v.reassigned
3939
&& !v.is_infected()
4040
})
4141
.unwrap_or(false)

‎crates/swc_ecma_minifier/src/compress/optimize/sequences.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1469,7 +1469,7 @@ impl Optimizer<'_> {
14691469
}
14701470
_ => a.may_have_side_effects(&self.expr_ctx),
14711471
};
1472-
if has_side_effect && !usgae.is_fn_local && (usgae.exported || usgae.reassigned()) {
1472+
if has_side_effect && !usgae.is_fn_local && (usgae.exported || usgae.reassigned) {
14731473
log_abort!("a (expr) has side effect");
14741474
return false;
14751475
}
@@ -1478,7 +1478,7 @@ impl Optimizer<'_> {
14781478
if let Some(init) = &a.init {
14791479
if init.may_have_side_effects(&self.expr_ctx)
14801480
&& !usgae.is_fn_local
1481-
&& (usgae.exported || usgae.reassigned())
1481+
&& (usgae.exported || usgae.reassigned)
14821482
{
14831483
log_abort!("a (var) init has side effect");
14841484
return false;
@@ -2210,7 +2210,7 @@ impl Optimizer<'_> {
22102210
}
22112211

22122212
// We can remove this variable same as unused pass
2213-
if !usage.reassigned()
2213+
if !usage.reassigned
22142214
&& usage.usage_count == 1
22152215
&& usage.declared
22162216
&& !usage.used_recursively
@@ -2239,7 +2239,7 @@ impl Optimizer<'_> {
22392239
_ => false,
22402240
};
22412241

2242-
if usage.ref_count != 1 || usage.reassigned() || !usage.is_fn_local {
2242+
if usage.ref_count != 1 || usage.reassigned || !usage.is_fn_local {
22432243
if is_lit {
22442244
can_take_init = false
22452245
} else {
@@ -2271,7 +2271,7 @@ impl Optimizer<'_> {
22712271

22722272
Mergable::FnDecl(a) => {
22732273
if let Some(usage) = self.data.vars.get(&a.ident.to_id()) {
2274-
if usage.ref_count != 1 || usage.reassigned() || !usage.is_fn_local {
2274+
if usage.ref_count != 1 || usage.reassigned || !usage.is_fn_local {
22752275
return Ok(false);
22762276
}
22772277

‎crates/swc_ecma_minifier/src/compress/optimize/unused.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ impl Optimizer<'_> {
150150
if let Some(v) = self.data.vars.get(&i.to_id()).cloned() {
151151
if v.ref_count == 0
152152
&& v.usage_count == 0
153-
&& !v.reassigned()
153+
&& !v.reassigned
154154
&& !v.has_property_mutation
155155
&& !v.declared_as_catch_param
156156
{
@@ -215,9 +215,7 @@ impl Optimizer<'_> {
215215
return true;
216216
}
217217

218-
if !usage.mutated
219-
&& !usage.reassigned()
220-
&& usage.no_side_effect_for_member_access
218+
if !usage.mutated && !usage.reassigned && usage.no_side_effect_for_member_access
221219
{
222220
return false;
223221
}

‎crates/swc_ecma_minifier/src/program_data.rs

+32-28
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ pub(crate) struct VarUsageInfo {
7474
pub(crate) usage_count: u32,
7575

7676
/// The variable itself is assigned after reference.
77-
reassigned: bool,
77+
pub(crate) reassigned: bool,
7878
/// The variable itself or a property of it is modified.
7979
pub(crate) mutated: bool,
8080

@@ -178,23 +178,18 @@ impl VarUsageInfo {
178178
!self.infects_to.is_empty()
179179
}
180180

181-
pub(crate) fn reassigned(&self) -> bool {
182-
self.reassigned
183-
|| (u32::from(self.var_initialized)
184-
+ u32::from(self.declared_as_catch_param)
185-
+ u32::from(self.declared_as_fn_param)
186-
+ self.assign_count)
187-
> 1
188-
}
189-
190181
pub(crate) fn can_inline_var(&self) -> bool {
191-
!self.mutated || (self.assign_count == 0 && !self.reassigned())
182+
!self.mutated || (self.assign_count == 0 && !self.reassigned)
192183
}
193184

194185
pub(crate) fn can_inline_fn_once(&self) -> bool {
195186
self.callee_count > 0
196187
|| !self.executed_multiple_time && (self.is_fn_local || !self.used_in_non_child_fn)
197188
}
189+
190+
fn initialized(&self) -> bool {
191+
self.var_initialized || self.declared_as_fn_param || self.declared_as_catch_param
192+
}
198193
}
199194

200195
impl Storage for ProgramData {
@@ -255,6 +250,12 @@ impl Storage for ProgramData {
255250

256251
e.get_mut().reassigned |= var_info.reassigned;
257252

253+
if var_info.assign_count > 0 {
254+
if e.get().initialized() {
255+
e.get_mut().reassigned = true
256+
}
257+
}
258+
258259
e.get_mut().mutated |= var_info.mutated;
259260

260261
e.get_mut().has_property_access |= var_info.has_property_access;
@@ -354,7 +355,8 @@ impl Storage for ProgramData {
354355
let v = self.vars.entry(i.to_id()).or_default();
355356
v.is_top_level |= ctx.is_top_level;
356357

357-
if has_init && (v.declared || v.var_initialized) {
358+
// assigned or declared before this declaration
359+
if has_init && (v.declared || v.var_initialized || v.assign_count > 0) {
358360
#[cfg(feature = "debug")]
359361
{
360362
tracing::trace!("declare_decl(`{}`): Already declared", i);
@@ -486,10 +488,6 @@ impl VarDataLike for VarUsageInfo {
486488
self.mutated = true;
487489
}
488490

489-
fn mark_reassigned(&mut self) {
490-
self.reassigned = true;
491-
}
492-
493491
fn mark_used_as_ref(&mut self) {
494492
self.used_as_ref = true;
495493
}
@@ -620,23 +618,29 @@ impl ProgramData {
620618

621619
if is_modify && ctx.is_exact_reassignment {
622620
if is_first {
621+
if e.assign_count > 0 || e.initialized() {
622+
e.reassigned = true
623+
}
624+
623625
e.assign_count += 1;
626+
627+
if !ctx.is_op_assign {
628+
if e.ref_count == 1
629+
&& ctx.in_assign_lhs
630+
&& e.var_kind != Some(VarDeclKind::Const)
631+
&& !inited
632+
{
633+
self.initialized_vars.insert(i.clone());
634+
e.assign_count -= 1;
635+
e.var_initialized = true;
636+
} else {
637+
e.reassigned = true
638+
}
639+
}
624640
}
625641

626642
if ctx.is_op_assign {
627643
e.usage_count += 1;
628-
} else if is_first {
629-
if e.ref_count == 1
630-
&& ctx.in_assign_lhs
631-
&& e.var_kind != Some(VarDeclKind::Const)
632-
&& !inited
633-
{
634-
self.initialized_vars.insert(i.clone());
635-
e.assign_count -= 1;
636-
e.var_initialized = true;
637-
} else {
638-
e.reassigned = true
639-
}
640644
}
641645

642646
for other in e.infects_to.clone() {

‎crates/swc_ecma_minifier/tests/full/issue-5912-bigdecimal/output.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎crates/swc_ecma_usage_analyzer/src/analyzer/storage.rs

-2
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ pub trait VarDataLike: Sized {
6767

6868
fn mark_mutated(&mut self);
6969

70-
fn mark_reassigned(&mut self);
71-
7270
fn mark_used_as_ref(&mut self);
7371

7472
fn add_infects_to(&mut self, other: Access);

1 commit comments

Comments
 (1)

github-actions[bot] commented on Aug 24, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: 65db1ba Previous: 7fe01e6 Ratio
es/full/bugs-1 289435 ns/iter (± 7811) 294212 ns/iter (± 8000) 0.98
es/full/minify/libraries/antd 1278765837 ns/iter (± 24101170) 1296898645 ns/iter (± 11410801) 0.99
es/full/minify/libraries/d3 270711542 ns/iter (± 4279117) 273417040 ns/iter (± 3551161) 0.99
es/full/minify/libraries/echarts 1037074718 ns/iter (± 5864876) 1046709560 ns/iter (± 8911545) 0.99
es/full/minify/libraries/jquery 83034020 ns/iter (± 291020) 82948561 ns/iter (± 224369) 1.00
es/full/minify/libraries/lodash 96141915 ns/iter (± 171217) 96299335 ns/iter (± 265960) 1.00
es/full/minify/libraries/moment 49106151 ns/iter (± 178097) 48985099 ns/iter (± 287707) 1.00
es/full/minify/libraries/react 17829757 ns/iter (± 23920) 17797262 ns/iter (± 125038) 1.00
es/full/minify/libraries/terser 213871082 ns/iter (± 569362) 214859999 ns/iter (± 1162531) 1.00
es/full/minify/libraries/three 377205159 ns/iter (± 1786471) 382821712 ns/iter (± 1618402) 0.99
es/full/minify/libraries/typescript 2586539772 ns/iter (± 8387760) 2620748461 ns/iter (± 9812722) 0.99
es/full/minify/libraries/victory 551230352 ns/iter (± 2170019) 561219796 ns/iter (± 6698773) 0.98
es/full/minify/libraries/vue 117830253 ns/iter (± 402684) 118143537 ns/iter (± 489191) 1.00
es/full/codegen/es3 33951 ns/iter (± 104) 34114 ns/iter (± 358) 1.00
es/full/codegen/es5 33917 ns/iter (± 41) 34341 ns/iter (± 190) 0.99
es/full/codegen/es2015 33984 ns/iter (± 63) 34473 ns/iter (± 194) 0.99
es/full/codegen/es2016 33964 ns/iter (± 65) 34151 ns/iter (± 312) 0.99
es/full/codegen/es2017 33989 ns/iter (± 66) 34251 ns/iter (± 293) 0.99
es/full/codegen/es2018 33989 ns/iter (± 106) 34281 ns/iter (± 309) 0.99
es/full/codegen/es2019 33975 ns/iter (± 88) 33930 ns/iter (± 262) 1.00
es/full/codegen/es2020 33912 ns/iter (± 98) 34440 ns/iter (± 223) 0.98
es/full/all/es3 167725308 ns/iter (± 1095275) 167655646 ns/iter (± 786827) 1.00
es/full/all/es5 159242647 ns/iter (± 724924) 160164133 ns/iter (± 918341) 0.99
es/full/all/es2015 120372523 ns/iter (± 755277) 119785959 ns/iter (± 778500) 1.00
es/full/all/es2016 118329232 ns/iter (± 1203138) 119059575 ns/iter (± 613288) 0.99
es/full/all/es2017 117751736 ns/iter (± 797056) 117836556 ns/iter (± 624562) 1.00
es/full/all/es2018 115894626 ns/iter (± 726013) 116519138 ns/iter (± 304017) 0.99
es/full/all/es2019 114946518 ns/iter (± 719595) 115750168 ns/iter (± 843893) 0.99
es/full/all/es2020 111017690 ns/iter (± 704506) 110785823 ns/iter (± 689333) 1.00
es/full/parser 490628 ns/iter (± 4821) 495653 ns/iter (± 7822) 0.99
es/full/base/fixer 17273 ns/iter (± 70) 19243 ns/iter (± 207) 0.90
es/full/base/resolver_and_hygiene 78135 ns/iter (± 317) 78634 ns/iter (± 851) 0.99
serialization of serde 297 ns/iter (± 0) 286 ns/iter (± 2) 1.04
css/minify/libraries/bootstrap 29056801 ns/iter (± 28719) 29910979 ns/iter (± 143249) 0.97
css/visitor/compare/clone 1630646 ns/iter (± 4543) 1635405 ns/iter (± 4787) 1.00
css/visitor/compare/visit_mut_span 1759457 ns/iter (± 7886) 1766724 ns/iter (± 18600) 1.00
css/visitor/compare/visit_mut_span_panic 1817234 ns/iter (± 6863) 1839305 ns/iter (± 8294) 0.99
css/visitor/compare/fold_span 2574550 ns/iter (± 7858) 2549106 ns/iter (± 38299) 1.01
css/visitor/compare/fold_span_panic 2756894 ns/iter (± 11780) 2719241 ns/iter (± 43837) 1.01
css/lexer/bootstrap_5_1_3 4459458 ns/iter (± 5814) 4456874 ns/iter (± 47991) 1.00
css/lexer/foundation_6_7_4 3756447 ns/iter (± 4815) 3732053 ns/iter (± 58963) 1.01
css/lexer/tailwind_3_1_1 715144 ns/iter (± 1163) 706547 ns/iter (± 6095) 1.01
css/parser/bootstrap_5_1_3 19990106 ns/iter (± 23464) 19750948 ns/iter (± 276409) 1.01
css/parser/foundation_6_7_4 15673900 ns/iter (± 19417) 15524539 ns/iter (± 253139) 1.01
css/parser/tailwind_3_1_1 3024234 ns/iter (± 2830) 3036544 ns/iter (± 9303) 1.00
es/codegen/colors 726751 ns/iter (± 396012) 739359 ns/iter (± 398189) 0.98
es/codegen/large 2912570 ns/iter (± 1531875) 2866425 ns/iter (± 1529136) 1.02
es/codegen/with-parser/colors 45661 ns/iter (± 504) 44947 ns/iter (± 757) 1.02
es/codegen/with-parser/large 489022 ns/iter (± 1111) 476401 ns/iter (± 6351) 1.03
es/minify/libraries/antd 1134016238 ns/iter (± 12302201) 1135686278 ns/iter (± 15848612) 1.00
es/minify/libraries/d3 240305489 ns/iter (± 665671) 238613629 ns/iter (± 897475) 1.01
es/minify/libraries/echarts 907796569 ns/iter (± 5058757) 898992482 ns/iter (± 6275247) 1.01
es/minify/libraries/jquery 73493658 ns/iter (± 169452) 73251412 ns/iter (± 95836) 1.00
es/minify/libraries/lodash 87061678 ns/iter (± 185716) 86893047 ns/iter (± 336725) 1.00
es/minify/libraries/moment 43614234 ns/iter (± 73626) 43541292 ns/iter (± 71160) 1.00
es/minify/libraries/react 16061667 ns/iter (± 64617) 16010545 ns/iter (± 42540) 1.00
es/minify/libraries/terser 186340214 ns/iter (± 428727) 184763601 ns/iter (± 1006135) 1.01
es/minify/libraries/three 321885709 ns/iter (± 851854) 319808642 ns/iter (± 2723789) 1.01
es/minify/libraries/typescript 2245243251 ns/iter (± 9046659) 2241609023 ns/iter (± 16194970) 1.00
es/minify/libraries/victory 473867510 ns/iter (± 1417946) 473443675 ns/iter (± 3949369) 1.00
es/minify/libraries/vue 106167174 ns/iter (± 2589623) 105688869 ns/iter (± 577603) 1.00
es/visitor/compare/clone 1944574 ns/iter (± 5747) 1950248 ns/iter (± 20062) 1.00
es/visitor/compare/visit_mut_span 2263280 ns/iter (± 4799) 2236353 ns/iter (± 20759) 1.01
es/visitor/compare/visit_mut_span_panic 2339833 ns/iter (± 5161) 2326221 ns/iter (± 17837) 1.01
es/visitor/compare/fold_span 3388615 ns/iter (± 8692) 3377129 ns/iter (± 35932) 1.00
es/visitor/compare/fold_span_panic 3488194 ns/iter (± 5188) 3412771 ns/iter (± 21913) 1.02
es/lexer/colors 13123 ns/iter (± 172) 13158 ns/iter (± 112) 1.00
es/lexer/angular 6048477 ns/iter (± 4605) 6081249 ns/iter (± 29676) 0.99
es/lexer/backbone 779247 ns/iter (± 411) 788979 ns/iter (± 4024) 0.99
es/lexer/jquery 4470053 ns/iter (± 4420) 4469870 ns/iter (± 13810) 1.00
es/lexer/jquery mobile 6851027 ns/iter (± 6340) 6817204 ns/iter (± 25653) 1.00
es/lexer/mootools 3553860 ns/iter (± 6084) 3551063 ns/iter (± 10737) 1.00
es/lexer/underscore 659311 ns/iter (± 693) 656650 ns/iter (± 3593) 1.00
es/lexer/three 21300233 ns/iter (± 9227) 21218473 ns/iter (± 75172) 1.00
es/lexer/yui 3763154 ns/iter (± 1998) 3777799 ns/iter (± 37574) 1.00
es/parser/colors 28228 ns/iter (± 166) 27899 ns/iter (± 181) 1.01
es/parser/angular 13618747 ns/iter (± 43260) 13310296 ns/iter (± 269509) 1.02
es/parser/backbone 2023932 ns/iter (± 10740) 1978196 ns/iter (± 12908) 1.02
es/parser/jquery 10984343 ns/iter (± 39989) 10752147 ns/iter (± 109271) 1.02
es/parser/jquery mobile 16805804 ns/iter (± 49039) 16647355 ns/iter (± 55127) 1.01
es/parser/mootools 8477549 ns/iter (± 21489) 8350519 ns/iter (± 45276) 1.02
es/parser/underscore 1753137 ns/iter (± 9533) 1728516 ns/iter (± 7888) 1.01
es/parser/three 47264121 ns/iter (± 780747) 46818386 ns/iter (± 285241) 1.01
es/parser/yui 8378374 ns/iter (± 31635) 8288141 ns/iter (± 25039) 1.01
es/preset-env/usage/builtin_type 137715 ns/iter (± 33072) 139621 ns/iter (± 32697) 0.99
es/preset-env/usage/property 16806 ns/iter (± 194) 16732 ns/iter (± 68) 1.00
es/resolver/typescript 90329347 ns/iter (± 1015045) 90567891 ns/iter (± 987501) 1.00
es/fixer/typescript 65221202 ns/iter (± 397205) 62697345 ns/iter (± 429794) 1.04
es/hygiene/typescript 130547369 ns/iter (± 614975) 128395588 ns/iter (± 1005911) 1.02
es/resolver_with_hygiene/typescript 239648289 ns/iter (± 860354) 240537664 ns/iter (± 2320532) 1.00
es/visitor/base-perf/module_clone 60459 ns/iter (± 140) 60231 ns/iter (± 1283) 1.00
es/visitor/base-perf/fold_empty 64546 ns/iter (± 290) 64888 ns/iter (± 711) 0.99
es/visitor/base-perf/fold_noop_impl_all 64269 ns/iter (± 215) 65284 ns/iter (± 458) 0.98
es/visitor/base-perf/fold_noop_impl_vec 64638 ns/iter (± 257) 65939 ns/iter (± 539) 0.98
es/visitor/base-perf/boxing_boxed_clone 57 ns/iter (± 0) 56 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed_clone 38 ns/iter (± 0) 39 ns/iter (± 0) 0.97
es/visitor/base-perf/boxing_boxed 109 ns/iter (± 0) 104 ns/iter (± 1) 1.05
es/visitor/base-perf/boxing_unboxed 77 ns/iter (± 0) 74 ns/iter (± 0) 1.04
es/visitor/base-perf/visit_empty 0 ns/iter (± 0) 0 ns/iter (± 0) NaN
es/visitor/base-perf/visit_contains_this 2593 ns/iter (± 4) 2656 ns/iter (± 21) 0.98
es/base/parallel/resolver/typescript 3692325519 ns/iter (± 223084402) 4468437073 ns/iter (± 266764342) 0.83
es/base/parallel/hygiene/typescript 1438909365 ns/iter (± 15007686) 1441549699 ns/iter (± 13935527) 1.00
misc/visitors/time-complexity/time 5 134 ns/iter (± 1) 132 ns/iter (± 1) 1.02
misc/visitors/time-complexity/time 10 387 ns/iter (± 12) 393 ns/iter (± 7) 0.98
misc/visitors/time-complexity/time 15 591 ns/iter (± 41) 679 ns/iter (± 8) 0.87
misc/visitors/time-complexity/time 20 1059 ns/iter (± 10) 1053 ns/iter (± 48) 1.01
misc/visitors/time-complexity/time 40 4130 ns/iter (± 6) 3523 ns/iter (± 12) 1.17
misc/visitors/time-complexity/time 60 8805 ns/iter (± 465) 7264 ns/iter (± 39) 1.21
es/full-target/es2016 233166 ns/iter (± 1052) 234383 ns/iter (± 1069) 0.99
es/full-target/es2017 222675 ns/iter (± 1041) 222504 ns/iter (± 916) 1.00
es/full-target/es2018 212304 ns/iter (± 1060) 210752 ns/iter (± 363) 1.01
es2020_nullish_coalescing 71935 ns/iter (± 245) 72166 ns/iter (± 446) 1.00
es2020_optional_chaining 81157 ns/iter (± 135) 81096 ns/iter (± 1000) 1.00
es2022_class_properties 114798 ns/iter (± 424) 113712 ns/iter (± 789) 1.01
es2018_object_rest_spread 74674 ns/iter (± 225) 75531 ns/iter (± 483) 0.99
es2019_optional_catch_binding 64783 ns/iter (± 570) 65803 ns/iter (± 188) 0.98
es2017_async_to_generator 63385 ns/iter (± 151) 63547 ns/iter (± 436) 1.00
es2016_exponentiation 69065 ns/iter (± 223) 69073 ns/iter (± 236) 1.00
es2015_arrow 72419 ns/iter (± 298) 72307 ns/iter (± 796) 1.00
es2015_block_scoped_fn 68141 ns/iter (± 161) 68677 ns/iter (± 328) 0.99
es2015_block_scoping 123282 ns/iter (± 414) 124920 ns/iter (± 488) 0.99

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

Please sign in to comment.