-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test(es/decorators): Split
decorator-tests
(#9119)
- Loading branch information
Showing
148 changed files
with
4,308 additions
and
0 deletions.
There are no files selected for viewing
45 changes: 45 additions & 0 deletions
45
crates/swc_ecma_transforms_proposal/scripts/split-decorator-tests.mjs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
import typescript from 'typescript' | ||
import fs from 'fs' | ||
import module from 'module' | ||
|
||
const require = module.createRequire(import.meta.url) | ||
const ts = fs.readFileSync('./tests/decorator-tests/decorator-tests.ts', 'utf8') | ||
|
||
// Convert TypeScript to JavaScript for testing JavaScript VMs | ||
console.log('Converting TypeScript to JavaScript...') | ||
|
||
const program = typescript.createProgram({ | ||
rootNames: ['./tests/decorator-tests/decorator-tests.ts'], | ||
options: { target: typescript.ScriptTarget.ESNext } | ||
}); | ||
// console.log('program', program) | ||
const mainFile = program.getSourceFile('./tests/decorator-tests/decorator-tests.ts') | ||
// console.log('mainFile', mainFile) | ||
|
||
const testVarStmt = mainFile.statements.find((s) => s.kind === typescript.SyntaxKind.VariableStatement) | ||
// console.log('testVarStmt', testVarStmt) | ||
|
||
const testVarDecl = testVarStmt.declarationList.declarations[0] | ||
// console.log('testVarDecl', testVarDecl) | ||
|
||
const properties = testVarDecl.initializer.properties | ||
// console.log('properties', properties) | ||
|
||
fs.rmdirSync(`tests/decorator-evanw-split`, { recursive: true }); | ||
fs.mkdirSync(`tests/decorator-evanw-split`, { recursive: true }); | ||
|
||
for (const property of properties) { | ||
let name = property.name.getText(mainFile) | ||
const value = property.initializer.getText(mainFile) | ||
|
||
name = name.replace(/['\(\)"']+/g, '').replace(/[\:; ]+/g, '-') | ||
|
||
// console.log('name', name) | ||
// console.log('value', value) | ||
|
||
const code = `(${value})()`; | ||
const transpiiled = typescript.transpile(code, { target: typescript.ScriptTarget.ESNext }) | ||
|
||
fs.writeFileSync(`tests/decorator-evanw-split/${name}.js`, transpiiled) | ||
} | ||
|
37 changes: 37 additions & 0 deletions
37
...osal/tests/decorator-evanw-split/Auto-accessor-decorators-Basic-instance-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
(() => { | ||
const dec = (key, getName, setName) => (target, ctx) => { | ||
assertEq(() => typeof target.get, 'function'); | ||
assertEq(() => typeof target.set, 'function'); | ||
assertEq(() => target.get.name, getName); | ||
assertEq(() => target.set.name, setName); | ||
assertEq(() => ctx.kind, 'accessor'); | ||
assertEq(() => ctx.name, key); | ||
assertEq(() => ctx.static, false); | ||
assertEq(() => ctx.private, false); | ||
assertEq(() => ctx.access.has({ [key]: false }), true); | ||
assertEq(() => ctx.access.has({ bar: true }), false); | ||
assertEq(() => ctx.access.get({ [key]: 123 }), 123); | ||
assertEq(() => { | ||
const obj = {}; | ||
ctx.access.set(obj, 123); | ||
return obj[key]; | ||
}, 123); | ||
}; | ||
const bar = Symbol('bar'); | ||
const baz = Symbol(); | ||
class Foo { | ||
@dec('foo', 'get foo', 'set foo') | ||
accessor foo = 0; | ||
@dec(bar, 'get [bar]', 'set [bar]') | ||
accessor [bar] = 0; | ||
@dec(baz, 'get ', 'set ') | ||
accessor [baz] = 0; | ||
} | ||
var obj = new Foo; | ||
obj.foo = 321; | ||
assertEq(() => obj.foo, 321); | ||
obj[bar] = 4321; | ||
assertEq(() => obj[bar], 4321); | ||
obj[baz] = 54321; | ||
assertEq(() => obj[baz], 54321); | ||
})(); |
37 changes: 37 additions & 0 deletions
37
...ts/decorator-evanw-split/Auto-accessor-decorators-Basic-private-instance-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
(() => { | ||
let lateAsserts; | ||
const dec = (target, ctx) => { | ||
assertEq(() => typeof target.get, 'function'); | ||
assertEq(() => typeof target.set, 'function'); | ||
assertEq(() => target.get.name, 'get #foo'); | ||
assertEq(() => target.set.name, 'set #foo'); | ||
assertEq(() => ctx.kind, 'accessor'); | ||
assertEq(() => ctx.name, '#foo'); | ||
assertEq(() => ctx.static, false); | ||
assertEq(() => ctx.private, true); | ||
lateAsserts = () => { | ||
assertEq(() => ctx.access.has(new Foo), true); | ||
assertEq(() => ctx.access.has({}), false); | ||
assertEq(() => ctx.access.get(new Foo), 0); | ||
assertEq(() => { | ||
const obj = new Foo; | ||
ctx.access.set(obj, 123); | ||
return get$foo(obj); | ||
}, 123); | ||
}; | ||
}; | ||
let get$foo; | ||
let set$foo; | ||
class Foo { | ||
@dec | ||
accessor #foo = 0; | ||
static { | ||
get$foo = x => x.#foo; | ||
set$foo = (x, y) => { x.#foo = y; }; | ||
} | ||
} | ||
lateAsserts(); | ||
var obj = new Foo; | ||
assertEq(() => set$foo(obj, 321), undefined); | ||
assertEq(() => get$foo(obj), 321); | ||
})(); |
35 changes: 35 additions & 0 deletions
35
...ests/decorator-evanw-split/Auto-accessor-decorators-Basic-private-static-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
(() => { | ||
let lateAsserts; | ||
const dec = (target, ctx) => { | ||
assertEq(() => typeof target.get, 'function'); | ||
assertEq(() => typeof target.set, 'function'); | ||
assertEq(() => target.get.name, 'get #foo'); | ||
assertEq(() => target.set.name, 'set #foo'); | ||
assertEq(() => ctx.kind, 'accessor'); | ||
assertEq(() => ctx.name, '#foo'); | ||
assertEq(() => ctx.static, true); | ||
assertEq(() => ctx.private, true); | ||
lateAsserts = () => { | ||
assertEq(() => ctx.access.has(Foo), true); | ||
assertEq(() => ctx.access.has({}), false); | ||
assertEq(() => ctx.access.get(Foo), 0); | ||
assertEq(() => { | ||
ctx.access.set(Foo, 123); | ||
return get$foo(Foo); | ||
}, 123); | ||
}; | ||
}; | ||
let get$foo; | ||
let set$foo; | ||
class Foo { | ||
@dec | ||
static accessor #foo = 0; | ||
static { | ||
get$foo = x => x.#foo; | ||
set$foo = (x, y) => { x.#foo = y; }; | ||
} | ||
} | ||
lateAsserts(); | ||
assertEq(() => set$foo(Foo, 321), undefined); | ||
assertEq(() => get$foo(Foo), 321); | ||
})(); |
36 changes: 36 additions & 0 deletions
36
...oposal/tests/decorator-evanw-split/Auto-accessor-decorators-Basic-static-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
(() => { | ||
const dec = (key, getName, setName) => (target, ctx) => { | ||
assertEq(() => typeof target.get, 'function'); | ||
assertEq(() => typeof target.set, 'function'); | ||
assertEq(() => target.get.name, getName); | ||
assertEq(() => target.set.name, setName); | ||
assertEq(() => ctx.kind, 'accessor'); | ||
assertEq(() => ctx.name, key); | ||
assertEq(() => ctx.static, true); | ||
assertEq(() => ctx.private, false); | ||
assertEq(() => ctx.access.has({ [key]: false }), true); | ||
assertEq(() => ctx.access.has({ bar: true }), false); | ||
assertEq(() => ctx.access.get({ [key]: 123 }), 123); | ||
assertEq(() => { | ||
const obj = {}; | ||
ctx.access.set(obj, 123); | ||
return obj[key]; | ||
}, 123); | ||
}; | ||
const bar = Symbol('bar'); | ||
const baz = Symbol(); | ||
class Foo { | ||
@dec('foo', 'get foo', 'set foo') | ||
static accessor foo = 0; | ||
@dec(bar, 'get [bar]', 'set [bar]') | ||
static accessor [bar] = 0; | ||
@dec(baz, 'get ', 'set ') | ||
static accessor [baz] = 0; | ||
} | ||
Foo.foo = 321; | ||
assertEq(() => Foo.foo, 321); | ||
Foo[bar] = 4321; | ||
assertEq(() => Foo[bar], 4321); | ||
Foo[baz] = 54321; | ||
assertEq(() => Foo[baz], 54321); | ||
})(); |
22 changes: 22 additions & 0 deletions
22
...ecorator-evanw-split/Auto-accessor-decorators-Extra-initializer-instance-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
(() => { | ||
let oldAddInitializer; | ||
let got; | ||
const dec = (target, ctx) => { | ||
ctx.addInitializer(function (...args) { | ||
got = { this: this, args }; | ||
}); | ||
if (oldAddInitializer) | ||
assertThrows(() => oldAddInitializer(() => { }), TypeError); | ||
assertThrows(() => ctx.addInitializer({}), TypeError); | ||
oldAddInitializer = ctx.addInitializer; | ||
}; | ||
class Foo { | ||
@dec | ||
@dec | ||
accessor foo; | ||
} | ||
assertEq(() => got, undefined); | ||
const instance = new Foo; | ||
assertEq(() => got.this, instance); | ||
assertEq(() => got.args.length, 0); | ||
})(); |
22 changes: 22 additions & 0 deletions
22
...-evanw-split/Auto-accessor-decorators-Extra-initializer-private-instance-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
(() => { | ||
let oldAddInitializer; | ||
let got; | ||
const dec = (target, ctx) => { | ||
ctx.addInitializer(function (...args) { | ||
got = { this: this, args }; | ||
}); | ||
if (oldAddInitializer) | ||
assertThrows(() => oldAddInitializer(() => { }), TypeError); | ||
assertThrows(() => ctx.addInitializer({}), TypeError); | ||
oldAddInitializer = ctx.addInitializer; | ||
}; | ||
class Foo { | ||
@dec | ||
@dec | ||
accessor #foo; | ||
} | ||
assertEq(() => got, undefined); | ||
const instance = new Foo; | ||
assertEq(() => got.this, instance); | ||
assertEq(() => got.args.length, 0); | ||
})(); |
20 changes: 20 additions & 0 deletions
20
...or-evanw-split/Auto-accessor-decorators-Extra-initializer-private-static-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
(() => { | ||
let oldAddInitializer; | ||
let got; | ||
const dec = (target, ctx) => { | ||
ctx.addInitializer(function (...args) { | ||
got = { this: this, args }; | ||
}); | ||
if (oldAddInitializer) | ||
assertThrows(() => oldAddInitializer(() => { }), TypeError); | ||
assertThrows(() => ctx.addInitializer({}), TypeError); | ||
oldAddInitializer = ctx.addInitializer; | ||
}; | ||
class Foo { | ||
@dec | ||
@dec | ||
static accessor #foo; | ||
} | ||
assertEq(() => got.this, Foo); | ||
assertEq(() => got.args.length, 0); | ||
})(); |
20 changes: 20 additions & 0 deletions
20
.../decorator-evanw-split/Auto-accessor-decorators-Extra-initializer-static-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
(() => { | ||
let oldAddInitializer; | ||
let got; | ||
const dec = (target, ctx) => { | ||
ctx.addInitializer(function (...args) { | ||
got = { this: this, args }; | ||
}); | ||
if (oldAddInitializer) | ||
assertThrows(() => oldAddInitializer(() => { }), TypeError); | ||
assertThrows(() => ctx.addInitializer({}), TypeError); | ||
oldAddInitializer = ctx.addInitializer; | ||
}; | ||
class Foo { | ||
@dec | ||
@dec | ||
static accessor foo; | ||
} | ||
assertEq(() => got.this, Foo); | ||
assertEq(() => got.args.length, 0); | ||
})(); |
11 changes: 11 additions & 0 deletions
11
...ests/decorator-evanw-split/Auto-accessor-decorators-Return-null-instance-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
(() => { | ||
assertThrows(() => { | ||
const dec = (target, ctx) => { | ||
return null; | ||
}; | ||
class Foo { | ||
@dec | ||
accessor foo; | ||
} | ||
}, TypeError); | ||
})(); |
11 changes: 11 additions & 0 deletions
11
...orator-evanw-split/Auto-accessor-decorators-Return-null-private-instance-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
(() => { | ||
assertThrows(() => { | ||
const dec = (target, ctx) => { | ||
return null; | ||
}; | ||
class Foo { | ||
@dec | ||
accessor #foo; | ||
} | ||
}, TypeError); | ||
})(); |
11 changes: 11 additions & 0 deletions
11
...ecorator-evanw-split/Auto-accessor-decorators-Return-null-private-static-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
(() => { | ||
assertThrows(() => { | ||
const dec = (target, ctx) => { | ||
return null; | ||
}; | ||
class Foo { | ||
@dec | ||
static accessor #foo; | ||
} | ||
}, TypeError); | ||
})(); |
11 changes: 11 additions & 0 deletions
11
.../tests/decorator-evanw-split/Auto-accessor-decorators-Return-null-static-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
(() => { | ||
assertThrows(() => { | ||
const dec = (target, ctx) => { | ||
return null; | ||
}; | ||
class Foo { | ||
@dec | ||
static accessor foo; | ||
} | ||
}, TypeError); | ||
})(); |
23 changes: 23 additions & 0 deletions
23
...posal/tests/decorator-evanw-split/Auto-accessor-decorators-Shim-instance-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
(() => { | ||
let get; | ||
let set; | ||
const dec = (target, ctx) => { | ||
function init(x) { | ||
assertEq(() => this instanceof Foo, true); | ||
return x + 1; | ||
} | ||
get = function () { return target.get.call(this) * 10; }; | ||
set = function (x) { target.set.call(this, x * 2); }; | ||
return { get, set, init }; | ||
}; | ||
class Foo { | ||
@dec | ||
accessor foo = 123; | ||
} | ||
assertEq(() => Object.getOwnPropertyDescriptor(Foo.prototype, 'foo').get, get); | ||
assertEq(() => Object.getOwnPropertyDescriptor(Foo.prototype, 'foo').set, set); | ||
var obj = new Foo; | ||
assertEq(() => obj.foo, (123 + 1) * 10); | ||
obj.foo = 321; | ||
assertEq(() => obj.foo, (321 * 2) * 10); | ||
})(); |
27 changes: 27 additions & 0 deletions
27
...sts/decorator-evanw-split/Auto-accessor-decorators-Shim-private-instance-auto-accessor.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
(() => { | ||
let get; | ||
let set; | ||
const dec = (target, ctx) => { | ||
function init(x) { | ||
assertEq(() => this instanceof Foo, true); | ||
return x + 1; | ||
} | ||
get = function () { return target.get.call(this) * 10; }; | ||
set = function (x) { target.set.call(this, x * 2); }; | ||
return { get, set, init }; | ||
}; | ||
let get$foo; | ||
let set$foo; | ||
class Foo { | ||
@dec | ||
accessor #foo = 123; | ||
static { | ||
get$foo = x => x.#foo; | ||
set$foo = (x, y) => { x.#foo = y; }; | ||
} | ||
} | ||
var obj = new Foo; | ||
assertEq(() => get$foo(obj), (123 + 1) * 10); | ||
assertEq(() => set$foo(obj, 321), undefined); | ||
assertEq(() => get$foo(obj), (321 * 2) * 10); | ||
})(); |
Oops, something went wrong.
07c3054
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark
es/full/bugs-1
294079
ns/iter (± 8538
)297662
ns/iter (± 12253
)0.99
es/full/minify/libraries/antd
1971059432
ns/iter (± 50533735
)1877015936
ns/iter (± 76744836
)1.05
es/full/minify/libraries/d3
362265360
ns/iter (± 4420577
)346053793
ns/iter (± 2356409
)1.05
es/full/minify/libraries/echarts
1640348635
ns/iter (± 13471980
)1541989214
ns/iter (± 38848508
)1.06
es/full/minify/libraries/jquery
104096245
ns/iter (± 957288
)103358081
ns/iter (± 356754
)1.01
es/full/minify/libraries/lodash
115851252
ns/iter (± 548005
)114693151
ns/iter (± 311141
)1.01
es/full/minify/libraries/moment
60321746
ns/iter (± 145052
)59668213
ns/iter (± 214356
)1.01
es/full/minify/libraries/react
18518700
ns/iter (± 62526
)18411772
ns/iter (± 30537
)1.01
es/full/minify/libraries/terser
287142857
ns/iter (± 3941136
)275783975
ns/iter (± 2774137
)1.04
es/full/minify/libraries/three
507699367
ns/iter (± 8581484
)471612000
ns/iter (± 4173139
)1.08
es/full/minify/libraries/typescript
3356901389
ns/iter (± 30497155
)3249990102
ns/iter (± 21877822
)1.03
es/full/minify/libraries/victory
848253609
ns/iter (± 17690144
)744968486
ns/iter (± 8841573
)1.14
es/full/minify/libraries/vue
147723687
ns/iter (± 524829
)146080465
ns/iter (± 1245245
)1.01
es/full/codegen/es3
58459
ns/iter (± 222
)59657
ns/iter (± 239
)0.98
es/full/codegen/es5
58515
ns/iter (± 238
)59917
ns/iter (± 189
)0.98
es/full/codegen/es2015
58569
ns/iter (± 1234
)59636
ns/iter (± 133
)0.98
es/full/codegen/es2016
58275
ns/iter (± 179
)59648
ns/iter (± 146
)0.98
es/full/codegen/es2017
58580
ns/iter (± 258
)59918
ns/iter (± 150
)0.98
es/full/codegen/es2018
58455
ns/iter (± 169
)59562
ns/iter (± 88
)0.98
es/full/codegen/es2019
58335
ns/iter (± 153
)59645
ns/iter (± 220
)0.98
es/full/codegen/es2020
58488
ns/iter (± 109
)59750
ns/iter (± 144
)0.98
es/full/all/es3
163618582
ns/iter (± 1289117
)160357434
ns/iter (± 759365
)1.02
es/full/all/es5
157839284
ns/iter (± 712502
)154398073
ns/iter (± 772187
)1.02
es/full/all/es2015
117486698
ns/iter (± 907036
)114182513
ns/iter (± 518904
)1.03
es/full/all/es2016
116012372
ns/iter (± 783043
)113849418
ns/iter (± 598831
)1.02
es/full/all/es2017
115604999
ns/iter (± 514041
)112994925
ns/iter (± 537575
)1.02
es/full/all/es2018
114132472
ns/iter (± 1188613
)111105057
ns/iter (± 791068
)1.03
es/full/all/es2019
113171426
ns/iter (± 1173944
)110571982
ns/iter (± 542720
)1.02
es/full/all/es2020
109216776
ns/iter (± 1110286
)106082289
ns/iter (± 756914
)1.03
es/full/parser
477107
ns/iter (± 3713
)452140
ns/iter (± 1338
)1.06
es/full/base/fixer
15468
ns/iter (± 85
)15391
ns/iter (± 149
)1.01
es/full/base/resolver_and_hygiene
80848
ns/iter (± 305
)78623
ns/iter (± 165
)1.03
serialization of serde
277
ns/iter (± 1
)272
ns/iter (± 1
)1.02
css/minify/libraries/bootstrap
22192606
ns/iter (± 143903
)21986154
ns/iter (± 104723
)1.01
css/visitor/compare/clone
1352154
ns/iter (± 5577
)1372951
ns/iter (± 10007
)0.98
css/visitor/compare/visit_mut_span
1471606
ns/iter (± 13504
)1498999
ns/iter (± 21103
)0.98
css/visitor/compare/visit_mut_span_panic
1483243
ns/iter (± 45296
)1512185
ns/iter (± 20445
)0.98
css/visitor/compare/fold_span
1973140
ns/iter (± 3645
)2025190
ns/iter (± 21264
)0.97
css/visitor/compare/fold_span_panic
2112570
ns/iter (± 6149
)2156853
ns/iter (± 16151
)0.98
css/lexer/bootstrap_5_1_3
3476091
ns/iter (± 4499
)3515305
ns/iter (± 6460
)0.99
css/lexer/foundation_6_7_4
2818895
ns/iter (± 1322
)2842067
ns/iter (± 5792
)0.99
css/lexer/tailwind_3_1_1
540258
ns/iter (± 301
)544314
ns/iter (± 4721
)0.99
css/parser/bootstrap_5_1_3
15981307
ns/iter (± 173676
)16338405
ns/iter (± 84176
)0.98
css/parser/foundation_6_7_4
12810005
ns/iter (± 65876
)12990508
ns/iter (± 57261
)0.99
css/parser/tailwind_3_1_1
2509040
ns/iter (± 8842
)2505402
ns/iter (± 32550
)1.00
es/codegen/colors
730821
ns/iter (± 395390
)730347
ns/iter (± 399814
)1.00
es/codegen/large
2974399
ns/iter (± 1577655
)3010469
ns/iter (± 1633832
)0.99
es/codegen/with-parser/colors
40440
ns/iter (± 245
)40312
ns/iter (± 407
)1.00
es/codegen/with-parser/large
451153
ns/iter (± 1267
)455341
ns/iter (± 2034
)0.99
es/minify/libraries/antd
1451524718
ns/iter (± 54080886
)1587009729
ns/iter (± 44599895
)0.91
es/minify/libraries/d3
283121218
ns/iter (± 3367389
)301243366
ns/iter (± 13111356
)0.94
es/minify/libraries/echarts
1172421376
ns/iter (± 49666217
)1314343298
ns/iter (± 22246190
)0.89
es/minify/libraries/jquery
82850660
ns/iter (± 392264
)84129017
ns/iter (± 866104
)0.98
es/minify/libraries/lodash
104329140
ns/iter (± 194401
)105688667
ns/iter (± 811831
)0.99
es/minify/libraries/moment
48479307
ns/iter (± 51027
)48872927
ns/iter (± 625980
)0.99
es/minify/libraries/react
16294399
ns/iter (± 22621
)16278739
ns/iter (± 54997
)1.00
es/minify/libraries/terser
217302369
ns/iter (± 747295
)230143688
ns/iter (± 4318135
)0.94
es/minify/libraries/three
373427970
ns/iter (± 8318425
)406067920
ns/iter (± 8039106
)0.92
es/minify/libraries/typescript
2765737400
ns/iter (± 25079674
)2932847097
ns/iter (± 22423918
)0.94
es/minify/libraries/victory
613371479
ns/iter (± 67520596
)718060024
ns/iter (± 16702906
)0.85
es/minify/libraries/vue
121442063
ns/iter (± 387453
)125015161
ns/iter (± 940916
)0.97
es/visitor/compare/clone
1713559
ns/iter (± 4832
)1732733
ns/iter (± 8049
)0.99
es/visitor/compare/visit_mut_span
2069165
ns/iter (± 15601
)2080969
ns/iter (± 59072
)0.99
es/visitor/compare/visit_mut_span_panic
2048164
ns/iter (± 25418
)2072925
ns/iter (± 46530
)0.99
es/visitor/compare/fold_span
2800125
ns/iter (± 26311
)2792637
ns/iter (± 13087
)1.00
es/visitor/compare/fold_span_panic
2813542
ns/iter (± 12025
)2818249
ns/iter (± 10158
)1.00
es/lexer/colors
9846
ns/iter (± 82
)9742
ns/iter (± 78
)1.01
es/lexer/angular
4996359
ns/iter (± 14701
)4966038
ns/iter (± 26886
)1.01
es/lexer/backbone
671582
ns/iter (± 6606
)634486
ns/iter (± 632
)1.06
es/lexer/jquery
3808269
ns/iter (± 28897
)3716272
ns/iter (± 23914
)1.02
es/lexer/jquery mobile
5629284
ns/iter (± 43193
)5467676
ns/iter (± 36885
)1.03
es/lexer/mootools
2830542
ns/iter (± 3661
)2893554
ns/iter (± 4526
)0.98
es/lexer/underscore
526253
ns/iter (± 4718
)528952
ns/iter (± 8601
)0.99
es/lexer/three
16339721
ns/iter (± 937361
)16380829
ns/iter (± 67346
)1.00
es/lexer/yui
2959937
ns/iter (± 9618
)2909293
ns/iter (± 4213
)1.02
es/lexer/cal-com
13437405
ns/iter (± 88728
)13337547
ns/iter (± 37142
)1.01
es/lexer/typescript
94800716
ns/iter (± 451531
)91857057
ns/iter (± 518230
)1.03
es/parser/colors
23472
ns/iter (± 130
)23865
ns/iter (± 414
)0.98
es/parser/angular
13231623
ns/iter (± 264591
)12493571
ns/iter (± 93184
)1.06
es/parser/backbone
1819798
ns/iter (± 14282
)1839773
ns/iter (± 23053
)0.99
es/parser/jquery
10216990
ns/iter (± 102441
)10139396
ns/iter (± 83413
)1.01
es/parser/jquery mobile
15602435
ns/iter (± 362989
)15624488
ns/iter (± 136014
)1.00
es/parser/mootools
7868935
ns/iter (± 49440
)7933714
ns/iter (± 76865
)0.99
es/parser/underscore
1574612
ns/iter (± 5567
)1597918
ns/iter (± 7257
)0.99
es/parser/three
46021784
ns/iter (± 267727
)44364553
ns/iter (± 685079
)1.04
es/parser/yui
7474468
ns/iter (± 38124
)7542908
ns/iter (± 35073
)0.99
es/parser/cal-com
42148795
ns/iter (± 426204
)39237221
ns/iter (± 311612
)1.07
es/parser/typescript
272521430
ns/iter (± 1327475
)267115840
ns/iter (± 1288514
)1.02
es/preset-env/usage/builtin_type
136332
ns/iter (± 32932
)136160
ns/iter (± 33412
)1.00
es/preset-env/usage/property
16008
ns/iter (± 96
)16029
ns/iter (± 111
)1.00
es/resolver/typescript
104176017
ns/iter (± 2100965
)98824797
ns/iter (± 2565591
)1.05
es/fixer/typescript
80048753
ns/iter (± 3609845
)76179757
ns/iter (± 4028413
)1.05
es/hygiene/typescript
175014581
ns/iter (± 2066118
)175387503
ns/iter (± 3948242
)1.00
es/resolver_with_hygiene/typescript
295845534
ns/iter (± 3530641
)299384362
ns/iter (± 4756992
)0.99
es/visitor/base-perf/module_clone
56856
ns/iter (± 582
)56208
ns/iter (± 516
)1.01
es/visitor/base-perf/fold_empty
60441
ns/iter (± 1098
)59988
ns/iter (± 951
)1.01
es/visitor/base-perf/fold_noop_impl_all
60374
ns/iter (± 1002
)60341
ns/iter (± 550
)1.00
es/visitor/base-perf/fold_noop_impl_vec
60325
ns/iter (± 639
)59970
ns/iter (± 585
)1.01
es/visitor/base-perf/boxing_boxed_clone
58
ns/iter (± 0
)59
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed_clone
47
ns/iter (± 0
)47
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
105
ns/iter (± 0
)105
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed
80
ns/iter (± 0
)81
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_contains_this
2570
ns/iter (± 29
)2577
ns/iter (± 5
)1.00
es/base/parallel/resolver/typescript
2462324440
ns/iter (± 146633740
)2449410446
ns/iter (± 98162962
)1.01
es/base/parallel/hygiene/typescript
3237541955
ns/iter (± 54292797
)3166931365
ns/iter (± 63006068
)1.02
babelify-only
506623
ns/iter (± 12492
)506422
ns/iter (± 7886
)1.00
parse_and_babelify_angular
42041992
ns/iter (± 2352099
)41160821
ns/iter (± 483751
)1.02
parse_and_babelify_backbone
4518709
ns/iter (± 163081
)4457359
ns/iter (± 118769
)1.01
parse_and_babelify_jquery
29303139
ns/iter (± 309891
)30562371
ns/iter (± 188942
)0.96
parse_and_babelify_jquery_mobile
51144849
ns/iter (± 752155
)54311679
ns/iter (± 459923
)0.94
parse_and_babelify_mootools
25829286
ns/iter (± 392093
)28450237
ns/iter (± 560255
)0.91
parse_and_babelify_underscore
3737879
ns/iter (± 38271
)3757872
ns/iter (± 25614
)0.99
parse_and_babelify_yui
24780922
ns/iter (± 571945
)29608253
ns/iter (± 1420375
)0.84
html/minify/document/css_spec
45479670
ns/iter (± 263941
)45568972
ns/iter (± 341897
)1.00
html/minify/document/github
18165268
ns/iter (± 69222
)18101946
ns/iter (± 52551
)1.00
html/minify/document/stackoverflow
16660774
ns/iter (± 389142
)16468544
ns/iter (± 630142
)1.01
html/minify/document_fragment/css_spec
44250203
ns/iter (± 644378
)45210778
ns/iter (± 490688
)0.98
html/minify/document_fragment/github
17832593
ns/iter (± 149137
)17931927
ns/iter (± 184337
)0.99
html/minify/document_fragment/stackoverflow
16224704
ns/iter (± 159590
)16261688
ns/iter (± 52348
)1.00
html/document/visitor/compare/clone
164313
ns/iter (± 2164
)167025
ns/iter (± 1989
)0.98
html/document/visitor/compare/visit_mut_span
181572
ns/iter (± 1439
)183322
ns/iter (± 1414
)0.99
html/document/visitor/compare/visit_mut_span_panic
187629
ns/iter (± 3766
)186751
ns/iter (± 2927
)1.00
html/document/visitor/compare/fold_span
229125
ns/iter (± 944
)229986
ns/iter (± 1470
)1.00
html/document/visitor/compare/fold_span_panic
282008
ns/iter (± 1274
)280487
ns/iter (± 759
)1.01
html/document_fragment/visitor/compare/clone
165549
ns/iter (± 992
)168279
ns/iter (± 855
)0.98
html/document_fragment/visitor/compare/visit_mut_span
181290
ns/iter (± 1215
)182792
ns/iter (± 896
)0.99
html/document_fragment/visitor/compare/visit_mut_span_panic
186808
ns/iter (± 1091
)187870
ns/iter (± 1107
)0.99
html/document_fragment/visitor/compare/fold_span
230593
ns/iter (± 1251
)228197
ns/iter (± 1650
)1.01
html/document_fragment/visitor/compare/fold_span_panic
281502
ns/iter (± 890
)277037
ns/iter (± 787
)1.02
html/lexer/css_2021_spec
12813879
ns/iter (± 14471
)12830540
ns/iter (± 23445
)1.00
html/lexer/github_com_17_05_2022
4909354
ns/iter (± 25617
)4930457
ns/iter (± 21544
)1.00
html/lexer/stackoverflow_com_17_05_2022
4652139
ns/iter (± 7752
)4678445
ns/iter (± 58347
)0.99
html/parser/parser_document/css_2021_spec
25148931
ns/iter (± 81171
)25709382
ns/iter (± 68347
)0.98
html/parser/parser_document/github_com_17_05_2022
8396627
ns/iter (± 28923
)8560765
ns/iter (± 18321
)0.98
html/parser/parser_document/stackoverflow_com_17_05_2022
7324155
ns/iter (± 10391
)7543387
ns/iter (± 27364
)0.97
html/parser/parser_document_fragment/css_2021_spec
24741169
ns/iter (± 163281
)26562967
ns/iter (± 39932
)0.93
html/parser/parser_document_fragment/github_com_17_05_2022
8362083
ns/iter (± 33004
)8819371
ns/iter (± 29461
)0.95
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7268080
ns/iter (± 22816
)7937705
ns/iter (± 25006
)0.92
This comment was automatically generated by workflow using github-action-benchmark.