From 12546c853a67210e840efd61452041ef8db00d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Wed, 29 Mar 2023 17:48:45 +0900 Subject: [PATCH] build(cargo): Revert rustc upgrade (#7162) **Description:** The `rkyv` bug is not fixed. --- Cargo.lock | 21 +- clippy.toml | 4 +- crates/dbg-swc/src/util/minifier.rs | 8 +- crates/swc/benches/typescript.rs | 6 +- crates/swc/examples/minify.rs | 58 +++--- crates/swc/examples/transform.rs | 26 ++- crates/swc/examples/transform_error.rs | 12 +- crates/swc/tests/exec.rs | 6 +- crates/swc/tests/projects.rs | 6 +- crates/swc/tests/rust_api.rs | 6 +- crates/swc/tests/simple.rs | 10 +- crates/swc_atoms/Cargo.toml | 4 +- crates/swc_bundler/examples/bundle.rs | 6 +- crates/swc_bundler/examples/path.rs | 6 +- crates/swc_bundler/src/bundler/finalize.rs | 2 +- crates/swc_bundler/tests/fixture.rs | 4 +- crates/swc_common/Cargo.toml | 4 +- crates/swc_css_ast/Cargo.toml | 2 +- crates/swc_css_ast/src/token.rs | 2 +- crates/swc_css_ast/src/value.rs | 2 +- crates/swc_css_codegen/tests/fixture.rs | 145 ++++++++++---- crates/swc_css_lints/tests/lints.rs | 13 +- crates/swc_css_minifier/benches/full.rs | 24 ++- crates/swc_css_modules/tests/fixture.rs | 9 +- crates/swc_ecma_ast/Cargo.toml | 4 +- crates/swc_ecma_ast/src/lit.rs | 2 +- crates/swc_ecma_codegen/benches/bench.rs | 4 +- crates/swc_ecma_codegen/benches/with_parse.rs | 4 +- crates/swc_ecma_codegen/examples/gen.rs | 4 +- crates/swc_ecma_codegen/examples/sourcemap.rs | 4 +- crates/swc_ecma_codegen/src/tests.rs | 12 +- crates/swc_ecma_codegen/tests/sourcemap.rs | 2 + .../src/rules/duplicate_bindings.rs | 4 +- crates/swc_ecma_lints/tests/fixture.rs | 8 +- crates/swc_ecma_minifier/benches/full.rs | 6 +- .../src/compress/optimize/mod.rs | 8 +- .../src/compress/pure/evaluate.rs | 2 +- crates/swc_ecma_minifier/src/timing.rs | 4 +- .../tests/fixture/issues/2257/full/output.js | 2 +- .../tests/fixture/issues/6957/1/output.js | 32 +-- .../tests/fixture/issues/6957/2/config.json | 46 ----- .../tests/fixture/issues/6957/2/input.js | 2 - .../tests/fixture/issues/6957/2/output.js | 2 - .../issues/6957/number-tostring/output.js | 48 ++--- crates/swc_ecma_parser/src/lexer/mod.rs | 1 - crates/swc_ecma_parser/src/lexer/number.rs | 5 +- crates/swc_ecma_parser/src/lexer/tests.rs | 7 +- crates/swc_ecma_parser/src/lib.rs | 1 + .../swc_ecma_parser/src/parser/expr/tests.rs | 10 +- crates/swc_ecma_parser/src/parser/stmt.rs | 182 ++++++++++++++---- crates/swc_ecma_parser/src/parser/tests.rs | 22 ++- .../swc_ecma_parser/src/parser/typescript.rs | 12 +- crates/swc_ecma_parser/tests/comments.rs | 2 +- crates/swc_ecma_parser/tests/js.rs | 6 +- crates/swc_ecma_parser/tests/span.rs | 2 +- crates/swc_ecma_parser/tests/test262.rs | 11 +- crates/swc_ecma_parser/tests/typescript.rs | 4 +- crates/swc_ecma_preset_env/tests/test.rs | 10 +- .../swc_ecma_transforms/tests/decorators.rs | 4 +- .../tests/fixer_test262.rs | 9 +- .../src/bugfixes/async_arrows_in_class.rs | 1 + .../src/bugfixes/edge_default_param.rs | 1 + .../src/bugfixes/mod.rs | 1 + ...turing_collision_in_function_expression.rs | 1 + .../src/bugfixes/template_literal_caching.rs | 1 + .../src/es2015/arrow.rs | 1 + .../src/es2015/block_scoped_fn.rs | 1 + .../src/es2015/block_scoping/mod.rs | 1 + .../src/es2015/classes/mod.rs | 1 + .../src/es2015/computed_props.rs | 1 + .../src/es2015/destructuring.rs | 1 + .../src/es2015/for_of.rs | 1 + .../src/es2015/function_name.rs | 1 + .../src/es2015/generator.rs | 2 +- .../src/es2015/instanceof.rs | 1 + .../src/es2015/mod.rs | 2 + .../src/es2015/new_target.rs | 1 + .../src/es2015/object_super.rs | 1 + .../src/es2015/parameters.rs | 1 + .../src/es2015/shorthand_property.rs | 1 + .../src/es2015/sticky_regex.rs | 1 + .../src/es2015/template_literal.rs | 1 + .../src/es2015/typeof_symbol.rs | 1 + .../src/es2016/exponentiation.rs | 1 + .../src/es2016/mod.rs | 1 + .../src/es2017/async_to_generator.rs | 1 + .../src/es2017/mod.rs | 1 + .../src/es2018/mod.rs | 1 + .../src/es2018/object_rest_spread.rs | 1 + .../src/es2019/mod.rs | 1 + .../src/es2019/optional_catch_binding.rs | 1 + .../src/es2020/export_namespace_from.rs | 1 + .../src/es2020/mod.rs | 1 + .../src/es2020/nullish_coalescing.rs | 1 + .../src/es2020/opt_chaining.rs | 1 + .../src/es2021/logical_assignments.rs | 1 + .../src/es2021/mod.rs | 1 + .../src/es2022/class_properties/mod.rs | 1 + .../src/es2022/mod.rs | 1 + .../src/es2022/static_blocks.rs | 1 + .../src/es3/member_expr_lits.rs | 1 + .../swc_ecma_transforms_compat/src/es3/mod.rs | 1 + .../src/es3/prop_lits.rs | 1 + .../src/es3/reserved_word.rs | 1 + .../tests/class_fields_use_set.rs | 6 +- .../tests/es2015_block_scoping.rs | 98 ++++++++-- .../tests/es2015_classes.rs | 34 +++- .../tests/es2015_destructuring.rs | 8 +- .../tests/es2015_for_of.rs | 16 +- .../tests/es2017_async_to_generator.rs | 4 +- .../tests/es2018_object_rest_spread.rs | 7 +- .../tests/es2020_nullish_coalescing.rs | 6 +- .../tests/es2020_optional_chaining.rs | 8 +- .../tests/es2021_logcal_assignments.rs | 6 +- .../tests/es2022_class_properties.rs | 8 +- .../tests/es2022_private_in_object.rs | 6 +- .../tests/es2022_static_blocks.rs | 6 +- .../tests/system_js.rs | 22 ++- .../src/simplify/branch/mod.rs | 2 +- .../src/simplify/dce/mod.rs | 8 +- .../tests/fixture.rs | 4 +- .../tests/simplify.rs | 6 +- .../tests/export.rs | 4 +- .../src/jsx/tests.rs | 56 +++++- .../tests/visited.rs | 2 +- .../benches/compat.rs | 6 +- .../src/strip.rs | 8 +- .../tests/strip.rs | 16 +- .../swc_error_reporters/examples/swc_try.rs | 2 +- crates/swc_estree_compat/tests/convert.rs | 11 +- crates/swc_estree_compat/tests/flavor.rs | 6 +- crates/swc_html_ast/Cargo.toml | 2 +- crates/swc_html_minifier/benches/full.rs | 39 +++- crates/swc_html_parser/tests/fixture.rs | 23 ++- .../swc_html_parser/tests/html5lib_tests.rs | 14 +- crates/swc_html_parser/tests/iframe_srcdoc.rs | 15 +- crates/swc_html_parser/tests/recovery.rs | 24 ++- crates/swc_node_bundler/src/loaders/swc.rs | 12 +- crates/swc_plugin_macro/src/lib.rs | 1 - crates/swc_plugin_proxy/Cargo.toml | 4 +- .../swc_plugin_runner/src/memory_interop.rs | 2 +- .../tests/ecma_integration.rs | 14 +- crates/swc_plugin_runner/tests/ecma_rkyv.rs | 6 +- crates/swc_plugin_runner/tests/issues.rs | 6 +- crates/swc_xml_parser/tests/fixture.rs | 28 ++- .../plugin_transform_schema_v1/rust-toolchain | 1 - .../rust-toolchain | 1 - node-swc/e2e/plugins/plugins.compat.test.js | 7 +- node-swc/e2e/plugins/plugins.schema.test.js | 1 - rust-toolchain | 2 +- 150 files changed, 1042 insertions(+), 446 deletions(-) delete mode 100644 crates/swc_ecma_minifier/tests/fixture/issues/6957/2/config.json delete mode 100644 crates/swc_ecma_minifier/tests/fixture/issues/6957/2/input.js delete mode 100644 crates/swc_ecma_minifier/tests/fixture/issues/6957/2/output.js delete mode 100644 node-swc/e2e/fixtures/plugin_transform_schema_v1/rust-toolchain delete mode 100644 node-swc/e2e/fixtures/plugin_transform_schema_vtest/rust-toolchain diff --git a/Cargo.lock b/Cargo.lock index 4f14de2a2c5b..74b779099c10 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2522,15 +2522,6 @@ dependencies = [ "bytecheck", ] -[[package]] -name = "rend" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581008d2099240d37fb08d77ad713bcaec2c4d89d50b5b21a8bb1996bbab68ab" -dependencies = [ - "bytecheck", -] - [[package]] name = "reqwest" version = "0.11.13" @@ -2570,14 +2561,14 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.40" +version = "0.7.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c30f1d45d9aa61cbc8cd1eb87705470892289bb2d01943e7803b873a57404dc3" +checksum = "1f08c8062c1fe1253064043b8fc07bfea1b9702b71b4a86c11ea3588183b12e1" dependencies = [ "bytecheck", "hashbrown 0.12.0", "ptr_meta", - "rend 0.4.0", + "rend", "rkyv_derive", "seahash", ] @@ -2591,16 +2582,16 @@ dependencies = [ "bytecheck", "hashbrown 0.12.0", "ptr_meta", - "rend 0.3.6", + "rend", "rkyv_derive_test", "seahash", ] [[package]] name = "rkyv_derive" -version = "0.7.40" +version = "0.7.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff26ed6c7c4dfc2aa9480b86a60e3c7233543a270a680e10758a507c5a4ce476" +checksum = "e289706df51226e84814bf6ba1a9e1013112ae29bc7a9878f73fce360520c403" dependencies = [ "proc-macro2", "quote", diff --git a/clippy.toml b/clippy.toml index b6619d912215..5e2813ec2293 100644 --- a/clippy.toml +++ b/clippy.toml @@ -1,5 +1,4 @@ -cognitive-complexity-threshold = 50 -disallowed-names = [ +blacklisted-names = [ "bool", "char", "str", @@ -16,5 +15,6 @@ disallowed-names = [ "isize", "usize", ] +cognitive-complexity-threshold = 50 msrv = "1.58" type-complexity-threshold = 25000 diff --git a/crates/dbg-swc/src/util/minifier.rs b/crates/dbg-swc/src/util/minifier.rs index e0cb17dc7658..429689d6053e 100644 --- a/crates/dbg-swc/src/util/minifier.rs +++ b/crates/dbg-swc/src/util/minifier.rs @@ -7,7 +7,7 @@ use std::{ use anyhow::{bail, Context, Result}; use swc_common::{FileName, SourceMap}; use swc_ecma_ast::*; -use swc_ecma_minifier::option::MinifyOptions; +use swc_ecma_minifier::option::{CompressOptions, MinifyOptions}; use swc_ecma_transforms_base::fixer::fixer; use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith}; @@ -31,7 +31,9 @@ pub fn get_minified( None, &MinifyOptions { compress: if compress { - Some(Default::default()) + Some(CompressOptions { + ..Default::default() + }) } else { None }, @@ -68,7 +70,7 @@ pub fn get_terser_output(file: &Path, compress: bool, mangle: bool) -> Result Vec { ] .into_iter() .matrix(|| { - let default_es = Syntax::Es(Default::default()); + let default_es = Syntax::Es(EsConfig { + ..Default::default() + }); if let Some(ext) = entry.extension() { if ext == "ts" { diff --git a/crates/swc/tests/projects.rs b/crates/swc/tests/projects.rs index 1e199d2493c3..f33a4d880985 100644 --- a/crates/swc/tests/projects.rs +++ b/crates/swc/tests/projects.rs @@ -669,7 +669,7 @@ impl Fold for Panicking { panic!("visited: {}", sym) } - node + JSXOpeningElement { ..node } } } @@ -964,7 +964,9 @@ fn issue_6009() { config: Config { exclude, jsc: JscConfig { - syntax: Some(Syntax::Typescript(Default::default())), + syntax: Some(Syntax::Typescript(TsConfig { + ..Default::default() + })), ..Default::default() }, ..Default::default() diff --git a/crates/swc/tests/rust_api.rs b/crates/swc/tests/rust_api.rs index 531bd0849d55..5740c6410da9 100644 --- a/crates/swc/tests/rust_api.rs +++ b/crates/swc/tests/rust_api.rs @@ -5,7 +5,7 @@ use swc::{ use swc_common::{comments::SingleThreadedComments, FileName}; use swc_ecma_ast::*; use swc_ecma_parser::{EsConfig, Syntax, TsConfig}; -use swc_ecma_transforms::pass::noop; +use swc_ecma_transforms::{modules::common_js, pass::noop}; use swc_ecma_visit::{as_folder, noop_visit_mut_type, VisitMut}; struct PanicOnVisit; @@ -92,7 +92,9 @@ fn shopify_1_check_filename() { })), ..Default::default() }, - module: Some(ModuleConfig::CommonJs(Default::default())), + module: Some(ModuleConfig::CommonJs(common_js::Config { + ..Default::default() + })), ..Default::default() }, ..Default::default() diff --git a/crates/swc/tests/simple.rs b/crates/swc/tests/simple.rs index 6aba05bd7949..b143de8e63ad 100644 --- a/crates/swc/tests/simple.rs +++ b/crates/swc/tests/simple.rs @@ -4,7 +4,7 @@ use swc::{ }; use swc_common::FileName; use swc_ecma_ast::EsVersion; -use swc_ecma_parser::{Syntax, TsConfig}; +use swc_ecma_parser::{EsConfig, Syntax, TsConfig}; use testing::Tester; fn compile(src: &str, options: Options) -> String { @@ -53,7 +53,9 @@ const someValue = 'test' ?? 'default value';", Options { config: Config { jsc: JscConfig { - syntax: Some(Syntax::Es(Default::default())), + syntax: Some(Syntax::Es(EsConfig { + ..Default::default() + })), ..Default::default() }, ..Default::default() @@ -71,7 +73,9 @@ fn issue_834_3() { Options { config: Config { jsc: JscConfig { - syntax: Some(Syntax::Es(Default::default())), + syntax: Some(Syntax::Es(EsConfig { + ..Default::default() + })), ..Default::default() }, ..Default::default() diff --git a/crates/swc_atoms/Cargo.toml b/crates/swc_atoms/Cargo.toml index 2f0a84d1fd9e..3d222d95c172 100644 --- a/crates/swc_atoms/Cargo.toml +++ b/crates/swc_atoms/Cargo.toml @@ -22,8 +22,8 @@ rkyv-bytecheck-impl = ["__rkyv", "rkyv-latest"] [dependencies] bytecheck = { version = "0.6.9", optional = true } once_cell = "1" -rkyv = { package = "rkyv", version = "=0.7.40", optional = true } -# This is to avoid cargo version selection conflict between rkyv=0.7.40 and other versions, as it is strictly pinned +rkyv = { package = "rkyv", version = "=0.7.37", optional = true } +# This is to avoid cargo version selection conflict between rkyv=0.7.37 and other versions, as it is strictly pinned # cannot be merged. rkyv-latest = { package = "rkyv-test", version = "=0.7.38-test.2", optional = true } rustc-hash = "1.1.0" diff --git a/crates/swc_bundler/examples/bundle.rs b/crates/swc_bundler/examples/bundle.rs index 8e1b606f151f..665b24ac92ae 100644 --- a/crates/swc_bundler/examples/bundle.rs +++ b/crates/swc_bundler/examples/bundle.rs @@ -30,7 +30,7 @@ use swc_ecma_loader::{ use swc_ecma_minifier::option::{ CompressOptions, ExtraOptions, MangleOptions, MinifyOptions, TopLevelOptions, }; -use swc_ecma_parser::{parse_file_as_module, Syntax}; +use swc_ecma_parser::{parse_file_as_module, EsConfig, Syntax}; use swc_ecma_transforms_base::fixer::fixer; use swc_ecma_visit::VisitMutWith; @@ -233,7 +233,9 @@ impl Load for Loader { let module = parse_file_as_module( &fm, - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), EsVersion::Es2020, None, &mut vec![], diff --git a/crates/swc_bundler/examples/path.rs b/crates/swc_bundler/examples/path.rs index 48ad850d843c..459f3e16e378 100644 --- a/crates/swc_bundler/examples/path.rs +++ b/crates/swc_bundler/examples/path.rs @@ -5,7 +5,7 @@ use swc_bundler::{BundleKind, Bundler, Config, Hook, Load, ModuleData, ModuleRec use swc_common::{sync::Lrc, FileName, FilePathMapping, Globals, SourceMap, Span}; use swc_ecma_ast::KeyValueProp; use swc_ecma_codegen::{text_writer::JsWriter, Emitter}; -use swc_ecma_parser::{parse_file_as_module, Syntax}; +use swc_ecma_parser::{parse_file_as_module, EsConfig, Syntax}; fn main() { let _log = testing::init(); @@ -73,7 +73,9 @@ impl Load for PathLoader { let module = parse_file_as_module( &fm, - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), Default::default(), None, &mut vec![], diff --git a/crates/swc_bundler/src/bundler/finalize.rs b/crates/swc_bundler/src/bundler/finalize.rs index 8390097448e8..47afca3ae5a3 100644 --- a/crates/swc_bundler/src/bundler/finalize.rs +++ b/crates/swc_bundler/src/bundler/finalize.rs @@ -74,7 +74,7 @@ where helpers.add_to(&mut bundle.module.body); - new.push(bundle); + new.push(Bundle { ..bundle }); } BundleKind::Lib { name } => { let hash = calc_hash(self.cm.clone(), &bundle.module)?; diff --git a/crates/swc_bundler/tests/fixture.rs b/crates/swc_bundler/tests/fixture.rs index ef753d32abfa..de27d5a5945a 100644 --- a/crates/swc_bundler/tests/fixture.rs +++ b/crates/swc_bundler/tests/fixture.rs @@ -57,7 +57,9 @@ fn do_test(entry: &Path, entries: HashMap, inline: bool) { { let mut emitter = Emitter { - cfg: Default::default(), + cfg: swc_ecma_codegen::Config { + ..Default::default() + }, cm: cm.clone(), comments: None, wr: Box::new(JsWriter::new(cm.clone(), "\n", &mut buf, None)), diff --git a/crates/swc_common/Cargo.toml b/crates/swc_common/Cargo.toml index bf4c8c81e7ca..c18d3955481f 100644 --- a/crates/swc_common/Cargo.toml +++ b/crates/swc_common/Cargo.toml @@ -60,8 +60,8 @@ new_debug_unreachable = "1.0.4" num-bigint = "0.4" once_cell = "1.10.0" parking_lot = { version = "0.12.0", optional = true } -rkyv = { version = "=0.7.40", optional = true } -# This is to avoid cargo version selection conflict between rkyv=0.7.40 and other versions, as it is strictly pinned +rkyv = { version = "=0.7.37", optional = true } +# This is to avoid cargo version selection conflict between rkyv=0.7.37 and other versions, as it is strictly pinned # cannot be merged. rkyv-latest = { package = "rkyv-test", version = "=0.7.38-test.2", optional = true } rustc-hash = "1.1.0" diff --git a/crates/swc_css_ast/Cargo.toml b/crates/swc_css_ast/Cargo.toml index 65086033f195..8535a1b603e8 100644 --- a/crates/swc_css_ast/Cargo.toml +++ b/crates/swc_css_ast/Cargo.toml @@ -21,7 +21,7 @@ serde-impl = ["serde"] [dependencies] bytecheck = { version = "0.6.9", optional = true } is-macro = "0.2.0" -rkyv = { version = "=0.7.40", optional = true } +rkyv = { version = "=0.7.37", optional = true } serde = { version = "1.0.127", features = ["derive"], optional = true } string_enum = { version = "0.4.0", path = "../string_enum/" } diff --git a/crates/swc_css_ast/src/token.rs b/crates/swc_css_ast/src/token.rs index 50d23262418b..b22416269db4 100644 --- a/crates/swc_css_ast/src/token.rs +++ b/crates/swc_css_ast/src/token.rs @@ -167,7 +167,7 @@ impl Take for Token { } } -#[allow(clippy::derived_hash_with_manual_eq)] +#[allow(clippy::derive_hash_xor_eq)] #[allow(clippy::transmute_float_to_int)] impl Hash for Token { fn hash(&self, state: &mut H) { diff --git a/crates/swc_css_ast/src/value.rs b/crates/swc_css_ast/src/value.rs index 8d11c98ec20a..6cc74e0d3e2e 100644 --- a/crates/swc_css_ast/src/value.rs +++ b/crates/swc_css_ast/src/value.rs @@ -356,7 +356,7 @@ pub struct Number { impl Eq for Number {} -#[allow(clippy::derived_hash_with_manual_eq)] +#[allow(clippy::derive_hash_xor_eq)] #[allow(clippy::transmute_float_to_int)] impl Hash for Number { fn hash(&self, state: &mut H) { diff --git a/crates/swc_css_codegen/tests/fixture.rs b/crates/swc_css_codegen/tests/fixture.rs index ab5cc25e241a..d424c6d9ee3d 100644 --- a/crates/swc_css_codegen/tests/fixture.rs +++ b/crates/swc_css_codegen/tests/fixture.rs @@ -9,7 +9,7 @@ use swc_css_codegen::{ writer::basic::{BasicCssWriter, BasicCssWriterConfig, IndentType, LineFeed}, CodeGenerator, CodegenConfig, Emit, }; -use swc_css_parser::parse_file; +use swc_css_parser::{parse_file, parser::ParserConfig}; use swc_css_visit::{VisitMut, VisitMutWith}; use testing::{assert_eq, run_test2, NormalizedOutput}; @@ -44,7 +44,14 @@ fn run(input: &Path, minify: bool) { eprintln!("==== ==== Input ==== ====\n{}\n", fm.src); let mut errors = vec![]; - let mut stylesheet: Stylesheet = parse_file(&fm, Default::default(), &mut errors).unwrap(); + let mut stylesheet: Stylesheet = parse_file( + &fm, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .unwrap(); for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -78,10 +85,16 @@ fn run(input: &Path, minify: bool) { .unwrap(); let mut errors = vec![]; - let mut stylesheet_output: Stylesheet = - parse_file(&fm_output, Default::default(), &mut errors).map_err(|err| { - err.to_diagnostics(&handler).emit(); - })?; + let mut stylesheet_output: Stylesheet = parse_file( + &fm_output, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .map_err(|err| { + err.to_diagnostics(&handler).emit(); + })?; for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -343,7 +356,14 @@ fn indent_type(input: PathBuf) { eprintln!("==== ==== Input ==== ====\n{}\n", fm.src); let mut errors = vec![]; - let mut stylesheet: Stylesheet = parse_file(&fm, Default::default(), &mut errors).unwrap(); + let mut stylesheet: Stylesheet = parse_file( + &fm, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .unwrap(); for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -374,10 +394,16 @@ fn indent_type(input: PathBuf) { .unwrap(); let mut errors = vec![]; - let mut stylesheet_output: Stylesheet = - parse_file(&fm_output, Default::default(), &mut errors).map_err(|err| { - err.to_diagnostics(&handler).emit(); - })?; + let mut stylesheet_output: Stylesheet = parse_file( + &fm_output, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .map_err(|err| { + err.to_diagnostics(&handler).emit(); + })?; for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -407,7 +433,14 @@ fn indent_width(input: PathBuf) { eprintln!("==== ==== Input ==== ====\n{}\n", fm.src); let mut errors = vec![]; - let mut stylesheet: Stylesheet = parse_file(&fm, Default::default(), &mut errors).unwrap(); + let mut stylesheet: Stylesheet = parse_file( + &fm, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .unwrap(); for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -438,10 +471,16 @@ fn indent_width(input: PathBuf) { .unwrap(); let mut errors = vec![]; - let mut stylesheet_output: Stylesheet = - parse_file(&fm_output, Default::default(), &mut errors).map_err(|err| { - err.to_diagnostics(&handler).emit(); - })?; + let mut stylesheet_output: Stylesheet = parse_file( + &fm_output, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .map_err(|err| { + err.to_diagnostics(&handler).emit(); + })?; for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -471,7 +510,14 @@ fn linefeed_lf(input: PathBuf) { eprintln!("==== ==== Input ==== ====\n{}\n", fm.src); let mut errors = vec![]; - let mut stylesheet: Stylesheet = parse_file(&fm, Default::default(), &mut errors).unwrap(); + let mut stylesheet: Stylesheet = parse_file( + &fm, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .unwrap(); for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -504,10 +550,16 @@ fn linefeed_lf(input: PathBuf) { .unwrap(); let mut errors = vec![]; - let mut stylesheet_output: Stylesheet = - parse_file(&fm_output, Default::default(), &mut errors).map_err(|err| { - err.to_diagnostics(&handler).emit(); - })?; + let mut stylesheet_output: Stylesheet = parse_file( + &fm_output, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .map_err(|err| { + err.to_diagnostics(&handler).emit(); + })?; for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -537,7 +589,14 @@ fn linefeed_crlf(input: PathBuf) { eprintln!("==== ==== Input ==== ====\n{}\n", fm.src); let mut errors = vec![]; - let mut stylesheet: Stylesheet = parse_file(&fm, Default::default(), &mut errors).unwrap(); + let mut stylesheet: Stylesheet = parse_file( + &fm, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .unwrap(); for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -570,10 +629,16 @@ fn linefeed_crlf(input: PathBuf) { .unwrap(); let mut errors = vec![]; - let mut stylesheet_output: Stylesheet = - parse_file(&fm_output, Default::default(), &mut errors).map_err(|err| { - err.to_diagnostics(&handler).emit(); - })?; + let mut stylesheet_output: Stylesheet = parse_file( + &fm_output, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .map_err(|err| { + err.to_diagnostics(&handler).emit(); + })?; for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -599,10 +664,16 @@ fn parse_again(input: PathBuf) { eprintln!("==== ==== Input ==== ====\n{}\n", fm.src); let mut errors = vec![]; - let mut stylesheet: Stylesheet = - parse_file(&fm, Default::default(), &mut errors).map_err(|err| { - err.to_diagnostics(&handler).emit(); - })?; + let mut stylesheet: Stylesheet = parse_file( + &fm, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .map_err(|err| { + err.to_diagnostics(&handler).emit(); + })?; for err in take(&mut errors) { err.to_diagnostics(&handler).emit(); @@ -620,10 +691,16 @@ fn parse_again(input: PathBuf) { let new_fm = cm.new_source_file(FileName::Anon, css_str); let mut parsed_errors = vec![]; - let mut parsed: Stylesheet = parse_file(&new_fm, Default::default(), &mut parsed_errors) - .map_err(|err| { - err.to_diagnostics(&handler).emit(); - })?; + let mut parsed: Stylesheet = parse_file( + &new_fm, + ParserConfig { + ..Default::default() + }, + &mut parsed_errors, + ) + .map_err(|err| { + err.to_diagnostics(&handler).emit(); + })?; for err in parsed_errors { err.to_diagnostics(&handler).emit(); diff --git a/crates/swc_css_lints/tests/lints.rs b/crates/swc_css_lints/tests/lints.rs index 5bc0fdc011ed..958f0e8fd6b6 100644 --- a/crates/swc_css_lints/tests/lints.rs +++ b/crates/swc_css_lints/tests/lints.rs @@ -4,7 +4,10 @@ use std::{fs, path::PathBuf}; use swc_common::{errors::HANDLER, input::SourceFileInput}; use swc_css_lints::{get_rules, LintConfig, LintParams, LintRule}; -use swc_css_parser::{lexer::Lexer, parser::Parser}; +use swc_css_parser::{ + lexer::Lexer, + parser::{Parser, ParserConfig}, +}; #[testing::fixture("tests/rules/pass/**/input.css")] fn pass(input: PathBuf) { @@ -13,7 +16,9 @@ fn pass(input: PathBuf) { serde_json::from_str::(&fs::read_to_string(config_path).unwrap()).unwrap(); testing::run_test2(false, |cm, handler| -> Result<(), _> { - let config = Default::default(); + let config = ParserConfig { + ..Default::default() + }; let fm = cm.load_file(&input).unwrap(); let lexer = Lexer::new(SourceFileInput::from(&*fm), config); @@ -53,7 +58,9 @@ fn fail(input: PathBuf) { serde_json::from_str::(&fs::read_to_string(config_path).unwrap()).unwrap(); let stderr = testing::run_test2(false, |cm, handler| -> Result<(), _> { - let config = Default::default(); + let config = ParserConfig { + ..Default::default() + }; let fm = cm.load_file(&input).unwrap(); let lexer = Lexer::new(SourceFileInput::from(&*fm), config); diff --git a/crates/swc_css_minifier/benches/full.rs b/crates/swc_css_minifier/benches/full.rs index 4a4980e1b77a..45cba41166ab 100644 --- a/crates/swc_css_minifier/benches/full.rs +++ b/crates/swc_css_minifier/benches/full.rs @@ -5,9 +5,12 @@ use std::{fs::read_to_string, path::Path}; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use swc_common::{errors::HANDLER, FileName}; use swc_css_ast::Stylesheet; -use swc_css_codegen::{writer::basic::BasicCssWriter, Emit}; +use swc_css_codegen::{ + writer::basic::{BasicCssWriter, BasicCssWriterConfig}, + Emit, +}; use swc_css_minifier::minify; -use swc_css_parser::parse_file; +use swc_css_parser::{parse_file, parser::ParserConfig}; pub fn bench_files(c: &mut Criterion) { let mut group = c.benchmark_group("css/minify/libraries"); @@ -39,13 +42,26 @@ fn run(src: &str) { let fm = cm.new_source_file(FileName::Anon, src.into()); let mut errors = vec![]; - let mut ss: Stylesheet = parse_file(&fm, Default::default(), &mut errors).unwrap(); + let mut ss: Stylesheet = parse_file( + &fm, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .unwrap(); minify(&mut ss, Default::default()); let mut buf = String::new(); { - let wr = BasicCssWriter::new(&mut buf, None, Default::default()); + let wr = BasicCssWriter::new( + &mut buf, + None, + BasicCssWriterConfig { + ..Default::default() + }, + ); let mut generator = swc_css_codegen::CodeGenerator::new( wr, swc_css_codegen::CodegenConfig { minify: true }, diff --git a/crates/swc_css_modules/tests/fixture.rs b/crates/swc_css_modules/tests/fixture.rs index f86c1cc6fa6a..96d164b1c603 100644 --- a/crates/swc_css_modules/tests/fixture.rs +++ b/crates/swc_css_modules/tests/fixture.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; use swc_atoms::JsWord; use swc_css_codegen::{ writer::basic::{BasicCssWriter, BasicCssWriterConfig, IndentType}, - CodeGenerator, Emit, + CodeGenerator, CodegenConfig, Emit, }; use swc_css_parser::parser::ParserConfig; use testing::NormalizedOutput; @@ -71,7 +71,12 @@ fn compile(input: PathBuf) { ..Default::default() }, ); - let mut g = CodeGenerator::new(wr, Default::default()); + let mut g = CodeGenerator::new( + wr, + CodegenConfig { + ..Default::default() + }, + ); g.emit(&ss).unwrap(); } diff --git a/crates/swc_ecma_ast/Cargo.toml b/crates/swc_ecma_ast/Cargo.toml index 971920345aa1..35e3374775c5 100644 --- a/crates/swc_ecma_ast/Cargo.toml +++ b/crates/swc_ecma_ast/Cargo.toml @@ -36,8 +36,8 @@ bitflags = "1" bytecheck = { version = "0.6.9", optional = true } is-macro = "0.2.1" num-bigint = { version = "0.4", features = ["serde"] } -rkyv = { package = "rkyv", version = "=0.7.40", optional = true } -# This is to avoid cargo version selection conflict between rkyv=0.7.40 and other versions, as it is strictly pinned +rkyv = { package = "rkyv", version = "=0.7.37", optional = true } +# This is to avoid cargo version selection conflict between rkyv=0.7.37 and other versions, as it is strictly pinned # cannot be merged. rkyv-latest = { package = "rkyv-test", version = "=0.7.38-test.2", optional = true } scoped-tls = "1.0.0" diff --git a/crates/swc_ecma_ast/src/lit.rs b/crates/swc_ecma_ast/src/lit.rs index 1944e92d0bb0..c56a962471bb 100644 --- a/crates/swc_ecma_ast/src/lit.rs +++ b/crates/swc_ecma_ast/src/lit.rs @@ -354,7 +354,7 @@ impl EqIgnoreSpan for Number { } } -#[allow(clippy::derived_hash_with_manual_eq)] +#[allow(clippy::derive_hash_xor_eq)] #[allow(clippy::transmute_float_to_int)] impl Hash for Number { fn hash(&self, state: &mut H) { diff --git a/crates/swc_ecma_codegen/benches/bench.rs b/crates/swc_ecma_codegen/benches/bench.rs index ced8f9c2e173..327f89027218 100644 --- a/crates/swc_ecma_codegen/benches/bench.rs +++ b/crates/swc_ecma_codegen/benches/bench.rs @@ -98,7 +98,9 @@ fn bench_emitter(b: &mut Bencher, s: &str) { let mut buf = vec![]; { let mut emitter = Emitter { - cfg: Default::default(), + cfg: swc_ecma_codegen::Config { + ..Default::default() + }, comments: None, cm: cm.clone(), wr: swc_ecma_codegen::text_writer::JsWriter::new( diff --git a/crates/swc_ecma_codegen/benches/with_parse.rs b/crates/swc_ecma_codegen/benches/with_parse.rs index 3b342734589c..5bc0f31db200 100644 --- a/crates/swc_ecma_codegen/benches/with_parse.rs +++ b/crates/swc_ecma_codegen/benches/with_parse.rs @@ -97,7 +97,9 @@ fn bench_emitter(b: &mut Bencher, s: &str) { let mut buf = vec![]; { let mut emitter = Emitter { - cfg: Default::default(), + cfg: swc_ecma_codegen::Config { + ..Default::default() + }, comments: None, cm: cm.clone(), wr: Box::new(swc_ecma_codegen::text_writer::JsWriter::new( diff --git a/crates/swc_ecma_codegen/examples/gen.rs b/crates/swc_ecma_codegen/examples/gen.rs index 083998789dee..a175be2e91f3 100644 --- a/crates/swc_ecma_codegen/examples/gen.rs +++ b/crates/swc_ecma_codegen/examples/gen.rs @@ -28,7 +28,9 @@ fn parse_and_gen(entry: &Path) { { let mut emitter = Emitter { - cfg: Default::default(), + cfg: swc_ecma_codegen::Config { + ..Default::default() + }, cm: cm.clone(), comments: None, wr: JsWriter::new(cm, "\n", &mut buf, None), diff --git a/crates/swc_ecma_codegen/examples/sourcemap.rs b/crates/swc_ecma_codegen/examples/sourcemap.rs index b1512b3a6235..24a6d98e6b33 100644 --- a/crates/swc_ecma_codegen/examples/sourcemap.rs +++ b/crates/swc_ecma_codegen/examples/sourcemap.rs @@ -34,7 +34,9 @@ fn parse_and_gen(entry: &Path) { { let mut emitter = Emitter { - cfg: Default::default(), + cfg: swc_ecma_codegen::Config { + ..Default::default() + }, cm: cm.clone(), comments: None, wr: JsWriter::new(cm.clone(), "\n", &mut code, Some(&mut srcmap)), diff --git a/crates/swc_ecma_codegen/src/tests.rs b/crates/swc_ecma_codegen/src/tests.rs index bd8d059bc447..1b4f514f95c9 100644 --- a/crates/swc_ecma_codegen/src/tests.rs +++ b/crates/swc_ecma_codegen/src/tests.rs @@ -93,7 +93,9 @@ pub(crate) fn assert_min(from: &str, to: &str) { omit_last_semi: true, ..Default::default() }, - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), ); assert_eq!(DebugUsingDisplay(out.trim()), DebugUsingDisplay(to),); @@ -306,7 +308,9 @@ fn export_namespace_from() { "export * as Foo from 'foo';", "export * as Foo from 'foo';", Default::default(), - Syntax::Es(EsConfig::default()), + Syntax::Es(EsConfig { + ..EsConfig::default() + }), ); } @@ -319,7 +323,9 @@ fn export_namespace_from_min() { minify: true, ..Default::default() }, - Syntax::Es(EsConfig::default()), + Syntax::Es(EsConfig { + ..EsConfig::default() + }), ); } diff --git a/crates/swc_ecma_codegen/tests/sourcemap.rs b/crates/swc_ecma_codegen/tests/sourcemap.rs index c8812308a24e..ce0513cb267b 100644 --- a/crates/swc_ecma_codegen/tests/sourcemap.rs +++ b/crates/swc_ecma_codegen/tests/sourcemap.rs @@ -1,3 +1,5 @@ +#![feature(bench_black_box)] + use std::{fs::read_to_string, path::PathBuf}; use rustc_hash::FxHashSet; diff --git a/crates/swc_ecma_lints/src/rules/duplicate_bindings.rs b/crates/swc_ecma_lints/src/rules/duplicate_bindings.rs index 80cceede0852..51ad36a98189 100644 --- a/crates/swc_ecma_lints/src/rules/duplicate_bindings.rs +++ b/crates/swc_ecma_lints/src/rules/duplicate_bindings.rs @@ -12,7 +12,9 @@ use swc_ecma_visit::{noop_visit_type, Visit, VisitWith}; use crate::rule::{visitor_rule, Rule}; pub fn duplicate_bindings() -> Box { - visitor_rule(DuplicateBindings::default()) + visitor_rule(DuplicateBindings { + ..Default::default() + }) } #[derive(Debug, Default, Clone, Copy)] diff --git a/crates/swc_ecma_lints/tests/fixture.rs b/crates/swc_ecma_lints/tests/fixture.rs index fc9a601de711..075963531511 100644 --- a/crates/swc_ecma_lints/tests/fixture.rs +++ b/crates/swc_ecma_lints/tests/fixture.rs @@ -20,14 +20,18 @@ fn pass(input: PathBuf) { let lexer = Lexer::new( if input.extension().unwrap() == "ts" { - Syntax::Typescript(Default::default()) + Syntax::Typescript(swc_ecma_parser::TsConfig { + ..Default::default() + }) } else if input.extension().unwrap() == "tsx" { Syntax::Typescript(swc_ecma_parser::TsConfig { tsx: true, ..Default::default() }) } else { - Syntax::Es(Default::default()) + Syntax::Es(swc_ecma_parser::EsConfig { + ..Default::default() + }) }, es_version, SourceFileInput::from(&*fm), diff --git a/crates/swc_ecma_minifier/benches/full.rs b/crates/swc_ecma_minifier/benches/full.rs index b351c0c1d4eb..515a4714a0a8 100644 --- a/crates/swc_ecma_minifier/benches/full.rs +++ b/crates/swc_ecma_minifier/benches/full.rs @@ -9,7 +9,7 @@ use swc_common::{errors::HANDLER, sync::Lrc, FileName, Mark, SourceMap}; use swc_ecma_codegen::text_writer::JsWriter; use swc_ecma_minifier::{ optimize, - option::{ExtraOptions, MangleOptions, MinifyOptions}, + option::{CompressOptions, ExtraOptions, MangleOptions, MinifyOptions}, }; use swc_ecma_parser::parse_file_as_module; use swc_ecma_transforms_base::{fixer::fixer, resolver}; @@ -75,7 +75,9 @@ fn run(src: &str) { None, &MinifyOptions { rename: false, - compress: Some(Default::default()), + compress: Some(CompressOptions { + ..Default::default() + }), mangle: Some(MangleOptions { props: None, top_level: Some(true), diff --git a/crates/swc_ecma_minifier/src/compress/optimize/mod.rs b/crates/swc_ecma_minifier/src/compress/optimize/mod.rs index 5d13eb69596a..9d5c06e3069f 100644 --- a/crates/swc_ecma_minifier/src/compress/optimize/mod.rs +++ b/crates/swc_ecma_minifier/src/compress/optimize/mod.rs @@ -339,7 +339,7 @@ where let append_stmts = self.append_stmts.take(); { - let mut child_ctx = self.ctx; + let mut child_ctx = Ctx { ..self.ctx }; let mut directive_count = 0; if !stmts.is_empty() { @@ -1401,7 +1401,7 @@ where fn visit_mut_arrow_expr(&mut self, n: &mut ArrowExpr) { let prepend = self.prepend_stmts.take(); - let ctx = self.ctx; + let ctx = Ctx { ..self.ctx }; n.visit_mut_children_with(&mut *self.with_ctx(ctx)); @@ -2125,7 +2125,7 @@ where } { - let ctx = self.ctx; + let ctx = Ctx { ..self.ctx }; self.with_ctx(ctx).optimize_usage_of_arguments(n); } @@ -2661,7 +2661,7 @@ where return; } - let ctx = self.ctx; + let ctx = Ctx { ..self.ctx }; self.with_ctx(ctx).inject_else(stmts); diff --git a/crates/swc_ecma_minifier/src/compress/pure/evaluate.rs b/crates/swc_ecma_minifier/src/compress/pure/evaluate.rs index 120ed80d4928..7dd796ea96a9 100644 --- a/crates/swc_ecma_minifier/src/compress/pure/evaluate.rs +++ b/crates/swc_ecma_minifier/src/compress/pure/evaluate.rs @@ -368,7 +368,7 @@ impl Pure<'_> { } else { // 11. Else, - if x.fract() != 0. || f != 0 { + if x.fract() != 0. && f != 0 { // TODO: rust built-in format cannot handle ecma262 `1.25.toFixed(1)` return; diff --git a/crates/swc_ecma_minifier/src/timing.rs b/crates/swc_ecma_minifier/src/timing.rs index 0e31a319ebe4..45381050ba58 100644 --- a/crates/swc_ecma_minifier/src/timing.rs +++ b/crates/swc_ecma_minifier/src/timing.rs @@ -14,7 +14,9 @@ pub struct Timings { impl Timings { pub fn new() -> Timings { - Default::default() + Timings { + ..Default::default() + } } pub fn section(&mut self, name: &str) { diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js index 572700cbd565..25ee300ff8c4 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js @@ -6018,7 +6018,7 @@ $({ target: "Number", proto: !0, - forced: nativeToFixed && ("0.000" !== 0.00008.toFixed(3) || "1" !== 0.9.toFixed(0) || "1.25" !== 1.255.toFixed(2)) || !fails(function() { + forced: nativeToFixed && ("0.000" !== 0.00008.toFixed(3) || "1.25" !== 1.255.toFixed(2)) || !fails(function() { nativeToFixed.call({}); }) }, { diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/6957/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/6957/1/output.js index 55ce3dee1d7b..22c7a794b406 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/6957/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/6957/1/output.js @@ -1,19 +1,19 @@ export function foo() { - alert(1..toFixed(1)); + alert("1.0"); alert("0"); - alert(0..toFixed(1)); - alert(0..toFixed(2)); - alert(0..toFixed(3)); - alert(10..toFixed(1)); - alert(20..toFixed(2)); - alert(30..toFixed(3)); - alert(100..toFixed(1)); - alert(100..toFixed(2)); - alert(100..toFixed(3)); - alert(110..toFixed(1)); - alert(110..toFixed(2)); - alert(110..toFixed(3)); - alert(110..toFixed(4)); - alert(1110..toFixed(4)); - alert(11110..toFixed(4)); + alert("0.0"); + alert("0.00"); + alert("0.000"); + alert("10.0"); + alert("20.00"); + alert("30.000"); + alert("100.0"); + alert("100.00"); + alert("100.000"); + alert("110.0"); + alert("110.00"); + alert("110.000"); + alert("110.0000"); + alert("1110.0000"); + alert("11110.0000"); } diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/config.json b/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/config.json deleted file mode 100644 index b38da13846ff..000000000000 --- a/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/config.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "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 -} \ No newline at end of file diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/input.js b/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/input.js deleted file mode 100644 index 0996d3ba1371..000000000000 --- a/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/input.js +++ /dev/null @@ -1,2 +0,0 @@ -assertEquals("1", 0.5.toFixed(0), "0.5.toFixed(0)"); -assertEquals("-1", (-0.5).toFixed(0), "(-0.5).toFixed(0)"); \ No newline at end of file diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/output.js deleted file mode 100644 index c6090de60144..000000000000 --- a/crates/swc_ecma_minifier/tests/fixture/issues/6957/2/output.js +++ /dev/null @@ -1,2 +0,0 @@ -assertEquals("1", 0.5.toFixed(0), "0.5.toFixed(0)"); -assertEquals("-1", (-0.5).toFixed(0), "(-0.5).toFixed(0)"); diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/6957/number-tostring/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/6957/number-tostring/output.js index 161574fcaed5..9daa869690a1 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/6957/number-tostring/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/6957/number-tostring/output.js @@ -129,21 +129,21 @@ assertEquals("0.0100", 0.01.toFixed(4)); assertEquals("0.00", 0.001.toFixed(2)); assertEquals("0.001", 0.001.toFixed(3)); assertEquals("0.0010", 0.001.toFixed(4)); -assertEquals("1.0000", 1..toFixed(4)); -assertEquals("1.0", 1..toFixed(1)); +assertEquals("1.0000", "1.0000"); +assertEquals("1.0", "1.0"); +assertEquals("1", "1"); +assertEquals("12", "12"); +assertEquals("1", "1"); +assertEquals("12", "12"); assertEquals("1", "1"); assertEquals("12", "12"); -assertEquals("1", 1.1.toFixed(0)); -assertEquals("12", 12.1.toFixed(0)); -assertEquals("1", 1.12.toFixed(0)); -assertEquals("12", 12.12.toFixed(0)); assertEquals("0.0000006", 0.0000006.toFixed(7)); assertEquals("0.00000006", 0.00000006.toFixed(8)); assertEquals("0.000000060", 0.00000006.toFixed(9)); assertEquals("0.0000000600", 0.00000006.toFixed(10)); assertEquals("0", "0"); -assertEquals("0.0", 0..toFixed(1)); -assertEquals("0.00", 0..toFixed(2)); +assertEquals("0.0", "0.0"); +assertEquals("0.00", "0.00"); assertEquals("-1.1111111111111111e+21", "-1.1111111111111111e+21"); assertEquals("-0.1", (-0.1).toFixed(1)); assertEquals("-0.10", (-0.1).toFixed(2)); @@ -154,37 +154,37 @@ assertEquals("-0.0100", (-0.01).toFixed(4)); assertEquals("-0.00", (-0.001).toFixed(2)); assertEquals("-0.001", (-0.001).toFixed(3)); assertEquals("-0.0010", (-0.001).toFixed(4)); -assertEquals("-1.0000", (-1).toFixed(4)); -assertEquals("-1.0", (-1).toFixed(1)); +assertEquals("-1.0000", "-1.0000"); +assertEquals("-1.0", "-1.0"); assertEquals("-1", "-1"); -assertEquals("-1", (-1.1).toFixed(0)); -assertEquals("-12", (-12.1).toFixed(0)); -assertEquals("-1", (-1.12).toFixed(0)); -assertEquals("-12", (-12.12).toFixed(0)); +assertEquals("-1", "-1"); +assertEquals("-12", "-12"); +assertEquals("-1", "-1"); +assertEquals("-12", "-12"); assertEquals("-0.0000006", (-0.0000006).toFixed(7)); assertEquals("-0.00000006", (-0.00000006).toFixed(8)); assertEquals("-0.000000060", (-0.00000006).toFixed(9)); assertEquals("-0.0000000600", (-0.00000006).toFixed(10)); assertEquals("0", "0"); -assertEquals("0.0", (-0).toFixed(1)); -assertEquals("0.00", (-0).toFixed(2)); +assertEquals("0.0", "0.0"); +assertEquals("0.00", "0.00"); assertEquals("1000", "1000"); -assertEquals("0", 0.00001.toFixed()); +assertEquals("0", "0"); assertEquals("0.00001", 0.00001.toFixed(5)); assertEquals("0.00000000000000000010", 0.0000000000000000001.toFixed(20)); assertEquals("0.00001000000000000", 0.00001.toFixed(17)); -assertEquals("1.00000000000000000", 1..toFixed(17)); +assertEquals("1.00000000000000000", "1.00000000000000000"); assertEquals("1000000000000000128", "1000000000000000128"); -assertEquals("100000000000000128.0", 100000000000000128..toFixed(1)); -assertEquals("10000000000000128.00", 10000000000000128..toFixed(2)); -assertEquals("10000000000000128.00000000000000000000", 10000000000000128..toFixed(20)); +assertEquals("100000000000000128.0", "100000000000000128.0"); +assertEquals("10000000000000128.00", "10000000000000128.00"); +assertEquals("10000000000000128.00000000000000000000", "10000000000000128.00000000000000000000"); assertEquals("0", "0"); -assertEquals("-42.000", (-42).toFixed(3)); +assertEquals("-42.000", "-42.000"); assertEquals("-1000000000000000128", "-1000000000000000128"); assertEquals("-0.00000000000000000010", (-0.0000000000000000001).toFixed(20)); assertEquals("0.12312312312312299889", 0.123123123123123.toFixed(20)); -assertEquals("1", 0.5.toFixed(0), "0.5.toFixed(0)"); -assertEquals("-1", (-0.5).toFixed(0), "(-0.5).toFixed(0)"); +assertEquals("1", "1", "0.5.toFixed(0)"); +assertEquals("-1", "-1", "(-0.5).toFixed(0)"); assertEquals("1.3", 1.25.toFixed(1), "1.25.toFixed(1)"); assertEquals("234.2040", 234.20405.toFixed(4), "234.2040.toFixed(4)"); assertEquals("234.2041", 234.2040506.toFixed(4)); diff --git a/crates/swc_ecma_parser/src/lexer/mod.rs b/crates/swc_ecma_parser/src/lexer/mod.rs index d513df1658c8..37e001606ebe 100644 --- a/crates/swc_ecma_parser/src/lexer/mod.rs +++ b/crates/swc_ecma_parser/src/lexer/mod.rs @@ -1209,7 +1209,6 @@ impl<'a> Lexer<'a> { } #[inline] - #[allow(clippy::misnamed_getters)] pub fn had_line_break_before_last(&self) -> bool { self.state.had_line_break } diff --git a/crates/swc_ecma_parser/src/lexer/number.rs b/crates/swc_ecma_parser/src/lexer/number.rs index 174fd12aba1a..48d8bf95d17f 100644 --- a/crates/swc_ecma_parser/src/lexer/number.rs +++ b/crates/swc_ecma_parser/src/lexer/number.rs @@ -542,6 +542,7 @@ mod tests { use std::{f64::INFINITY, panic}; use super::*; + use crate::EsConfig; fn lex(s: &'static str, f: F) -> Ret where @@ -549,7 +550,9 @@ mod tests { { crate::with_test_sess(s, |_, input| { let mut l = Lexer::new( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), Default::default(), input, None, diff --git a/crates/swc_ecma_parser/src/lexer/tests.rs b/crates/swc_ecma_parser/src/lexer/tests.rs index d631f0288437..940c8abb281d 100644 --- a/crates/swc_ecma_parser/src/lexer/tests.rs +++ b/crates/swc_ecma_parser/src/lexer/tests.rs @@ -1612,7 +1612,12 @@ fn issue_481() { #[test] fn issue_915_1() { assert_eq!( - lex_tokens(crate::Syntax::Es(Default::default()), r##"encode("\r\n")"##), + lex_tokens( + crate::Syntax::Es(crate::EsConfig { + ..Default::default() + }), + r##"encode("\r\n")"## + ), vec![ Word(Word::Ident("encode".into())), LParen, diff --git a/crates/swc_ecma_parser/src/lib.rs b/crates/swc_ecma_parser/src/lib.rs index fd6f4a5e9530..33b7ca2bd552 100644 --- a/crates/swc_ecma_parser/src/lib.rs +++ b/crates/swc_ecma_parser/src/lib.rs @@ -114,6 +114,7 @@ //! [tc39/test262]:https://github.com/tc39/test262 #![cfg_attr(docsrs, feature(doc_cfg))] +#![cfg_attr(test, feature(bench_black_box))] #![cfg_attr(test, feature(test))] #![deny(clippy::all)] #![deny(unused)] diff --git a/crates/swc_ecma_parser/src/parser/expr/tests.rs b/crates/swc_ecma_parser/src/parser/expr/tests.rs index a91a7c01cab7..61dbc2103d32 100644 --- a/crates/swc_ecma_parser/src/parser/expr/tests.rs +++ b/crates/swc_ecma_parser/src/parser/expr/tests.rs @@ -373,9 +373,13 @@ fn issue_319_1() { #[test] fn issue_328() { assert_eq_ignore_span!( - test_parser("import('test')", Syntax::Es(Default::default()), |p| { - p.parse_stmt(true) - }), + test_parser( + "import('test')", + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| { p.parse_stmt(true) } + ), Stmt::Expr(ExprStmt { span, expr: Box::new(Expr::Call(CallExpr { diff --git a/crates/swc_ecma_parser/src/parser/stmt.rs b/crates/swc_ecma_parser/src/parser/stmt.rs index d6a9b82692bb..5e9ca4e3dc56 100644 --- a/crates/swc_ecma_parser/src/parser/stmt.rs +++ b/crates/swc_ecma_parser/src/parser/stmt.rs @@ -1344,7 +1344,7 @@ mod tests { use swc_ecma_visit::assert_eq_ignore_span; use super::*; - use crate::EsConfig; + use crate::{EsConfig, TsConfig}; fn stmt(s: &'static str) -> Stmt { test_parser(s, Syntax::default(), |p| p.parse_stmt(true)) @@ -1609,19 +1609,37 @@ export default App"#; #[test] fn shebang_01() { let src = "#!/usr/bin/env node"; - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_module()); + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_module(), + ); } #[test] fn shebang_02() { let src = "#!/usr/bin/env node let x = 4"; - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_module()); + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_module(), + ); } #[test] fn empty() { - test_parser("", Syntax::Es(Default::default()), |p| p.parse_module()); + test_parser( + "", + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_module(), + ); } #[test] @@ -1784,7 +1802,9 @@ export default function waitUntil(callback, options = {}) { fn issue_380_1() { test_parser( "import(filePath).then(bar => {})", - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), |p| p.parse_module(), ); } @@ -1798,7 +1818,9 @@ export default function waitUntil(callback, options = {}) { import(filePath).then(bar => {}) } }", - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), |p| p.parse_module(), ); } @@ -1808,16 +1830,22 @@ export default function waitUntil(callback, options = {}) { test_parser( "try { } catch {}", - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), |p| p.parse_module(), ); } #[test] fn top_level_await() { - test_parser("await foo", Syntax::Es(Default::default()), |p| { - p.parse_module() - }); + test_parser( + "await foo", + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_module(), + ); } #[test] @@ -1830,9 +1858,14 @@ export default function waitUntil(callback, options = {}) { } = Object.create(null); } "; - let _ = test_parser_comment(&c, s, Syntax::Typescript(Default::default()), |p| { - p.parse_typescript_module() - }); + let _ = test_parser_comment( + &c, + s, + Syntax::Typescript(TsConfig { + ..Default::default() + }), + |p| p.parse_typescript_module(), + ); let (leading, trailing) = c.take_all(); assert!(trailing.borrow().is_empty()); @@ -1850,9 +1883,14 @@ export default function waitUntil(callback, options = {}) { both?: StringBuffer ) => void;"; - let _ = test_parser_comment(&c, s, Syntax::Typescript(Default::default()), |p| { - p.parse_typescript_module() - }); + let _ = test_parser_comment( + &c, + s, + Syntax::Typescript(TsConfig { + ..Default::default() + }), + |p| p.parse_typescript_module(), + ); let (leading, trailing) = c.take_all(); assert!(trailing.borrow().is_empty()); @@ -1872,9 +1910,14 @@ export default function waitUntil(callback, options = {}) { __dirname: string ) => void;"; - let _ = test_parser_comment(&c, s, Syntax::Typescript(Default::default()), |p| { - p.parse_typescript_module() - }); + let _ = test_parser_comment( + &c, + s, + Syntax::Typescript(TsConfig { + ..Default::default() + }), + |p| p.parse_typescript_module(), + ); let (leading, trailing) = c.take_all(); assert!(trailing.borrow().is_empty()); @@ -1889,9 +1932,14 @@ export default function waitUntil(callback, options = {}) { [key: string]: (module: Module, filename: string) => any; } = Object.create(null);"; - let _ = test_parser_comment(&c, s, Syntax::Typescript(Default::default()), |p| { - p.parse_typescript_module() - }); + let _ = test_parser_comment( + &c, + s, + Syntax::Typescript(TsConfig { + ..Default::default() + }), + |p| p.parse_typescript_module(), + ); let (leading, trailing) = c.take_all(); assert!(trailing.borrow().is_empty()); @@ -1967,33 +2015,63 @@ export default function waitUntil(callback, options = {}) { #[should_panic(expected = "'import.meta' cannot be used outside of module code.")] fn import_meta_in_script() { let src = "const foo = import.meta.url;"; - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_script()); + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_script(), + ); } #[test] fn import_meta_in_program() { let src = "const foo = import.meta.url;"; - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_program()); + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_program(), + ); } #[test] #[should_panic(expected = "'import', and 'export' cannot be used outside of module code")] fn import_statement_in_script() { let src = "import 'foo';"; - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_script()); + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_script(), + ); } #[test] #[should_panic(expected = "top level await is only allowed in module")] fn top_level_await_in_script() { let src = "await promise"; - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_script()); + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_script(), + ); } #[test] fn top_level_await_in_program() { let src = "await promise"; - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_program()); + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_program(), + ); } #[test] @@ -2091,7 +2169,13 @@ export default function waitUntil(callback, options = {}) { fn class_static_blocks() { let src = "class Foo { static { 1 + 1; } }"; assert_eq_ignore_span!( - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_expr()), + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_expr() + ), Box::new(Expr::Class(ClassExpr { ident: Some(Ident { span, @@ -2122,7 +2206,13 @@ export default function waitUntil(callback, options = {}) { fn multiple_class_static_blocks() { let src = "class Foo { static { 1 + 1; } static { 1 + 1; } }"; assert_eq_ignore_span!( - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_expr()), + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_expr() + ), Box::new(Expr::Class(ClassExpr { ident: Some(Ident { span, @@ -2167,7 +2257,13 @@ export default function waitUntil(callback, options = {}) { } }"; assert_eq_ignore_span!( - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_expr()), + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_expr() + ), Box::new(Expr::Class(ClassExpr { ident: Some(Ident { span, @@ -2201,7 +2297,13 @@ export default function waitUntil(callback, options = {}) { {} }"; assert_eq_ignore_span!( - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_expr()), + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_expr() + ), Box::new(Expr::Class(ClassExpr { ident: Some(Ident { span, @@ -2355,9 +2457,13 @@ export default function waitUntil(callback, options = {}) { "use strict"; const foo;"#; - test_parser(src, Syntax::Typescript(Default::default()), |p| { - p.parse_script() - }); + test_parser( + src, + Syntax::Typescript(TsConfig { + ..Default::default() + }), + |p| p.parse_script(), + ); } #[test] @@ -2367,7 +2473,13 @@ const foo;"#; "use strict"; const foo;"#; - test_parser(src, Syntax::Es(Default::default()), |p| p.parse_script()); + test_parser( + src, + Syntax::Es(EsConfig { + ..Default::default() + }), + |p| p.parse_script(), + ); } #[test] diff --git a/crates/swc_ecma_parser/src/parser/tests.rs b/crates/swc_ecma_parser/src/parser/tests.rs index 312804a4d68e..ae58886bae5e 100644 --- a/crates/swc_ecma_parser/src/parser/tests.rs +++ b/crates/swc_ecma_parser/src/parser/tests.rs @@ -145,9 +145,14 @@ fn issue_1878() { let s = " // test "; - let _ = super::test_parser_comment(&c, s, Syntax::Typescript(Default::default()), |p| { - p.parse_typescript_module() - }); + let _ = super::test_parser_comment( + &c, + s, + Syntax::Typescript(TsConfig { + ..Default::default() + }), + |p| p.parse_typescript_module(), + ); let (leading, trailing) = c.take_all(); assert!(trailing.borrow().is_empty()); @@ -162,9 +167,14 @@ fn issue_1878() { let s = "#!/foo/bar // test "; - let _ = super::test_parser_comment(&c, s, Syntax::Typescript(Default::default()), |p| { - p.parse_typescript_module() - }); + let _ = super::test_parser_comment( + &c, + s, + Syntax::Typescript(TsConfig { + ..Default::default() + }), + |p| p.parse_typescript_module(), + ); let (leading, trailing) = c.take_all(); assert!(leading.borrow().is_empty()); diff --git a/crates/swc_ecma_parser/src/parser/typescript.rs b/crates/swc_ecma_parser/src/parser/typescript.rs index 37f919db52ff..a8ba60a98386 100644 --- a/crates/swc_ecma_parser/src/parser/typescript.rs +++ b/crates/swc_ecma_parser/src/parser/typescript.rs @@ -2838,7 +2838,9 @@ mod tests { use swc_ecma_ast::*; use swc_ecma_visit::assert_eq_ignore_span; - use crate::{lexer::Lexer, test_parser, token::*, Capturing, EsVersion, Parser, Syntax}; + use crate::{ + lexer::Lexer, test_parser, token::*, Capturing, EsVersion, Parser, Syntax, TsConfig, + }; #[test] fn issue_708_1() { @@ -2919,7 +2921,9 @@ mod tests { string | number);", |handler, input| { let lexer = Lexer::new( - Syntax::Typescript(Default::default()), + Syntax::Typescript(TsConfig { + ..Default::default() + }), EsVersion::Es2019, input, None, @@ -2943,7 +2947,9 @@ mod tests { fn issue_751() { crate::with_test_sess("t ? -(v >>> 1) : v >>> 1", |handler, input| { let lexer = Lexer::new( - Syntax::Typescript(Default::default()), + Syntax::Typescript(TsConfig { + ..Default::default() + }), EsVersion::Es2019, input, None, diff --git a/crates/swc_ecma_parser/tests/comments.rs b/crates/swc_ecma_parser/tests/comments.rs index 397571d2f869..b3c92239c381 100644 --- a/crates/swc_ecma_parser/tests/comments.rs +++ b/crates/swc_ecma_parser/tests/comments.rs @@ -73,7 +73,7 @@ fn test(input: PathBuf) { panic!("Comments have incorrect position") } - output.compare_to_file(output_file).unwrap(); + output.compare_to_file(&output_file).unwrap(); } struct CommentPrinter<'a> { diff --git a/crates/swc_ecma_parser/tests/js.rs b/crates/swc_ecma_parser/tests/js.rs index 4ffd25163943..74610a14ac67 100644 --- a/crates/swc_ecma_parser/tests/js.rs +++ b/crates/swc_ecma_parser/tests/js.rs @@ -8,7 +8,7 @@ use std::{ use swc_common::{comments::SingleThreadedComments, FileName}; use swc_ecma_ast::*; -use swc_ecma_parser::{lexer::Lexer, PResult, Parser, Syntax}; +use swc_ecma_parser::{lexer::Lexer, EsConfig, PResult, Parser, Syntax}; use swc_ecma_visit::FoldWith; use testing::StdErr; @@ -90,7 +90,9 @@ where .unwrap_or_else(|e| panic!("failed to load {}: {}", file_name.display(), e)); let lexer = Lexer::new( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), EsVersion::Es2015, (&*fm).into(), Some(&comments), diff --git a/crates/swc_ecma_parser/tests/span.rs b/crates/swc_ecma_parser/tests/span.rs index 96504f58ee00..6e718f1be182 100644 --- a/crates/swc_ecma_parser/tests/span.rs +++ b/crates/swc_ecma_parser/tests/span.rs @@ -55,7 +55,7 @@ fn span(entry: PathBuf) { let ref_file = format!("{}.swc-stderr", dir.join(&file_name).display()); - content.compare_to_file(ref_file).unwrap(); + content.compare_to_file(&ref_file).unwrap(); } struct Shower<'a> { diff --git a/crates/swc_ecma_parser/tests/test262.rs b/crates/swc_ecma_parser/tests/test262.rs index 5576a62f2e2d..aa356ae6aa8c 100644 --- a/crates/swc_ecma_parser/tests/test262.rs +++ b/crates/swc_ecma_parser/tests/test262.rs @@ -81,7 +81,7 @@ const IGNORED_PASS_TESTS: &[&str] = &[ "ce569e89a005c02a.js", ]; -fn add_test Result<(), String> + Send + 'static>( +fn add_test( tests: &mut Vec, name: String, ignore: bool, @@ -96,11 +96,6 @@ fn add_test Result<(), String> + Send + 'static>( compile_fail: false, no_run: false, ignore_message: Default::default(), - end_col: 0, - end_line: 0, - start_col: 0, - start_line: 0, - source_file: "", }, testfn: DynTestFn(Box::new(f)), }); @@ -213,8 +208,6 @@ fn error_tests(tests: &mut Vec) -> Result<(), io::Error> { { panic!() } - - Ok(()) }); } } @@ -312,8 +305,6 @@ fn identity_tests(tests: &mut Vec) -> Result<(), io::Error> { let expected = p(true); assert_eq!(src, expected); } - - Ok(()) }); } diff --git a/crates/swc_ecma_parser/tests/typescript.rs b/crates/swc_ecma_parser/tests/typescript.rs index 993107b8b5b6..243acea2b0f6 100644 --- a/crates/swc_ecma_parser/tests/typescript.rs +++ b/crates/swc_ecma_parser/tests/typescript.rs @@ -48,13 +48,13 @@ fn shifted(file: PathBuf) { serde_json::to_string_pretty(&program).expect("failed to serialize module as json"); if StdErr::from(json) - .compare_to_file(format!("{}.json", file.display())) + .compare_to_file(&format!("{}.json", file.display())) .is_err() { panic!() } if StdErr::from(format!("{:#?}", comments)) - .compare_to_file(format!("{}.comments", file.display())) + .compare_to_file(&format!("{}.comments", file.display())) .is_err() { panic!() diff --git a/crates/swc_ecma_preset_env/tests/test.rs b/crates/swc_ecma_preset_env/tests/test.rs index e094fc533563..85debdf31166 100644 --- a/crates/swc_ecma_preset_env/tests/test.rs +++ b/crates/swc_ecma_preset_env/tests/test.rs @@ -18,7 +18,7 @@ use swc_common::{ }; use swc_ecma_ast::*; use swc_ecma_codegen::Emitter; -use swc_ecma_parser::{Parser, Syntax}; +use swc_ecma_parser::{EsConfig, Parser, Syntax}; use swc_ecma_preset_env::{preset_env, Config, FeatureOrModule, Mode, Targets, Version}; use swc_ecma_transforms::{fixer, helpers}; use swc_ecma_utils::drop_span; @@ -182,7 +182,9 @@ fn exec(c: PresetConfig, dir: PathBuf) -> Result<(), Error> { .load_file(&dir.join("input.mjs")) .expect("failed to load file"); let mut p = Parser::new( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), StringInput::from(&*fm), None, ); @@ -225,7 +227,9 @@ fn exec(c: PresetConfig, dir: PathBuf) -> Result<(), Error> { .expect("failed to load output file"); let mut p = Parser::new( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), StringInput::from(&*fm), None, ); diff --git a/crates/swc_ecma_transforms/tests/decorators.rs b/crates/swc_ecma_transforms/tests/decorators.rs index 4390d2407c90..670ba1029c82 100644 --- a/crates/swc_ecma_transforms/tests/decorators.rs +++ b/crates/swc_ecma_transforms/tests/decorators.rs @@ -4375,7 +4375,9 @@ eval: function _eval() { test!( ts(), - |_| decorators(Default::default()), + |_| decorators(decorators::Config { + ..Default::default() + }), issue_846_1, " class SomeClass { diff --git a/crates/swc_ecma_transforms_base/tests/fixer_test262.rs b/crates/swc_ecma_transforms_base/tests/fixer_test262.rs index d8029fa1db19..078d99f7c93c 100644 --- a/crates/swc_ecma_transforms_base/tests/fixer_test262.rs +++ b/crates/swc_ecma_transforms_base/tests/fixer_test262.rs @@ -92,7 +92,7 @@ const IGNORED_PASS_TESTS: &[&str] = &[ "c06df922631aeabc.js", ]; -fn add_test Result<(), String> + Send + 'static>( +fn add_test( tests: &mut Vec, name: String, ignore: bool, @@ -107,11 +107,6 @@ fn add_test Result<(), String> + Send + 'static>( compile_fail: false, no_run: false, ignore_message: Default::default(), - end_col: 0, - end_line: 0, - start_col: 0, - start_line: 0, - source_file: "", }, testfn: DynTestFn(Box::new(f)), }); @@ -263,8 +258,6 @@ fn identity_tests(tests: &mut Vec) -> Result<(), io::Error> { Err(()) }) .expect("failed to run test"); - - Ok(()) } }); } diff --git a/crates/swc_ecma_transforms_compat/src/bugfixes/async_arrows_in_class.rs b/crates/swc_ecma_transforms_compat/src/bugfixes/async_arrows_in_class.rs index 16448d342077..ffbf56b7f7b6 100644 --- a/crates/swc_ecma_transforms_compat/src/bugfixes/async_arrows_in_class.rs +++ b/crates/swc_ecma_transforms_compat/src/bugfixes/async_arrows_in_class.rs @@ -11,6 +11,7 @@ use crate::es2015::arrow; /// instance via `this` within those methods would also throw. This is fixed by /// converting arrow functions in class methods into equivalent function /// expressions. See https://bugs.webkit.org/show_bug.cgi?id=166879 +#[tracing::instrument(level = "info", skip_all)] pub fn async_arrows_in_class(unresolved_mark: Mark) -> impl Fold { AsyncArrowsInClass { unresolved_mark, diff --git a/crates/swc_ecma_transforms_compat/src/bugfixes/edge_default_param.rs b/crates/swc_ecma_transforms_compat/src/bugfixes/edge_default_param.rs index 5c5c4d588b8d..adb8d43a5d83 100644 --- a/crates/swc_ecma_transforms_compat/src/bugfixes/edge_default_param.rs +++ b/crates/swc_ecma_transforms_compat/src/bugfixes/edge_default_param.rs @@ -6,6 +6,7 @@ use swc_trace_macro::swc_trace; /// syntax. This fixes the only arguments-related bug in ES Modules-supporting /// browsers (Edge 16 & 17). Use this plugin instead of /// @babel/plugin-transform-parameters when targeting ES Modules. +#[tracing::instrument(level = "info", skip_all)] pub fn edge_default_param() -> impl Fold + VisitMut { as_folder(EdgeDefaultParam::default()) } diff --git a/crates/swc_ecma_transforms_compat/src/bugfixes/mod.rs b/crates/swc_ecma_transforms_compat/src/bugfixes/mod.rs index 9731cf74aa18..2ae52d2db396 100644 --- a/crates/swc_ecma_transforms_compat/src/bugfixes/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/bugfixes/mod.rs @@ -12,6 +12,7 @@ mod edge_default_param; mod safari_id_destructuring_collision_in_function_expression; mod template_literal_caching; +#[tracing::instrument(level = "info", skip_all)] pub fn bugfixes(unresolved_mark: Mark) -> impl Fold { chain!( async_arrows_in_class(unresolved_mark), diff --git a/crates/swc_ecma_transforms_compat/src/bugfixes/safari_id_destructuring_collision_in_function_expression.rs b/crates/swc_ecma_transforms_compat/src/bugfixes/safari_id_destructuring_collision_in_function_expression.rs index a9006afce6fe..a2c995b61852 100644 --- a/crates/swc_ecma_transforms_compat/src/bugfixes/safari_id_destructuring_collision_in_function_expression.rs +++ b/crates/swc_ecma_transforms_compat/src/bugfixes/safari_id_destructuring_collision_in_function_expression.rs @@ -7,6 +7,7 @@ use swc_ecma_transforms_base::hygiene::rename; use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn safari_id_destructuring_collision_in_function_expression() -> impl Fold + VisitMut { as_folder(SafariIdDestructuringCollisionInFunctionExpression::default()) } diff --git a/crates/swc_ecma_transforms_compat/src/bugfixes/template_literal_caching.rs b/crates/swc_ecma_transforms_compat/src/bugfixes/template_literal_caching.rs index b58e6f69691b..1058261326e2 100644 --- a/crates/swc_ecma_transforms_compat/src/bugfixes/template_literal_caching.rs +++ b/crates/swc_ecma_transforms_compat/src/bugfixes/template_literal_caching.rs @@ -19,6 +19,7 @@ use swc_trace_macro::swc_trace; // Object``===Object`` // true, should be false. // // Benchmarks: https://jsperf.com/compiled-tagged-template-performance +#[tracing::instrument(level = "info", skip_all)] pub fn template_literal_caching() -> impl Fold { TemplateLiteralCaching::default() } diff --git a/crates/swc_ecma_transforms_compat/src/es2015/arrow.rs b/crates/swc_ecma_transforms_compat/src/es2015/arrow.rs index 6a36fda8c1fc..85a5a8682477 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/arrow.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/arrow.rs @@ -57,6 +57,7 @@ use swc_trace_macro::swc_trace; /// }; /// console.log(bob.printFriends()); /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn arrow(unresolved_mark: Mark) -> impl Fold + VisitMut + InjectVars { as_folder(Arrow { in_subclass: false, diff --git a/crates/swc_ecma_transforms_compat/src/es2015/block_scoped_fn.rs b/crates/swc_ecma_transforms_compat/src/es2015/block_scoped_fn.rs index c2fcff70bdcc..f9b8a400b2e5 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/block_scoped_fn.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/block_scoped_fn.rs @@ -4,6 +4,7 @@ use swc_ecma_utils::IdentUsageFinder; use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn block_scoped_functions() -> impl Fold + VisitMut { as_folder(BlockScopedFns) } diff --git a/crates/swc_ecma_transforms_compat/src/es2015/block_scoping/mod.rs b/crates/swc_ecma_transforms_compat/src/es2015/block_scoping/mod.rs index bcc06374d9ad..361ac3166b88 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/block_scoping/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/block_scoping/mod.rs @@ -35,6 +35,7 @@ mod vars; /// }); /// } /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn block_scoping(unresolved_mark: Mark) -> impl VisitMut + Fold { as_folder(chain!( self::vars::block_scoped_vars(), diff --git a/crates/swc_ecma_transforms_compat/src/es2015/classes/mod.rs b/crates/swc_ecma_transforms_compat/src/es2015/classes/mod.rs index 4ebb37075284..ba62eabc6e90 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/classes/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/classes/mod.rs @@ -28,6 +28,7 @@ use self::{ mod constructor; mod prop_name; +#[tracing::instrument(level = "info", skip_all)] pub fn classes(comments: Option, config: Config) -> impl Fold + VisitMut where C: Comments, diff --git a/crates/swc_ecma_transforms_compat/src/es2015/computed_props.rs b/crates/swc_ecma_transforms_compat/src/es2015/computed_props.rs index 7d3ac2b0efc3..852b59941c2e 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/computed_props.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/computed_props.rs @@ -39,6 +39,7 @@ use swc_trace_macro::swc_trace; /// /// TODO(kdy1): cache reference like (_f = f, mutatorMap[_f].get = function(){}) /// instead of (mutatorMap[f].get = function(){} +#[tracing::instrument(level = "info", skip_all)] pub fn computed_properties(c: Config) -> impl Fold { as_folder(ComputedProps { c, diff --git a/crates/swc_ecma_transforms_compat/src/es2015/destructuring.rs b/crates/swc_ecma_transforms_compat/src/es2015/destructuring.rs index 7dafa767ba41..94ffea94ac69 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/destructuring.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/destructuring.rs @@ -36,6 +36,7 @@ use swc_trace_macro::swc_trace; /// b = _arr2[1], /// rest = _arr2.slice(2); /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn destructuring(c: Config) -> impl Fold + VisitMut { as_folder(Destructuring { c }) } diff --git a/crates/swc_ecma_transforms_compat/src/es2015/for_of.rs b/crates/swc_ecma_transforms_compat/src/es2015/for_of.rs index a7c9226d722a..4eaa7c6359e3 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/for_of.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/for_of.rs @@ -49,6 +49,7 @@ use swc_trace_macro::swc_trace; /// } /// } /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn for_of(c: Config) -> impl Fold + VisitMut { as_folder(ForOf { c, diff --git a/crates/swc_ecma_transforms_compat/src/es2015/function_name.rs b/crates/swc_ecma_transforms_compat/src/es2015/function_name.rs index 85cf0d152fee..76d24714b702 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/function_name.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/function_name.rs @@ -22,6 +22,7 @@ use swc_trace_macro::swc_trace; /// } /// var Foo = (class Foo {}); /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn function_name() -> impl 'static + Copy + Fold + VisitMut { as_folder(FnName) } diff --git a/crates/swc_ecma_transforms_compat/src/es2015/generator.rs b/crates/swc_ecma_transforms_compat/src/es2015/generator.rs index b4827c12cf44..e69932d760cd 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/generator.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/generator.rs @@ -1734,7 +1734,7 @@ impl Generator { self.emit_assignment( PatOrExpr::Pat(keys_array.clone().into()), - Box::new(ArrayLit::dummy().into()), + Box::new(ArrayLit { ..Take::dummy() }.into()), None, ); diff --git a/crates/swc_ecma_transforms_compat/src/es2015/instanceof.rs b/crates/swc_ecma_transforms_compat/src/es2015/instanceof.rs index 2b7254e66280..fb5ff86bec78 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/instanceof.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/instanceof.rs @@ -30,6 +30,7 @@ use swc_trace_macro::swc_trace; /// /// _instanceof(foo, Bar); /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn instance_of() -> impl Fold + VisitMut { as_folder(InstanceOf) } diff --git a/crates/swc_ecma_transforms_compat/src/es2015/mod.rs b/crates/swc_ecma_transforms_compat/src/es2015/mod.rs index 87338354ed7d..4a29c9ead8bd 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/mod.rs @@ -33,6 +33,7 @@ mod sticky_regex; pub mod template_literal; mod typeof_symbol; +#[tracing::instrument(level = "info", skip_all)] fn exprs(unresolved_mark: Mark) -> impl Fold { chain!( arrow(unresolved_mark), @@ -52,6 +53,7 @@ fn exprs(unresolved_mark: Mark) -> impl Fold { /// Used to generate `require` calls. /// See the documentation of [regenerator](self::regenerator::regenerator) for /// more details. +#[tracing::instrument(level = "info", skip_all)] pub fn es2015(unresolved_mark: Mark, comments: Option, c: Config) -> impl Fold where C: Comments + Clone, diff --git a/crates/swc_ecma_transforms_compat/src/es2015/new_target.rs b/crates/swc_ecma_transforms_compat/src/es2015/new_target.rs index 3cadb2572241..b044f20beef7 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/new_target.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/new_target.rs @@ -9,6 +9,7 @@ use swc_ecma_visit::{ }; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn new_target() -> impl Fold + VisitMut + CompilerPass { as_folder(NewTarget { ctx: Ctx::Constructor, diff --git a/crates/swc_ecma_transforms_compat/src/es2015/object_super.rs b/crates/swc_ecma_transforms_compat/src/es2015/object_super.rs index 7ac45986e2fd..b62efb7f4aa5 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/object_super.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/object_super.rs @@ -14,6 +14,7 @@ struct ObjectSuper { extra_vars: Vec, } +#[tracing::instrument(level = "info", skip_all)] pub fn object_super() -> impl Fold + VisitMut { as_folder(ObjectSuper { extra_vars: Vec::new(), diff --git a/crates/swc_ecma_transforms_compat/src/es2015/parameters.rs b/crates/swc_ecma_transforms_compat/src/es2015/parameters.rs index b32c0ed07ecf..5b2157c83b99 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/parameters.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/parameters.rs @@ -15,6 +15,7 @@ use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWit use swc_trace_macro::swc_trace; use tracing::trace; +#[tracing::instrument(level = "info", skip_all)] pub fn parameters(c: Config, unresolved_mark: Mark) -> impl 'static + Fold { let unresolved_ctxt = SyntaxContext::empty().apply_mark(unresolved_mark); as_folder(Params { diff --git a/crates/swc_ecma_transforms_compat/src/es2015/shorthand_property.rs b/crates/swc_ecma_transforms_compat/src/es2015/shorthand_property.rs index 57882a47b0ec..5fb48804239c 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/shorthand_property.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/shorthand_property.rs @@ -39,6 +39,7 @@ use swc_trace_macro::swc_trace; /// } /// }; /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn shorthand() -> impl 'static + Fold + VisitMut { as_folder(Shorthand) } diff --git a/crates/swc_ecma_transforms_compat/src/es2015/sticky_regex.rs b/crates/swc_ecma_transforms_compat/src/es2015/sticky_regex.rs index 12d806bcbca5..1a1cb9a8b796 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/sticky_regex.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/sticky_regex.rs @@ -18,6 +18,7 @@ use swc_trace_macro::swc_trace; /// ```js /// new RegExp("o+", "y") /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn sticky_regex() -> impl 'static + Fold + VisitMut { as_folder(StickyRegex) } diff --git a/crates/swc_ecma_transforms_compat/src/es2015/template_literal.rs b/crates/swc_ecma_transforms_compat/src/es2015/template_literal.rs index 91700e96ff98..3805de9177d6 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/template_literal.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/template_literal.rs @@ -11,6 +11,7 @@ use swc_ecma_utils::{ use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn template_literal(c: Config) -> impl Fold + VisitMut { as_folder(TemplateLiteral { c, diff --git a/crates/swc_ecma_transforms_compat/src/es2015/typeof_symbol.rs b/crates/swc_ecma_transforms_compat/src/es2015/typeof_symbol.rs index 9966ab9f2516..dd9b91814181 100644 --- a/crates/swc_ecma_transforms_compat/src/es2015/typeof_symbol.rs +++ b/crates/swc_ecma_transforms_compat/src/es2015/typeof_symbol.rs @@ -6,6 +6,7 @@ use swc_ecma_utils::{quote_str, ExprFactory}; use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn typeof_symbol() -> impl VisitMut + Fold { as_folder(TypeOfSymbol) } diff --git a/crates/swc_ecma_transforms_compat/src/es2016/exponentiation.rs b/crates/swc_ecma_transforms_compat/src/es2016/exponentiation.rs index f0d985fff332..535b54725193 100644 --- a/crates/swc_ecma_transforms_compat/src/es2016/exponentiation.rs +++ b/crates/swc_ecma_transforms_compat/src/es2016/exponentiation.rs @@ -25,6 +25,7 @@ use swc_trace_macro::swc_trace; /// /// x = Math.pow(x, 3); /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn exponentiation() -> impl Fold + VisitMut { as_folder(Exponentiation::default()) } diff --git a/crates/swc_ecma_transforms_compat/src/es2016/mod.rs b/crates/swc_ecma_transforms_compat/src/es2016/mod.rs index 7657a6feaf44..c242409fa0a0 100644 --- a/crates/swc_ecma_transforms_compat/src/es2016/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2016/mod.rs @@ -4,6 +4,7 @@ pub use self::exponentiation::exponentiation; mod exponentiation; +#[tracing::instrument(level = "info", skip_all)] pub fn es2016() -> impl Fold { exponentiation() } diff --git a/crates/swc_ecma_transforms_compat/src/es2017/async_to_generator.rs b/crates/swc_ecma_transforms_compat/src/es2017/async_to_generator.rs index 34e4f1b21a75..cefe52003599 100644 --- a/crates/swc_ecma_transforms_compat/src/es2017/async_to_generator.rs +++ b/crates/swc_ecma_transforms_compat/src/es2017/async_to_generator.rs @@ -35,6 +35,7 @@ use swc_trace_macro::swc_trace; /// yield bar(); /// }); /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn async_to_generator( c: Config, comments: Option, diff --git a/crates/swc_ecma_transforms_compat/src/es2017/mod.rs b/crates/swc_ecma_transforms_compat/src/es2017/mod.rs index 0333e302adb3..846b22c0c54f 100644 --- a/crates/swc_ecma_transforms_compat/src/es2017/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2017/mod.rs @@ -6,6 +6,7 @@ pub use self::async_to_generator::async_to_generator; pub mod async_to_generator; +#[tracing::instrument(level = "info", skip_all)] pub fn es2017( c: Config, comments: Option, diff --git a/crates/swc_ecma_transforms_compat/src/es2018/mod.rs b/crates/swc_ecma_transforms_compat/src/es2018/mod.rs index cd9ffd904686..f045c118a002 100644 --- a/crates/swc_ecma_transforms_compat/src/es2018/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2018/mod.rs @@ -7,6 +7,7 @@ use crate::regexp::{self, regexp}; pub mod object_rest_spread; +#[tracing::instrument(level = "info", skip_all)] pub fn es2018(c: Config) -> impl Fold { chain!( regexp(regexp::Config { diff --git a/crates/swc_ecma_transforms_compat/src/es2018/object_rest_spread.rs b/crates/swc_ecma_transforms_compat/src/es2018/object_rest_spread.rs index 0cf74179f81d..494c46acdaa0 100644 --- a/crates/swc_ecma_transforms_compat/src/es2018/object_rest_spread.rs +++ b/crates/swc_ecma_transforms_compat/src/es2018/object_rest_spread.rs @@ -24,6 +24,7 @@ use swc_trace_macro::swc_trace; // `ignoreFunctionLength` on /// `@babel/plugin-proposal-object-rest-spread` +#[tracing::instrument(level = "info", skip_all)] pub fn object_rest_spread(config: Config) -> impl Fold + VisitMut { chain!( as_folder(ObjectRest { diff --git a/crates/swc_ecma_transforms_compat/src/es2019/mod.rs b/crates/swc_ecma_transforms_compat/src/es2019/mod.rs index 417b961cb318..50f3df329cb4 100644 --- a/crates/swc_ecma_transforms_compat/src/es2019/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2019/mod.rs @@ -4,6 +4,7 @@ pub use self::optional_catch_binding::optional_catch_binding; mod optional_catch_binding; +#[tracing::instrument(level = "info", skip_all)] pub fn es2019() -> impl Fold { optional_catch_binding() } diff --git a/crates/swc_ecma_transforms_compat/src/es2019/optional_catch_binding.rs b/crates/swc_ecma_transforms_compat/src/es2019/optional_catch_binding.rs index 4c5a4e6deeef..06963bf0f105 100644 --- a/crates/swc_ecma_transforms_compat/src/es2019/optional_catch_binding.rs +++ b/crates/swc_ecma_transforms_compat/src/es2019/optional_catch_binding.rs @@ -5,6 +5,7 @@ use swc_trace_macro::swc_trace; struct OptionalCatchBinding; +#[tracing::instrument(level = "info", skip_all)] pub fn optional_catch_binding() -> impl Fold + VisitMut { as_folder(OptionalCatchBinding) } diff --git a/crates/swc_ecma_transforms_compat/src/es2020/export_namespace_from.rs b/crates/swc_ecma_transforms_compat/src/es2020/export_namespace_from.rs index 3ca62e97c359..4d2bad290ec7 100644 --- a/crates/swc_ecma_transforms_compat/src/es2020/export_namespace_from.rs +++ b/crates/swc_ecma_transforms_compat/src/es2020/export_namespace_from.rs @@ -4,6 +4,7 @@ use swc_ecma_utils::private_ident; use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut}; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn export_namespace_from() -> impl Fold + VisitMut { as_folder(ExportNamespaceFrom) } diff --git a/crates/swc_ecma_transforms_compat/src/es2020/mod.rs b/crates/swc_ecma_transforms_compat/src/es2020/mod.rs index 8d252911ea3d..ad60b586aabe 100644 --- a/crates/swc_ecma_transforms_compat/src/es2020/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2020/mod.rs @@ -11,6 +11,7 @@ mod export_namespace_from; pub mod nullish_coalescing; pub mod opt_chaining; +#[tracing::instrument(level = "info", skip_all)] pub fn es2020(config: Config) -> impl Fold { chain!( nullish_coalescing(config.nullish_coalescing), diff --git a/crates/swc_ecma_transforms_compat/src/es2020/nullish_coalescing.rs b/crates/swc_ecma_transforms_compat/src/es2020/nullish_coalescing.rs index 533874931ece..be06b22d83bc 100644 --- a/crates/swc_ecma_transforms_compat/src/es2020/nullish_coalescing.rs +++ b/crates/swc_ecma_transforms_compat/src/es2020/nullish_coalescing.rs @@ -7,6 +7,7 @@ use swc_ecma_utils::{alias_if_required, undefined, StmtLike}; use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn nullish_coalescing(c: Config) -> impl Fold + VisitMut + 'static { as_folder(NullishCoalescing { c, diff --git a/crates/swc_ecma_transforms_compat/src/es2020/opt_chaining.rs b/crates/swc_ecma_transforms_compat/src/es2020/opt_chaining.rs index 2fa09f7b05df..59a60ce0ac3f 100644 --- a/crates/swc_ecma_transforms_compat/src/es2020/opt_chaining.rs +++ b/crates/swc_ecma_transforms_compat/src/es2020/opt_chaining.rs @@ -15,6 +15,7 @@ use swc_ecma_visit::{ }; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn optional_chaining(c: Config) -> impl Fold + VisitMut { as_folder(OptChaining { c, diff --git a/crates/swc_ecma_transforms_compat/src/es2021/logical_assignments.rs b/crates/swc_ecma_transforms_compat/src/es2021/logical_assignments.rs index 0f4f19fcfd0a..bdcc8d38606a 100644 --- a/crates/swc_ecma_transforms_compat/src/es2021/logical_assignments.rs +++ b/crates/swc_ecma_transforms_compat/src/es2021/logical_assignments.rs @@ -5,6 +5,7 @@ use swc_ecma_utils::{alias_ident_for, prepend_stmt}; use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}; use swc_trace_macro::swc_trace; +#[tracing::instrument(level = "info", skip_all)] pub fn logical_assignments() -> impl Fold + VisitMut { as_folder(Operators::default()) } diff --git a/crates/swc_ecma_transforms_compat/src/es2021/mod.rs b/crates/swc_ecma_transforms_compat/src/es2021/mod.rs index 5c7cb4944659..7c03337b5278 100644 --- a/crates/swc_ecma_transforms_compat/src/es2021/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2021/mod.rs @@ -4,6 +4,7 @@ pub use self::logical_assignments::logical_assignments; mod logical_assignments; +#[tracing::instrument(level = "info", skip_all)] pub fn es2021() -> impl Fold + VisitMut { logical_assignments() } diff --git a/crates/swc_ecma_transforms_compat/src/es2022/class_properties/mod.rs b/crates/swc_ecma_transforms_compat/src/es2022/class_properties/mod.rs index 3953e32ae4de..25eab987e224 100644 --- a/crates/swc_ecma_transforms_compat/src/es2022/class_properties/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2022/class_properties/mod.rs @@ -43,6 +43,7 @@ mod used_name; /// # Impl note /// /// We use custom helper to handle export default class +#[tracing::instrument(level = "info", skip_all)] pub fn class_properties(cm: Option, config: Config) -> impl Fold + VisitMut { as_folder(ClassProperties { c: config, diff --git a/crates/swc_ecma_transforms_compat/src/es2022/mod.rs b/crates/swc_ecma_transforms_compat/src/es2022/mod.rs index 460ba18de3d0..063217f3b83f 100644 --- a/crates/swc_ecma_transforms_compat/src/es2022/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es2022/mod.rs @@ -11,6 +11,7 @@ pub mod class_properties; pub mod private_in_object; pub mod static_blocks; +#[tracing::instrument(level = "info", skip_all)] pub fn es2022(cm: Option, config: Config) -> impl Fold { chain!( regexp(regexp::Config { diff --git a/crates/swc_ecma_transforms_compat/src/es2022/static_blocks.rs b/crates/swc_ecma_transforms_compat/src/es2022/static_blocks.rs index 5a35cbbf4f67..d47a7d500ee7 100644 --- a/crates/swc_ecma_transforms_compat/src/es2022/static_blocks.rs +++ b/crates/swc_ecma_transforms_compat/src/es2022/static_blocks.rs @@ -9,6 +9,7 @@ struct ClassStaticBlock { mark: Mark, } +#[tracing::instrument(level = "info", skip_all)] pub fn static_blocks(mark: Mark) -> impl Fold + VisitMut { as_folder(ClassStaticBlock { mark }) } diff --git a/crates/swc_ecma_transforms_compat/src/es3/member_expr_lits.rs b/crates/swc_ecma_transforms_compat/src/es3/member_expr_lits.rs index 6de3f73ca553..8a21c368e1e4 100644 --- a/crates/swc_ecma_transforms_compat/src/es3/member_expr_lits.rs +++ b/crates/swc_ecma_transforms_compat/src/es3/member_expr_lits.rs @@ -20,6 +20,7 @@ use swc_trace_macro::swc_trace; /// obj["const"] = "isKeyword"; /// obj["var"] = "isKeyword"; /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn member_expression_literals() -> impl Fold { MemberExprLit } diff --git a/crates/swc_ecma_transforms_compat/src/es3/mod.rs b/crates/swc_ecma_transforms_compat/src/es3/mod.rs index c8556f53aad9..d69fb2f59171 100644 --- a/crates/swc_ecma_transforms_compat/src/es3/mod.rs +++ b/crates/swc_ecma_transforms_compat/src/es3/mod.rs @@ -11,6 +11,7 @@ mod prop_lits; mod reserved_word; /// Make output es3-compatible. +#[tracing::instrument(level = "info", skip_all)] pub fn es3(preserve_import: bool) -> impl Fold { chain!( property_literals(), diff --git a/crates/swc_ecma_transforms_compat/src/es3/prop_lits.rs b/crates/swc_ecma_transforms_compat/src/es3/prop_lits.rs index 1b899ecca7cf..f302f8661f05 100644 --- a/crates/swc_ecma_transforms_compat/src/es3/prop_lits.rs +++ b/crates/swc_ecma_transforms_compat/src/es3/prop_lits.rs @@ -30,6 +30,7 @@ use swc_trace_macro::swc_trace; /// foo: 1 /// }; /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn property_literals() -> impl Fold { PropertyLiteral } diff --git a/crates/swc_ecma_transforms_compat/src/es3/reserved_word.rs b/crates/swc_ecma_transforms_compat/src/es3/reserved_word.rs index 2673292d0ab6..bf7a52d2d524 100644 --- a/crates/swc_ecma_transforms_compat/src/es3/reserved_word.rs +++ b/crates/swc_ecma_transforms_compat/src/es3/reserved_word.rs @@ -19,6 +19,7 @@ use swc_trace_macro::swc_trace; /// var _abstract = 1; /// var x = _abstract + 1; /// ``` +#[tracing::instrument(level = "info", skip_all)] pub fn reserved_words(preserve_import: bool) -> impl Fold { ReservedWord { preserve_import } } diff --git a/crates/swc_ecma_transforms_compat/tests/class_fields_use_set.rs b/crates/swc_ecma_transforms_compat/tests/class_fields_use_set.rs index 373c7eec17b8..55a74d27db8a 100644 --- a/crates/swc_ecma_transforms_compat/tests/class_fields_use_set.rs +++ b/crates/swc_ecma_transforms_compat/tests/class_fields_use_set.rs @@ -1,6 +1,6 @@ use std::path::PathBuf; -use swc_ecma_parser::Syntax; +use swc_ecma_parser::{EsConfig, Syntax}; use swc_ecma_transforms_compat::class_fields_use_set::class_fields_use_set; use swc_ecma_transforms_testing::test_fixture; @@ -10,7 +10,9 @@ fn fixture(input: PathBuf) { let output = parent.join("output.js"); test_fixture( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), &|_| class_fields_use_set(true), &input, &output, diff --git a/crates/swc_ecma_transforms_compat/tests/es2015_block_scoping.rs b/crates/swc_ecma_transforms_compat/tests/es2015_block_scoping.rs index 23c926a4be4a..41b7d1072418 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2015_block_scoping.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2015_block_scoping.rs @@ -279,7 +279,13 @@ test_exec!( ::swc_ecma_parser::Syntax::default(), |Tester { comments, .. }| { let mark = Mark::fresh(Mark::root()); - es2015::es2015(mark, Some(comments.clone()), Default::default()) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) }, issue_723_2, "function foo() { @@ -303,7 +309,13 @@ test!( Syntax::default(), |Tester { comments, .. }| { let mark = Mark::fresh(Mark::root()); - es2015::es2015(mark, Some(comments.clone()), Default::default()) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) }, issue_1022_1, " @@ -328,7 +340,13 @@ test!( Syntax::default(), |Tester { comments, .. }| { let mark = Mark::fresh(Mark::root()); - es2015::es2015(mark, Some(comments.clone()), Default::default()) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) }, issue_1022_2, " @@ -355,7 +373,13 @@ test!( Syntax::default(), |Tester { comments, .. }| { let mark = Mark::fresh(Mark::root()); - es2015::es2015(mark, Some(comments.clone()), Default::default()) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) }, issue_1022_3, " @@ -385,7 +409,13 @@ test!( Syntax::default(), |Tester { comments, .. }| { let mark = Mark::fresh(Mark::root()); - es2015::es2015(mark, Some(comments.clone()), Default::default()) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) }, issue_1021_1, " @@ -423,7 +453,13 @@ test!( Syntax::default(), |Tester { comments, .. }| { let mark = Mark::fresh(Mark::root()); - es2015::es2015(mark, Some(comments.clone()), Default::default()) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) }, issue_1036_1, " @@ -461,7 +497,13 @@ test!( let mark = Mark::fresh(Mark::root()); chain!( async_to_generator::(Default::default(), None, mark), - es2015::es2015(mark, Some(comments.clone()), Default::default(),) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) ) }, issue_1036_2, @@ -530,7 +572,13 @@ test_exec!( let mark = Mark::fresh(Mark::root()); chain!( async_to_generator(Default::default(), Some(comments.clone()), mark), - es2015::es2015(mark, Some(comments.clone()), Default::default(),) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) ) }, issue_1036_3, @@ -677,7 +725,13 @@ test!( let mark = Mark::new(); chain!( resolver(mark, Mark::new(), false), - es2015::es2015(mark, Some(comments.clone()), Default::default(),) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) ) }, arguments_loop, @@ -705,7 +759,13 @@ test!( ::swc_ecma_parser::Syntax::default(), |Tester { comments, .. }| { let mark = Mark::fresh(Mark::root()); - es2015::es2015(mark, Some(comments.clone()), Default::default()) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) }, arguments_loop_member, " @@ -734,7 +794,13 @@ compare_stdout!( let mark = Mark::fresh(Mark::root()); chain!( resolver(mark, Mark::new(), false), - es2015::es2015(mark, Some(comments.clone()), Default::default(),) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) ) }, arguments_arrow, @@ -753,7 +819,13 @@ test!( ::swc_ecma_parser::Syntax::default(), |Tester { comments, .. }| { let mark = Mark::fresh(Mark::root()); - es2015::es2015(mark, Some(comments.clone()), Default::default()) + es2015::es2015( + mark, + Some(comments.clone()), + es2015::Config { + ..Default::default() + }, + ) }, arguments_function, " @@ -1013,7 +1085,7 @@ expect(expected).toEqual([10,10,10,10,10]); #[testing::fixture("tests/block-scoping/**/exec.js")] fn exec(input: PathBuf) { - let input = read_to_string(input).unwrap(); + let input = read_to_string(&input).unwrap(); compare_stdout( Default::default(), |_| { diff --git a/crates/swc_ecma_transforms_compat/tests/es2015_classes.rs b/crates/swc_ecma_transforms_compat/tests/es2015_classes.rs index 517e84597d64..eb1fa6b68c77 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2015_classes.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2015_classes.rs @@ -25,7 +25,9 @@ fn spec_tr(tester: &Tester) -> impl Fold { chain!( resolver(unresolved_mark, Mark::new(), false), classes(Some(tester.comments.clone()), Default::default()), - spread(Default::default()), + spread(spread::Config { + ..Default::default() + }), block_scoping(unresolved_mark), ) } @@ -6546,7 +6548,9 @@ test!( es2015::es2015( unresolved_mark, Some(t.comments.clone()), - Default::default() + es2015::Config { + ..Default::default() + } ), ) }, @@ -6579,7 +6583,13 @@ test!( chain!( class_properties(Some(t.comments.clone()), Default::default()), - es2015::es2015(global_mark, Some(t.comments.clone()), Default::default()), + es2015::es2015( + global_mark, + Some(t.comments.clone()), + es2015::Config { + ..Default::default() + } + ), ) }, issue_1660_5, @@ -6656,7 +6666,13 @@ test!( chain!( class_properties(Some(t.comments.clone()), Default::default()), - es2015::es2015(global_mark, Some(t.comments.clone()), Default::default()), + es2015::es2015( + global_mark, + Some(t.comments.clone()), + es2015::Config { + ..Default::default() + } + ), ) }, issue_1959_1, @@ -6697,7 +6713,13 @@ test!( chain!( class_properties(Some(t.comments.clone()), Default::default()), - es2015::es2015(global_mark, Some(t.comments.clone()), Default::default()), + es2015::es2015( + global_mark, + Some(t.comments.clone()), + es2015::Config { + ..Default::default() + } + ), ) }, issue_1959_2, @@ -6733,7 +6755,7 @@ var Extended = function(Base) { #[testing::fixture("tests/classes/**/exec.js")] fn exec(input: PathBuf) { - let src = read_to_string(input).unwrap(); + let src = read_to_string(&input).unwrap(); compare_stdout( Default::default(), |t| { diff --git a/crates/swc_ecma_transforms_compat/tests/es2015_destructuring.rs b/crates/swc_ecma_transforms_compat/tests/es2015_destructuring.rs index 03249545b7e7..481e8d3b6e50 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2015_destructuring.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2015_destructuring.rs @@ -1737,7 +1737,9 @@ test!( syntax(), |_| chain!( destructuring(Config { loose: true }), - spread(Default::default()), + spread(spread::Config { + ..Default::default() + }), block_scoping(Mark::new()), object_rest_spread(Default::default()) ), @@ -1922,7 +1924,9 @@ for(ref in obj){ test!( syntax(), |_| chain!( - spread(Default::default()), + spread(spread::Config { + ..Default::default() + }), destructuring(Config { loose: true }), block_scoping(Mark::new()), object_rest_spread(Default::default()), diff --git a/crates/swc_ecma_transforms_compat/tests/es2015_for_of.rs b/crates/swc_ecma_transforms_compat/tests/es2015_for_of.rs index d1fb504b3acc..c302b7084819 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2015_for_of.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2015_for_of.rs @@ -7,7 +7,9 @@ use swc_ecma_transforms_compat::es2015::{ self, for_of::{for_of, Config}, }; -use swc_ecma_transforms_testing::{compare_stdout, test, test_exec, test_fixture}; +use swc_ecma_transforms_testing::{ + compare_stdout, test, test_exec, test_fixture, FixtureTestConfig, +}; fn syntax() -> Syntax { Default::default() @@ -373,7 +375,9 @@ for(let _i = 0; _i < array.length; _i++){ // regression_scope_9696 test_exec!( syntax(), - |_| for_of(Default::default()), + |_| for_of(Config { + ..Default::default() + }), regression_scope_9696_exec, r#" var arr = [1, 2, 3]; @@ -475,7 +479,9 @@ for(let _i = 0; _i < array.length; _i++){ // regression_label_object_with_comment_4995 test!( syntax(), - |_| for_of(Default::default()), + |_| for_of(Config { + ..Default::default() + }), regression_label_object_with_comment_4995, r#" myLabel: //woops @@ -575,7 +581,9 @@ fn fixture(input: PathBuf) { }, &input, &output, - Default::default(), + FixtureTestConfig { + ..Default::default() + }, ); } diff --git a/crates/swc_ecma_transforms_compat/tests/es2017_async_to_generator.rs b/crates/swc_ecma_transforms_compat/tests/es2017_async_to_generator.rs index 46e4a39c6c59..f814deb42eac 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2017_async_to_generator.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2017_async_to_generator.rs @@ -3605,7 +3605,7 @@ test!( #[testing::fixture("tests/async-to-generator/**/exec.js")] fn exec(input: PathBuf) { - let input = read_to_string(input).unwrap(); + let input = read_to_string(&input).unwrap(); compare_stdout( Default::default(), |t| { @@ -3628,7 +3628,7 @@ fn exec(input: PathBuf) { #[testing::fixture("tests/async-to-generator/**/exec.js")] fn exec_regenerator(input: PathBuf) { - let input = read_to_string(input).unwrap(); + let input = read_to_string(&input).unwrap(); compare_stdout( Default::default(), |t| { diff --git a/crates/swc_ecma_transforms_compat/tests/es2018_object_rest_spread.rs b/crates/swc_ecma_transforms_compat/tests/es2018_object_rest_spread.rs index fe5da12e29f3..950b62555938 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2018_object_rest_spread.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2018_object_rest_spread.rs @@ -243,7 +243,12 @@ export var [dd, ee] = ads; test!( syntax(), - |_| chain!(tr(Default::default()), spread(Default::default())), + |_| chain!( + tr(Default::default()), + spread(spread::Config { + ..Default::default() + }) + ), rest_for_x, r#" // ForXStatement diff --git a/crates/swc_ecma_transforms_compat/tests/es2020_nullish_coalescing.rs b/crates/swc_ecma_transforms_compat/tests/es2020_nullish_coalescing.rs index ec7a530f2c3a..ea46fd43b757 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2020_nullish_coalescing.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2020_nullish_coalescing.rs @@ -1,4 +1,4 @@ -use swc_ecma_parser::Syntax; +use swc_ecma_parser::{EsConfig, Syntax}; use swc_ecma_transforms_compat::es2020::nullish_coalescing::{nullish_coalescing, Config}; use swc_ecma_transforms_testing::{test, test_exec}; use swc_ecma_visit::Fold; @@ -8,7 +8,9 @@ fn tr(c: Config) -> impl Fold { } fn syntax() -> Syntax { - Syntax::Es(Default::default()) + Syntax::Es(EsConfig { + ..Default::default() + }) } test_exec!( diff --git a/crates/swc_ecma_transforms_compat/tests/es2020_optional_chaining.rs b/crates/swc_ecma_transforms_compat/tests/es2020_optional_chaining.rs index 8566ad1d727b..9bed1e695c5a 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2020_optional_chaining.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2020_optional_chaining.rs @@ -1,6 +1,6 @@ use std::{fs::read_to_string, path::PathBuf}; -use swc_ecma_parser::Syntax; +use swc_ecma_parser::{Syntax, TsConfig}; use swc_ecma_transforms_compat::es2020::{opt_chaining::Config, optional_chaining}; use swc_ecma_transforms_testing::{compare_stdout, test, test_exec}; use swc_ecma_visit::Fold; @@ -10,7 +10,9 @@ fn tr(c: Config) -> impl Fold { } fn syntax() -> Syntax { - Syntax::Typescript(Default::default()) + Syntax::Typescript(TsConfig { + ..Default::default() + }) } // general_memoize_loose @@ -1019,7 +1021,7 @@ class Foo { #[testing::fixture("tests/opt-chain/**/exec.js")] fn exec(input: PathBuf) { - let src = read_to_string(input).unwrap(); + let src = read_to_string(&input).unwrap(); compare_stdout( Default::default(), diff --git a/crates/swc_ecma_transforms_compat/tests/es2021_logcal_assignments.rs b/crates/swc_ecma_transforms_compat/tests/es2021_logcal_assignments.rs index f2f573e99b9a..6efe48e9df15 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2021_logcal_assignments.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2021_logcal_assignments.rs @@ -1,4 +1,4 @@ -use swc_ecma_parser::Syntax; +use swc_ecma_parser::{Syntax, TsConfig}; use swc_ecma_transforms_compat::es2021; use swc_ecma_transforms_testing::{test, test_exec}; use swc_ecma_visit::Fold; @@ -8,7 +8,9 @@ fn tr() -> impl Fold { } fn syntax() -> Syntax { - Syntax::Typescript(Default::default()) + Syntax::Typescript(TsConfig { + ..Default::default() + }) } test!( diff --git a/crates/swc_ecma_transforms_compat/tests/es2022_class_properties.rs b/crates/swc_ecma_transforms_compat/tests/es2022_class_properties.rs index 4134a1d4c65d..b8e944e99388 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2022_class_properties.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2022_class_properties.rs @@ -3,7 +3,7 @@ use std::{fs::read_to_string, path::PathBuf}; use swc_common::{chain, Mark}; -use swc_ecma_parser::Syntax; +use swc_ecma_parser::{EsConfig, Syntax}; use swc_ecma_transforms_base::resolver; use swc_ecma_transforms_compat::{ es2015::{arrow, block_scoping, classes, function_name, template_literal}, @@ -16,7 +16,9 @@ use swc_ecma_transforms_testing::{compare_stdout, test, test_exec, Tester}; use swc_ecma_visit::Fold; fn syntax() -> Syntax { - Syntax::Es(Default::default()) + Syntax::Es(EsConfig { + ..Default::default() + }) } fn tr(t: &Tester) -> impl Fold { @@ -6643,7 +6645,7 @@ function set_privateFieldValue(newValue) { #[testing::fixture("tests/classes/**/exec.js")] fn exec(input: PathBuf) { - let src = read_to_string(input).unwrap(); + let src = read_to_string(&input).unwrap(); compare_stdout( Default::default(), |t| class_properties(Some(t.comments.clone()), Default::default()), diff --git a/crates/swc_ecma_transforms_compat/tests/es2022_private_in_object.rs b/crates/swc_ecma_transforms_compat/tests/es2022_private_in_object.rs index 5374e5f04580..99c3cdec1cda 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2022_private_in_object.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2022_private_in_object.rs @@ -7,7 +7,7 @@ use swc_ecma_transforms_compat::{ es2015::classes, es2022::{class_properties, private_in_object}, }; -use swc_ecma_transforms_testing::{parse_options, test_fixture}; +use swc_ecma_transforms_testing::{parse_options, test_fixture, FixtureTestConfig}; use swc_ecma_visit::Fold; #[derive(Debug, Clone, Deserialize)] @@ -105,6 +105,8 @@ fn fixture(input: PathBuf) { }, &input, &output, - Default::default(), + FixtureTestConfig { + ..Default::default() + }, ) } diff --git a/crates/swc_ecma_transforms_compat/tests/es2022_static_blocks.rs b/crates/swc_ecma_transforms_compat/tests/es2022_static_blocks.rs index a0bde2dd3563..31d8569e878f 100644 --- a/crates/swc_ecma_transforms_compat/tests/es2022_static_blocks.rs +++ b/crates/swc_ecma_transforms_compat/tests/es2022_static_blocks.rs @@ -1,7 +1,7 @@ use std::path::PathBuf; use swc_common::chain; -use swc_ecma_parser::Syntax; +use swc_ecma_parser::{EsConfig, Syntax}; use swc_ecma_transforms_compat::es2022::{class_properties, static_blocks}; use swc_ecma_transforms_testing::test_fixture; use swc_ecma_visit::Fold; @@ -12,7 +12,9 @@ fn fixture(input: PathBuf) { let output = parent.join("output.js"); test_fixture( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), &|t| { let config = class_properties::Config::default(); let pass: Box = if input.to_string_lossy().contains("class-properties") { diff --git a/crates/swc_ecma_transforms_module/tests/system_js.rs b/crates/swc_ecma_transforms_module/tests/system_js.rs index 2d4cc2cde3d5..8ba9048585e0 100644 --- a/crates/swc_ecma_transforms_module/tests/system_js.rs +++ b/crates/swc_ecma_transforms_module/tests/system_js.rs @@ -3,14 +3,16 @@ use std::path::PathBuf; use swc_common::{chain, Mark}; -use swc_ecma_parser::Syntax; +use swc_ecma_parser::{EsConfig, Syntax}; use swc_ecma_transforms_base::resolver; use swc_ecma_transforms_module::system_js::{system_js, Config}; use swc_ecma_transforms_testing::{test, test_fixture, Tester}; use swc_ecma_visit::Fold; fn syntax() -> Syntax { - Syntax::Es(Default::default()) + Syntax::Es(EsConfig { + ..Default::default() + }) } fn tr(_tester: &mut Tester<'_>, config: Config) -> impl Fold { @@ -142,7 +144,12 @@ test!( test!( syntax(), - |tester| tr(tester, Default::default()), + |tester| tr( + tester, + Config { + ..Default::default() + } + ), imports, r#" import.meta.url; @@ -174,7 +181,14 @@ fn fixture(input: PathBuf) { test_fixture( syntax(), - &|tester| tr(tester, Default::default()), + &|tester| { + tr( + tester, + Config { + ..Default::default() + }, + ) + }, &input, &output, Default::default(), diff --git a/crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs b/crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs index a3ca46fe5653..de013aa9d7e4 100644 --- a/crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs +++ b/crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs @@ -1074,7 +1074,7 @@ impl VisitMut for Remover { } } - s.into() + SwitchStmt { ..s }.into() } Stmt::For(s) diff --git a/crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs b/crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs index 05fb002617cd..d74955f0263c 100644 --- a/crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs +++ b/crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs @@ -861,7 +861,9 @@ impl VisitMut for TreeShaker { self.bindings = Arc::new(collect_decls(&*m)) } - let mut data = Default::default(); + let mut data = Data { + ..Default::default() + }; { let mut analyzer = Analyzer { @@ -889,7 +891,9 @@ impl VisitMut for TreeShaker { self.bindings = Arc::new(collect_decls(&*m)) } - let mut data = Default::default(); + let mut data = Data { + ..Default::default() + }; { let mut analyzer = Analyzer { diff --git a/crates/swc_ecma_transforms_optimization/tests/fixture.rs b/crates/swc_ecma_transforms_optimization/tests/fixture.rs index 925fbc966b98..5af350a7080d 100644 --- a/crates/swc_ecma_transforms_optimization/tests/fixture.rs +++ b/crates/swc_ecma_transforms_optimization/tests/fixture.rs @@ -76,7 +76,9 @@ fn expr(input: PathBuf) { let output = input.with_file_name("output.js"); test_fixture( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), &|t| { let top_level_mark = Mark::fresh(Mark::root()); diff --git a/crates/swc_ecma_transforms_optimization/tests/simplify.rs b/crates/swc_ecma_transforms_optimization/tests/simplify.rs index 7a5c72b5198c..b6280e2b1913 100644 --- a/crates/swc_ecma_transforms_optimization/tests/simplify.rs +++ b/crates/swc_ecma_transforms_optimization/tests/simplify.rs @@ -3,7 +3,7 @@ #![deny(warnings)] use swc_common::{chain, pass::Repeat, Mark}; -use swc_ecma_parser::{Syntax, TsConfig}; +use swc_ecma_parser::{EsConfig, Syntax, TsConfig}; use swc_ecma_transforms_base::{helpers::inject_helpers, resolver}; use swc_ecma_transforms_compat::{es2015, es2016, es2017, es2018, es2022::class_properties, es3}; use swc_ecma_transforms_module::{common_js::common_js, import_analysis::import_analyzer}; @@ -574,7 +574,9 @@ test!( ); test!( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), |t| { let unresolved_mark = Mark::new(); let top_level_mark = Mark::new(); diff --git a/crates/swc_ecma_transforms_proposal/tests/export.rs b/crates/swc_ecma_transforms_proposal/tests/export.rs index 9dd61a720872..fab50e4cccf6 100644 --- a/crates/swc_ecma_transforms_proposal/tests/export.rs +++ b/crates/swc_ecma_transforms_proposal/tests/export.rs @@ -12,7 +12,9 @@ fn syntax_default() -> Syntax { }) } fn syntax_namespace() -> Syntax { - Syntax::Es(Default::default()) + Syntax::Es(EsConfig { + ..Default::default() + }) } fn tr() -> impl Fold { diff --git a/crates/swc_ecma_transforms_react/src/jsx/tests.rs b/crates/swc_ecma_transforms_react/src/jsx/tests.rs index 94aeb4c22cc3..56cf2899a411 100644 --- a/crates/swc_ecma_transforms_react/src/jsx/tests.rs +++ b/crates/swc_ecma_transforms_react/src/jsx/tests.rs @@ -1169,7 +1169,13 @@ test!( jsx: true, ..Default::default() }), - |t| tr(t, Default::default(), Mark::fresh(Mark::root())), + |t| tr( + t, + Options { + ..Default::default() + }, + Mark::fresh(Mark::root()) + ), use_builtins_assignment, r#"var div = "#, r#" @@ -1184,7 +1190,13 @@ test!( jsx: true, ..Default::default() }), - |t| tr(t, Default::default(), Mark::fresh(Mark::root())), + |t| tr( + t, + Options { + ..Default::default() + }, + Mark::fresh(Mark::root()) + ), use_spread_assignment, r#""#, r#" @@ -1196,7 +1208,13 @@ test!( jsx: true, ..Default::default() }), - |t| tr(t, Default::default(), Mark::fresh(Mark::root())), + |t| tr( + t, + Options { + ..Default::default() + }, + Mark::fresh(Mark::root()) + ), issue_229, "const a = <>test const b =
test
", @@ -1212,7 +1230,13 @@ test!( |t| { let top_level_mark = Mark::fresh(Mark::root()); chain!( - tr(t, Default::default(), top_level_mark), + tr( + t, + Options { + ..Default::default() + }, + top_level_mark + ), common_js( top_level_mark, Default::default(), @@ -1238,7 +1262,13 @@ test!( jsx: true, ..Default::default() }), - |t| tr(t, Default::default(), Mark::fresh(Mark::root())), + |t| tr( + t, + Options { + ..Default::default() + }, + Mark::fresh(Mark::root()) + ), issue_481, " {foo};", "React.createElement(\"span\", null, \" \", foo);" @@ -1253,7 +1283,13 @@ test!( |t| { let top_level_mark = Mark::fresh(Mark::root()); chain!( - tr(t, Default::default(), top_level_mark), + tr( + t, + Options { + ..Default::default() + }, + top_level_mark + ), common_js( Mark::fresh(Mark::root()), Default::default(), @@ -1288,7 +1324,13 @@ test!( jsx: true, ..Default::default() }), - |t| tr(t, Default::default(), Mark::fresh(Mark::root())), + |t| tr( + t, + Options { + ..Default::default() + }, + Mark::fresh(Mark::root()) + ), issue_542, "let page =

Click New melody listen to a randomly generated melody

", "let page = React.createElement(\"p\", null, \"Click \", React.createElement(\"em\", null, \ diff --git a/crates/swc_ecma_transforms_testing/tests/visited.rs b/crates/swc_ecma_transforms_testing/tests/visited.rs index e50cab2b8a89..9aa8892209e7 100644 --- a/crates/swc_ecma_transforms_testing/tests/visited.rs +++ b/crates/swc_ecma_transforms_testing/tests/visited.rs @@ -14,7 +14,7 @@ impl Fold for Panicking { panic!("visited: {}", sym) } - node + JSXOpeningElement { ..node } } } diff --git a/crates/swc_ecma_transforms_typescript/benches/compat.rs b/crates/swc_ecma_transforms_typescript/benches/compat.rs index 9b4e2ca9e7cd..0767dfd1ecbd 100644 --- a/crates/swc_ecma_transforms_typescript/benches/compat.rs +++ b/crates/swc_ecma_transforms_typescript/benches/compat.rs @@ -286,7 +286,11 @@ fn es2015_shorthand_property(b: &mut Bencher) { fn es2015_spread(b: &mut Bencher) { run(b, || { - swc_ecma_transforms_compat::es2015::spread(Default::default()) + swc_ecma_transforms_compat::es2015::spread( + swc_ecma_transforms_compat::es2015::spread::Config { + ..Default::default() + }, + ) }); } diff --git a/crates/swc_ecma_transforms_typescript/src/strip.rs b/crates/swc_ecma_transforms_typescript/src/strip.rs index e5b82cbd48ee..a9fb6cb7d54c 100644 --- a/crates/swc_ecma_transforms_typescript/src/strip.rs +++ b/crates/swc_ecma_transforms_typescript/src/strip.rs @@ -1253,7 +1253,9 @@ where continue; } - stmts.push(ModuleItem::ModuleDecl(ModuleDecl::ExportNamed(export))) + stmts.push(ModuleItem::ModuleDecl(ModuleDecl::ExportNamed( + NamedExport { ..export }, + ))) } // handle TS namespace child exports @@ -2411,7 +2413,9 @@ where continue; } - stmts.push(ModuleItem::ModuleDecl(ModuleDecl::ExportNamed(export))) + stmts.push(ModuleItem::ModuleDecl(ModuleDecl::ExportNamed( + NamedExport { ..export }, + ))) } _ => { diff --git a/crates/swc_ecma_transforms_typescript/tests/strip.rs b/crates/swc_ecma_transforms_typescript/tests/strip.rs index ab6c4fb24f5a..9dcbc1facbe9 100644 --- a/crates/swc_ecma_transforms_typescript/tests/strip.rs +++ b/crates/swc_ecma_transforms_typescript/tests/strip.rs @@ -3101,7 +3101,9 @@ test!( ); test!( - Syntax::Typescript(Default::default()), + Syntax::Typescript(TsConfig { + ..Default::default() + }), |_| { let unresolved_mark = Mark::new(); let top_level_mark = Mark::new(); @@ -3157,7 +3159,9 @@ test!( ); test!( - Syntax::Typescript(Default::default()), + Syntax::Typescript(TsConfig { + ..Default::default() + }), |_| chain!(tr(), nullish_coalescing(Default::default())), issue_1123_1, r#" @@ -3207,7 +3211,9 @@ test!( // compile_to_class_constructor_collision_ignores_types test!( - Syntax::Typescript(Default::default()), + Syntax::Typescript(TsConfig { + ..Default::default() + }), |_| tr_config( Some(strip::Config { no_empty_export: true, @@ -4499,7 +4505,9 @@ test!( test_with_config!( issue_6023, - Default::default(), + strip::Config { + ..Default::default() + }, " abstract class Shape { abstract height: number; diff --git a/crates/swc_error_reporters/examples/swc_try.rs b/crates/swc_error_reporters/examples/swc_try.rs index 57b14a44b094..c0345a044693 100644 --- a/crates/swc_error_reporters/examples/swc_try.rs +++ b/crates/swc_error_reporters/examples/swc_try.rs @@ -11,7 +11,7 @@ use swc_error_reporters::{GraphicalReportHandler, PrettyEmitter, PrettyEmitterCo fn main() { let cm = Lrc::::default(); - let wr = Box::::default(); + let wr = Box::new(LockedWriter::default()); let emitter = PrettyEmitter::new( cm.clone(), diff --git a/crates/swc_estree_compat/tests/convert.rs b/crates/swc_estree_compat/tests/convert.rs index 0d79dbff759a..5daa6189c37b 100644 --- a/crates/swc_estree_compat/tests/convert.rs +++ b/crates/swc_estree_compat/tests/convert.rs @@ -74,11 +74,6 @@ fn fixtures() -> Result<(), Error> { compile_fail: false, no_run: false, ignore_message: Default::default(), - end_col: 0, - end_line: 0, - source_file: "", - start_col: 0, - start_line: 0, }, testfn: DynTestFn(Box::alloc().init(move || { GLOBALS.set(&Default::default(), || { @@ -90,11 +85,11 @@ fn fixtures() -> Result<(), Error> { ..Default::default() }) } else { - Syntax::Es(Default::default()) + Syntax::Es(EsConfig { + ..Default::default() + }) }; run_test(input, output, syntax, is_module); - - Ok(()) }) })), }) diff --git a/crates/swc_estree_compat/tests/flavor.rs b/crates/swc_estree_compat/tests/flavor.rs index 99cb36fa96de..efb1fa11bf32 100644 --- a/crates/swc_estree_compat/tests/flavor.rs +++ b/crates/swc_estree_compat/tests/flavor.rs @@ -7,7 +7,7 @@ use anyhow::Context; use serde_json::{Number, Value}; use swc::SwcComments; use swc_ecma_ast::EsVersion; -use swc_ecma_parser::{lexer::Lexer, Parser, StringInput, Syntax}; +use swc_ecma_parser::{lexer::Lexer, EsConfig, Parser, StringInput, Syntax}; use swc_estree_ast::flavor::Flavor; use swc_estree_compat::babelify::Babelify; use testing::{assert_eq, json::diff_json_value, DebugUsingDisplay, NormalizedOutput}; @@ -17,7 +17,9 @@ fn assert_flavor(flavor: Flavor, input: &Path, output_json_path: &Path) { let fm = cm.load_file(input).unwrap(); let lexer = Lexer::new( - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), EsVersion::latest(), StringInput::from(&*fm), None, diff --git a/crates/swc_html_ast/Cargo.toml b/crates/swc_html_ast/Cargo.toml index eb820b35a832..35bf6c3253dc 100644 --- a/crates/swc_html_ast/Cargo.toml +++ b/crates/swc_html_ast/Cargo.toml @@ -23,7 +23,7 @@ serde-impl = ["serde"] [dependencies] bytecheck = { version = "0.6.9", optional = true } is-macro = "0.2.0" -rkyv = { version = "=0.7.40", optional = true } +rkyv = { version = "=0.7.37", optional = true } serde = { version = "1.0.127", features = ["derive"], optional = true } string_enum = { version = "0.4.0", path = "../string_enum/" } diff --git a/crates/swc_html_minifier/benches/full.rs b/crates/swc_html_minifier/benches/full.rs index 02500a1c0ed5..bac18abae4ab 100644 --- a/crates/swc_html_minifier/benches/full.rs +++ b/crates/swc_html_minifier/benches/full.rs @@ -5,9 +5,14 @@ use std::{fs::read_to_string, path::Path}; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use swc_common::{errors::HANDLER, FileName}; use swc_html_ast::{Document, DocumentFragment, DocumentMode, Element, Namespace}; -use swc_html_codegen::{writer::basic::BasicHtmlWriter, Emit}; +use swc_html_codegen::{ + writer::basic::{BasicHtmlWriter, BasicHtmlWriterConfig}, + Emit, +}; use swc_html_minifier::{minify_document, minify_document_fragment, option::MinifyOptions}; -use swc_html_parser::{parse_file_as_document, parse_file_as_document_fragment}; +use swc_html_parser::{ + parse_file_as_document, parse_file_as_document_fragment, parser::ParserConfig, +}; pub fn bench_files_document(c: &mut Criterion) { let mut group = c.benchmark_group("html/minify/document"); @@ -77,8 +82,14 @@ fn run_document(src: &str) { let fm = cm.new_source_file(FileName::Anon, src.into()); let mut errors = vec![]; - let mut document: Document = - parse_file_as_document(&fm, Default::default(), &mut errors).unwrap(); + let mut document: Document = parse_file_as_document( + &fm, + ParserConfig { + ..Default::default() + }, + &mut errors, + ) + .unwrap(); for err in errors { err.to_diagnostics(&handler).emit(); @@ -88,7 +99,13 @@ fn run_document(src: &str) { let mut buf = String::new(); { - let wr = BasicHtmlWriter::new(&mut buf, None, Default::default()); + let wr = BasicHtmlWriter::new( + &mut buf, + None, + BasicHtmlWriterConfig { + ..Default::default() + }, + ); let mut generator = swc_html_codegen::CodeGenerator::new( wr, swc_html_codegen::CodegenConfig { @@ -130,7 +147,9 @@ fn run_document_fragment(src: &str) { &context_element, DocumentMode::NoQuirks, None, - Default::default(), + ParserConfig { + ..Default::default() + }, &mut errors, ) .unwrap(); @@ -143,7 +162,13 @@ fn run_document_fragment(src: &str) { let mut buf = String::new(); { - let wr = BasicHtmlWriter::new(&mut buf, None, Default::default()); + let wr = BasicHtmlWriter::new( + &mut buf, + None, + BasicHtmlWriterConfig { + ..Default::default() + }, + ); let mut generator = swc_html_codegen::CodeGenerator::new( wr, swc_html_codegen::CodegenConfig { diff --git a/crates/swc_html_parser/tests/fixture.rs b/crates/swc_html_parser/tests/fixture.rs index 6bfd19db83ef..05d05be5acbc 100644 --- a/crates/swc_html_parser/tests/fixture.rs +++ b/crates/swc_html_parser/tests/fixture.rs @@ -7,6 +7,7 @@ use std::path::PathBuf; use common::{document_dom_visualizer, document_span_visualizer}; +use swc_html_parser::parser::ParserConfig; use crate::common::document_test; @@ -15,15 +16,31 @@ mod common; #[testing::fixture("tests/fixture/**/*.html")] fn pass(input: PathBuf) { - document_test(input, Default::default()) + document_test( + input, + ParserConfig { + ..Default::default() + }, + ) } #[testing::fixture("tests/fixture/**/*.html")] fn span_visualizer(input: PathBuf) { - document_span_visualizer(input, Default::default(), false) + document_span_visualizer( + input, + ParserConfig { + ..Default::default() + }, + false, + ) } #[testing::fixture("tests/fixture/**/*.html")] fn dom_visualizer(input: PathBuf) { - document_dom_visualizer(input, Default::default()) + document_dom_visualizer( + input, + ParserConfig { + ..Default::default() + }, + ) } diff --git a/crates/swc_html_parser/tests/html5lib_tests.rs b/crates/swc_html_parser/tests/html5lib_tests.rs index 8c6d515f4e28..dd899c044114 100644 --- a/crates/swc_html_parser/tests/html5lib_tests.rs +++ b/crates/swc_html_parser/tests/html5lib_tests.rs @@ -25,7 +25,13 @@ mod common; #[testing::fixture("tests/html5lib-tests-fixture/**/*.html")] fn span_visualizer(input: PathBuf) { - document_span_visualizer(input, Default::default(), true) + document_span_visualizer( + input, + ParserConfig { + ..Default::default() + }, + true, + ) } fn unescape(s: &str) -> Option { @@ -64,7 +70,7 @@ fn html5lib_test_tokenizer(input: PathBuf) { let contents = fs::read_to_string(filename).expect("Something went wrong reading the file"); let obj: Value = serde_json::from_str(&contents).expect("json parse error"); let tests = match obj.get(&"tests".to_string()) { - Some(Value::Array(tests)) => tests, + Some(&Value::Array(ref tests)) => tests, _ => return, }; @@ -828,7 +834,7 @@ fn html5lib_test_tree_construction(input: PathBuf) { }); NormalizedOutput::from(dom_buf) - .compare_to_file(input.with_extension("dom.rust-debug")) + .compare_to_file(&input.with_extension("dom.rust-debug")) .unwrap(); Ok(()) @@ -852,7 +858,7 @@ fn html5lib_test_tree_construction(input: PathBuf) { }); NormalizedOutput::from(dom_buf) - .compare_to_file(input.with_extension("dom.rust-debug")) + .compare_to_file(&input.with_extension("dom.rust-debug")) .unwrap(); Ok(()) diff --git a/crates/swc_html_parser/tests/iframe_srcdoc.rs b/crates/swc_html_parser/tests/iframe_srcdoc.rs index 6f356bdb1c8a..d2014f40fdd5 100644 --- a/crates/swc_html_parser/tests/iframe_srcdoc.rs +++ b/crates/swc_html_parser/tests/iframe_srcdoc.rs @@ -21,10 +21,21 @@ fn pass_iframe_srcdoc(input: PathBuf) { #[testing::fixture("tests/iframe_srcdoc/**/*.html")] fn span_visualizer(input: PathBuf) { - document_span_visualizer(input, Default::default(), false) + document_span_visualizer( + input, + ParserConfig { + ..Default::default() + }, + false, + ) } #[testing::fixture("tests/iframe_srcdoc/**/*.html")] fn dom_visualizer(input: PathBuf) { - document_dom_visualizer(input, Default::default()) + document_dom_visualizer( + input, + ParserConfig { + ..Default::default() + }, + ) } diff --git a/crates/swc_html_parser/tests/recovery.rs b/crates/swc_html_parser/tests/recovery.rs index c72adcdc4161..7608f3793404 100644 --- a/crates/swc_html_parser/tests/recovery.rs +++ b/crates/swc_html_parser/tests/recovery.rs @@ -43,7 +43,7 @@ fn document_recovery_test(input: PathBuf, config: ParserConfig) { .map(NormalizedOutput::from) .expect("failed to serialize document"); - actual_json.compare_to_file(json_path).unwrap(); + actual_json.compare_to_file(&json_path).unwrap(); Err(()) } @@ -72,15 +72,31 @@ fn document_recovery_test(input: PathBuf, config: ParserConfig) { #[testing::fixture("tests/recovery/**/*.html")] fn recovery(input: PathBuf) { - document_recovery_test(input, Default::default()) + document_recovery_test( + input, + ParserConfig { + ..Default::default() + }, + ) } #[testing::fixture("tests/recovery/**/*.html")] fn span_visualizer(input: PathBuf) { - document_span_visualizer(input, Default::default(), false) + document_span_visualizer( + input, + ParserConfig { + ..Default::default() + }, + false, + ) } #[testing::fixture("tests/recovery/**/*.html")] fn dom_visualizer(input: PathBuf) { - document_dom_visualizer(input, Default::default()) + document_dom_visualizer( + input, + ParserConfig { + ..Default::default() + }, + ) } diff --git a/crates/swc_node_bundler/src/loaders/swc.rs b/crates/swc_node_bundler/src/loaders/swc.rs index c943286b7b00..23ef79016526 100644 --- a/crates/swc_node_bundler/src/loaders/swc.rs +++ b/crates/swc_node_bundler/src/loaders/swc.rs @@ -4,7 +4,7 @@ use anyhow::{bail, Context, Error}; use helpers::Helpers; use swc::{ config::{GlobalInliningPassEnvs, InputSourceMap, IsModule, JscConfig, TransformConfig}, - try_with_handler, + try_with_handler, HandlerOpts, }; use swc_atoms::JsWord; use swc_bundler::{Load, ModuleData}; @@ -297,8 +297,12 @@ impl SwcLoader { impl Load for SwcLoader { fn load(&self, name: &FileName) -> Result { - try_with_handler(self.compiler.cm.clone(), Default::default(), |handler| { - self.load_with_handler(handler, name) - }) + try_with_handler( + self.compiler.cm.clone(), + HandlerOpts { + ..Default::default() + }, + |handler| self.load_with_handler(handler, name), + ) } } diff --git a/crates/swc_plugin_macro/src/lib.rs b/crates/swc_plugin_macro/src/lib.rs index 2965f2b65137..1e1b340b35f5 100644 --- a/crates/swc_plugin_macro/src/lib.rs +++ b/crates/swc_plugin_macro/src/lib.rs @@ -30,7 +30,6 @@ pub fn css_plugin_transform( } } -#[allow(clippy::redundant_clone)] fn handle_func(func: ItemFn, ast_type: Ident) -> TokenStream { let ident = func.sig.ident.clone(); let transform_process_impl_ident = diff --git a/crates/swc_plugin_proxy/Cargo.toml b/crates/swc_plugin_proxy/Cargo.toml index a57b33621371..abaf029b6c77 100644 --- a/crates/swc_plugin_proxy/Cargo.toml +++ b/crates/swc_plugin_proxy/Cargo.toml @@ -37,8 +37,8 @@ plugin-mode = ["__plugin_mode", "swc_common/plugin-base", "rkyv-impl"] [dependencies] -rkyv = { package = "rkyv", version = "=0.7.40", optional = true } -# This is to avoid cargo version selection conflict between rkyv=0.7.40 and other versions, as it is strictly pinned +rkyv = { package = "rkyv", version = "=0.7.37", optional = true } +# This is to avoid cargo version selection conflict between rkyv=0.7.37 and other versions, as it is strictly pinned # cannot be merged. rkyv-latest = { package = "rkyv-test", version = "=0.7.38-test.2", optional = true } tracing = "0.1.32" diff --git a/crates/swc_plugin_runner/src/memory_interop.rs b/crates/swc_plugin_runner/src/memory_interop.rs index ed37f923614a..aed07d23b5be 100644 --- a/crates/swc_plugin_runner/src/memory_interop.rs +++ b/crates/swc_plugin_runner/src/memory_interop.rs @@ -8,7 +8,7 @@ pub fn copy_bytes_into_host(memory: &Memory, bytes_ptr: u32, bytes_ptr_len: u32) // Deref & read through plugin's wasm memory space via returned ptr let derefed_ptr = ptr - .deref(memory, 0, bytes_ptr_len) + .deref(memory, 0, bytes_ptr_len as u32) .expect("Should able to deref from given ptr"); derefed_ptr diff --git a/crates/swc_plugin_runner/tests/ecma_integration.rs b/crates/swc_plugin_runner/tests/ecma_integration.rs index dc293fa88ff1..902895358ea1 100644 --- a/crates/swc_plugin_runner/tests/ecma_integration.rs +++ b/crates/swc_plugin_runner/tests/ecma_integration.rs @@ -16,7 +16,7 @@ use swc_common::{ sync::Lazy, FileName, Mark, }; use swc_ecma_ast::{CallExpr, Callee, EsVersion, Expr, Lit, MemberExpr, Program, Str}; -use swc_ecma_parser::{parse_file_as_program, Syntax}; +use swc_ecma_parser::{parse_file_as_program, EsConfig, Syntax}; use swc_ecma_visit::{Visit, VisitWith}; use swc_plugin_runner::cache::PluginModuleCache; @@ -87,7 +87,9 @@ fn internal() -> Result<(), Error> { let program = parse_file_as_program( &fm, - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), EsVersion::latest(), None, &mut vec![], @@ -149,7 +151,9 @@ fn internal() -> Result<(), Error> { let program = parse_file_as_program( &fm, - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), EsVersion::latest(), None, &mut vec![], @@ -199,7 +203,9 @@ fn internal() -> Result<(), Error> { let program = parse_file_as_program( &fm, - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), EsVersion::latest(), None, &mut vec![], diff --git a/crates/swc_plugin_runner/tests/ecma_rkyv.rs b/crates/swc_plugin_runner/tests/ecma_rkyv.rs index 70d117ecf319..bae760584717 100644 --- a/crates/swc_plugin_runner/tests/ecma_rkyv.rs +++ b/crates/swc_plugin_runner/tests/ecma_rkyv.rs @@ -15,7 +15,7 @@ use swc_common::{ Mark, }; use swc_ecma_ast::{EsVersion, Program}; -use swc_ecma_parser::{parse_file_as_program, Syntax, TsConfig}; +use swc_ecma_parser::{parse_file_as_program, EsConfig, Syntax, TsConfig}; use swc_plugin_runner::cache::{init_plugin_module_cache_once, PLUGIN_MODULE_CACHE}; use tracing::info; @@ -131,7 +131,9 @@ fn internal(input: PathBuf) -> Result<(), Error> { let parsed = parse_file_as_program( &fm, - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), EsVersion::latest(), None, &mut vec![], diff --git a/crates/swc_plugin_runner/tests/issues.rs b/crates/swc_plugin_runner/tests/issues.rs index e145dde19f57..267bb7385b64 100644 --- a/crates/swc_plugin_runner/tests/issues.rs +++ b/crates/swc_plugin_runner/tests/issues.rs @@ -15,7 +15,7 @@ use swc_common::{ collections::AHashMap, plugin::metadata::TransformPluginMetadataContext, sync::Lazy, Mark, }; use swc_ecma_ast::{CallExpr, Callee, EsVersion, Expr, Lit, MemberExpr, Program, Str}; -use swc_ecma_parser::{parse_file_as_program, Syntax}; +use swc_ecma_parser::{parse_file_as_program, EsConfig, Syntax}; use swc_ecma_visit::Visit; use swc_plugin_runner::cache::PluginModuleCache; @@ -91,7 +91,9 @@ fn issue_6404() -> Result<(), Error> { let program = parse_file_as_program( &fm, - Syntax::Es(Default::default()), + Syntax::Es(EsConfig { + ..Default::default() + }), EsVersion::latest(), None, &mut vec![], diff --git a/crates/swc_xml_parser/tests/fixture.rs b/crates/swc_xml_parser/tests/fixture.rs index 1d03c9b8f345..f0ee6eee6b6b 100644 --- a/crates/swc_xml_parser/tests/fixture.rs +++ b/crates/swc_xml_parser/tests/fixture.rs @@ -382,24 +382,44 @@ impl VisitMut for DomVisualizer<'_> { #[testing::fixture("tests/fixture/**/*.xml")] fn pass(input: PathBuf) { - document_test(input, Default::default()) + document_test( + input, + ParserConfig { + ..Default::default() + }, + ) } #[testing::fixture("tests/recovery/**/*.xml")] fn recovery(input: PathBuf) { - document_recovery_test(input, Default::default()) + document_recovery_test( + input, + ParserConfig { + ..Default::default() + }, + ) } #[testing::fixture("tests/fixture/**/*.xml")] #[testing::fixture("tests/recovery/**/*.xml")] fn span_visualizer(input: PathBuf) { - document_span_visualizer(input, Default::default()) + document_span_visualizer( + input, + ParserConfig { + ..Default::default() + }, + ) } #[testing::fixture("tests/fixture/**/*.xml")] #[testing::fixture("tests/recovery/**/*.xml")] fn dom_visualizer(input: PathBuf) { - document_dom_visualizer(input, Default::default()) + document_dom_visualizer( + input, + ParserConfig { + ..Default::default() + }, + ) } // TODO tests from xml5lib-tests diff --git a/node-swc/e2e/fixtures/plugin_transform_schema_v1/rust-toolchain b/node-swc/e2e/fixtures/plugin_transform_schema_v1/rust-toolchain deleted file mode 100644 index 4f93cb25623e..000000000000 --- a/node-swc/e2e/fixtures/plugin_transform_schema_v1/rust-toolchain +++ /dev/null @@ -1 +0,0 @@ -nightly-2022-09-23 \ No newline at end of file diff --git a/node-swc/e2e/fixtures/plugin_transform_schema_vtest/rust-toolchain b/node-swc/e2e/fixtures/plugin_transform_schema_vtest/rust-toolchain deleted file mode 100644 index 4f93cb25623e..000000000000 --- a/node-swc/e2e/fixtures/plugin_transform_schema_vtest/rust-toolchain +++ /dev/null @@ -1 +0,0 @@ -nightly-2022-09-23 \ No newline at end of file diff --git a/node-swc/e2e/plugins/plugins.compat.test.js b/node-swc/e2e/plugins/plugins.compat.test.js index 8b94d5df97c9..d9d69ed32162 100644 --- a/node-swc/e2e/plugins/plugins.compat.test.js +++ b/node-swc/e2e/plugins/plugins.compat.test.js @@ -61,7 +61,7 @@ const inferBinaryName = () => { ); }; -describe.skip("Published plugins", () => { +describe("Published plugins", () => { const packageName = platformPackagesMap[platform][arch]; if (!!packageName) { @@ -70,7 +70,6 @@ describe.skip("Published plugins", () => { getPkgRoot(), packageName )); - console.log(`Package name: ${packageName}`); const options = { jsc: { @@ -88,16 +87,12 @@ describe.skip("Published plugins", () => { }, }; - console.log("Before transformSync"); - const { code } = transformSync( 'console.log("hello world")', false, Buffer.from(JSON.stringify(options)) ); - console.log("After transformSync"); - expect(code).toMatchInlineSnapshot(` "console.log(\\"hello world\\"); " diff --git a/node-swc/e2e/plugins/plugins.schema.test.js b/node-swc/e2e/plugins/plugins.schema.test.js index e00d9b2f1423..b9604d3ba209 100644 --- a/node-swc/e2e/plugins/plugins.schema.test.js +++ b/node-swc/e2e/plugins/plugins.schema.test.js @@ -55,7 +55,6 @@ const buildPlugin = async (feature) => { const options = { cwd: getPkgRoot(), stdio: "inherit" }; - console.log(`Building plugins: ${feature}`); const proc = process.platform == "win32" ? spawn("cmd", ["/s", "/c", "cargo", ...args], options) diff --git a/rust-toolchain b/rust-toolchain index 0df72d2bf69b..4f93cb25623e 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2023-03-28 \ No newline at end of file +nightly-2022-09-23 \ No newline at end of file