Skip to content

Commit 71d01ec

Browse files
authoredAug 26, 2023
feat(es): Add an option to disable builtin transforms (#7873)
1 parent eed2903 commit 71d01ec

File tree

7 files changed

+145
-96
lines changed

7 files changed

+145
-96
lines changed
 

‎crates/swc/src/config/mod.rs

+88-78
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ impl Options {
324324
config: Option<Config>,
325325
comments: Option<&'a SingleThreadedComments>,
326326
custom_before_pass: impl FnOnce(&Program) -> P,
327-
) -> Result<BuiltInput<impl 'a + swc_ecma_visit::Fold>, Error>
327+
) -> Result<BuiltInput<Box<dyn 'a + Fold>>, Error>
328328
where
329329
P: 'a + swc_ecma_visit::Fold,
330330
{
@@ -759,88 +759,95 @@ impl Options {
759759
noop()
760760
};
761761

762-
let pass = chain!(
763-
lint_to_fold(swc_ecma_lints::rules::all(LintParams {
764-
program: &program,
765-
lint_config: &lints,
766-
top_level_ctxt,
767-
unresolved_ctxt,
768-
es_version,
769-
source_map: cm.clone(),
770-
})),
771-
// Decorators may use type information
772-
Optional::new(
773-
match transform.decorator_version.unwrap_or_default() {
774-
DecoratorVersion::V202112 => {
775-
Either::Left(decorators(decorators::Config {
776-
legacy: transform.legacy_decorator.into_bool(),
777-
emit_metadata: transform.decorator_metadata.into_bool(),
778-
use_define_for_class_fields: !assumptions.set_public_class_fields,
779-
}))
780-
}
781-
DecoratorVersion::V202203 => {
782-
Either::Right(
762+
let pass: Box<dyn Fold> = if experimental
763+
.disable_builtin_transforms_for_internal_testing
764+
.into_bool()
765+
{
766+
Box::new(plugin_transforms)
767+
} else {
768+
Box::new(chain!(
769+
lint_to_fold(swc_ecma_lints::rules::all(LintParams {
770+
program: &program,
771+
lint_config: &lints,
772+
top_level_ctxt,
773+
unresolved_ctxt,
774+
es_version,
775+
source_map: cm.clone(),
776+
})),
777+
// Decorators may use type information
778+
Optional::new(
779+
match transform.decorator_version.unwrap_or_default() {
780+
DecoratorVersion::V202112 => {
781+
Either::Left(decorators(decorators::Config {
782+
legacy: transform.legacy_decorator.into_bool(),
783+
emit_metadata: transform.decorator_metadata.into_bool(),
784+
use_define_for_class_fields: !assumptions.set_public_class_fields,
785+
}))
786+
}
787+
DecoratorVersion::V202203 => {
788+
Either::Right(
783789
swc_ecma_transforms::proposals::decorator_2022_03::decorator_2022_03(),
784790
)
785-
}
786-
},
787-
syntax.decorators()
788-
),
789-
// The transform strips import assertions, so it's only enabled if
790-
// keep_import_assertions is false.
791-
Optional::new(import_assertions(), !keep_import_assertions),
792-
Optional::new(
793-
typescript::strip_with_jsx::<Option<&dyn Comments>>(
794-
cm.clone(),
795-
typescript::Config {
796-
pragma: Some(
797-
transform
798-
.react
799-
.pragma
800-
.clone()
801-
.unwrap_or_else(default_pragma)
802-
),
803-
pragma_frag: Some(
804-
transform
805-
.react
806-
.pragma_frag
807-
.clone()
808-
.unwrap_or_else(default_pragma_frag)
809-
),
810-
ts_enum_config: TsEnumConfig {
811-
treat_const_enum_as_enum: transform
812-
.treat_const_enum_as_enum
813-
.into_bool(),
814-
ts_enum_is_readonly: assumptions.ts_enum_is_readonly,
815-
},
816-
import_export_assign_config,
817-
..Default::default()
791+
}
818792
},
819-
comments.map(|v| v as _),
820-
top_level_mark
793+
syntax.decorators()
821794
),
822-
syntax.typescript()
823-
),
824-
plugin_transforms,
825-
custom_before_pass(&program),
826-
// handle jsx
827-
Optional::new(
828-
react::react::<&dyn Comments>(
829-
cm.clone(),
830-
comments.map(|v| v as _),
831-
transform.react,
832-
top_level_mark,
833-
unresolved_mark
795+
// The transform strips import assertions, so it's only enabled if
796+
// keep_import_assertions is false.
797+
Optional::new(import_assertions(), !keep_import_assertions),
798+
Optional::new(
799+
typescript::strip_with_jsx::<Option<&dyn Comments>>(
800+
cm.clone(),
801+
typescript::Config {
802+
pragma: Some(
803+
transform
804+
.react
805+
.pragma
806+
.clone()
807+
.unwrap_or_else(default_pragma)
808+
),
809+
pragma_frag: Some(
810+
transform
811+
.react
812+
.pragma_frag
813+
.clone()
814+
.unwrap_or_else(default_pragma_frag)
815+
),
816+
ts_enum_config: TsEnumConfig {
817+
treat_const_enum_as_enum: transform
818+
.treat_const_enum_as_enum
819+
.into_bool(),
820+
ts_enum_is_readonly: assumptions.ts_enum_is_readonly,
821+
},
822+
import_export_assign_config,
823+
..Default::default()
824+
},
825+
comments.map(|v| v as _),
826+
top_level_mark
827+
),
828+
syntax.typescript()
834829
),
835-
syntax.jsx()
836-
),
837-
pass,
838-
Optional::new(jest::jest(), transform.hidden.jest.into_bool()),
839-
Optional::new(
840-
dropped_comments_preserver(comments.cloned()),
841-
preserve_all_comments
842-
),
843-
);
830+
plugin_transforms,
831+
custom_before_pass(&program),
832+
// handle jsx
833+
Optional::new(
834+
react::react::<&dyn Comments>(
835+
cm.clone(),
836+
comments.map(|v| v as _),
837+
transform.react,
838+
top_level_mark,
839+
unresolved_mark
840+
),
841+
syntax.jsx()
842+
),
843+
pass,
844+
Optional::new(jest::jest(), transform.hidden.jest.into_bool()),
845+
Optional::new(
846+
dropped_comments_preserver(comments.cloned()),
847+
preserve_all_comments
848+
),
849+
))
850+
};
844851

845852
Ok(BuiltInput {
846853
program,
@@ -1454,6 +1461,9 @@ pub struct JscExperimental {
14541461
/// and will not be considered as breaking changes.
14551462
#[serde(default)]
14561463
pub cache_root: Option<String>,
1464+
1465+
#[serde(default)]
1466+
pub disable_builtin_transforms_for_internal_testing: BoolConfig<false>,
14571467
}
14581468

14591469
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]

‎crates/swc/src/lib.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,7 @@ impl Compiler {
733733
}
734734
}
735735

736-
#[tracing::instrument(level = "info", skip_all)]
736+
#[tracing::instrument(skip_all)]
737737
pub fn read_config(&self, opts: &Options, name: &FileName) -> Result<Option<Config>, Error> {
738738
static CUR_DIR: Lazy<PathBuf> = Lazy::new(|| {
739739
if cfg!(target_arch = "wasm32") {
@@ -845,7 +845,7 @@ impl Compiler {
845845
/// This method handles merging of config.
846846
///
847847
/// This method does **not** parse module.
848-
#[tracing::instrument(level = "info", skip_all)]
848+
#[tracing::instrument(skip_all)]
849849
pub fn parse_js_as_input<'a, P>(
850850
&'a self,
851851
fm: Lrc<SourceFile>,
@@ -908,7 +908,7 @@ impl Compiler {
908908
})
909909
}
910910

911-
#[tracing::instrument(level = "info", skip_all)]
911+
#[tracing::instrument(skip_all)]
912912
pub fn transform(
913913
&self,
914914
handler: &Handler,
@@ -936,7 +936,7 @@ impl Compiler {
936936
///
937937
/// This means, you can use `noop_visit_type`, `noop_fold_type` and
938938
/// `noop_visit_mut_type` in your visitor to reduce the binary size.
939-
#[tracing::instrument(level = "info", skip_all)]
939+
#[tracing::instrument(skip_all)]
940940
pub fn process_js_with_custom_pass<P1, P2>(
941941
&self,
942942
fm: Arc<SourceFile>,
@@ -997,11 +997,11 @@ impl Compiler {
997997
None
998998
};
999999

1000-
self.process_js_inner(handler, orig.as_ref(), config)
1000+
self.apply_transforms(handler, orig.as_ref(), config)
10011001
})
10021002
}
10031003

1004-
#[tracing::instrument(level = "info", skip(self, handler, opts))]
1004+
#[tracing::instrument(skip(self, handler, opts))]
10051005
pub fn process_js_file(
10061006
&self,
10071007
fm: Arc<SourceFile>,
@@ -1019,7 +1019,7 @@ impl Compiler {
10191019
)
10201020
}
10211021

1022-
#[tracing::instrument(level = "info", skip_all)]
1022+
#[tracing::instrument(skip_all)]
10231023
pub fn minify(
10241024
&self,
10251025
fm: Arc<SourceFile>,
@@ -1186,7 +1186,7 @@ impl Compiler {
11861186
/// You can use custom pass with this method.
11871187
///
11881188
/// There exists a [PassBuilder] to help building custom passes.
1189-
#[tracing::instrument(level = "info", skip_all)]
1189+
#[tracing::instrument(skip_all)]
11901190
pub fn process_js(
11911191
&self,
11921192
handler: &Handler,
@@ -1207,8 +1207,8 @@ impl Compiler {
12071207
)
12081208
}
12091209

1210-
#[tracing::instrument(level = "info", skip_all)]
1211-
fn process_js_inner(
1210+
#[tracing::instrument(name = "swc::Compiler::apply_transforms", skip_all)]
1211+
fn apply_transforms(
12121212
&self,
12131213
handler: &Handler,
12141214
orig: Option<&sourcemap::SourceMap>,
@@ -1281,7 +1281,7 @@ fn find_swcrc(path: &Path, root: &Path, root_mode: RootMode) -> Option<PathBuf>
12811281
None
12821282
}
12831283

1284-
#[tracing::instrument(level = "info", skip_all)]
1284+
#[tracing::instrument(skip_all)]
12851285
fn load_swcrc(path: &Path) -> Result<Rc, Error> {
12861286
let content = read_to_string(path).context("failed to read config (.swcrc) file")?;
12871287

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import swc from "../../..";
2+
3+
describe("when jsc.experimentalDisableBuiltinTransforms is true", () => {
4+
it("should preserve TypeScript", async () => {
5+
const { code } = await swc.transform(
6+
`
7+
const hello: Type = () => {
8+
console.log('hello');
9+
};
10+
`,
11+
{
12+
jsc: {
13+
parser: {
14+
syntax: "typescript",
15+
},
16+
experimental: {
17+
disableBuiltinTransformsForInternalTesting: true,
18+
},
19+
},
20+
minify: false,
21+
}
22+
);
23+
24+
expect(code).toMatchInlineSnapshot(`
25+
"const hello: Type = ()=>{
26+
console.log(\\"hello\\");
27+
};
28+
"
29+
`);
30+
});
31+
});

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,6 @@
178178
],
179179
"packageManager": "yarn@3.5.0",
180180
"dependencies": {
181-
"@swc/types": "^0.1.3"
181+
"@swc/types": "^0.1.4"
182182
}
183183
}

‎packages/types/index.ts

+8
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,9 @@ export interface JscConfig {
591591
*/
592592
keepClassNames?: boolean;
593593

594+
/**
595+
* This is experimental, and can be removed without a major version bump.
596+
*/
594597
experimental?: {
595598
optimizeHygiene?: boolean;
596599
keepImportAssertions?: boolean;
@@ -608,6 +611,11 @@ export interface JscConfig {
608611
* Second parameter of tuple is JSON based configuration for the plugin.
609612
*/
610613
plugins?: Array<[string, Record<string, any>]>;
614+
615+
/**
616+
* Disable builtin transforms. If enabled, only Wasm plugins are used.
617+
*/
618+
disableBuiltinTransformsForInternalTesting?: boolean;
611619
};
612620

613621
baseUrl?: string;

‎packages/types/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@swc/types",
3-
"version": "0.1.3",
3+
"version": "0.1.4",
44
"description": "Typings for the swc project.",
55
"sideEffects": false,
66
"scripts": {

‎yarn.lock

+5-5
Original file line numberDiff line numberDiff line change
@@ -2564,7 +2564,7 @@ __metadata:
25642564
"@swc/core-win32-x64-msvc": 1.2.146
25652565
"@swc/helpers": ^0.5.0
25662566
"@swc/plugin-jest": latest
2567-
"@swc/types": ^0.1.3
2567+
"@swc/types": ^0.1.4
25682568
"@taplo/cli": ^0.3.2
25692569
"@types/jest": ^28.1.4
25702570
"@types/node": ^20.5.0
@@ -2647,10 +2647,10 @@ __metadata:
26472647
languageName: node
26482648
linkType: hard
26492649

2650-
"@swc/types@npm:^0.1.3":
2651-
version: 0.1.3
2652-
resolution: "@swc/types@npm:0.1.3"
2653-
checksum: 89b86ac338076a4c7ad3b8b016bb7d9ea6357517716d46232c372dc21f93166e08ed334da0a157e02cd5a1b1ff651542ddcd6f43988ee74b16f837a840681143
2650+
"@swc/types@npm:^0.1.4":
2651+
version: 0.1.4
2652+
resolution: "@swc/types@npm:0.1.4"
2653+
checksum: 9b09de7dca8e4b19bfb43f9e332c771855158cb761d26000807fe858447ecbc5342a6c257b26d9aa5497f7138fc58913693e2bee222e5042e0e8f57c2979ae66
26542654
languageName: node
26552655
linkType: hard
26562656

1 commit comments

Comments
 (1)

github-actions[bot] commented on Aug 26, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: 71d01ec Previous: 67afaf1 Ratio
es/full/bugs-1 283100 ns/iter (± 4525) 295321 ns/iter (± 8865) 0.96
es/full/minify/libraries/antd 1283562950 ns/iter (± 12288118) 1360519744 ns/iter (± 15208658) 0.94
es/full/minify/libraries/d3 268323948 ns/iter (± 2570043) 285846415 ns/iter (± 2879623) 0.94
es/full/minify/libraries/echarts 1034660450 ns/iter (± 4672710) 1102565282 ns/iter (± 5918368) 0.94
es/full/minify/libraries/jquery 83090165 ns/iter (± 91600) 84363644 ns/iter (± 138322) 0.98
es/full/minify/libraries/lodash 96053201 ns/iter (± 164830) 98567448 ns/iter (± 217425) 0.97
es/full/minify/libraries/moment 49119368 ns/iter (± 72493) 49830745 ns/iter (± 104747) 0.99
es/full/minify/libraries/react 17849991 ns/iter (± 40505) 17952549 ns/iter (± 36069) 0.99
es/full/minify/libraries/terser 214690747 ns/iter (± 701299) 219419264 ns/iter (± 554434) 0.98
es/full/minify/libraries/three 379508320 ns/iter (± 2364906) 399118799 ns/iter (± 2138852) 0.95
es/full/minify/libraries/typescript 2609193261 ns/iter (± 11260015) 2669032033 ns/iter (± 27234515) 0.98
es/full/minify/libraries/victory 563236550 ns/iter (± 4755535) 592059157 ns/iter (± 6270564) 0.95
es/full/minify/libraries/vue 117570853 ns/iter (± 176046) 119881666 ns/iter (± 316934) 0.98
es/full/codegen/es3 33370 ns/iter (± 1353) 34222 ns/iter (± 130) 0.98
es/full/codegen/es5 33346 ns/iter (± 69) 34363 ns/iter (± 153) 0.97
es/full/codegen/es2015 33380 ns/iter (± 152) 34208 ns/iter (± 82) 0.98
es/full/codegen/es2016 33353 ns/iter (± 152) 34251 ns/iter (± 100) 0.97
es/full/codegen/es2017 33334 ns/iter (± 141) 34147 ns/iter (± 115) 0.98
es/full/codegen/es2018 33491 ns/iter (± 133) 34313 ns/iter (± 98) 0.98
es/full/codegen/es2019 33337 ns/iter (± 136) 34327 ns/iter (± 140) 0.97
es/full/codegen/es2020 33388 ns/iter (± 136) 34238 ns/iter (± 74) 0.98
es/full/all/es3 166705643 ns/iter (± 801961) 169984878 ns/iter (± 1891167) 0.98
es/full/all/es5 160599782 ns/iter (± 1543199) 162647190 ns/iter (± 1216699) 0.99
es/full/all/es2015 120064227 ns/iter (± 507215) 120814000 ns/iter (± 640600) 0.99
es/full/all/es2016 118739196 ns/iter (± 709543) 119872377 ns/iter (± 1436642) 0.99
es/full/all/es2017 117619501 ns/iter (± 875062) 119918960 ns/iter (± 627376) 0.98
es/full/all/es2018 115931856 ns/iter (± 628044) 117543074 ns/iter (± 456995) 0.99
es/full/all/es2019 115872863 ns/iter (± 847163) 116547454 ns/iter (± 795560) 0.99
es/full/all/es2020 110799969 ns/iter (± 541760) 112540144 ns/iter (± 797745) 0.98
es/full/parser 491396 ns/iter (± 5718) 496522 ns/iter (± 4813) 0.99
es/full/base/fixer 18982 ns/iter (± 471) 17505 ns/iter (± 47) 1.08
es/full/base/resolver_and_hygiene 81275 ns/iter (± 80) 80320 ns/iter (± 235) 1.01
serialization of serde 291 ns/iter (± 0) 289 ns/iter (± 0) 1.01
css/minify/libraries/bootstrap 28197523 ns/iter (± 45751) 29222966 ns/iter (± 73431) 0.96
css/visitor/compare/clone 1656817 ns/iter (± 7753) 1633928 ns/iter (± 4788) 1.01
css/visitor/compare/visit_mut_span 1774074 ns/iter (± 6736) 1769002 ns/iter (± 10190) 1.00
css/visitor/compare/visit_mut_span_panic 1862044 ns/iter (± 8409) 1844982 ns/iter (± 3216) 1.01
css/visitor/compare/fold_span 2591638 ns/iter (± 14388) 2574592 ns/iter (± 8824) 1.01
css/visitor/compare/fold_span_panic 2801597 ns/iter (± 9532) 2755176 ns/iter (± 6735) 1.02
css/lexer/bootstrap_5_1_3 4466184 ns/iter (± 6566) 4481098 ns/iter (± 11135) 1.00
css/lexer/foundation_6_7_4 3749716 ns/iter (± 3212) 3758165 ns/iter (± 12329) 1.00
css/lexer/tailwind_3_1_1 713820 ns/iter (± 652) 716271 ns/iter (± 2340) 1.00
css/parser/bootstrap_5_1_3 19806862 ns/iter (± 55234) 19831836 ns/iter (± 45628) 1.00
css/parser/foundation_6_7_4 15722952 ns/iter (± 38763) 15765342 ns/iter (± 37663) 1.00
css/parser/tailwind_3_1_1 3062950 ns/iter (± 5913) 2984017 ns/iter (± 3959) 1.03
es/codegen/colors 737594 ns/iter (± 401919) 737212 ns/iter (± 403323) 1.00
es/codegen/large 3136456 ns/iter (± 1665300) 2890458 ns/iter (± 1526000) 1.09
es/codegen/with-parser/colors 45395 ns/iter (± 595) 45314 ns/iter (± 537) 1.00
es/codegen/with-parser/large 487974 ns/iter (± 678) 489562 ns/iter (± 444) 1.00
es/minify/libraries/antd 1136813172 ns/iter (± 15440096) 1205082910 ns/iter (± 7349264) 0.94
es/minify/libraries/d3 237837095 ns/iter (± 339967) 244957030 ns/iter (± 524605) 0.97
es/minify/libraries/echarts 893802708 ns/iter (± 2136192) 954484414 ns/iter (± 6558686) 0.94
es/minify/libraries/jquery 73022430 ns/iter (± 118644) 73531811 ns/iter (± 138726) 0.99
es/minify/libraries/lodash 86620557 ns/iter (± 155519) 87268819 ns/iter (± 109301) 0.99
es/minify/libraries/moment 43325532 ns/iter (± 87923) 43634964 ns/iter (± 80571) 0.99
es/minify/libraries/react 15994751 ns/iter (± 43576) 16015534 ns/iter (± 117761) 1.00
es/minify/libraries/terser 184827492 ns/iter (± 493545) 189096566 ns/iter (± 721440) 0.98
es/minify/libraries/three 320231088 ns/iter (± 2602665) 333750069 ns/iter (± 792790) 0.96
es/minify/libraries/typescript 2226169424 ns/iter (± 13221958) 2311347643 ns/iter (± 11699013) 0.96
es/minify/libraries/victory 474162595 ns/iter (± 2391797) 500259393 ns/iter (± 3901015) 0.95
es/minify/libraries/vue 105801286 ns/iter (± 314041) 106994269 ns/iter (± 202468) 0.99
es/visitor/compare/clone 1963410 ns/iter (± 13417) 1948341 ns/iter (± 3278) 1.01
es/visitor/compare/visit_mut_span 2287786 ns/iter (± 8931) 2275399 ns/iter (± 6841) 1.01
es/visitor/compare/visit_mut_span_panic 2349976 ns/iter (± 3127) 2336557 ns/iter (± 8708) 1.01
es/visitor/compare/fold_span 3433495 ns/iter (± 9192) 3359006 ns/iter (± 9476) 1.02
es/visitor/compare/fold_span_panic 3512188 ns/iter (± 5354) 3456512 ns/iter (± 10340) 1.02
es/lexer/colors 13024 ns/iter (± 11) 13155 ns/iter (± 17) 0.99
es/lexer/angular 6132860 ns/iter (± 4846) 6034164 ns/iter (± 15975) 1.02
es/lexer/backbone 786632 ns/iter (± 333) 774267 ns/iter (± 469) 1.02
es/lexer/jquery 4488217 ns/iter (± 3223) 4386692 ns/iter (± 3039) 1.02
es/lexer/jquery mobile 6831644 ns/iter (± 11269) 6687754 ns/iter (± 7059) 1.02
es/lexer/mootools 3554986 ns/iter (± 4866) 3493285 ns/iter (± 6020) 1.02
es/lexer/underscore 664136 ns/iter (± 236) 649735 ns/iter (± 659) 1.02
es/lexer/three 21310777 ns/iter (± 28927) 20974652 ns/iter (± 22633) 1.02
es/lexer/yui 3820101 ns/iter (± 5703) 3770910 ns/iter (± 1938) 1.01
es/parser/colors 26863 ns/iter (± 47) 27334 ns/iter (± 206) 0.98
es/parser/angular 13466235 ns/iter (± 45866) 13509455 ns/iter (± 67327) 1.00
es/parser/backbone 1977493 ns/iter (± 9296) 1979932 ns/iter (± 8205) 1.00
es/parser/jquery 10799811 ns/iter (± 48406) 10787729 ns/iter (± 47771) 1.00
es/parser/jquery mobile 16452396 ns/iter (± 108642) 16620557 ns/iter (± 56015) 0.99
es/parser/mootools 8287636 ns/iter (± 14817) 8316830 ns/iter (± 19404) 1.00
es/parser/underscore 1704279 ns/iter (± 9019) 1697838 ns/iter (± 8567) 1.00
es/parser/three 46373118 ns/iter (± 229101) 47412347 ns/iter (± 284932) 0.98
es/parser/yui 8181685 ns/iter (± 28536) 8234036 ns/iter (± 34939) 0.99
es/preset-env/usage/builtin_type 134856 ns/iter (± 31193) 134555 ns/iter (± 31901) 1.00
es/preset-env/usage/property 16726 ns/iter (± 55) 16398 ns/iter (± 67) 1.02
es/resolver/typescript 88839795 ns/iter (± 1314759) 90980367 ns/iter (± 894286) 0.98
es/fixer/typescript 64538537 ns/iter (± 351320) 66511748 ns/iter (± 592201) 0.97
es/hygiene/typescript 128686211 ns/iter (± 1024308) 133759671 ns/iter (± 1171985) 0.96
es/resolver_with_hygiene/typescript 237227459 ns/iter (± 700631) 246259528 ns/iter (± 1206601) 0.96
es/visitor/base-perf/module_clone 59106 ns/iter (± 294) 59351 ns/iter (± 307) 1.00
es/visitor/base-perf/fold_empty 62804 ns/iter (± 308) 63307 ns/iter (± 146) 0.99
es/visitor/base-perf/fold_noop_impl_all 63434 ns/iter (± 184) 63171 ns/iter (± 269) 1.00
es/visitor/base-perf/fold_noop_impl_vec 63215 ns/iter (± 289) 63603 ns/iter (± 178) 0.99
es/visitor/base-perf/boxing_boxed_clone 58 ns/iter (± 0) 57 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 110 ns/iter (± 0) 106 ns/iter (± 0) 1.04
es/visitor/base-perf/boxing_unboxed 78 ns/iter (± 0) 75 ns/iter (± 0) 1.04
es/visitor/base-perf/visit_empty 0 ns/iter (± 0) 0 ns/iter (± 0) NaN
es/visitor/base-perf/visit_contains_this 2646 ns/iter (± 26) 2682 ns/iter (± 29) 0.99
es/base/parallel/resolver/typescript 3762158287 ns/iter (± 271735695) 3613029800 ns/iter (± 278579824) 1.04
es/base/parallel/hygiene/typescript 1419626358 ns/iter (± 16199542) 1470925436 ns/iter (± 19435336) 0.97
misc/visitors/time-complexity/time 5 132 ns/iter (± 1) 118 ns/iter (± 0) 1.12
misc/visitors/time-complexity/time 10 396 ns/iter (± 3) 392 ns/iter (± 2) 1.01
misc/visitors/time-complexity/time 15 671 ns/iter (± 4) 672 ns/iter (± 2) 1.00
misc/visitors/time-complexity/time 20 1053 ns/iter (± 5) 1201 ns/iter (± 39) 0.88
misc/visitors/time-complexity/time 40 3492 ns/iter (± 10) 3565 ns/iter (± 13) 0.98
misc/visitors/time-complexity/time 60 7287 ns/iter (± 20) 7271 ns/iter (± 30) 1.00
es/full-target/es2016 230282 ns/iter (± 707) 229418 ns/iter (± 889) 1.00
es/full-target/es2017 219165 ns/iter (± 1110) 218936 ns/iter (± 1137) 1.00
es/full-target/es2018 206621 ns/iter (± 206) 208314 ns/iter (± 797) 0.99
es2020_nullish_coalescing 71008 ns/iter (± 307) 70708 ns/iter (± 426) 1.00
es2020_optional_chaining 81566 ns/iter (± 257) 81269 ns/iter (± 383) 1.00
es2022_class_properties 116375 ns/iter (± 239) 115759 ns/iter (± 492) 1.01
es2018_object_rest_spread 75448 ns/iter (± 335) 75106 ns/iter (± 260) 1.00
es2019_optional_catch_binding 64207 ns/iter (± 232) 64109 ns/iter (± 295) 1.00
es2017_async_to_generator 64101 ns/iter (± 162) 63859 ns/iter (± 234) 1.00
es2016_exponentiation 68672 ns/iter (± 170) 68565 ns/iter (± 238) 1.00
es2015_arrow 71729 ns/iter (± 244) 71434 ns/iter (± 171) 1.00
es2015_block_scoped_fn 68479 ns/iter (± 131) 68038 ns/iter (± 177) 1.01
es2015_block_scoping 123535 ns/iter (± 590) 123083 ns/iter (± 499) 1.00

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

Please sign in to comment.