Skip to content

Commit 1dced17

Browse files
authoredMay 10, 2023
fix(es/minifier): Fix remapping of vars upon inlining (#7362)
**Related issue:** - Closes #7331.
1 parent e1c9182 commit 1dced17

File tree

14 files changed

+100
-74
lines changed

14 files changed

+100
-74
lines changed
 

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

+5-6
Original file line numberDiff line numberDiff line change
@@ -875,12 +875,11 @@ where
875875
for decl in &var.decls {
876876
let ids: Vec<Id> = find_pat_ids(&decl.name);
877877

878-
remap.extend(ids.into_iter().map(|id| {
879-
(
880-
id,
881-
SyntaxContext::empty().apply_mark(Mark::fresh(Mark::root())),
882-
)
883-
}));
878+
for id in ids {
879+
remap
880+
.entry(id)
881+
.or_insert_with(|| SyntaxContext::empty().apply_mark(Mark::new()));
882+
}
884883
}
885884
}
886885
}

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

+2
Original file line numberDiff line numberDiff line change
@@ -2216,6 +2216,8 @@ where
22162216
if !usage.reassigned() && usage.usage_count == 1 && usage.declared {
22172217
can_remove = true;
22182218
}
2219+
} else {
2220+
return Ok(false);
22192221
}
22202222

22212223
(left_id.clone(), Some(right))

‎crates/swc_ecma_minifier/tests/benches-full/echarts.js

+31-31
Original file line numberDiff line numberDiff line change
@@ -26724,21 +26724,21 @@
2672426724
}
2672526725
function updateRectShape(controller, cover, name, x, y, w, h) {
2672626726
var points, xmin, ymin, el = cover.childOfName(name);
26727-
el && el.setShape({
26728-
x: xmin = mathMin$9((points = clipByPanel(controller, cover, [
26729-
[
26730-
x,
26731-
y
26732-
],
26733-
[
26734-
x + w,
26735-
y + h
26736-
]
26737-
]))[0][0], points[1][0]),
26727+
el && el.setShape((xmin = mathMin$9((points = clipByPanel(controller, cover, [
26728+
[
26729+
x,
26730+
y
26731+
],
26732+
[
26733+
x + w,
26734+
y + h
26735+
]
26736+
]))[0][0], points[1][0]), {
26737+
x: xmin,
2673826738
y: ymin = mathMin$9(points[0][1], points[1][1]),
2673926739
width: mathMax$9(points[0][0], points[1][0]) - xmin,
2674026740
height: mathMax$9(points[0][1], points[1][1]) - ymin
26741-
});
26741+
}));
2674226742
}
2674326743
function makeStyle(brushOption) {
2674426744
return defaults({
@@ -34714,25 +34714,25 @@
3471434714
header.innerHTML = lang[0] || model.get('title'), header.style.cssText = 'margin: 10px 20px;', header.style.color = model.get('textColor');
3471534715
var viewMain = document.createElement('div'), textarea = document.createElement('textarea');
3471634716
viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';
34717-
var optionToContent = model.get('optionToContent'), contentToOption = model.get('contentToOption'), result1 = {
34717+
var optionToContent = model.get('optionToContent'), contentToOption = model.get('contentToOption'), result1 = (seriesGroupByCategoryAxis = {}, otherSeries = [], meta = [], ecModel.eachRawSeries(function(seriesModel) {
34718+
var coordSys = seriesModel.coordinateSystem;
34719+
if (coordSys && ('cartesian2d' === coordSys.type || 'polar' === coordSys.type)) {
34720+
var baseAxis = coordSys.getBaseAxis();
34721+
if ('category' === baseAxis.type) {
34722+
var key = baseAxis.dim + '_' + baseAxis.index;
34723+
seriesGroupByCategoryAxis[key] || (seriesGroupByCategoryAxis[key] = {
34724+
categoryAxis: baseAxis,
34725+
valueAxis: coordSys.getOtherAxis(baseAxis),
34726+
series: []
34727+
}, meta.push({
34728+
axisDim: baseAxis.dim,
34729+
axisIndex: baseAxis.index
34730+
})), seriesGroupByCategoryAxis[key].series.push(seriesModel);
34731+
} else otherSeries.push(seriesModel);
34732+
} else otherSeries.push(seriesModel);
34733+
}), {
3471834734
value: filter([
34719-
(groups = (seriesGroupByCategoryAxis = {}, otherSeries = [], meta = [], ecModel.eachRawSeries(function(seriesModel) {
34720-
var coordSys = seriesModel.coordinateSystem;
34721-
if (coordSys && ('cartesian2d' === coordSys.type || 'polar' === coordSys.type)) {
34722-
var baseAxis = coordSys.getBaseAxis();
34723-
if ('category' === baseAxis.type) {
34724-
var key = baseAxis.dim + '_' + baseAxis.index;
34725-
seriesGroupByCategoryAxis[key] || (seriesGroupByCategoryAxis[key] = {
34726-
categoryAxis: baseAxis,
34727-
valueAxis: coordSys.getOtherAxis(baseAxis),
34728-
series: []
34729-
}, meta.push({
34730-
axisDim: baseAxis.dim,
34731-
axisIndex: baseAxis.index
34732-
})), seriesGroupByCategoryAxis[key].series.push(seriesModel);
34733-
} else otherSeries.push(seriesModel);
34734-
} else otherSeries.push(seriesModel);
34735-
}), result = {
34735+
(groups = (result = {
3473634736
seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,
3473734737
other: otherSeries,
3473834738
meta: meta
@@ -34771,7 +34771,7 @@
3477134771
return !!str.replace(/[\n\t\s]/g, '');
3477234772
}).join('\n\n' + BLOCK_SPLITER + '\n\n'),
3477334773
meta: result.meta
34774-
};
34774+
});
3477534775
if ('function' == typeof optionToContent) {
3477634776
var htmlOrDom = optionToContent(api.getOption());
3477734777
'string' == typeof htmlOrDom ? viewMain.innerHTML = htmlOrDom : isDom(htmlOrDom) && viewMain.appendChild(htmlOrDom);

‎crates/swc_ecma_minifier/tests/benches-full/victory.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -13431,9 +13431,9 @@
1343113431
return childComponents.map(function(child, index) {
1343213432
var child1, props1, calculatedProps1, domain, scale, stringMap, categories, axisChild, role = child.type && child.type.role, style = Array.isArray(child.props.style) ? child.props.style : lodash_defaults__WEBPACK_IMPORTED_MODULE_1___default()({}, child.props.style, {
1343313433
parent: baseStyle
13434-
}), childProps = (child1 = child, props1 = props, calculatedProps1 = calculatedProps, (axisChild = victory_core__WEBPACK_IMPORTED_MODULE_3__.Axis.findAxisComponents([
13434+
}), childProps = (child1 = child, props1 = props, calculatedProps1 = calculatedProps, axisChild = victory_core__WEBPACK_IMPORTED_MODULE_3__.Axis.findAxisComponents([
1343513435
child1
13436-
])).length > 0 ? (axisChild[0], domain = calculatedProps1.domain, scale = calculatedProps1.scale, stringMap = calculatedProps1.stringMap, categories = calculatedProps1.categories, {
13436+
]), axisChild.length > 0 ? (axisChild[0], domain = calculatedProps1.domain, scale = calculatedProps1.scale, stringMap = calculatedProps1.stringMap, categories = calculatedProps1.categories, {
1343713437
stringMap: stringMap,
1343813438
horizontal: calculatedProps1.horizontal,
1343913439
categories: categories,
@@ -18462,8 +18462,8 @@
1846218462
x: x,
1846318463
y: y
1846418464
};
18465-
var polarPadding = (style = props.style, degrees = getDegrees(props, datum), labelStyle = style.labels || {}, {
18466-
x: (padding = _helpers__WEBPACK_IMPORTED_MODULE_1__.default.evaluateProp(labelStyle.padding, props) || 0) * Math.cos(angle = _helpers__WEBPACK_IMPORTED_MODULE_1__.default.degreesToRadians(degrees)),
18465+
var polarPadding = (style = props.style, degrees = getDegrees(props, datum), labelStyle = style.labels || {}, padding = _helpers__WEBPACK_IMPORTED_MODULE_1__.default.evaluateProp(labelStyle.padding, props) || 0, {
18466+
x: padding * Math.cos(angle = _helpers__WEBPACK_IMPORTED_MODULE_1__.default.degreesToRadians(degrees)),
1846718467
y: -padding * Math.sin(angle)
1846818468
});
1846918469
return {
@@ -28461,13 +28461,13 @@
2846128461
return dataset.filter(function(datum) {
2846228462
return null !== datum._x && null !== datum._y;
2846328463
});
28464-
}), (fillInMissingData = props1.fillInMissingData, xMap = filterNullChildData.reduce(function(prev, dataset) {
28464+
}), fillInMissingData = props1.fillInMissingData, xMap = filterNullChildData.reduce(function(prev, dataset) {
2846528465
return dataset.forEach(function(datum) {
2846628466
prev[datum._x instanceof Date ? datum._x.getTime() : datum._x] = !0;
2846728467
}), prev;
2846828468
}, {}), xKeys = lodash_keys__WEBPACK_IMPORTED_MODULE_1___default()(xMap).map(function(k) {
2846928469
return +k;
28470-
}), xArr = lodash_orderBy__WEBPACK_IMPORTED_MODULE_0___default()(xKeys), datasets = filterNullChildData.map(function(dataset) {
28470+
}), xArr = lodash_orderBy__WEBPACK_IMPORTED_MODULE_0___default()(xKeys), (datasets = filterNullChildData.map(function(dataset) {
2847128471
var indexOffset = 0, isDate = dataset[0] && dataset[0]._x instanceof Date;
2847228472
return xArr.map(function(x, index) {
2847328473
x = +x;

‎crates/swc_ecma_minifier/tests/benches-full/vue.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -2922,7 +2922,7 @@
29222922
model: function(el, dir, _warn) {
29232923
var code, number, valueBinding, trueValueBinding, falseValueBinding, number1, valueBinding1, value = dir.value, modifiers = dir.modifiers, tag = el.tag, type = el.attrsMap.type;
29242924
if ('input' === tag && 'file' === type && _warn("<" + el.tag + " v-model=\"" + value + '" type="file">:\nFile inputs are read only. Use a v-on:change listener instead.', el.rawAttrsMap['v-model']), el.component) return genComponentModel(el, value, modifiers), !1;
2925-
if ('select' === tag) addHandler(el, 'change', 'var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return ' + (modifiers && modifiers.number ? '_n(val)' : 'val') + "}); " + genAssignmentCode(value, '$event.target.multiple ? $$selectedVal : $$selectedVal[0]'), null, !0);
2925+
if ('select' === tag) addHandler(el, 'change', code = (code = 'var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return ' + (modifiers && modifiers.number ? '_n(val)' : 'val') + "});") + " " + genAssignmentCode(value, '$event.target.multiple ? $$selectedVal : $$selectedVal[0]'), null, !0);
29262926
else if ('input' === tag && 'checkbox' === type) number = modifiers && modifiers.number, valueBinding = getBindingAttr(el, 'value') || 'null', trueValueBinding = getBindingAttr(el, 'true-value') || 'true', falseValueBinding = getBindingAttr(el, 'false-value') || 'false', addProp(el, 'checked', "Array.isArray(" + value + ")?_i(" + value + "," + valueBinding + ")>-1" + ('true' === trueValueBinding ? ":(" + value + ")" : ":_q(" + value + "," + trueValueBinding + ")")), addHandler(el, 'change', "var $$a=" + value + ",$$el=$event.target,$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");if(Array.isArray($$a)){var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + ",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&(" + genAssignmentCode(value, '$$a.concat([$$v])') + ")}else{$$i>-1&&(" + genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))') + ")}}else{" + genAssignmentCode(value, '$$c') + "}", null, !0);
29272927
else if ('input' === tag && 'radio' === type) number1 = modifiers && modifiers.number, valueBinding1 = getBindingAttr(el, 'value') || 'null', valueBinding1 = number1 ? "_n(" + valueBinding1 + ")" : valueBinding1, addProp(el, 'checked', "_q(" + value + "," + valueBinding1 + ")"), addHandler(el, 'change', genAssignmentCode(value, valueBinding1), null, !0);
29282928
else if ('input' === tag || 'textarea' === tag) !function(el, value, modifiers) {
@@ -3092,7 +3092,7 @@
30923092
if (el.for && !el.forProcessed) return genFor(el, state);
30933093
if (el.if && !el.ifProcessed) return genIf(el, state);
30943094
if ('template' === el.tag && !el.slotTarget && !state.pre) return genChildren(el, state) || 'void 0';
3095-
if ('slot' === el.tag) return res = "_t(" + (el.slotName || '"default"') + ((children = genChildren(el, state)) ? "," + children : ''), attrs = el.attrs || el.dynamicAttrs ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function(attr) {
3095+
if ('slot' === el.tag) return slotName = el.slotName || '"default"', res = "_t(" + slotName + ((children = genChildren(el, state)) ? "," + children : ''), attrs = el.attrs || el.dynamicAttrs ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function(attr) {
30963096
return {
30973097
name: camelize(attr.name),
30983098
value: attr.value,
@@ -3102,7 +3102,7 @@
31023102
if (el.component) componentName = el.component, children1 = el.inlineTemplate ? null : genChildren(el, state, !0), code = "_c(" + componentName + "," + genData$2(el, state) + (children1 ? "," + children1 : '') + ")";
31033103
else {
31043104
(!el.plain || el.pre && state.maybeComponent(el)) && (data = genData$2(el, state));
3105-
var children, res, attrs, bind$$1, code, componentName, children1, data, children2 = el.inlineTemplate ? null : genChildren(el, state, !0);
3105+
var slotName, children, res, attrs, bind$$1, code, componentName, children1, data, children2 = el.inlineTemplate ? null : genChildren(el, state, !0);
31063106
code = "_c('" + el.tag + "'" + (data ? "," + data : '') + (children2 ? "," + children2 : '') + ")";
31073107
}
31083108
for(var i = 0; i < state.transforms.length; i++)code = state.transforms[i](el, code);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"inline": true,
3+
"toplevel": true,
4+
"passes": 1
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export default function () {
2+
function foo(arg) {
3+
var arg = arg.slice()
4+
return arg
5+
}
6+
foo([])
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export default function() {
2+
var arg;
3+
var arg;
4+
arg = (arg = []).slice();
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export default function () {
2+
function foo(arg) {
3+
var arg = arg.slice()
4+
return arg
5+
}
6+
foo([])
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default function() {}

2 commit comments

Comments
 (2)

github-actions[bot] commented on May 10, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: 1dced17 Previous: 97ec259 Ratio
es/full/bugs-1 288276 ns/iter (± 12716) 290780 ns/iter (± 5514) 0.99
es/full/minify/libraries/antd 1498265756 ns/iter (± 23929960) 1577995085 ns/iter (± 37671830) 0.95
es/full/minify/libraries/d3 277887428 ns/iter (± 8717449) 288428078 ns/iter (± 11157399) 0.96
es/full/minify/libraries/echarts 1134831226 ns/iter (± 18470536) 1136444864 ns/iter (± 12357148) 1.00
es/full/minify/libraries/jquery 86997265 ns/iter (± 539782) 89220855 ns/iter (± 3717042) 0.98
es/full/minify/libraries/lodash 101605061 ns/iter (± 461194) 101312948 ns/iter (± 537660) 1.00
es/full/minify/libraries/moment 50243475 ns/iter (± 260825) 50116212 ns/iter (± 468147) 1.00
es/full/minify/libraries/react 18651301 ns/iter (± 71876) 18637667 ns/iter (± 102007) 1.00
es/full/minify/libraries/terser 229431156 ns/iter (± 2697074) 231347684 ns/iter (± 2419679) 0.99
es/full/minify/libraries/three 397020538 ns/iter (± 2979428) 413093870 ns/iter (± 7645555) 0.96
es/full/minify/libraries/typescript 2925367927 ns/iter (± 58481507) 2876281203 ns/iter (± 14143692) 1.02
es/full/minify/libraries/victory 608437357 ns/iter (± 7703569) 581512490 ns/iter (± 6211299) 1.05
es/full/minify/libraries/vue 122423268 ns/iter (± 1698047) 123593740 ns/iter (± 1347699) 0.99
es/full/codegen/es3 28404 ns/iter (± 281) 27741 ns/iter (± 348) 1.02
es/full/codegen/es5 28007 ns/iter (± 275) 28320 ns/iter (± 127) 0.99
es/full/codegen/es2015 27708 ns/iter (± 203) 27867 ns/iter (± 382) 0.99
es/full/codegen/es2016 27634 ns/iter (± 175) 28430 ns/iter (± 289) 0.97
es/full/codegen/es2017 27762 ns/iter (± 227) 27955 ns/iter (± 308) 0.99
es/full/codegen/es2018 27791 ns/iter (± 228) 27916 ns/iter (± 285) 1.00
es/full/codegen/es2019 28010 ns/iter (± 286) 27870 ns/iter (± 174) 1.01
es/full/codegen/es2020 27778 ns/iter (± 166) 28860 ns/iter (± 51) 0.96
es/full/all/es3 175463422 ns/iter (± 4101831) 179408596 ns/iter (± 3793804) 0.98
es/full/all/es5 174236011 ns/iter (± 1878093) 173493669 ns/iter (± 2595618) 1.00
es/full/all/es2015 133386874 ns/iter (± 1577075) 133600171 ns/iter (± 1939790) 1.00
es/full/all/es2016 131061953 ns/iter (± 1888731) 132291028 ns/iter (± 1658565) 0.99
es/full/all/es2017 128886715 ns/iter (± 1537642) 129549109 ns/iter (± 2184854) 0.99
es/full/all/es2018 123219574 ns/iter (± 981428) 124384687 ns/iter (± 566638) 0.99
es/full/all/es2019 121452805 ns/iter (± 1328064) 122066214 ns/iter (± 2487037) 0.99
es/full/all/es2020 115929804 ns/iter (± 742277) 116133277 ns/iter (± 1406105) 1.00
es/full/parser 518050 ns/iter (± 8292) 501410 ns/iter (± 10708) 1.03
es/full/base/fixer 22651 ns/iter (± 155) 21604 ns/iter (± 131) 1.05
es/full/base/resolver_and_hygiene 82845 ns/iter (± 557) 83758 ns/iter (± 1502) 0.99
serialization of serde 117 ns/iter (± 0) 120 ns/iter (± 0) 0.97
css/minify/libraries/bootstrap 26491765 ns/iter (± 498086) 26162974 ns/iter (± 321624) 1.01
css/visitor/compare/clone 2010436 ns/iter (± 29420) 2029398 ns/iter (± 18186) 0.99
css/visitor/compare/visit_mut_span 2186910 ns/iter (± 12094) 2211034 ns/iter (± 20412) 0.99
css/visitor/compare/visit_mut_span_panic 2269401 ns/iter (± 21661) 2277021 ns/iter (± 19000) 1.00
css/visitor/compare/fold_span 2951326 ns/iter (± 19860) 2928842 ns/iter (± 17216) 1.01
css/visitor/compare/fold_span_panic 3083140 ns/iter (± 23950) 3086302 ns/iter (± 19194) 1.00
css/lexer/bootstrap_5_1_3 5004165 ns/iter (± 62968) 5015669 ns/iter (± 37742) 1.00
css/lexer/foundation_6_7_4 4209006 ns/iter (± 24889) 4226906 ns/iter (± 33415) 1.00
css/lexer/tailwind_3_1_1 794763 ns/iter (± 4322) 796820 ns/iter (± 1855) 1.00
css/parser/bootstrap_5_1_3 20280815 ns/iter (± 247884) 20532858 ns/iter (± 207839) 0.99
css/parser/foundation_6_7_4 16590678 ns/iter (± 151543) 16303328 ns/iter (± 85786) 1.02
css/parser/tailwind_3_1_1 3225074 ns/iter (± 8009) 3168868 ns/iter (± 31046) 1.02
es/codegen/colors 696203 ns/iter (± 409622) 316739 ns/iter (± 178426) 2.20
es/codegen/large 1162625 ns/iter (± 595887) 1241163 ns/iter (± 676755) 0.94
es/codegen/with-parser/colors 47041 ns/iter (± 127) 45372 ns/iter (± 295) 1.04
es/codegen/with-parser/large 510944 ns/iter (± 3165) 496721 ns/iter (± 6388) 1.03
es/minify/libraries/antd 1438853998 ns/iter (± 26697143) 1277462727 ns/iter (± 24246302) 1.13
es/minify/libraries/d3 243910255 ns/iter (± 1760126) 235411691 ns/iter (± 2633993) 1.04
es/minify/libraries/echarts 1027922844 ns/iter (± 24877385) 1096329490 ns/iter (± 52800453) 0.94
es/minify/libraries/jquery 75783800 ns/iter (± 1172344) 77100365 ns/iter (± 536117) 0.98
es/minify/libraries/lodash 91222407 ns/iter (± 998675) 91543837 ns/iter (± 406266) 1.00
es/minify/libraries/moment 44044266 ns/iter (± 432730) 44065508 ns/iter (± 183072) 1.00
es/minify/libraries/react 16661717 ns/iter (± 170811) 16736754 ns/iter (± 114164) 1.00
es/minify/libraries/terser 194913709 ns/iter (± 2245268) 194825351 ns/iter (± 7644214) 1.00
es/minify/libraries/three 328837778 ns/iter (± 4170472) 329762925 ns/iter (± 4748730) 1.00
es/minify/libraries/typescript 2461012162 ns/iter (± 21989071) 2438041209 ns/iter (± 16867380) 1.01
es/minify/libraries/victory 490865178 ns/iter (± 4565323) 500532751 ns/iter (± 7164648) 0.98
es/minify/libraries/vue 109852615 ns/iter (± 919031) 113431038 ns/iter (± 2801620) 0.97
es/visitor/compare/clone 2274389 ns/iter (± 45330) 2304361 ns/iter (± 7783) 0.99
es/visitor/compare/visit_mut_span 2636022 ns/iter (± 7251) 2677289 ns/iter (± 36172) 0.98
es/visitor/compare/visit_mut_span_panic 2662788 ns/iter (± 34890) 2616139 ns/iter (± 9226) 1.02
es/visitor/compare/fold_span 3703936 ns/iter (± 22563) 3646381 ns/iter (± 20674) 1.02
es/visitor/compare/fold_span_panic 3817334 ns/iter (± 28804) 3756872 ns/iter (± 13371) 1.02
es/lexer/colors 12912 ns/iter (± 165) 12556 ns/iter (± 115) 1.03
es/lexer/angular 6154145 ns/iter (± 37297) 6078447 ns/iter (± 53626) 1.01
es/lexer/backbone 758948 ns/iter (± 4948) 753253 ns/iter (± 5115) 1.01
es/lexer/jquery 4180436 ns/iter (± 23439) 4207310 ns/iter (± 20233) 0.99
es/lexer/jquery mobile 6563629 ns/iter (± 79174) 6790718 ns/iter (± 68973) 0.97
es/lexer/mootools 3317943 ns/iter (± 22179) 3317330 ns/iter (± 16446) 1.00
es/lexer/underscore 632281 ns/iter (± 3266) 627950 ns/iter (± 5555) 1.01
es/lexer/three 19942998 ns/iter (± 193000) 19941123 ns/iter (± 108670) 1.00
es/lexer/yui 3675587 ns/iter (± 29277) 3696910 ns/iter (± 29402) 0.99
es/parser/colors 27660 ns/iter (± 217) 28168 ns/iter (± 301) 0.98
es/parser/angular 14174807 ns/iter (± 139041) 14203593 ns/iter (± 174558) 1.00
es/parser/backbone 2087538 ns/iter (± 23285) 2078260 ns/iter (± 12844) 1.00
es/parser/jquery 11190501 ns/iter (± 125036) 11201223 ns/iter (± 115823) 1.00
es/parser/jquery mobile 17389748 ns/iter (± 330475) 17508494 ns/iter (± 192207) 0.99
es/parser/mootools 8539453 ns/iter (± 98683) 8743308 ns/iter (± 115422) 0.98
es/parser/underscore 1761650 ns/iter (± 17332) 1745298 ns/iter (± 15140) 1.01
es/parser/three 48939332 ns/iter (± 1356415) 48788657 ns/iter (± 1014221) 1.00
es/parser/yui 8685556 ns/iter (± 77204) 9004202 ns/iter (± 132429) 0.96
es/preset-env/usage/builtin_type 139831 ns/iter (± 34511) 140352 ns/iter (± 33307) 1.00
es/preset-env/usage/property 19416 ns/iter (± 184) 19311 ns/iter (± 238) 1.01
es/resolver/typescript 115884652 ns/iter (± 3914368) 117667067 ns/iter (± 2070040) 0.98
es/fixer/typescript 83544495 ns/iter (± 1624376) 82767239 ns/iter (± 1041531) 1.01
es/hygiene/typescript 177233109 ns/iter (± 2172604) 177379308 ns/iter (± 2135516) 1.00
es/resolver_with_hygiene/typescript 317110248 ns/iter (± 3620380) 313011337 ns/iter (± 2290350) 1.01
es/visitor/base-perf/module_clone 80777 ns/iter (± 1050) 80403 ns/iter (± 783) 1.00
es/visitor/base-perf/fold_empty 87425 ns/iter (± 1027) 87400 ns/iter (± 856) 1.00
es/visitor/base-perf/fold_noop_impl_all 87856 ns/iter (± 713) 88145 ns/iter (± 591) 1.00
es/visitor/base-perf/fold_noop_impl_vec 88644 ns/iter (± 1119) 87991 ns/iter (± 492) 1.01
es/visitor/base-perf/boxing_boxed_clone 55 ns/iter (± 0) 54 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed_clone 40 ns/iter (± 0) 41 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_boxed 97 ns/iter (± 0) 100 ns/iter (± 0) 0.97
es/visitor/base-perf/boxing_unboxed 75 ns/iter (± 0) 78 ns/iter (± 0) 0.96
es/visitor/base-perf/visit_contains_this 3422 ns/iter (± 64) 3612 ns/iter (± 99) 0.95
es/base/parallel/resolver/typescript 6207304952 ns/iter (± 523942346) 5713614790 ns/iter (± 486900565) 1.09
es/base/parallel/hygiene/typescript 2172356528 ns/iter (± 17098669) 2157869680 ns/iter (± 23468673) 1.01
misc/visitors/time-complexity/time 5 97 ns/iter (± 0) 96 ns/iter (± 0) 1.01
misc/visitors/time-complexity/time 10 308 ns/iter (± 3) 324 ns/iter (± 2) 0.95
misc/visitors/time-complexity/time 15 633 ns/iter (± 5) 643 ns/iter (± 11) 0.98
misc/visitors/time-complexity/time 20 1152 ns/iter (± 6) 1180 ns/iter (± 17) 0.98
misc/visitors/time-complexity/time 40 5970 ns/iter (± 48) 5969 ns/iter (± 49) 1.00
misc/visitors/time-complexity/time 60 14918 ns/iter (± 98) 15063 ns/iter (± 111) 0.99
es/full-target/es2016 245141 ns/iter (± 1916) 250088 ns/iter (± 1191) 0.98
es/full-target/es2017 245496 ns/iter (± 1388) 239082 ns/iter (± 1501) 1.03
es/full-target/es2018 232797 ns/iter (± 1196) 228811 ns/iter (± 5465) 1.02
es2020_nullish_coalescing 91653 ns/iter (± 400) 92298 ns/iter (± 714) 0.99
es2020_optional_chaining 122284 ns/iter (± 739) 120730 ns/iter (± 1073) 1.01
es2022_class_properties 146654 ns/iter (± 606) 145000 ns/iter (± 1079) 1.01
es2018_object_rest_spread 93676 ns/iter (± 838) 93567 ns/iter (± 532) 1.00
es2019_optional_catch_binding 82298 ns/iter (± 737) 83079 ns/iter (± 652) 0.99
es2017_async_to_generator 82523 ns/iter (± 289) 83297 ns/iter (± 434) 0.99
es2016_exponentiation 87102 ns/iter (± 471) 87910 ns/iter (± 485) 0.99
es2015_arrow 90815 ns/iter (± 368) 91050 ns/iter (± 393) 1.00
es2015_block_scoped_fn 89618 ns/iter (± 707) 89393 ns/iter (± 642) 1.00
es2015_block_scoping 169993 ns/iter (± 2101) 166013 ns/iter (± 2039) 1.02

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

github-actions[bot] commented on May 10, 2023

@github-actions[bot]

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: 1dced17 Previous: 97ec259 Ratio
es/codegen/colors 696203 ns/iter (± 409622) 316739 ns/iter (± 178426) 2.20

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

CC: @kdy1

Please sign in to comment.