Skip to content

Commit d808864

Browse files
authoredJan 30, 2023
fix(es/compat): Fix optional chaining pass (#6875)
**Related issue:** - Closes #6762.
1 parent edc4327 commit d808864

12 files changed

+57
-46
lines changed
 

‎crates/swc/tests/tsc-references/controlFlowOptionalChain.1.normal.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// assignments in shortcutting chain
33
import _instanceof from "@swc/helpers/src/_instanceof.mjs";
44
import _type_of from "@swc/helpers/src/_type_of.mjs";
5-
var _o4_x, _o4_x1, _o5_x_y_z, _o5_x, _o5_x1, _o5_x2, _o5_x_y_z1, _o5_x3, _arr_i;
5+
var _o4_x, _o4_x1, _o5_x_y_z, _o5_x, _o5_x_y, _o5_x1, _o5_x2, _o5_x_y_z1, _o5_x3, _o5_x_y1, _arr_i;
66
var a;
77
o === null || o === void 0 ? void 0 : o[a = 1];
88
a.toString();
@@ -68,28 +68,28 @@ if ((_o4_x = o4.x) === null || _o4_x === void 0 ? void 0 : _o4_x.y) {
6868
o4.x;
6969
(_o4_x1 = o4.x) === null || _o4_x1 === void 0 ? void 0 : _o4_x1.y;
7070
o4.x.y;
71-
if ((_o5_x_y_z = (_o5_x = o5.x) === null || _o5_x === void 0 ? void 0 : _o5_x.y.z) === null || _o5_x_y_z === void 0 ? void 0 : _o5_x_y_z.w) {
72-
var _o5_x_y_z2, _o5_x4, _o5_x_y_z3, _o5_x5;
71+
if ((_o5_x_y_z = (_o5_x = o5.x) === null || _o5_x === void 0 ? void 0 : (_o5_x_y = _o5_x.y) === null || _o5_x_y === void 0 ? void 0 : _o5_x_y.z) === null || _o5_x_y_z === void 0 ? void 0 : _o5_x_y_z.w) {
72+
var _o5_x_y_z2, _o5_x4, _o5_x_y_z3, _o5_x5, _o5_x_y2;
7373
o5.x;
7474
o5.x.y;
7575
o5.x.y.z;
7676
o5.x.y.z.w; // true
7777
(_o5_x_y_z2 = o5.x.y.z) === null || _o5_x_y_z2 === void 0 ? void 0 : _o5_x_y_z2.w; // true
7878
(_o5_x4 = o5.x) === null || _o5_x4 === void 0 ? void 0 : _o5_x4.y.z.w; // true
79-
(_o5_x_y_z3 = (_o5_x5 = o5.x) === null || _o5_x5 === void 0 ? void 0 : _o5_x5.y.z) === null || _o5_x_y_z3 === void 0 ? void 0 : _o5_x_y_z3.w; // true
79+
(_o5_x_y_z3 = (_o5_x5 = o5.x) === null || _o5_x5 === void 0 ? void 0 : (_o5_x_y2 = _o5_x5.y) === null || _o5_x_y2 === void 0 ? void 0 : _o5_x_y2.z) === null || _o5_x_y_z3 === void 0 ? void 0 : _o5_x_y_z3.w; // true
8080
} else {
81-
var _o5_x6, _o5_x7, _o5_x_y_z4, _o5_x8;
81+
var _o5_x6, _o5_x7, _o5_x_y_z4, _o5_x8, _o5_x_y3;
8282
o5.x;
8383
(_o5_x6 = o5.x) === null || _o5_x6 === void 0 ? void 0 : _o5_x6.y;
8484
(_o5_x7 = o5.x) === null || _o5_x7 === void 0 ? void 0 : _o5_x7.y.z;
85-
(_o5_x_y_z4 = (_o5_x8 = o5.x) === null || _o5_x8 === void 0 ? void 0 : _o5_x8.y.z) === null || _o5_x_y_z4 === void 0 ? void 0 : _o5_x_y_z4.w;
85+
(_o5_x_y_z4 = (_o5_x8 = o5.x) === null || _o5_x8 === void 0 ? void 0 : (_o5_x_y3 = _o5_x8.y) === null || _o5_x_y3 === void 0 ? void 0 : _o5_x_y3.z) === null || _o5_x_y_z4 === void 0 ? void 0 : _o5_x_y_z4.w;
8686
o5.x.y;
8787
o5.x.y.z.w;
8888
}
8989
o5.x;
9090
(_o5_x1 = o5.x) === null || _o5_x1 === void 0 ? void 0 : _o5_x1.y;
9191
(_o5_x2 = o5.x) === null || _o5_x2 === void 0 ? void 0 : _o5_x2.y.z;
92-
(_o5_x_y_z1 = (_o5_x3 = o5.x) === null || _o5_x3 === void 0 ? void 0 : _o5_x3.y.z) === null || _o5_x_y_z1 === void 0 ? void 0 : _o5_x_y_z1.w;
92+
(_o5_x_y_z1 = (_o5_x3 = o5.x) === null || _o5_x3 === void 0 ? void 0 : (_o5_x_y1 = _o5_x3.y) === null || _o5_x_y1 === void 0 ? void 0 : _o5_x_y1.z) === null || _o5_x_y_z1 === void 0 ? void 0 : _o5_x_y_z1.w;
9393
o5.x.y;
9494
o5.x.y.z.w;
9595
if (o6 === null || o6 === void 0 ? void 0 : o6.f()) {

‎crates/swc/tests/tsc-references/controlFlowOptionalChain.2.minified.js

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

‎crates/swc/tests/tsc-references/deleteChain.1.normal.js

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

‎crates/swc/tests/tsc-references/deleteChain.2.minified.js

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

‎crates/swc/tests/tsc-references/elementAccessChain.1.normal.js

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

‎crates/swc/tests/tsc-references/elementAccessChain.2.minified.js

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

‎crates/swc/tests/tsc-references/propertyAccessChain.1.normal.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
//// [propertyAccessChain.ts]
2-
var _o3_b, _o4_b_c_d, _o4_b, _o5_b_c_d, _o5_b, _o6;
2+
var _o3_b, _o4_b_c_d, _o4_b, _o4_b_c, _o5_b_c_d, _o5_b_c, _o5_b, _o5_b_call, _o6;
33
o1 === null || o1 === void 0 ? void 0 : o1.b;
44
o2 === null || o2 === void 0 ? void 0 : o2.b.c;
55
(_o3_b = o3.b) === null || _o3_b === void 0 ? void 0 : _o3_b.c;
6-
(_o4_b_c_d = (_o4_b = o4.b) === null || _o4_b === void 0 ? void 0 : _o4_b.c.d) === null || _o4_b_c_d === void 0 ? void 0 : _o4_b_c_d.e;
7-
(_o5_b_c_d = (_o5_b = o5.b) === null || _o5_b === void 0 ? void 0 : _o5_b.call(o5).c.d) === null || _o5_b_c_d === void 0 ? void 0 : _o5_b_c_d.e;
6+
(_o4_b_c_d = (_o4_b = o4.b) === null || _o4_b === void 0 ? void 0 : (_o4_b_c = _o4_b.c) === null || _o4_b_c === void 0 ? void 0 : _o4_b_c.d) === null || _o4_b_c_d === void 0 ? void 0 : _o4_b_c_d.e;
7+
(_o5_b_c_d = (_o5_b_c = (_o5_b = o5.b) === null || _o5_b === void 0 ? void 0 : (_o5_b_call = _o5_b.call(o5)) === null || _o5_b_call === void 0 ? void 0 : _o5_b_call.c) === null || _o5_b_c === void 0 ? void 0 : _o5_b_c.d) === null || _o5_b_c_d === void 0 ? void 0 : _o5_b_c_d.e;
88
(_o6 = o6()) === null || _o6 === void 0 ? void 0 : _o6.x;
99
// GH#34109
1010
(o1 === null || o1 === void 0 ? void 0 : o1.b) ? 1 : 0;

‎crates/swc/tests/tsc-references/propertyAccessChain.2.minified.js

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

‎crates/swc_ecma_transforms_compat/src/es2020/opt_chaining.rs

+13-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ pub fn optional_chaining(c: Config) -> impl Fold + VisitMut {
2727
struct OptChaining {
2828
vars_without_init: Vec<VarDeclarator>,
2929
vars_with_init: Vec<VarDeclarator>,
30+
in_opt_chain: bool,
3031
c: Config,
3132
}
3233

@@ -148,7 +149,6 @@ impl OptChaining {
148149
}
149150
}
150151

151-
#[swc_trace]
152152
impl OptChaining {
153153
/// Only called from [VisitMut].
154154
fn handle_unary(&mut self, e: &mut UnaryExpr) -> Expr {
@@ -243,6 +243,15 @@ impl OptChaining {
243243
}
244244

245245
fn handle_member(&mut self, e: &mut MemberExpr) -> Result<CondExpr, Expr> {
246+
if self.in_opt_chain {
247+
let mut opt = OptChainExpr {
248+
span: e.span,
249+
question_dot_token: DUMMY_SP,
250+
base: OptChainBase::Member(e.take()),
251+
};
252+
return Ok(self.unwrap(&mut opt));
253+
}
254+
246255
let obj = match &mut *e.obj {
247256
Expr::Member(obj) => {
248257
let obj = self.handle_member(obj).map(Expr::Cond);
@@ -548,7 +557,10 @@ impl OptChaining {
548557
}
549558
};
550559

560+
let old = self.in_opt_chain;
561+
self.in_opt_chain = true;
551562
base.visit_mut_with(self);
563+
self.in_opt_chain = old;
552564

553565
base
554566
}

‎crates/swc_ecma_transforms_compat/tests/es2020_optional_chaining.rs

+11-12
Original file line numberDiff line numberDiff line change
@@ -433,18 +433,17 @@ orders[client.key]?.price;
433433
434434
"#,
435435
r#"
436-
var _a_b_c, _a_b_c_d, _a_b, _a_b_c1, _a_b_c_d1, _orders_, _orders_client_key, _c;
437-
foo === null || foo === void 0 ? void 0 : foo.bar;
438-
(_a_b_c = a === null || a === void 0 ? void 0 : a.b.c) === null || _a_b_c === void 0 ? void 0 : _a_b_c.d.e;
439-
(_a_b_c_d = (_a_b = a.b) === null || _a_b === void 0 ? void 0 : _a_b.c.d) === null || _a_b_c_d === void 0 ? void 0 : _a_b_c_d.e;
440-
(_a_b_c1 = a.b.c) === null || _a_b_c1 === void 0 ? void 0 : (_a_b_c_d1 = _a_b_c1.d) === null || _a_b_c_d1 === void 0 ? void 0 : _a_b_c_d1.e;
441-
orders === null || orders === void 0 ? void 0 : orders[0].price;
442-
orders === null || orders === void 0 ? void 0 : (_orders_ = orders[0]) === null || _orders_ === void 0 ? void 0 : _orders_.price;
443-
orders[client === null || client === void 0 ? void 0 : client.key].price;
444-
(_orders_client_key = orders[client.key]) === null || _orders_client_key === void 0 ? void 0 : _orders_client_key.price;
445-
(0, a === null || a === void 0 ? void 0 : a.b).c;
446-
(0, (_c = (0, a === null || a === void 0 ? void 0 : a.b).c) === null || _c === void 0 ? void 0 : _c.d).e;
447-
"#
436+
var _a_b_c, _a_b, _a_b_c_d, _a_b1, _a_b_c1, _a_b_c2, _a_b_c_d1, _orders_, _orders_client_key, _c, _ref;
437+
foo === null || foo === void 0 ? void 0 : foo.bar;
438+
(_a_b_c = a === null || a === void 0 ? void 0 : (_a_b = a.b) === null || _a_b === void 0 ? void 0 : _a_b.c) === null || _a_b_c === void 0 ? void 0 : _a_b_c.d.e;
439+
(_a_b_c_d = (_a_b1 = a.b) === null || _a_b1 === void 0 ? void 0 : (_a_b_c1 = _a_b1.c) === null || _a_b_c1 === void 0 ? void 0 : _a_b_c1.d) === null || _a_b_c_d === void 0 ? void 0 : _a_b_c_d.e;
440+
(_a_b_c2 = a.b.c) === null || _a_b_c2 === void 0 ? void 0 : (_a_b_c_d1 = _a_b_c2.d) === null || _a_b_c_d1 === void 0 ? void 0 : _a_b_c_d1.e;
441+
orders === null || orders === void 0 ? void 0 : orders[0].price;
442+
orders === null || orders === void 0 ? void 0 : (_orders_ = orders[0]) === null || _orders_ === void 0 ? void 0 : _orders_.price;
443+
orders[client === null || client === void 0 ? void 0 : client.key].price;
444+
(_orders_client_key = orders[client.key]) === null || _orders_client_key === void 0 ? void 0 : _orders_client_key.price;
445+
(0, a === null || a === void 0 ? void 0 : a.b).c;
446+
(0, (_c = (_ref = (0, a === null || a === void 0 ? void 0 : a.b)) === null || _ref === void 0 ? void 0 : _ref.c) === null || _c === void 0 ? void 0 : _c.d).e;"#
448447
);
449448

450449
// general_unary

1 commit comments

Comments
 (1)

github-actions[bot] commented on Jan 30, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: d808864 Previous: 6b7249d Ratio
es/full/bugs-1 302348 ns/iter (± 6918) 338865 ns/iter (± 25169) 0.89
es/full/minify/libraries/antd 1839220346 ns/iter (± 17284173) 1707851393 ns/iter (± 53311649) 1.08
es/full/minify/libraries/d3 365345779 ns/iter (± 7837626) 327357553 ns/iter (± 19424874) 1.12
es/full/minify/libraries/echarts 1491165382 ns/iter (± 44447281) 1327703891 ns/iter (± 37552363) 1.12
es/full/minify/libraries/jquery 95150182 ns/iter (± 569949) 98984316 ns/iter (± 4503654) 0.96
es/full/minify/libraries/lodash 113814622 ns/iter (± 1686929) 116170988 ns/iter (± 4272251) 0.98
es/full/minify/libraries/moment 56692855 ns/iter (± 530539) 55364894 ns/iter (± 2144129) 1.02
es/full/minify/libraries/react 20152570 ns/iter (± 210566) 21311471 ns/iter (± 1381875) 0.95
es/full/minify/libraries/terser 279160025 ns/iter (± 2371785) 296542231 ns/iter (± 17828915) 0.94
es/full/minify/libraries/three 512160319 ns/iter (± 6812667) 550516448 ns/iter (± 33205366) 0.93
es/full/minify/libraries/typescript 3439812470 ns/iter (± 34257338) 3466423203 ns/iter (± 84966953) 0.99
es/full/minify/libraries/victory 766177919 ns/iter (± 13281325) 799240168 ns/iter (± 25510128) 0.96
es/full/minify/libraries/vue 140277605 ns/iter (± 1497259) 162907750 ns/iter (± 11120372) 0.86
es/full/codegen/es3 26739 ns/iter (± 85) 29570 ns/iter (± 121) 0.90
es/full/codegen/es5 26752 ns/iter (± 56) 29573 ns/iter (± 44) 0.90
es/full/codegen/es2015 26711 ns/iter (± 67) 29617 ns/iter (± 46) 0.90
es/full/codegen/es2016 26733 ns/iter (± 72) 29603 ns/iter (± 43) 0.90
es/full/codegen/es2017 26761 ns/iter (± 73) 29597 ns/iter (± 65) 0.90
es/full/codegen/es2018 26802 ns/iter (± 48) 29595 ns/iter (± 52) 0.91
es/full/codegen/es2019 26806 ns/iter (± 60) 29554 ns/iter (± 43) 0.91
es/full/codegen/es2020 26741 ns/iter (± 67) 29630 ns/iter (± 47) 0.90
es/full/all/es3 171069943 ns/iter (± 3607648) 187849115 ns/iter (± 7276419) 0.91
es/full/all/es5 160889771 ns/iter (± 2776839) 178297915 ns/iter (± 11345973) 0.90
es/full/all/es2015 126594700 ns/iter (± 1383421) 133755533 ns/iter (± 4115644) 0.95
es/full/all/es2016 123879993 ns/iter (± 2067575) 130870132 ns/iter (± 4439204) 0.95
es/full/all/es2017 123506227 ns/iter (± 810647) 132445617 ns/iter (± 3927364) 0.93
es/full/all/es2018 120360681 ns/iter (± 934568) 133794315 ns/iter (± 6683710) 0.90
es/full/all/es2019 119809025 ns/iter (± 659314) 135104286 ns/iter (± 5793892) 0.89
es/full/all/es2020 114930016 ns/iter (± 570283) 125687454 ns/iter (± 4605026) 0.91
es/full/parser 545340 ns/iter (± 8461) 530464 ns/iter (± 6528) 1.03
es/full/base/fixer 21791 ns/iter (± 30) 22127 ns/iter (± 51) 0.98
es/full/base/resolver_and_hygiene 79883 ns/iter (± 155) 79788 ns/iter (± 180) 1.00
serialization of ast node 128 ns/iter (± 0) 123 ns/iter (± 0) 1.04
serialization of serde 143 ns/iter (± 0) 129 ns/iter (± 0) 1.11
css/minify/libraries/bootstrap 28681458 ns/iter (± 288678) 28932891 ns/iter (± 289400) 0.99
css/visitor/compare/clone 2115814 ns/iter (± 21658) 2142169 ns/iter (± 28346) 0.99
css/visitor/compare/visit_mut_span 2306346 ns/iter (± 6566) 2324314 ns/iter (± 27603) 0.99
css/visitor/compare/visit_mut_span_panic 2368916 ns/iter (± 9088) 2384227 ns/iter (± 14719) 0.99
css/visitor/compare/fold_span 3080248 ns/iter (± 25074) 3152500 ns/iter (± 36681) 0.98
css/visitor/compare/fold_span_panic 3267650 ns/iter (± 55338) 3283162 ns/iter (± 55408) 1.00
css/lexer/bootstrap_5_1_3 5220782 ns/iter (± 11060) 5191158 ns/iter (± 3646) 1.01
css/lexer/foundation_6_7_4 4380623 ns/iter (± 1321) 4360310 ns/iter (± 38623) 1.00
css/lexer/tailwind_3_1_1 833381 ns/iter (± 406) 829510 ns/iter (± 2378) 1.00
css/parser/bootstrap_5_1_3 22359455 ns/iter (± 133920) 22284476 ns/iter (± 196975) 1.00
css/parser/foundation_6_7_4 17882653 ns/iter (± 77281) 17791285 ns/iter (± 207854) 1.01
css/parser/tailwind_3_1_1 3331746 ns/iter (± 4997) 3325128 ns/iter (± 8415) 1.00
es/codegen/colors 321623 ns/iter (± 181597) 322570 ns/iter (± 181986) 1.00
es/codegen/large 1228217 ns/iter (± 639114) 1226792 ns/iter (± 640665) 1.00
es/codegen/with-parser/colors 48249 ns/iter (± 334) 47902 ns/iter (± 415) 1.01
es/codegen/with-parser/large 534237 ns/iter (± 1710) 532437 ns/iter (± 2331) 1.00
es/minify/libraries/antd 1669568267 ns/iter (± 28870930) 1561720206 ns/iter (± 64514806) 1.07
es/minify/libraries/d3 296273856 ns/iter (± 9357110) 302889007 ns/iter (± 14741993) 0.98
es/minify/libraries/echarts 1226252937 ns/iter (± 7526363) 1206139050 ns/iter (± 40536941) 1.02
es/minify/libraries/jquery 84579720 ns/iter (± 1890277) 80763016 ns/iter (± 2471245) 1.05
es/minify/libraries/lodash 102303045 ns/iter (± 1513198) 98694339 ns/iter (± 2795116) 1.04
es/minify/libraries/moment 47729114 ns/iter (± 586289) 50317891 ns/iter (± 2770170) 0.95
es/minify/libraries/react 17951283 ns/iter (± 286399) 18791266 ns/iter (± 847583) 0.96
es/minify/libraries/terser 250253702 ns/iter (± 5927344) 240813645 ns/iter (± 8210422) 1.04
es/minify/libraries/three 445599495 ns/iter (± 7925622) 427265922 ns/iter (± 13047577) 1.04
es/minify/libraries/typescript 3054094863 ns/iter (± 33993066) 2829921761 ns/iter (± 47141160) 1.08
es/minify/libraries/victory 682082393 ns/iter (± 20871786) 669912202 ns/iter (± 36046264) 1.02
es/minify/libraries/vue 126589907 ns/iter (± 2878542) 132231485 ns/iter (± 4937019) 0.96
es/visitor/compare/clone 2419711 ns/iter (± 12743) 2518485 ns/iter (± 56407) 0.96
es/visitor/compare/visit_mut_span 2833892 ns/iter (± 16413) 2907984 ns/iter (± 104038) 0.97
es/visitor/compare/visit_mut_span_panic 2911525 ns/iter (± 23347) 2902892 ns/iter (± 70390) 1.00
es/visitor/compare/fold_span 4063717 ns/iter (± 94887) 4092778 ns/iter (± 79692) 0.99
es/visitor/compare/fold_span_panic 4207318 ns/iter (± 57678) 4230984 ns/iter (± 87221) 0.99
es/lexer/colors 17275 ns/iter (± 28) 17238 ns/iter (± 29) 1.00
es/lexer/angular 8301647 ns/iter (± 10575) 8253778 ns/iter (± 13883) 1.01
es/lexer/backbone 1086035 ns/iter (± 1699) 1078912 ns/iter (± 2224) 1.01
es/lexer/jquery 6037166 ns/iter (± 3202) 5981803 ns/iter (± 9600) 1.01
es/lexer/jquery mobile 9262743 ns/iter (± 9934) 9209845 ns/iter (± 16418) 1.01
es/lexer/mootools 4721274 ns/iter (± 9206) 4669308 ns/iter (± 46338) 1.01
es/lexer/underscore 904984 ns/iter (± 326) 900225 ns/iter (± 6042) 1.01
es/lexer/three 28128659 ns/iter (± 34722) 27893194 ns/iter (± 67085) 1.01
es/lexer/yui 5078917 ns/iter (± 6560) 5050571 ns/iter (± 23592) 1.01
es/parser/colors 30966 ns/iter (± 132) 30853 ns/iter (± 192) 1.00
es/parser/angular 17098982 ns/iter (± 462668) 16574800 ns/iter (± 260125) 1.03
es/parser/backbone 2340462 ns/iter (± 14720) 2308529 ns/iter (± 18539) 1.01
es/parser/jquery 13230750 ns/iter (± 259635) 12631986 ns/iter (± 291267) 1.05
es/parser/jquery mobile 21625220 ns/iter (± 726970) 21697789 ns/iter (± 466773) 1.00
es/parser/mootools 9866679 ns/iter (± 63985) 9799884 ns/iter (± 130542) 1.01
es/parser/underscore 1981942 ns/iter (± 12377) 1962863 ns/iter (± 11944) 1.01
es/parser/three 63150170 ns/iter (± 163132) 61284813 ns/iter (± 570110) 1.03
es/parser/yui 9946494 ns/iter (± 101790) 10046991 ns/iter (± 212259) 0.99
es/preset-env/usage/builtin_type 139667 ns/iter (± 30541) 141611 ns/iter (± 32443) 0.99
es/preset-env/usage/property 21555 ns/iter (± 103) 21240 ns/iter (± 87) 1.01
es/resolver/typescript 127350791 ns/iter (± 3797113) 113286751 ns/iter (± 1236619) 1.12
es/fixer/typescript 102961304 ns/iter (± 1795336) 90120031 ns/iter (± 3970248) 1.14
es/hygiene/typescript 221371397 ns/iter (± 3479976) 192279034 ns/iter (± 2427704) 1.15
es/resolver_with_hygiene/typescript 367164160 ns/iter (± 2662890) 336192778 ns/iter (± 6679728) 1.09
es/visitor/base-perf/module_clone 75674 ns/iter (± 1576) 76673 ns/iter (± 1372) 0.99
es/visitor/base-perf/fold_empty 86089 ns/iter (± 1329) 86333 ns/iter (± 805) 1.00
es/visitor/base-perf/fold_noop_impl_all 85988 ns/iter (± 1050) 85541 ns/iter (± 1169) 1.01
es/visitor/base-perf/fold_noop_impl_vec 86120 ns/iter (± 1968) 87191 ns/iter (± 1012) 0.99
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 105 ns/iter (± 0) 104 ns/iter (± 0) 1.01
es/visitor/base-perf/boxing_unboxed 103 ns/iter (± 0) 102 ns/iter (± 0) 1.01
es/visitor/base-perf/visit_contains_this 3375 ns/iter (± 67) 3431 ns/iter (± 50) 0.98
es/base/parallel/resolver/typescript 5630145772 ns/iter (± 517716494) 4766262229 ns/iter (± 220642672) 1.18
es/base/parallel/hygiene/typescript 2431425921 ns/iter (± 36064271) 2167731414 ns/iter (± 46066029) 1.12
misc/visitors/time-complexity/time 5 102 ns/iter (± 0) 102 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 320 ns/iter (± 0) 319 ns/iter (± 0) 1.00
misc/visitors/time-complexity/time 15 661 ns/iter (± 12) 650 ns/iter (± 1) 1.02
misc/visitors/time-complexity/time 20 1254 ns/iter (± 3) 1270 ns/iter (± 18) 0.99
misc/visitors/time-complexity/time 40 6635 ns/iter (± 5) 6629 ns/iter (± 8) 1.00
misc/visitors/time-complexity/time 60 17071 ns/iter (± 44) 17086 ns/iter (± 68) 1.00
es/full-target/es2016 189311 ns/iter (± 259) 188799 ns/iter (± 617) 1.00
es/full-target/es2017 184821 ns/iter (± 823) 183524 ns/iter (± 668) 1.01
es/full-target/es2018 174176 ns/iter (± 496) 172485 ns/iter (± 706) 1.01
es2020_nullish_coalescing 67624 ns/iter (± 95) 66368 ns/iter (± 126) 1.02
es2020_optional_chaining 96694 ns/iter (± 6112) 94571 ns/iter (± 350) 1.02
es2022_class_properties 95042 ns/iter (± 159) 93277 ns/iter (± 202) 1.02
es2018_object_rest_spread 72250 ns/iter (± 210) 71427 ns/iter (± 284) 1.01
es2019_optional_catch_binding 61909 ns/iter (± 105) 60633 ns/iter (± 266) 1.02
es2017_async_to_generator 62335 ns/iter (± 122) 61316 ns/iter (± 193) 1.02
es2016_exponentiation 65535 ns/iter (± 120) 64407 ns/iter (± 225) 1.02
es2015_arrow 70985 ns/iter (± 301) 69420 ns/iter (± 203) 1.02
es2015_block_scoped_fn 66905 ns/iter (± 175) 65868 ns/iter (± 109) 1.02
es2015_block_scoping 156186 ns/iter (± 9273) 157269 ns/iter (± 8602) 0.99
es2015_classes 118193 ns/iter (± 405) 116803 ns/iter (± 328) 1.01
es2015_computed_props 61808 ns/iter (± 96) 60750 ns/iter (± 142) 1.02
es2015_destructuring 116421 ns/iter (± 268) 115132 ns/iter (± 720) 1.01
es2015_duplicate_keys 64474 ns/iter (± 203) 63114 ns/iter (± 182) 1.02
es2015_parameters 80425 ns/iter (± 193) 78878 ns/iter (± 237) 1.02
es2015_fn_name 67401 ns/iter (± 647) 66356 ns/iter (± 530) 1.02
es2015_for_of 64926 ns/iter (± 125) 63809 ns/iter (± 176) 1.02
es2015_instanceof 63940 ns/iter (± 46) 62675 ns/iter (± 218) 1.02
es2015_shorthand_property 61356 ns/iter (± 71) 61031 ns/iter (± 215) 1.01
es2015_spread 61845 ns/iter (± 96) 60871 ns/iter (± 103) 1.02
es2015_sticky_regex 63006 ns/iter (± 101) 61785 ns/iter (± 145) 1.02
es2015_typeof_symbol 63094 ns/iter (± 116) 61540 ns/iter (± 517) 1.03
es/transform/baseline/base 52412 ns/iter (± 80) 50889 ns/iter (± 358) 1.03
es/transform/baseline/common_reserved_word 63372 ns/iter (± 152) 62251 ns/iter (± 73) 1.02
es/transform/baseline/common_typescript 169464 ns/iter (± 319) 167887 ns/iter (± 10708) 1.01
es/target/es3 170554 ns/iter (± 630) 168212 ns/iter (± 1166) 1.01
es/target/es2015 635540 ns/iter (± 1319) 628540 ns/iter (± 1735) 1.01
es/target/es2016 65600 ns/iter (± 133) 64588 ns/iter (± 164) 1.02
es/target/es2017 62371 ns/iter (± 94) 61392 ns/iter (± 107) 1.02
es/target/es2018 82535 ns/iter (± 126) 81890 ns/iter (± 215) 1.01
es/target/es2020 134458 ns/iter (± 212) 132304 ns/iter (± 292) 1.02
babelify-only 672356 ns/iter (± 1420) 680387 ns/iter (± 4369) 0.99
parse_and_babelify_angular 48187699 ns/iter (± 834245) 44891079 ns/iter (± 2802684) 1.07
parse_and_babelify_backbone 5718104 ns/iter (± 70607) 5901815 ns/iter (± 487422) 0.97
parse_and_babelify_jquery 35247742 ns/iter (± 416534) 34884219 ns/iter (± 2074987) 1.01
parse_and_babelify_jquery_mobile 61896718 ns/iter (± 817264) 58309753 ns/iter (± 2348609) 1.06
parse_and_babelify_mootools 37003230 ns/iter (± 523291) 35130434 ns/iter (± 2888164) 1.05
parse_and_babelify_underscore 4542351 ns/iter (± 40073) 4784296 ns/iter (± 211042) 0.95
parse_and_babelify_yui 36640913 ns/iter (± 1238100) 35404422 ns/iter (± 2009530) 1.03
html/minify/document/css_spec 44291128 ns/iter (± 361843) 43566384 ns/iter (± 772091) 1.02
html/minify/document/github 17792379 ns/iter (± 80588) 17729902 ns/iter (± 200222) 1.00
html/minify/document/stackoverflow 15917002 ns/iter (± 48302) 15946663 ns/iter (± 204582) 1.00
html/minify/document_fragment/css_spec 42674394 ns/iter (± 611665) 41191095 ns/iter (± 374845) 1.04
html/minify/document_fragment/github 16978188 ns/iter (± 60014) 17007232 ns/iter (± 152542) 1.00
html/minify/document_fragment/stackoverflow 15526874 ns/iter (± 64857) 15365753 ns/iter (± 118406) 1.01
html/document/visitor/compare/clone 344076 ns/iter (± 1974) 341477 ns/iter (± 1947) 1.01
html/document/visitor/compare/visit_mut_span 369169 ns/iter (± 1960) 373436 ns/iter (± 2195) 0.99
html/document/visitor/compare/visit_mut_span_panic 377626 ns/iter (± 2220) 371356 ns/iter (± 1858) 1.02
html/document/visitor/compare/fold_span 406351 ns/iter (± 1815) 402408 ns/iter (± 1809) 1.01
html/document/visitor/compare/fold_span_panic 467779 ns/iter (± 1656) 458865 ns/iter (± 2497) 1.02
html/document_fragment/visitor/compare/clone 341415 ns/iter (± 2181) 337710 ns/iter (± 1335) 1.01
html/document_fragment/visitor/compare/visit_mut_span 370967 ns/iter (± 1757) 368375 ns/iter (± 1804) 1.01
html/document_fragment/visitor/compare/visit_mut_span_panic 377739 ns/iter (± 1722) 372391 ns/iter (± 1859) 1.01
html/document_fragment/visitor/compare/fold_span 407904 ns/iter (± 2083) 405779 ns/iter (± 1432) 1.01
html/document_fragment/visitor/compare/fold_span_panic 463249 ns/iter (± 1492) 462418 ns/iter (± 2521) 1.00
html/lexer/css_2021_spec 15487346 ns/iter (± 22731) 15479409 ns/iter (± 21644) 1.00
html/lexer/github_com_17_05_2022 6015239 ns/iter (± 7744) 5999755 ns/iter (± 2136) 1.00
html/lexer/stackoverflow_com_17_05_2022 5608953 ns/iter (± 3784) 5608947 ns/iter (± 2432) 1.00
html/parser/parser_document/css_2021_spec 26718359 ns/iter (± 225984) 26363277 ns/iter (± 843874) 1.01
html/parser/parser_document/github_com_17_05_2022 8820373 ns/iter (± 13362) 8811088 ns/iter (± 42974) 1.00
html/parser/parser_document/stackoverflow_com_17_05_2022 7753536 ns/iter (± 6810) 7739413 ns/iter (± 17384) 1.00
html/parser/parser_document_fragment/css_2021_spec 26779203 ns/iter (± 224597) 26441416 ns/iter (± 518077) 1.01
html/parser/parser_document_fragment/github_com_17_05_2022 8880090 ns/iter (± 429397) 8781728 ns/iter (± 58436) 1.01
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7732930 ns/iter (± 7629) 7760540 ns/iter (± 64582) 1.00

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

Please sign in to comment.