Skip to content

Commit

Permalink
fix(es/minifier): Abort IIFE invoker on eval (#6478)
Browse files Browse the repository at this point in the history
**Related issue:**

 - vercel/next.js#43052.
  • Loading branch information
kdy1 committed Dec 13, 2022
1 parent 581d9ce commit 8b2e1d1
Show file tree
Hide file tree
Showing 7 changed files with 1,442 additions and 1,353 deletions.
9 changes: 8 additions & 1 deletion crates/swc_ecma_minifier/src/compress/optimize/iife.rs
Expand Up @@ -15,7 +15,7 @@ use crate::debug::dump;
use crate::{
compress::optimize::{util::Remapper, Ctx},
mode::Mode,
util::{idents_captured_by, idents_used_by, make_number},
util::{contains_eval, idents_captured_by, idents_used_by, make_number},
};

/// Methods related to the option `negate_iife`.
Expand Down Expand Up @@ -728,6 +728,13 @@ where
}
}

// Abort on eval.
// See https://github.com/swc-project/swc/pull/6478
if contains_eval(body, false) {
log_abort!("iife: [x] Aborting because of eval");
return false;
}

if self.ctx.executed_multiple_time {
if !param_ids.is_empty() {
let captured = idents_captured_by(body);
Expand Down
6 changes: 6 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/next/43052/config.json
@@ -0,0 +1,6 @@
{
"defaults": false,
"toplevel": true,
"passes": 2,
"inline": true
}
37 changes: 37 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/next/43052/input.js
@@ -0,0 +1,37 @@
use((function (__unused_webpack_module, exports, __webpack_require__) {
! function (e, t) {
true ? t(exports, __webpack_require__(7294), __webpack_require__(1321)) : 0
}(this, (function (exports, React) {
"use strict";

var index_production = {
exports: {}
};
(function (module, exports) {
var t;
t = function (exports) {
function inquire(moduleName) {
try {
var mod = eval("quire".replace(/^/, "re"))(moduleName);
if (mod && (mod.length || Object.keys(mod).length)) return mod
} catch (e) { }
return null
}

Object.defineProperty(exports, "__esModule", {
value: !0
})
}, t(exports)
})(index_production, index_production.exports);

exports.chunkBlocks = index_production.exports.chunkBlocks, exports.encodeDirectory = index_production.exports.encodeDirectory, exports.encodeFile = index_production.exports.encodeFile, Object.defineProperty(exports, "__esModule", {
value: !0
})
}));
}));


(function checkMangler() {
const longName = 1;
use(longName)
})
@@ -0,0 +1 @@
{}
31 changes: 31 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/next/43052/output.js
@@ -0,0 +1,31 @@
use(function(__unused_webpack_module, exports, __webpack_require__) {
var e, t;
e = this, t = function(exports, React) {
"use strict";
var index_production = {
exports: {}
};
(function(module, exports) {
var t;
t = function(exports) {
function inquire(moduleName) {
try {
var mod = eval("quire".replace(/^/, "re"))(moduleName);
if (mod && (mod.length || Object.keys(mod).length)) return mod;
} catch (e) {}
return null;
}
Object.defineProperty(exports, "__esModule", {
value: !0
});
}, t(exports);
})(index_production, index_production.exports);
exports.chunkBlocks = index_production.exports.chunkBlocks, exports.encodeDirectory = index_production.exports.encodeDirectory, exports.encodeFile = index_production.exports.encodeFile, Object.defineProperty(exports, "__esModule", {
value: !0
});
}, t(exports, __webpack_require__(7294), __webpack_require__(1321)), true;
});
(function e() {
const e = 1;
use(e);
});
2,492 changes: 1,247 additions & 1,245 deletions crates/swc_ecma_minifier/tests/fixture/next/feedback-3/579-dcac359116b2707c/output.js

Large diffs are not rendered by default.

219 changes: 112 additions & 107 deletions crates/swc_ecma_minifier/tests/fixture/next/wrap-contracts/output.js
Expand Up @@ -17556,115 +17556,120 @@
}();
},
1951: function(module) {
var __webpack_modules__, __webpack_exports__, __dirname = "/";
__webpack_modules__ = {
965: function(__unused_webpack_module, exports) {
var indexOf = function(e, t) {
if (e.indexOf) return e.indexOf(t);
for(var r = 0; r < e.length; r++)if (e[r] === t) return r;
return -1;
}, Object_keys = function(e) {
if (Object.keys) return Object.keys(e);
var t = [];
for(var r in e)t.push(r);
return t;
}, forEach = function(e, t) {
if (e.forEach) return e.forEach(t);
for(var r = 0; r < e.length; r++)t(e[r], r, e);
}, defineProp = function() {
try {
return Object.defineProperty({}, "_", {}), function(e, t, r) {
Object.defineProperty(e, t, {
writable: !0,
enumerable: !1,
configurable: !0,
value: r
});
};
} catch (e) {
return function(e, t, r) {
e[t] = r;
var __dirname = "/";
!function() {
var __webpack_modules__ = {
965: function(__unused_webpack_module, exports) {
var indexOf = function(e, t) {
if (e.indexOf) return e.indexOf(t);
for(var r = 0; r < e.length; r++)if (e[r] === t) return r;
return -1;
}, Object_keys = function(e) {
if (Object.keys) return Object.keys(e);
var t = [];
for(var r in e)t.push(r);
return t;
}, forEach = function(e, t) {
if (e.forEach) return e.forEach(t);
for(var r = 0; r < e.length; r++)t(e[r], r, e);
}, defineProp = function() {
try {
return Object.defineProperty({}, "_", {}), function(e, t, r) {
Object.defineProperty(e, t, {
writable: !0,
enumerable: !1,
configurable: !0,
value: r
});
};
} catch (e) {
return function(e, t, r) {
e[t] = r;
};
}
}(), globals = [
"Array",
"Boolean",
"Date",
"Error",
"EvalError",
"Function",
"Infinity",
"JSON",
"Math",
"NaN",
"Number",
"Object",
"RangeError",
"ReferenceError",
"RegExp",
"String",
"SyntaxError",
"TypeError",
"URIError",
"decodeURI",
"decodeURIComponent",
"encodeURI",
"encodeURIComponent",
"escape",
"eval",
"isFinite",
"isNaN",
"parseFloat",
"parseInt",
"undefined",
"unescape"
];
function Context() {}
Context.prototype = {};
var Script = exports.Script = function(e) {
if (!(this instanceof Script)) return new Script(e);
this.code = e;
};
Script.prototype.runInContext = function(e) {
if (!(e instanceof Context)) throw TypeError("needs a 'context' argument.");
var t = document.createElement("iframe");
t.style || (t.style = {}), t.style.display = "none", document.body.appendChild(t);
var r = t.contentWindow, n = r.eval, o = r.execScript;
!n && o && (o.call(r, "null"), n = r.eval), forEach(Object_keys(e), function(t) {
r[t] = e[t];
}), forEach(globals, function(t) {
e[t] && (r[t] = e[t]);
});
var c = Object_keys(r), i = n.call(r, this.code);
return forEach(Object_keys(r), function(t) {
(t in e || -1 === indexOf(c, t)) && (e[t] = r[t]);
}), forEach(globals, function(t) {
t in e || defineProp(e, t, r[t]);
}), document.body.removeChild(t), i;
}, Script.prototype.runInThisContext = function() {
return eval(this.code);
}, Script.prototype.runInNewContext = function(e) {
var t = Script.createContext(e), r = this.runInContext(t);
return e && forEach(Object_keys(t), function(r) {
e[r] = t[r];
}), r;
}, forEach(Object_keys(Script.prototype), function(e) {
exports[e] = Script[e] = function(t) {
var r = Script(t);
return r[e].apply(r, [].slice.call(arguments, 1));
};
}
}(), globals = [
"Array",
"Boolean",
"Date",
"Error",
"EvalError",
"Function",
"Infinity",
"JSON",
"Math",
"NaN",
"Number",
"Object",
"RangeError",
"ReferenceError",
"RegExp",
"String",
"SyntaxError",
"TypeError",
"URIError",
"decodeURI",
"decodeURIComponent",
"encodeURI",
"encodeURIComponent",
"escape",
"eval",
"isFinite",
"isNaN",
"parseFloat",
"parseInt",
"undefined",
"unescape"
];
function Context() {}
Context.prototype = {};
var Script = exports.Script = function(e) {
if (!(this instanceof Script)) return new Script(e);
this.code = e;
};
Script.prototype.runInContext = function(e) {
if (!(e instanceof Context)) throw TypeError("needs a 'context' argument.");
var t = document.createElement("iframe");
t.style || (t.style = {}), t.style.display = "none", document.body.appendChild(t);
var r = t.contentWindow, n = r.eval, o = r.execScript;
!n && o && (o.call(r, "null"), n = r.eval), forEach(Object_keys(e), function(t) {
r[t] = e[t];
}), forEach(globals, function(t) {
e[t] && (r[t] = e[t]);
});
var c = Object_keys(r), i = n.call(r, this.code);
return forEach(Object_keys(r), function(t) {
(t in e || -1 === indexOf(c, t)) && (e[t] = r[t]);
}), forEach(globals, function(t) {
t in e || defineProp(e, t, r[t]);
}), document.body.removeChild(t), i;
}, Script.prototype.runInThisContext = function() {
return eval(this.code);
}, Script.prototype.runInNewContext = function(e) {
var t = Script.createContext(e), r = this.runInContext(t);
return e && forEach(Object_keys(t), function(r) {
e[r] = t[r];
}), r;
}, forEach(Object_keys(Script.prototype), function(e) {
exports[e] = Script[e] = function(t) {
var r = Script(t);
return r[e].apply(r, [].slice.call(arguments, 1));
}), exports.isContext = function(e) {
return e instanceof Context;
}, exports.createScript = function(e) {
return exports.Script(e);
}, exports.createContext = Script.createContext = function(e) {
var t = new Context;
return "object" == typeof e && forEach(Object_keys(e), function(r) {
t[r] = e[r];
}), t;
};
}), exports.isContext = function(e) {
return e instanceof Context;
}, exports.createScript = function(e) {
return exports.Script(e);
}, exports.createContext = Script.createContext = function(e) {
var t = new Context;
return "object" == typeof e && forEach(Object_keys(e), function(r) {
t[r] = e[r];
}), t;
};
}
}, "undefined" != typeof __nccwpck_require__ && (__nccwpck_require__.ab = __dirname + "/"), __webpack_exports__ = {}, __webpack_modules__[965](0, __webpack_exports__), module.exports = __webpack_exports__;
}
};
"undefined" != typeof __nccwpck_require__ && (__nccwpck_require__.ab = __dirname + "/");
var __webpack_exports__ = {};
__webpack_modules__[965](0, __webpack_exports__), module.exports = __webpack_exports__;
}();
},
4375: function(module, __unused_webpack_exports, __webpack_require__) {
let promise;
Expand Down

1 comment on commit 8b2e1d1

@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: 8b2e1d1 Previous: 7d3aa66 Ratio
es/full/bugs-1 295748 ns/iter (± 5977) 296240 ns/iter (± 4169) 1.00
es/full/minify/libraries/antd 1679739698 ns/iter (± 10412366) 1708971473 ns/iter (± 37912254) 0.98
es/full/minify/libraries/d3 321819129 ns/iter (± 2116496) 334243171 ns/iter (± 5304715) 0.96
es/full/minify/libraries/echarts 1405121819 ns/iter (± 8529336) 1408883038 ns/iter (± 15063499) 1.00
es/full/minify/libraries/jquery 91155402 ns/iter (± 352702) 92319463 ns/iter (± 488221) 0.99
es/full/minify/libraries/lodash 108454482 ns/iter (± 752254) 109526947 ns/iter (± 1147281) 0.99
es/full/minify/libraries/moment 52456659 ns/iter (± 470173) 53542589 ns/iter (± 840920) 0.98
es/full/minify/libraries/react 19301029 ns/iter (± 138582) 19769492 ns/iter (± 247040) 0.98
es/full/minify/libraries/terser 249529606 ns/iter (± 1824892) 263932393 ns/iter (± 3625609) 0.95
es/full/minify/libraries/three 454853033 ns/iter (± 5398279) 472138070 ns/iter (± 3980623) 0.96
es/full/minify/libraries/typescript 3196954260 ns/iter (± 14112960) 3116676316 ns/iter (± 26891764) 1.03
es/full/minify/libraries/victory 669683983 ns/iter (± 10211638) 697873291 ns/iter (± 12599957) 0.96
es/full/minify/libraries/vue 133081951 ns/iter (± 807444) 136391552 ns/iter (± 2000239) 0.98
es/full/codegen/es3 27782 ns/iter (± 34) 27538 ns/iter (± 52) 1.01
es/full/codegen/es5 27869 ns/iter (± 69) 27596 ns/iter (± 59) 1.01
es/full/codegen/es2015 27900 ns/iter (± 70) 27564 ns/iter (± 43) 1.01
es/full/codegen/es2016 27794 ns/iter (± 119) 27513 ns/iter (± 51) 1.01
es/full/codegen/es2017 27798 ns/iter (± 169) 27570 ns/iter (± 165) 1.01
es/full/codegen/es2018 27798 ns/iter (± 82) 27566 ns/iter (± 54) 1.01
es/full/codegen/es2019 27797 ns/iter (± 144) 27550 ns/iter (± 74) 1.01
es/full/codegen/es2020 27756 ns/iter (± 95) 27547 ns/iter (± 54) 1.01
es/full/all/es3 167604881 ns/iter (± 2499207) 168153520 ns/iter (± 2405982) 1.00
es/full/all/es5 158599238 ns/iter (± 3478194) 157598936 ns/iter (± 3933024) 1.01
es/full/all/es2015 119880577 ns/iter (± 783536) 119457384 ns/iter (± 1045576) 1.00
es/full/all/es2016 119352251 ns/iter (± 1338220) 118662205 ns/iter (± 674187) 1.01
es/full/all/es2017 118546026 ns/iter (± 925479) 118322412 ns/iter (± 441339) 1.00
es/full/all/es2018 117102442 ns/iter (± 1510660) 115743309 ns/iter (± 1025517) 1.01
es/full/all/es2019 115768114 ns/iter (± 1171190) 116092595 ns/iter (± 568389) 1.00
es/full/all/es2020 111305978 ns/iter (± 944165) 110855695 ns/iter (± 1431759) 1.00
es/full/parser 519247 ns/iter (± 8871) 519482 ns/iter (± 8450) 1.00
es/full/base/fixer 21530 ns/iter (± 69) 21976 ns/iter (± 20) 0.98
es/full/base/resolver_and_hygiene 77998 ns/iter (± 138) 77585 ns/iter (± 60) 1.01
serialization of ast node 122 ns/iter (± 0) 143 ns/iter (± 0) 0.85
serialization of serde 126 ns/iter (± 0) 123 ns/iter (± 0) 1.02
css/minify/libraries/bootstrap 26975319 ns/iter (± 83976) 27159859 ns/iter (± 200617) 0.99
css/visitor/compare/clone 2076878 ns/iter (± 17032) 2092214 ns/iter (± 24399) 0.99
css/visitor/compare/visit_mut_span 2271660 ns/iter (± 10294) 2273751 ns/iter (± 5658) 1.00
css/visitor/compare/visit_mut_span_panic 2324806 ns/iter (± 5877) 2324823 ns/iter (± 7024) 1.00
css/visitor/compare/fold_span 2982437 ns/iter (± 18716) 2996556 ns/iter (± 15293) 1.00
css/visitor/compare/fold_span_panic 3116280 ns/iter (± 18628) 3125882 ns/iter (± 13344) 1.00
css/lexer/bootstrap_5_1_3 5175361 ns/iter (± 11039) 5253333 ns/iter (± 1026) 0.99
css/lexer/foundation_6_7_4 4387848 ns/iter (± 8932) 4423867 ns/iter (± 868) 0.99
css/lexer/tailwind_3_1_1 822903 ns/iter (± 1988) 831142 ns/iter (± 118) 0.99
css/parser/bootstrap_5_1_3 20737384 ns/iter (± 31324) 20767690 ns/iter (± 53018) 1.00
css/parser/foundation_6_7_4 16600683 ns/iter (± 24351) 16591852 ns/iter (± 43996) 1.00
css/parser/tailwind_3_1_1 3192294 ns/iter (± 11575) 3197318 ns/iter (± 3889) 1.00
es/codegen/colors 320642 ns/iter (± 179878) 330969 ns/iter (± 184396) 0.97
es/codegen/large 1204379 ns/iter (± 646557) 1159607 ns/iter (± 592255) 1.04
es/codegen/with-parser/colors 46614 ns/iter (± 275) 45770 ns/iter (± 266) 1.02
es/codegen/with-parser/large 516351 ns/iter (± 1095) 508346 ns/iter (± 1334) 1.02
es/minify/libraries/antd 1459789358 ns/iter (± 8603267) 1436526696 ns/iter (± 7699762) 1.02
es/minify/libraries/d3 279213650 ns/iter (± 1616911) 289709588 ns/iter (± 3033499) 0.96
es/minify/libraries/echarts 1247198808 ns/iter (± 13304039) 1221331014 ns/iter (± 10697913) 1.02
es/minify/libraries/jquery 78903172 ns/iter (± 824418) 78612092 ns/iter (± 473374) 1.00
es/minify/libraries/lodash 97049787 ns/iter (± 1017517) 97028115 ns/iter (± 719459) 1.00
es/minify/libraries/moment 45746771 ns/iter (± 251234) 45896858 ns/iter (± 198207) 1.00
es/minify/libraries/react 17277577 ns/iter (± 125660) 17368806 ns/iter (± 180996) 0.99
es/minify/libraries/terser 219161570 ns/iter (± 4718234) 220926689 ns/iter (± 4160934) 0.99
es/minify/libraries/three 382240838 ns/iter (± 2926674) 390470135 ns/iter (± 5924180) 0.98
es/minify/libraries/typescript 2760663081 ns/iter (± 14741160) 2642394548 ns/iter (± 13354391) 1.04
es/minify/libraries/victory 584211895 ns/iter (± 7886213) 586694601 ns/iter (± 17494950) 1.00
es/minify/libraries/vue 118129739 ns/iter (± 1441011) 118450157 ns/iter (± 998775) 1.00
es/visitor/compare/clone 2426669 ns/iter (± 19470) 2396252 ns/iter (± 2277) 1.01
es/visitor/compare/visit_mut_span 2798518 ns/iter (± 6445) 2819987 ns/iter (± 29123) 0.99
es/visitor/compare/visit_mut_span_panic 2835358 ns/iter (± 4045) 2825663 ns/iter (± 6944) 1.00
es/visitor/compare/fold_span 3934973 ns/iter (± 8673) 3927435 ns/iter (± 15787) 1.00
es/visitor/compare/fold_span_panic 4074329 ns/iter (± 10165) 4108868 ns/iter (± 19747) 0.99
es/lexer/colors 17424 ns/iter (± 39) 17358 ns/iter (± 7) 1.00
es/lexer/angular 8274279 ns/iter (± 21674) 8212141 ns/iter (± 1581) 1.01
es/lexer/backbone 1080714 ns/iter (± 2088) 1070602 ns/iter (± 457) 1.01
es/lexer/jquery 5984769 ns/iter (± 10008) 5938750 ns/iter (± 5813) 1.01
es/lexer/jquery mobile 9216831 ns/iter (± 10540) 9164244 ns/iter (± 3737) 1.01
es/lexer/mootools 4704044 ns/iter (± 7748) 4662948 ns/iter (± 2545) 1.01
es/lexer/underscore 899183 ns/iter (± 1693) 891943 ns/iter (± 270) 1.01
es/lexer/three 28043351 ns/iter (± 63944) 27824490 ns/iter (± 12843) 1.01
es/lexer/yui 5087972 ns/iter (± 8299) 5051736 ns/iter (± 2811) 1.01
es/parser/colors 30653 ns/iter (± 142) 30978 ns/iter (± 77) 0.99
es/parser/angular 15426123 ns/iter (± 195391) 16286585 ns/iter (± 264233) 0.95
es/parser/backbone 2304906 ns/iter (± 16474) 2327371 ns/iter (± 12441) 0.99
es/parser/jquery 12549540 ns/iter (± 104357) 12984503 ns/iter (± 138209) 0.97
es/parser/jquery mobile 19657247 ns/iter (± 217839) 20584049 ns/iter (± 305801) 0.95
es/parser/mootools 9552219 ns/iter (± 36978) 9743025 ns/iter (± 31292) 0.98
es/parser/underscore 1955392 ns/iter (± 12997) 1967772 ns/iter (± 12134) 0.99
es/parser/three 58194066 ns/iter (± 845626) 59111663 ns/iter (± 619282) 0.98
es/parser/yui 9541795 ns/iter (± 39593) 9835420 ns/iter (± 98141) 0.97
es/preset-env/usage/builtin_type 141239 ns/iter (± 31966) 140874 ns/iter (± 31739) 1.00
es/preset-env/usage/property 21151 ns/iter (± 77) 21139 ns/iter (± 145) 1.00
es/resolver/typescript 119879371 ns/iter (± 2187264) 112676069 ns/iter (± 1815755) 1.06
es/fixer/typescript 92786260 ns/iter (± 1020079) 85390945 ns/iter (± 274080) 1.09
es/hygiene/typescript 181318432 ns/iter (± 1504121) 166048815 ns/iter (± 1189842) 1.09
es/resolver_with_hygiene/typescript 309297765 ns/iter (± 2962187) 291405887 ns/iter (± 1547636) 1.06
es/visitor/base-perf/module_clone 73947 ns/iter (± 1459) 75384 ns/iter (± 1041) 0.98
es/visitor/base-perf/fold_empty 85091 ns/iter (± 1823) 85961 ns/iter (± 979) 0.99
es/visitor/base-perf/fold_noop_impl_all 85790 ns/iter (± 1662) 86406 ns/iter (± 1269) 0.99
es/visitor/base-perf/fold_noop_impl_vec 85062 ns/iter (± 1352) 86249 ns/iter (± 1283) 0.99
es/visitor/base-perf/boxing_boxed_clone 54 ns/iter (± 0) 54 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 58 ns/iter (± 0) 58 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 100 ns/iter (± 0) 100 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed 101 ns/iter (± 0) 104 ns/iter (± 0) 0.97
es/visitor/base-perf/visit_contains_this 3361 ns/iter (± 66) 3443 ns/iter (± 32) 0.98
es/base/parallel/resolver/typescript 5578208401 ns/iter (± 325642175) 5140440652 ns/iter (± 259515754) 1.09
es/base/parallel/hygiene/typescript 2189117707 ns/iter (± 29845054) 1994134939 ns/iter (± 21119984) 1.10
misc/visitors/time-complexity/time 5 92 ns/iter (± 0) 103 ns/iter (± 0) 0.89
misc/visitors/time-complexity/time 10 301 ns/iter (± 2) 316 ns/iter (± 0) 0.95
misc/visitors/time-complexity/time 15 606 ns/iter (± 8) 653 ns/iter (± 0) 0.93
misc/visitors/time-complexity/time 20 1121 ns/iter (± 3) 1221 ns/iter (± 0) 0.92
misc/visitors/time-complexity/time 40 6014 ns/iter (± 25) 6626 ns/iter (± 27) 0.91
misc/visitors/time-complexity/time 60 15135 ns/iter (± 24) 17132 ns/iter (± 51) 0.88
es/full-target/es2016 187552 ns/iter (± 558) 186085 ns/iter (± 546) 1.01
es/full-target/es2017 180666 ns/iter (± 512) 179340 ns/iter (± 1411) 1.01
es/full-target/es2018 169760 ns/iter (± 257) 165683 ns/iter (± 147) 1.02
es2020_nullish_coalescing 65624 ns/iter (± 153) 64605 ns/iter (± 120) 1.02
es2020_optional_chaining 93928 ns/iter (± 284) 91420 ns/iter (± 3421) 1.03
es2022_class_properties 91612 ns/iter (± 166) 89443 ns/iter (± 127) 1.02
es2018_object_rest_spread 70106 ns/iter (± 146) 69038 ns/iter (± 40) 1.02
es2019_optional_catch_binding 59827 ns/iter (± 144) 58846 ns/iter (± 83) 1.02
es2017_async_to_generator 60206 ns/iter (± 470) 59246 ns/iter (± 95) 1.02
es2016_exponentiation 63729 ns/iter (± 180) 62329 ns/iter (± 92) 1.02
es2015_arrow 68289 ns/iter (± 262) 66727 ns/iter (± 96) 1.02
es2015_block_scoped_fn 64745 ns/iter (± 108) 63459 ns/iter (± 101) 1.02
es2015_block_scoping 141580 ns/iter (± 9842) 150971 ns/iter (± 9921) 0.94
es2015_classes 114812 ns/iter (± 305) 111490 ns/iter (± 322) 1.03
es2015_computed_props 59948 ns/iter (± 377) 58670 ns/iter (± 58) 1.02
es2015_destructuring 114141 ns/iter (± 423) 110845 ns/iter (± 115) 1.03
es2015_duplicate_keys 62394 ns/iter (± 211) 61437 ns/iter (± 77) 1.02
es2015_parameters 77883 ns/iter (± 185) 76604 ns/iter (± 86) 1.02
es2015_fn_name 65424 ns/iter (± 594) 63837 ns/iter (± 503) 1.02
es2015_for_of 62732 ns/iter (± 157) 61651 ns/iter (± 61) 1.02
es2015_instanceof 61705 ns/iter (± 121) 60480 ns/iter (± 71) 1.02
es2015_shorthand_property 59989 ns/iter (± 175) 58731 ns/iter (± 97) 1.02
es2015_spread 59825 ns/iter (± 70) 58741 ns/iter (± 71) 1.02
es2015_sticky_regex 60984 ns/iter (± 139) 59739 ns/iter (± 78) 1.02
es2015_typeof_symbol 61099 ns/iter (± 118) 59832 ns/iter (± 120) 1.02
es/transform/baseline/base 50549 ns/iter (± 146) 49804 ns/iter (± 61) 1.01
es/transform/baseline/common_reserved_word 61300 ns/iter (± 122) 60569 ns/iter (± 75) 1.01
es/transform/baseline/common_typescript 140775 ns/iter (± 365) 138060 ns/iter (± 594) 1.02
es/target/es3 167943 ns/iter (± 233) 165237 ns/iter (± 267) 1.02
es/target/es2015 630852 ns/iter (± 2500) 602731 ns/iter (± 690) 1.05
es/target/es2016 63897 ns/iter (± 200) 62481 ns/iter (± 58) 1.02
es/target/es2017 60552 ns/iter (± 81) 59392 ns/iter (± 91) 1.02
es/target/es2018 80215 ns/iter (± 107) 78616 ns/iter (± 108) 1.02
es/target/es2020 131147 ns/iter (± 229) 127669 ns/iter (± 185) 1.03
babelify-only 673375 ns/iter (± 1206) 663369 ns/iter (± 1671) 1.02
parse_and_babelify_angular 42107163 ns/iter (± 351321) 40991398 ns/iter (± 486754) 1.03
parse_and_babelify_backbone 5310943 ns/iter (± 19196) 5429763 ns/iter (± 38502) 0.98
parse_and_babelify_jquery 31858532 ns/iter (± 298888) 31818745 ns/iter (± 322193) 1.00
parse_and_babelify_jquery_mobile 54823883 ns/iter (± 971743) 55431409 ns/iter (± 613191) 0.99
parse_and_babelify_mootools 32840200 ns/iter (± 282825) 33140549 ns/iter (± 474894) 0.99
parse_and_babelify_underscore 4279300 ns/iter (± 31925) 4322729 ns/iter (± 16225) 0.99
parse_and_babelify_yui 32333916 ns/iter (± 475548) 33234735 ns/iter (± 515687) 0.97
html/minify/document/css_spec 41802296 ns/iter (± 346392) 42099509 ns/iter (± 299414) 0.99
html/minify/document/github 17246167 ns/iter (± 99885) 17483244 ns/iter (± 51645) 0.99
html/minify/document/stackoverflow 15471075 ns/iter (± 45709) 15613362 ns/iter (± 41464) 0.99
html/minify/document_fragment/css_spec 39406352 ns/iter (± 149452) 40834780 ns/iter (± 487280) 0.97
html/minify/document_fragment/github 16564255 ns/iter (± 53754) 16717574 ns/iter (± 36873) 0.99
html/minify/document_fragment/stackoverflow 15147964 ns/iter (± 46139) 15197345 ns/iter (± 75509) 1.00
html/document/visitor/compare/clone 340973 ns/iter (± 2591) 339419 ns/iter (± 1715) 1.00
html/document/visitor/compare/visit_mut_span 363314 ns/iter (± 2133) 368551 ns/iter (± 1716) 0.99
html/document/visitor/compare/visit_mut_span_panic 375073 ns/iter (± 1952) 378208 ns/iter (± 1367) 0.99
html/document/visitor/compare/fold_span 402141 ns/iter (± 2078) 406060 ns/iter (± 2403) 0.99
html/document/visitor/compare/fold_span_panic 458838 ns/iter (± 2238) 463548 ns/iter (± 2118) 0.99
html/document_fragment/visitor/compare/clone 338608 ns/iter (± 2601) 339229 ns/iter (± 2177) 1.00
html/document_fragment/visitor/compare/visit_mut_span 363116 ns/iter (± 1928) 364262 ns/iter (± 2855) 1.00
html/document_fragment/visitor/compare/visit_mut_span_panic 372329 ns/iter (± 1612) 373519 ns/iter (± 1878) 1.00
html/document_fragment/visitor/compare/fold_span 403842 ns/iter (± 2468) 405741 ns/iter (± 2331) 1.00
html/document_fragment/visitor/compare/fold_span_panic 461601 ns/iter (± 1570) 459552 ns/iter (± 2159) 1.00
html/lexer/css_2021_spec 15579806 ns/iter (± 45269) 15521553 ns/iter (± 8037) 1.00
html/lexer/github_com_17_05_2022 6034506 ns/iter (± 12875) 6031116 ns/iter (± 2440) 1.00
html/lexer/stackoverflow_com_17_05_2022 5652919 ns/iter (± 8520) 5632227 ns/iter (± 1426) 1.00
html/parser/parser_document/css_2021_spec 25295451 ns/iter (± 65063) 25932792 ns/iter (± 220543) 0.98
html/parser/parser_document/github_com_17_05_2022 8737493 ns/iter (± 14010) 8759071 ns/iter (± 4244) 1.00
html/parser/parser_document/stackoverflow_com_17_05_2022 7698070 ns/iter (± 8214) 7710358 ns/iter (± 2331) 1.00
html/parser/parser_document_fragment/css_2021_spec 25355499 ns/iter (± 105616) 25789667 ns/iter (± 153504) 0.98
html/parser/parser_document_fragment/github_com_17_05_2022 8744979 ns/iter (± 43929) 8764547 ns/iter (± 75832) 1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7706177 ns/iter (± 56091) 7713648 ns/iter (± 10824) 1.00

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

Please sign in to comment.