Skip to content

Commit

Permalink
fix(es/minifier): Don't inline into await from sequential inliner (#…
Browse files Browse the repository at this point in the history
…6839)

**Related issue:**

 - Closes #6837.
  • Loading branch information
kdy1 committed Jan 20, 2023
1 parent 8863e31 commit 21e1478
Show file tree
Hide file tree
Showing 11 changed files with 195 additions and 18 deletions.
9 changes: 6 additions & 3 deletions crates/swc/tests/fixture/issues-6xxx/6729/output/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
export async function foo() {
undefined_var_1 && await a({
replace: undefined_var_2 ? 1 : 2
});
if (undefined_var_1) {
let replace;
replace = undefined_var_2 ? 1 : 2, await a({
replace
});
}
}
8 changes: 7 additions & 1 deletion crates/swc_ecma_minifier/src/compress/optimize/sequences.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1479,7 +1479,13 @@ where
)
};

if b.is_lit() || b.is_class() || b.is_fn_expr() || b.is_arrow() {
if b.is_lit()
|| b.is_class()
|| b.is_fn_expr()
|| b.is_arrow()
|| b.is_await_expr()
|| b.is_yield_expr()
{
return Ok(false);
}

Expand Down
46 changes: 46 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/issues/6837/1/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"arguments": false,
"arrows": true,
"booleans": true,
"booleans_as_integers": false,
"collapse_vars": true,
"comparisons": true,
"computed_props": true,
"conditionals": true,
"dead_code": true,
"directives": true,
"drop_console": false,
"drop_debugger": true,
"evaluate": true,
"expression": false,
"hoist_funs": false,
"hoist_props": true,
"hoist_vars": false,
"if_return": true,
"join_vars": true,
"keep_classnames": false,
"keep_fargs": true,
"keep_fnames": false,
"keep_infinity": false,
"loops": true,
"negate_iife": true,
"properties": true,
"reduce_funcs": false,
"reduce_vars": false,
"side_effects": true,
"switches": true,
"typeofs": true,
"unsafe": false,
"unsafe_arrows": false,
"unsafe_comps": false,
"unsafe_Function": false,
"unsafe_math": false,
"unsafe_symbols": false,
"unsafe_methods": false,
"unsafe_proto": false,
"unsafe_regexp": false,
"unsafe_undefined": false,
"unused": true,
"const_to_let": true,
"pristine_globals": true
}
25 changes: 25 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/issues/6837/1/input.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class Class1 { }

function isClass2(node) {
return node instanceof Class2;
}

Class1.isClass2 = isClass2;
export class Class2 extends Class1 {
constructor() {
super();
this.method1 = async () => {
let var1;
const function1 = () => { };

var1 = await Class2.method2();
await function1()
.then(() => {
console.log(var1);
})
.catch();
};
}

static async method2() { }
}
20 changes: 20 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/issues/6837/1/output.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
class Class1 {
}
function isClass2(node) {
return node instanceof Class2;
}
Class1.isClass2 = isClass2;
export class Class2 extends Class1 {
constructor(){
super();
this.method1 = async ()=>{
let var1;
const function1 = ()=>{};
var1 = await Class2.method2();
await function1().then(()=>{
console.log(var1);
}).catch();
};
}
static async method2() {}
}
46 changes: 46 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/issues/6837/2/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"arguments": false,
"arrows": true,
"booleans": true,
"booleans_as_integers": false,
"collapse_vars": true,
"comparisons": true,
"computed_props": true,
"conditionals": true,
"dead_code": true,
"directives": true,
"drop_console": false,
"drop_debugger": true,
"evaluate": true,
"expression": false,
"hoist_funs": false,
"hoist_props": true,
"hoist_vars": false,
"if_return": true,
"join_vars": true,
"keep_classnames": false,
"keep_fargs": true,
"keep_fnames": false,
"keep_infinity": false,
"loops": true,
"negate_iife": true,
"properties": true,
"reduce_funcs": false,
"reduce_vars": false,
"side_effects": true,
"switches": true,
"typeofs": true,
"unsafe": false,
"unsafe_arrows": false,
"unsafe_comps": false,
"unsafe_Function": false,
"unsafe_math": false,
"unsafe_symbols": false,
"unsafe_methods": false,
"unsafe_proto": false,
"unsafe_regexp": false,
"unsafe_undefined": false,
"unused": true,
"const_to_let": true,
"pristine_globals": true
}
16 changes: 16 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/issues/6837/2/input.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export class Class2 extends Class1 {
constructor() {
this.method1 = async () => {
let var1;
const function1 = () => { };

var1 = await Class2.method2();
await function1()
.then(() => {
console.log(var1);
})
};
}

static async method2() { }
}
13 changes: 13 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/issues/6837/2/output.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
export class Class2 extends Class1 {
constructor(){
this.method1 = async ()=>{
let var1;
const function1 = ()=>{};
var1 = await Class2.method2();
await function1().then(()=>{
console.log(var1);
});
};
}
static async method2() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4055,7 +4055,7 @@
return (null === s || t.snapshotVersion.compareTo(s.snapshotVersion) > 0) && (n.Un = n.Un.insert(t.targetId, t), n.qn.set(e, t.targetId)), t;
});
}(n.localStore, Ee(e)), r = n.sharedClientState.addLocalQueryTarget(t.targetId);
i = await sc(n, e, s = t.targetId, "current" === r), n.isPrimaryClient && co(n.remoteStore, t);
s = t.targetId, i = await sc(n, e, s, "current" === r), n.isPrimaryClient && co(n.remoteStore, t);
}
return i;
}
Expand Down Expand Up @@ -4617,7 +4617,7 @@
verifyOperationInProgress() {}
async Sc() {
let t;
do await (t = this._c);
do t = this._c, await t;
while (t !== this._c)
}
Dc(t) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,12 @@
return null != this._events[name] ? this._events[name].length : 0;
}
async trigger(name, ...args) {
var promises;
try {
if ("debug" !== name && this.trigger("debug", `Event triggered: ${name}`, args), null == this._events[name]) return;
return this._events[name] = this._events[name].filter(function(listener) {
return "none" !== listener.status;
}), (await Promise.all(this._events[name].map(async (listener)=>{
}), promises = this._events[name].map(async (listener)=>{
var returned;
if ("none" !== listener.status) {
"once" === listener.status && (listener.status = "none");
Expand All @@ -84,7 +85,7 @@
return this.trigger("error", error), null;
}
}
}))).find(function(x) {
}), (await Promise.all(promises)).find(function(x) {
return null != x;
});
} catch (error) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3034,7 +3034,7 @@
if (this.isComplete) throw Error("Upload is already complete");
if ("" !== this.lastResponseError ? this.totalErrors++ : this.totalErrors = 0, 100 === this.totalErrors) throw Error(`Unable to complete upload: ${this.lastResponseStatus}: ${this.lastResponseError}`);
let delay = "" === this.lastResponseError ? 0 : Math.max(this.lastRequestTimeEnd + ERROR_DELAY - Date.now(), ERROR_DELAY);
if (delay > 0 && await new Promise((res)=>setTimeout(res, delay -= delay * Math.random() * 0.3)), this.lastResponseError = "", !this.txPosted) {
if (delay > 0 && (delay -= delay * Math.random() * 0.3, await new Promise((res)=>setTimeout(res, delay))), this.lastResponseError = "", !this.txPosted) {
await this.postTransaction();
return;
}
Expand Down Expand Up @@ -3619,7 +3619,7 @@
if (jwk || "undefined" != typeof window && window.arweaveWallet) {
if (jwk && "use_wallet" !== jwk) {
transaction.setOwner(jwk.n);
let rawSignature = await this.crypto.sign(jwk, await transaction.getSignatureData(), options), id = await this.crypto.hash(rawSignature);
let dataToSign = await transaction.getSignatureData(), rawSignature = await this.crypto.sign(jwk, dataToSign, options), id = await this.crypto.hash(rawSignature);
transaction.setSignature({
id: ArweaveUtils.bufferTob64Url(id),
owner: jwk.n,
Expand Down Expand Up @@ -4059,7 +4059,7 @@
this.driver = crypto.subtle;
}
async generateJWK() {
let jwk = await this.driver.exportKey("jwk", (await this.driver.generateKey({
let cryptoKey = await this.driver.generateKey({
name: "RSA-PSS",
modulusLength: 4096,
publicExponent: new Uint8Array([
Expand All @@ -4072,7 +4072,7 @@
}
}, !0, [
"sign"
])).privateKey);
]), jwk = await this.driver.exportKey("jwk", cryptoKey.privateKey);
return {
kty: jwk.kty,
e: jwk.e,
Expand Down Expand Up @@ -4460,7 +4460,7 @@
if (this.isComplete) throw Error("Upload is already complete");
if ("" !== this.lastResponseError ? this.totalErrors++ : this.totalErrors = 0, 100 === this.totalErrors) throw Error(`Unable to complete upload: ${this.lastResponseStatus}: ${this.lastResponseError}`);
let delay = "" === this.lastResponseError ? 0 : Math.max(this.lastRequestTimeEnd + ERROR_DELAY - Date.now(), ERROR_DELAY);
if (delay > 0 && await new Promise((res)=>setTimeout(res, delay -= delay * Math.random() * 0.3)), this.lastResponseError = "", !this.txPosted) {
if (delay > 0 && (delay -= delay * Math.random() * 0.3, await new Promise((res)=>setTimeout(res, delay))), this.lastResponseError = "", !this.txPosted) {
await this.postTransaction();
return;
}
Expand Down Expand Up @@ -4942,7 +4942,7 @@
if (jwk || "undefined" != typeof window && window.arweaveWallet) {
if (jwk && "use_wallet" !== jwk) {
transaction.setOwner(jwk.n);
let rawSignature = await this.crypto.sign(jwk, await transaction.getSignatureData(), options), id = await this.crypto.hash(rawSignature);
let dataToSign = await transaction.getSignatureData(), rawSignature = await this.crypto.sign(jwk, dataToSign, options), id = await this.crypto.hash(rawSignature);
transaction.setSignature({
id: ArweaveUtils.bufferTob64Url(id),
owner: jwk.n,
Expand Down Expand Up @@ -20975,7 +20975,7 @@
const { definitionLoader , interactionsLoader , executorFactory , stateEvaluator } = this.warp, benchmark = Benchmark_1.Benchmark.measure(), cachedState = await stateEvaluator.latestAvailableState(contractTxId, upToSortKey);
this.logger.debug('cache lookup', benchmark.elapsed()), benchmark.reset();
const evolvedSrcTxId = Evolve_1.Evolve.evolvedSrcTxId(null === (_a = null == cachedState ? void 0 : cachedState.cachedValue) || void 0 === _a ? void 0 : _a.state);
return this.logger.debug('Cached state', cachedState, upToSortKey), cachedState && cachedState.sortKey == upToSortKey ? (this.logger.debug('State fully cached, not loading interactions.'), (forceDefinitionLoad || evolvedSrcTxId) && (handler = await executorFactory.create(contractDefinition = await definitionLoader.load(contractTxId, evolvedSrcTxId), this._evaluationOptions))) : ([contractDefinition, sortedInteractions] = await Promise.all([
return this.logger.debug('Cached state', cachedState, upToSortKey), cachedState && cachedState.sortKey == upToSortKey ? (this.logger.debug('State fully cached, not loading interactions.'), (forceDefinitionLoad || evolvedSrcTxId) && (contractDefinition = await definitionLoader.load(contractTxId, evolvedSrcTxId), handler = await executorFactory.create(contractDefinition, this._evaluationOptions))) : ([contractDefinition, sortedInteractions] = await Promise.all([
definitionLoader.load(contractTxId, evolvedSrcTxId),
interactions ? Promise.resolve(interactions) : await interactionsLoader.load(contractTxId, null == cachedState ? void 0 : cachedState.sortKey, this.getToSortKey(upToSortKey), this._evaluationOptions)
]), (null == cachedState ? void 0 : cachedState.sortKey) && (sortedInteractions = sortedInteractions.filter((i)=>i.sortKey.localeCompare(null == cachedState ? void 0 : cachedState.sortKey) > 0)), upToSortKey && (sortedInteractions = sortedInteractions.filter((i)=>0 >= i.sortKey.localeCompare(upToSortKey))), this.logger.debug('contract and interactions load', benchmark.elapsed()), null == this._parentContract && sortedInteractions.length && (this._rootSortKey = sortedInteractions[sortedInteractions.length - 1].sortKey), handler = await executorFactory.create(contractDefinition, this._evaluationOptions)), {
Expand Down Expand Up @@ -21737,7 +21737,8 @@
}, innerWritesInteractions = await this.loadPages(innerWritesVariables);
this.logger.debug('Inner writes interactions length:', innerWritesInteractions.length), interactions = interactions.concat(innerWritesInteractions);
}
let sortedInteractions = await this.sorter.sort(interactions = interactions.filter((i)=>i.node.block && i.node.block.id && i.node.block.height));
interactions = interactions.filter((i)=>i.node.block && i.node.block.id && i.node.block.height);
let sortedInteractions = await this.sorter.sort(interactions);
return fromSortKey && toSortKey ? sortedInteractions = sortedInteractions.filter((i)=>i.node.sortKey.localeCompare(fromSortKey) > 0 && 0 >= i.node.sortKey.localeCompare(toSortKey)) : fromSortKey && !toSortKey ? sortedInteractions = sortedInteractions.filter((i)=>i.node.sortKey.localeCompare(fromSortKey) > 0) : !fromSortKey && toSortKey && (sortedInteractions = sortedInteractions.filter((i)=>0 >= i.node.sortKey.localeCompare(toSortKey))), this.logger.debug('All loaded interactions:', {
from: fromSortKey,
to: toSortKey,
Expand All @@ -21750,10 +21751,10 @@
const txInfos = transactions.edges.filter((tx)=>bundledTxsFilter(tx));
for(; transactions.pageInfo.hasNextPage;){
const cursor = transactions.edges[MAX_REQUEST - 1].cursor;
transactions = await this.getNextPage(variables = {
variables = {
...variables,
after: cursor
}), txInfos.push(...transactions.edges.filter((tx)=>bundledTxsFilter(tx)));
}, transactions = await this.getNextPage(variables), txInfos.push(...transactions.edges.filter((tx)=>bundledTxsFilter(tx)));
}
return txInfos;
}
Expand Down

1 comment on commit 21e1478

@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: 21e1478 Previous: df70261 Ratio
es/full/bugs-1 311484 ns/iter (± 7018) 339282 ns/iter (± 8018) 0.92
es/full/minify/libraries/antd 2148970805 ns/iter (± 42756560) 2020477325 ns/iter (± 37312656) 1.06
es/full/minify/libraries/d3 345944789 ns/iter (± 3898645) 408036083 ns/iter (± 1165623) 0.85
es/full/minify/libraries/echarts 1584380400 ns/iter (± 19394314) 1555690067 ns/iter (± 9638350) 1.02
es/full/minify/libraries/jquery 95251198 ns/iter (± 2388974) 119423066 ns/iter (± 1023538) 0.80
es/full/minify/libraries/lodash 112161156 ns/iter (± 939572) 145943427 ns/iter (± 831741) 0.77
es/full/minify/libraries/moment 55269743 ns/iter (± 1311268) 67844594 ns/iter (± 217788) 0.81
es/full/minify/libraries/react 19755256 ns/iter (± 155450) 23593746 ns/iter (± 107448) 0.84
es/full/minify/libraries/terser 281019273 ns/iter (± 3529903) 349483138 ns/iter (± 1538007) 0.80
es/full/minify/libraries/three 524802310 ns/iter (± 8545081) 595905515 ns/iter (± 2954925) 0.88
es/full/minify/libraries/typescript 3877582220 ns/iter (± 22383004) 3754358610 ns/iter (± 18213841) 1.03
es/full/minify/libraries/victory 850887396 ns/iter (± 16658063) 888378373 ns/iter (± 3318067) 0.96
es/full/minify/libraries/vue 140062469 ns/iter (± 1018924) 180432788 ns/iter (± 800815) 0.78
es/full/codegen/es3 25640 ns/iter (± 69) 26546 ns/iter (± 73) 0.97
es/full/codegen/es5 25682 ns/iter (± 89) 26512 ns/iter (± 103) 0.97
es/full/codegen/es2015 25714 ns/iter (± 68) 26496 ns/iter (± 74) 0.97
es/full/codegen/es2016 25684 ns/iter (± 109) 26535 ns/iter (± 54) 0.97
es/full/codegen/es2017 25780 ns/iter (± 84) 26517 ns/iter (± 71) 0.97
es/full/codegen/es2018 25684 ns/iter (± 52) 26497 ns/iter (± 89) 0.97
es/full/codegen/es2019 25703 ns/iter (± 173) 26517 ns/iter (± 57) 0.97
es/full/codegen/es2020 25749 ns/iter (± 32) 26505 ns/iter (± 33) 0.97
es/full/all/es3 175528155 ns/iter (± 1565960) 213075312 ns/iter (± 2728595) 0.82
es/full/all/es5 166356200 ns/iter (± 2953020) 200966179 ns/iter (± 2875251) 0.83
es/full/all/es2015 128476716 ns/iter (± 1081411) 153199390 ns/iter (± 4611003) 0.84
es/full/all/es2016 128246148 ns/iter (± 1848599) 149830360 ns/iter (± 4014678) 0.86
es/full/all/es2017 125692804 ns/iter (± 1757940) 150880749 ns/iter (± 1592249) 0.83
es/full/all/es2018 122733019 ns/iter (± 1544665) 145639875 ns/iter (± 3310719) 0.84
es/full/all/es2019 121268376 ns/iter (± 1768865) 146939510 ns/iter (± 3953142) 0.83
es/full/all/es2020 117682647 ns/iter (± 1723285) 143195256 ns/iter (± 1369687) 0.82
es/full/parser 552556 ns/iter (± 10768) 562165 ns/iter (± 12273) 0.98
es/full/base/fixer 21982 ns/iter (± 33) 22476 ns/iter (± 28) 0.98
es/full/base/resolver_and_hygiene 79346 ns/iter (± 64) 81697 ns/iter (± 124) 0.97
serialization of ast node 145 ns/iter (± 0) 144 ns/iter (± 0) 1.01
serialization of serde 129 ns/iter (± 0) 130 ns/iter (± 0) 0.99
css/minify/libraries/bootstrap 28641825 ns/iter (± 180731) 31211511 ns/iter (± 54489) 0.92
css/visitor/compare/clone 2071108 ns/iter (± 16733) 2831296 ns/iter (± 43978) 0.73
css/visitor/compare/visit_mut_span 2263062 ns/iter (± 3784) 3116884 ns/iter (± 117362) 0.73
css/visitor/compare/visit_mut_span_panic 2324766 ns/iter (± 8893) 3180155 ns/iter (± 29682) 0.73
css/visitor/compare/fold_span 3058387 ns/iter (± 19852) 4112294 ns/iter (± 39689) 0.74
css/visitor/compare/fold_span_panic 3225529 ns/iter (± 28321) 4398536 ns/iter (± 37289) 0.73
css/lexer/bootstrap_5_1_3 5167052 ns/iter (± 3954) 5279512 ns/iter (± 23948) 0.98
css/lexer/foundation_6_7_4 4340592 ns/iter (± 3071) 4429625 ns/iter (± 1709) 0.98
css/lexer/tailwind_3_1_1 827076 ns/iter (± 487) 841555 ns/iter (± 428) 0.98
css/parser/bootstrap_5_1_3 21884879 ns/iter (± 98964) 23605003 ns/iter (± 90626) 0.93
css/parser/foundation_6_7_4 17548277 ns/iter (± 236621) 18845985 ns/iter (± 30180) 0.93
css/parser/tailwind_3_1_1 3322432 ns/iter (± 2139) 3504408 ns/iter (± 9501) 0.95
es/codegen/colors 333080 ns/iter (± 185683) 295615 ns/iter (± 164367) 1.13
es/codegen/large 1038422 ns/iter (± 512582) 2639905 ns/iter (± 1576748) 0.39
es/codegen/with-parser/colors 48803 ns/iter (± 535) 49267 ns/iter (± 398) 0.99
es/codegen/with-parser/large 535557 ns/iter (± 1724) 550787 ns/iter (± 2638) 0.97
es/minify/libraries/antd 1802815450 ns/iter (± 13651489) 1738898711 ns/iter (± 8372492) 1.04
es/minify/libraries/d3 281143640 ns/iter (± 4015899) 356805535 ns/iter (± 1261172) 0.79
es/minify/libraries/echarts 1344099464 ns/iter (± 20728979) 1329064999 ns/iter (± 4240455) 1.01
es/minify/libraries/jquery 80588825 ns/iter (± 371806) 104204016 ns/iter (± 762625) 0.77
es/minify/libraries/lodash 98323848 ns/iter (± 1786669) 132114933 ns/iter (± 646381) 0.74
es/minify/libraries/moment 46872186 ns/iter (± 422604) 59760120 ns/iter (± 421550) 0.78
es/minify/libraries/react 17269365 ns/iter (± 125952) 21044437 ns/iter (± 118979) 0.82
es/minify/libraries/terser 231672855 ns/iter (± 4771536) 305672597 ns/iter (± 1487312) 0.76
es/minify/libraries/three 426423145 ns/iter (± 5973492) 508687686 ns/iter (± 2594831) 0.84
es/minify/libraries/typescript 3274585546 ns/iter (± 12762956) 3164789738 ns/iter (± 15786120) 1.03
es/minify/libraries/victory 745069101 ns/iter (± 21314114) 765997255 ns/iter (± 2400987) 0.97
es/minify/libraries/vue 122934854 ns/iter (± 1601531) 163945563 ns/iter (± 502171) 0.75
es/visitor/compare/clone 2395587 ns/iter (± 12473) 3524587 ns/iter (± 75907) 0.68
es/visitor/compare/visit_mut_span 2809910 ns/iter (± 6352) 4191984 ns/iter (± 24937) 0.67
es/visitor/compare/visit_mut_span_panic 2845744 ns/iter (± 8835) 4314549 ns/iter (± 43772) 0.66
es/visitor/compare/fold_span 3962299 ns/iter (± 70663) 5716645 ns/iter (± 41340) 0.69
es/visitor/compare/fold_span_panic 4177092 ns/iter (± 56645) 5920366 ns/iter (± 48325) 0.71
es/lexer/colors 17343 ns/iter (± 72) 17422 ns/iter (± 13) 1.00
es/lexer/angular 8298804 ns/iter (± 4619) 8493460 ns/iter (± 2803) 0.98
es/lexer/backbone 1086274 ns/iter (± 577) 1098345 ns/iter (± 296) 0.99
es/lexer/jquery 6011737 ns/iter (± 12232) 6141959 ns/iter (± 3741) 0.98
es/lexer/jquery mobile 9268161 ns/iter (± 5481) 9480067 ns/iter (± 14278) 0.98
es/lexer/mootools 4712590 ns/iter (± 19604) 4793144 ns/iter (± 3980) 0.98
es/lexer/underscore 904510 ns/iter (± 523) 915077 ns/iter (± 668) 0.99
es/lexer/three 28246234 ns/iter (± 28858) 29066778 ns/iter (± 38153) 0.97
es/lexer/yui 5091533 ns/iter (± 3473) 5202216 ns/iter (± 4940) 0.98
es/parser/colors 30961 ns/iter (± 181) 31618 ns/iter (± 194) 0.98
es/parser/angular 16116842 ns/iter (± 240902) 18348952 ns/iter (± 300705) 0.88
es/parser/backbone 2365518 ns/iter (± 13166) 2555008 ns/iter (± 36044) 0.93
es/parser/jquery 12995182 ns/iter (± 156393) 15166291 ns/iter (± 258412) 0.86
es/parser/jquery mobile 21376328 ns/iter (± 663084) 24250182 ns/iter (± 312469) 0.88
es/parser/mootools 9866679 ns/iter (± 78453) 11340707 ns/iter (± 91892) 0.87
es/parser/underscore 2002306 ns/iter (± 12414) 2124839 ns/iter (± 23340) 0.94
es/parser/three 67240962 ns/iter (± 409848) 66875152 ns/iter (± 189396) 1.01
es/parser/yui 9943908 ns/iter (± 88995) 11452494 ns/iter (± 178461) 0.87
es/preset-env/usage/builtin_type 141013 ns/iter (± 31772) 140525 ns/iter (± 30593) 1.00
es/preset-env/usage/property 21045 ns/iter (± 98) 21661 ns/iter (± 96) 0.97
es/resolver/typescript 140596195 ns/iter (± 7719475) 129391817 ns/iter (± 3884900) 1.09
es/fixer/typescript 114132324 ns/iter (± 5650196) 102303732 ns/iter (± 1340748) 1.12
es/hygiene/typescript 235353269 ns/iter (± 2655075) 223311361 ns/iter (± 1916017) 1.05
es/resolver_with_hygiene/typescript 385098903 ns/iter (± 2038407) 384079584 ns/iter (± 3034791) 1.00
es/visitor/base-perf/module_clone 75868 ns/iter (± 1330) 76603 ns/iter (± 770) 0.99
es/visitor/base-perf/fold_empty 85214 ns/iter (± 754) 87055 ns/iter (± 1185) 0.98
es/visitor/base-perf/fold_noop_impl_all 85377 ns/iter (± 997) 86975 ns/iter (± 1772) 0.98
es/visitor/base-perf/fold_noop_impl_vec 85458 ns/iter (± 850) 87243 ns/iter (± 1349) 0.98
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 56 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 59 ns/iter (± 0) 59 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 103 ns/iter (± 0) 104 ns/iter (± 0) 0.99
es/visitor/base-perf/boxing_unboxed 103 ns/iter (± 0) 103 ns/iter (± 0) 1
es/visitor/base-perf/visit_contains_this 3528 ns/iter (± 78) 3508 ns/iter (± 68) 1.01
es/base/parallel/resolver/typescript 6179976357 ns/iter (± 749872481) 5649126209 ns/iter (± 234143046) 1.09
es/base/parallel/hygiene/typescript 2820203315 ns/iter (± 41816572) 2744067109 ns/iter (± 38748395) 1.03
misc/visitors/time-complexity/time 5 92 ns/iter (± 0) 93 ns/iter (± 0) 0.99
misc/visitors/time-complexity/time 10 312 ns/iter (± 3) 339 ns/iter (± 0) 0.92
misc/visitors/time-complexity/time 15 644 ns/iter (± 16) 627 ns/iter (± 3) 1.03
misc/visitors/time-complexity/time 20 1129 ns/iter (± 3) 1173 ns/iter (± 5) 0.96
misc/visitors/time-complexity/time 40 5978 ns/iter (± 31) 6223 ns/iter (± 41) 0.96
misc/visitors/time-complexity/time 60 15391 ns/iter (± 12) 15570 ns/iter (± 21) 0.99
es/full-target/es2016 187613 ns/iter (± 389) 193827 ns/iter (± 245) 0.97
es/full-target/es2017 182249 ns/iter (± 442) 188382 ns/iter (± 635) 0.97
es/full-target/es2018 172065 ns/iter (± 666) 177309 ns/iter (± 325) 0.97
es2020_nullish_coalescing 67094 ns/iter (± 129) 68644 ns/iter (± 6880) 0.98
es2020_optional_chaining 95719 ns/iter (± 6765) 98803 ns/iter (± 9072) 0.97
es2022_class_properties 93762 ns/iter (± 194) 96001 ns/iter (± 121) 0.98
es2018_object_rest_spread 72117 ns/iter (± 74) 73098 ns/iter (± 144) 0.99
es2019_optional_catch_binding 61610 ns/iter (± 96) 62815 ns/iter (± 94) 0.98
es2017_async_to_generator 61857 ns/iter (± 83) 63158 ns/iter (± 116) 0.98
es2016_exponentiation 65436 ns/iter (± 122) 66849 ns/iter (± 234) 0.98
es2015_arrow 71037 ns/iter (± 118) 71882 ns/iter (± 293) 0.99
es2015_block_scoped_fn 66787 ns/iter (± 225) 67663 ns/iter (± 91) 0.99
es2015_block_scoping 162133 ns/iter (± 6874) 151335 ns/iter (± 8766) 1.07
es2015_classes 117958 ns/iter (± 1004) 120874 ns/iter (± 573) 0.98
es2015_computed_props 61570 ns/iter (± 151) 62685 ns/iter (± 51) 0.98
es2015_destructuring 116233 ns/iter (± 502) 118788 ns/iter (± 515) 0.98
es2015_duplicate_keys 63802 ns/iter (± 111) 65104 ns/iter (± 143) 0.98
es2015_parameters 79791 ns/iter (± 122) 81635 ns/iter (± 149) 0.98
es2015_fn_name 67741 ns/iter (± 744) 69650 ns/iter (± 708) 0.97
es2015_for_of 64847 ns/iter (± 162) 65715 ns/iter (± 127) 0.99
es2015_instanceof 63390 ns/iter (± 140) 64936 ns/iter (± 104) 0.98
es2015_shorthand_property 61289 ns/iter (± 157) 62680 ns/iter (± 103) 0.98
es2015_spread 61454 ns/iter (± 156) 62559 ns/iter (± 106) 0.98
es2015_sticky_regex 62581 ns/iter (± 141) 63830 ns/iter (± 126) 0.98
es2015_typeof_symbol 62752 ns/iter (± 95) 63894 ns/iter (± 56) 0.98
es/transform/baseline/base 52039 ns/iter (± 159) 53160 ns/iter (± 128) 0.98
es/transform/baseline/common_reserved_word 62929 ns/iter (± 122) 64179 ns/iter (± 119) 0.98
es/transform/baseline/common_typescript 167917 ns/iter (± 335) 148362 ns/iter (± 5338) 1.13
es/target/es3 169777 ns/iter (± 158) 174779 ns/iter (± 239) 0.97
es/target/es2015 633507 ns/iter (± 1617) 648038 ns/iter (± 2160) 0.98
es/target/es2016 65356 ns/iter (± 147) 66874 ns/iter (± 136) 0.98
es/target/es2017 61857 ns/iter (± 702) 63313 ns/iter (± 96) 0.98
es/target/es2018 81873 ns/iter (± 65) 83372 ns/iter (± 130) 0.98
es/target/es2020 131931 ns/iter (± 412) 136903 ns/iter (± 457) 0.96
babelify-only 673615 ns/iter (± 1173) 691914 ns/iter (± 1743) 0.97
parse_and_babelify_angular 47613963 ns/iter (± 837029) 50893768 ns/iter (± 821073) 0.94
parse_and_babelify_backbone 5853434 ns/iter (± 234328) 7424410 ns/iter (± 123087) 0.79
parse_and_babelify_jquery 36256955 ns/iter (± 551543) 40122368 ns/iter (± 484303) 0.90
parse_and_babelify_jquery_mobile 62988637 ns/iter (± 720857) 66018280 ns/iter (± 743545) 0.95
parse_and_babelify_mootools 37655830 ns/iter (± 338324) 40444998 ns/iter (± 293203) 0.93
parse_and_babelify_underscore 4553636 ns/iter (± 84332) 5850222 ns/iter (± 58718) 0.78
parse_and_babelify_yui 38343072 ns/iter (± 1775698) 39801319 ns/iter (± 739701) 0.96
html/minify/document/css_spec 45248067 ns/iter (± 575330) 50427530 ns/iter (± 144405) 0.90
html/minify/document/github 17969131 ns/iter (± 57316) 20044877 ns/iter (± 31471) 0.90
html/minify/document/stackoverflow 16082266 ns/iter (± 109164) 18248549 ns/iter (± 31553) 0.88
html/minify/document_fragment/css_spec 43139385 ns/iter (± 399241) 48600471 ns/iter (± 78824) 0.89
html/minify/document_fragment/github 17264983 ns/iter (± 85265) 19218918 ns/iter (± 55783) 0.90
html/minify/document_fragment/stackoverflow 15755530 ns/iter (± 78618) 17653700 ns/iter (± 19435) 0.89
html/document/visitor/compare/clone 342585 ns/iter (± 2813) 353520 ns/iter (± 1356) 0.97
html/document/visitor/compare/visit_mut_span 367909 ns/iter (± 2434) 374856 ns/iter (± 2405) 0.98
html/document/visitor/compare/visit_mut_span_panic 376798 ns/iter (± 2298) 385232 ns/iter (± 1886) 0.98
html/document/visitor/compare/fold_span 407104 ns/iter (± 2074) 414385 ns/iter (± 1723) 0.98
html/document/visitor/compare/fold_span_panic 462999 ns/iter (± 2587) 472884 ns/iter (± 2672) 0.98
html/document_fragment/visitor/compare/clone 340482 ns/iter (± 1543) 347196 ns/iter (± 1604) 0.98
html/document_fragment/visitor/compare/visit_mut_span 364929 ns/iter (± 1280) 376288 ns/iter (± 2483) 0.97
html/document_fragment/visitor/compare/visit_mut_span_panic 378721 ns/iter (± 3284) 383711 ns/iter (± 1844) 0.99
html/document_fragment/visitor/compare/fold_span 405102 ns/iter (± 1637) 413489 ns/iter (± 2047) 0.98
html/document_fragment/visitor/compare/fold_span_panic 460662 ns/iter (± 1878) 472181 ns/iter (± 2704) 0.98
html/lexer/css_2021_spec 15582385 ns/iter (± 77913) 16014388 ns/iter (± 27810) 0.97
html/lexer/github_com_17_05_2022 6021055 ns/iter (± 2889) 6195054 ns/iter (± 9014) 0.97
html/lexer/stackoverflow_com_17_05_2022 5629501 ns/iter (± 4572) 5808371 ns/iter (± 7131) 0.97
html/parser/parser_document/css_2021_spec 26613691 ns/iter (± 266932) 30030188 ns/iter (± 254389) 0.89
html/parser/parser_document/github_com_17_05_2022 8793680 ns/iter (± 15190) 9779462 ns/iter (± 21948) 0.90
html/parser/parser_document/stackoverflow_com_17_05_2022 7723400 ns/iter (± 10652) 8392478 ns/iter (± 10976) 0.92
html/parser/parser_document_fragment/css_2021_spec 26215817 ns/iter (± 363807) 30473655 ns/iter (± 67026) 0.86
html/parser/parser_document_fragment/github_com_17_05_2022 8761841 ns/iter (± 10212) 9803043 ns/iter (± 48108) 0.89
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7770121 ns/iter (± 15552) 8373841 ns/iter (± 10085) 0.93

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

Please sign in to comment.