diff --git a/.changeset/pink-carpets-relax.md b/.changeset/pink-carpets-relax.md new file mode 100644 index 000000000000..65e3c6b2b9d3 --- /dev/null +++ b/.changeset/pink-carpets-relax.md @@ -0,0 +1,13 @@ +--- +swc_common: minor +swc_ecma_lexer: minor +swc_ecma_parser: minor +swc_ecma_transforms: minor +swc_ecma_transforms_base: minor +swc_ecma_transforms_proposal: minor +swc_ecma_transforms_typescript: minor +swc_ecma_utils: minor +swc_core: minor +--- + +chore(es/parser): use stacker in utils diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c54598e65e61..be35085eb81a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -308,7 +308,7 @@ jobs: - name: Run cargo test (transforms with stacker) if: matrix.settings.crate == 'swc_ecma_transforms' run: | - cargo test -p ${{ matrix.settings.crate }} --all-features --features swc_ecma_utils/stacker + cargo test -p ${{ matrix.settings.crate }} --all-features --features swc_common/stacker - name: Run cargo test (concurrent) if: runner.os == 'Linux' && matrix.settings.crate != 'swc_ecma_minifier' diff --git a/Cargo.lock b/Cargo.lock index f34e3eb4df70..99966ba72c63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4915,6 +4915,7 @@ dependencies = [ "shrink-to-fit", "siphasher 0.3.11", "sourcemap", + "stacker", "swc_allocator", "swc_atoms", "swc_eq_ignore_macros", @@ -5516,7 +5517,6 @@ dependencies = [ "serde_json", "smallvec", "smartstring", - "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -5646,7 +5646,6 @@ dependencies = [ "serde_json", "smallvec", "smartstring", - "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -6046,7 +6045,6 @@ dependencies = [ "rayon", "rustc-hash 2.1.1", "ryu-js", - "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", diff --git a/crates/swc_common/Cargo.toml b/crates/swc_common/Cargo.toml index ac2e45eb76f8..78f990673510 100644 --- a/crates/swc_common/Cargo.toml +++ b/crates/swc_common/Cargo.toml @@ -68,6 +68,8 @@ swc_atoms = { version = "5.0.0", path = "../swc_atoms" } swc_eq_ignore_macros = { version = "1.0.0", path = "../swc_eq_ignore_macros" } swc_visit = { version = "2.0.0", path = "../swc_visit" } +[target.'cfg(not(any(target_arch = "wasm32", target_arch = "arm")))'.dependencies] +stacker = { version = "0.1.15", optional = true } [dev-dependencies] codspeed-criterion-compat = { workspace = true } diff --git a/crates/swc_common/src/lib.rs b/crates/swc_common/src/lib.rs index 8d09e8cc960d..0e12e04b3825 100644 --- a/crates/swc_common/src/lib.rs +++ b/crates/swc_common/src/lib.rs @@ -67,6 +67,7 @@ pub mod private; mod rustc_data_structures; pub mod serializer; pub mod source_map; +pub mod stack_size; pub mod sync; mod syntax_pos; pub mod util; diff --git a/crates/swc_ecma_utils/src/stack_size.rs b/crates/swc_common/src/stack_size.rs similarity index 100% rename from crates/swc_ecma_utils/src/stack_size.rs rename to crates/swc_common/src/stack_size.rs diff --git a/crates/swc_core/Cargo.toml b/crates/swc_core/Cargo.toml index 88bb0f68fdc1..96f6ff246a09 100644 --- a/crates/swc_core/Cargo.toml +++ b/crates/swc_core/Cargo.toml @@ -196,7 +196,7 @@ ecma_plugin_transform = [ ] # Use `stacker` to avoid stack overflow. -stacker = ["swc_ecma_parser/stacker", "swc_ecma_utils/stacker"] +stacker = ["swc_ecma_parser/stacker", "swc_common/stacker"] typescript = ["swc_typescript"] diff --git a/crates/swc_core/tests/fixture/stub_napi/Cargo.lock b/crates/swc_core/tests/fixture/stub_napi/Cargo.lock index 73923f0ae7bf..3bcdf084d728 100644 --- a/crates/swc_core/tests/fixture/stub_napi/Cargo.lock +++ b/crates/swc_core/tests/fixture/stub_napi/Cargo.lock @@ -3744,7 +3744,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "swc" -version = "22.0.0" +version = "25.0.0" dependencies = [ "anyhow", "base64", @@ -3823,7 +3823,7 @@ dependencies = [ [[package]] name = "swc_bundler" -version = "16.0.0" +version = "19.0.0" dependencies = [ "anyhow", "crc", @@ -3853,7 +3853,7 @@ dependencies = [ [[package]] name = "swc_common" -version = "9.1.0" +version = "11.0.0" dependencies = [ "anyhow", "ast_node", @@ -3872,6 +3872,7 @@ dependencies = [ "serde", "siphasher 0.3.11", "sourcemap", + "stacker", "swc_allocator", "swc_atoms", "swc_eq_ignore_macros", @@ -3883,7 +3884,7 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "19.0.0" +version = "22.0.0" dependencies = [ "anyhow", "base64", @@ -3909,7 +3910,7 @@ dependencies = [ [[package]] name = "swc_config" -version = "2.0.0" +version = "3.0.0" dependencies = [ "anyhow", "dashmap 5.5.3", @@ -3936,7 +3937,7 @@ dependencies = [ [[package]] name = "swc_core" -version = "23.2.0" +version = "26.0.1" dependencies = [ "swc", "swc_allocator", @@ -3956,7 +3957,7 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "9.0.0" +version = "11.0.0" dependencies = [ "bitflags 2.8.0", "bytecheck 0.8.1", @@ -3978,7 +3979,7 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "11.0.0" +version = "13.0.0" dependencies = [ "ascii", "compact_str", @@ -3987,6 +3988,7 @@ dependencies = [ "once_cell", "regex", "rustc-hash 2.1.1", + "ryu-js", "serde", "sourcemap", "swc_allocator", @@ -4009,7 +4011,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_bugfixes" -version = "13.0.0" +version = "16.0.0" dependencies = [ "rustc-hash 2.1.1", "swc_atoms", @@ -4025,7 +4027,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_common" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_common", "swc_ecma_ast", @@ -4036,7 +4038,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2015" -version = "13.0.0" +version = "16.0.0" dependencies = [ "arrayvec", "indexmap 2.7.1", @@ -4061,7 +4063,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2016" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_atoms", "swc_common", @@ -4076,7 +4078,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2017" -version = "13.0.0" +version = "15.0.0" dependencies = [ "serde", "swc_atoms", @@ -4092,7 +4094,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2018" -version = "13.0.0" +version = "15.0.0" dependencies = [ "serde", "swc_atoms", @@ -4109,7 +4111,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2019" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_atoms", "swc_common", @@ -4123,7 +4125,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2020" -version = "14.0.0" +version = "16.0.0" dependencies = [ "serde", "swc_atoms", @@ -4139,7 +4141,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2021" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_atoms", "swc_common", @@ -4153,7 +4155,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2022" -version = "14.0.0" +version = "16.0.0" dependencies = [ "rustc-hash 2.1.1", "swc_atoms", @@ -4171,7 +4173,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es3" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_common", "swc_ecma_ast", @@ -4184,7 +4186,7 @@ dependencies = [ [[package]] name = "swc_ecma_ext_transforms" -version = "13.0.0" +version = "15.0.0" dependencies = [ "phf", "swc_atoms", @@ -4196,7 +4198,7 @@ dependencies = [ [[package]] name = "swc_ecma_lexer" -version = "12.0.0" +version = "14.0.0" dependencies = [ "arrayvec", "bitflags 2.8.0", @@ -4209,7 +4211,6 @@ dependencies = [ "serde", "smallvec", "smartstring", - "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -4219,7 +4220,7 @@ dependencies = [ [[package]] name = "swc_ecma_lints" -version = "13.0.0" +version = "16.0.0" dependencies = [ "auto_impl", "dashmap 5.5.3", @@ -4238,7 +4239,7 @@ dependencies = [ [[package]] name = "swc_ecma_loader" -version = "9.0.0" +version = "11.0.0" dependencies = [ "anyhow", "dashmap 5.5.3", @@ -4258,7 +4259,7 @@ dependencies = [ [[package]] name = "swc_ecma_minifier" -version = "17.0.0" +version = "20.0.0" dependencies = [ "arrayvec", "bitflags 2.8.0", @@ -4294,7 +4295,7 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "12.0.0" +version = "14.0.0" dependencies = [ "arrayvec", "bitflags 2.8.0", @@ -4307,7 +4308,6 @@ dependencies = [ "serde", "smallvec", "smartstring", - "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -4318,7 +4318,7 @@ dependencies = [ [[package]] name = "swc_ecma_preset_env" -version = "17.0.0" +version = "20.0.0" dependencies = [ "anyhow", "dashmap 5.5.3", @@ -4341,7 +4341,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms" -version = "16.0.0" +version = "19.0.0" dependencies = [ "par-core", "swc_atoms", @@ -4360,7 +4360,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "13.0.0" +version = "15.0.1" dependencies = [ "better_scoped_tls", "bitflags 2.8.0", @@ -4383,7 +4383,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_atoms", "swc_common", @@ -4395,7 +4395,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_compat" -version = "14.0.0" +version = "17.0.0" dependencies = [ "arrayvec", "indexmap 2.7.1", @@ -4441,7 +4441,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_module" -version = "14.0.0" +version = "17.0.0" dependencies = [ "Inflector", "anyhow", @@ -4467,7 +4467,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_optimization" -version = "13.0.0" +version = "16.0.0" dependencies = [ "dashmap 5.5.3", "indexmap 2.7.1", @@ -4490,7 +4490,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_proposal" -version = "13.0.0" +version = "15.0.0" dependencies = [ "either", "rustc-hash 2.1.1", @@ -4508,7 +4508,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "14.0.0" +version = "17.0.0" dependencies = [ "base64", "dashmap 5.5.3", @@ -4533,7 +4533,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "14.0.0" +version = "17.0.0" dependencies = [ "once_cell", "rustc-hash 2.1.1", @@ -4550,7 +4550,7 @@ dependencies = [ [[package]] name = "swc_ecma_usage_analyzer" -version = "14.0.0" +version = "16.0.0" dependencies = [ "bitflags 2.8.0", "indexmap 2.7.1", @@ -4566,7 +4566,7 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "13.0.0" +version = "15.0.0" dependencies = [ "indexmap 2.7.1", "num_cpus", @@ -4586,7 +4586,7 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "9.0.0" +version = "11.0.0" dependencies = [ "new_debug_unreachable", "num-bigint", @@ -4608,7 +4608,7 @@ dependencies = [ [[package]] name = "swc_error_reporters" -version = "11.0.0" +version = "13.0.0" dependencies = [ "anyhow", "miette", @@ -4622,7 +4622,7 @@ dependencies = [ [[package]] name = "swc_graph_analyzer" -version = "10.0.0" +version = "12.0.0" dependencies = [ "auto_impl", "petgraph 0.7.1", @@ -4642,7 +4642,7 @@ dependencies = [ [[package]] name = "swc_malloc" -version = "1.2.2" +version = "1.2.3" dependencies = [ "mimalloc", "tikv-jemallocator", @@ -4650,7 +4650,7 @@ dependencies = [ [[package]] name = "swc_node_bundler" -version = "23.0.0" +version = "26.0.0" dependencies = [ "anyhow", "dashmap 5.5.3", @@ -4678,7 +4678,7 @@ dependencies = [ [[package]] name = "swc_node_comments" -version = "9.0.0" +version = "11.0.0" dependencies = [ "dashmap 5.5.3", "rustc-hash 2.1.1", @@ -4700,7 +4700,7 @@ dependencies = [ [[package]] name = "swc_plugin_proxy" -version = "9.0.0" +version = "11.0.0" dependencies = [ "better_scoped_tls", "bytecheck 0.8.1", @@ -4715,7 +4715,7 @@ dependencies = [ [[package]] name = "swc_plugin_runner" -version = "11.1.0" +version = "13.0.0" dependencies = [ "anyhow", "enumset", @@ -4757,7 +4757,7 @@ dependencies = [ [[package]] name = "swc_transform_common" -version = "3.0.0" +version = "5.0.0" dependencies = [ "better_scoped_tls", "once_cell", @@ -4769,7 +4769,7 @@ dependencies = [ [[package]] name = "swc_typescript" -version = "12.0.0" +version = "14.0.1" dependencies = [ "bitflags 2.8.0", "petgraph 0.7.1", diff --git a/crates/swc_core/tests/fixture/stub_wasm/Cargo.lock b/crates/swc_core/tests/fixture/stub_wasm/Cargo.lock index cb845e07c63b..c0831b90bb14 100644 --- a/crates/swc_core/tests/fixture/stub_wasm/Cargo.lock +++ b/crates/swc_core/tests/fixture/stub_wasm/Cargo.lock @@ -126,7 +126,7 @@ dependencies = [ [[package]] name = "binding_macros" -version = "22.0.0" +version = "25.0.0" dependencies = [ "anyhow", "console_error_panic_hook", @@ -1462,7 +1462,7 @@ dependencies = [ [[package]] name = "swc" -version = "22.0.0" +version = "25.0.0" dependencies = [ "anyhow", "base64", @@ -1533,7 +1533,7 @@ dependencies = [ [[package]] name = "swc_common" -version = "9.1.0" +version = "11.0.0" dependencies = [ "anyhow", "ast_node", @@ -1549,6 +1549,7 @@ dependencies = [ "serde", "siphasher 0.3.11", "sourcemap", + "stacker", "swc_allocator", "swc_atoms", "swc_eq_ignore_macros", @@ -1560,7 +1561,7 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "19.0.0" +version = "22.0.0" dependencies = [ "anyhow", "base64", @@ -1584,7 +1585,7 @@ dependencies = [ [[package]] name = "swc_config" -version = "2.0.0" +version = "3.0.0" dependencies = [ "anyhow", "dashmap", @@ -1611,7 +1612,7 @@ dependencies = [ [[package]] name = "swc_core" -version = "23.2.0" +version = "26.0.1" dependencies = [ "binding_macros", "swc", @@ -1627,7 +1628,7 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "9.0.0" +version = "11.0.0" dependencies = [ "bitflags", "is-macro", @@ -1646,7 +1647,7 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "11.0.0" +version = "13.0.0" dependencies = [ "ascii", "compact_str", @@ -1655,6 +1656,7 @@ dependencies = [ "once_cell", "regex", "rustc-hash", + "ryu-js", "serde", "sourcemap", "swc_allocator", @@ -1677,7 +1679,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_bugfixes" -version = "13.0.0" +version = "16.0.0" dependencies = [ "rustc-hash", "swc_atoms", @@ -1693,7 +1695,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_common" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_common", "swc_ecma_ast", @@ -1704,7 +1706,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2015" -version = "13.0.0" +version = "16.0.0" dependencies = [ "arrayvec", "indexmap", @@ -1729,7 +1731,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2016" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_atoms", "swc_common", @@ -1744,7 +1746,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2017" -version = "13.0.0" +version = "15.0.0" dependencies = [ "serde", "swc_atoms", @@ -1760,7 +1762,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2018" -version = "13.0.0" +version = "15.0.0" dependencies = [ "serde", "swc_atoms", @@ -1777,7 +1779,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2019" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_atoms", "swc_common", @@ -1791,7 +1793,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2020" -version = "14.0.0" +version = "16.0.0" dependencies = [ "serde", "swc_atoms", @@ -1807,7 +1809,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2021" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_atoms", "swc_common", @@ -1821,7 +1823,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2022" -version = "14.0.0" +version = "16.0.0" dependencies = [ "rustc-hash", "swc_atoms", @@ -1839,7 +1841,7 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es3" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_common", "swc_ecma_ast", @@ -1852,7 +1854,7 @@ dependencies = [ [[package]] name = "swc_ecma_ext_transforms" -version = "13.0.0" +version = "15.0.0" dependencies = [ "phf", "swc_atoms", @@ -1864,7 +1866,7 @@ dependencies = [ [[package]] name = "swc_ecma_lexer" -version = "12.0.0" +version = "14.0.0" dependencies = [ "arrayvec", "bitflags", @@ -1877,7 +1879,6 @@ dependencies = [ "serde", "smallvec", "smartstring", - "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -1887,7 +1888,7 @@ dependencies = [ [[package]] name = "swc_ecma_lints" -version = "13.0.0" +version = "16.0.0" dependencies = [ "auto_impl", "dashmap", @@ -1906,7 +1907,7 @@ dependencies = [ [[package]] name = "swc_ecma_loader" -version = "9.0.0" +version = "11.0.0" dependencies = [ "anyhow", "dashmap", @@ -1926,7 +1927,7 @@ dependencies = [ [[package]] name = "swc_ecma_minifier" -version = "17.0.0" +version = "20.0.0" dependencies = [ "arrayvec", "bitflags", @@ -1962,7 +1963,7 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "12.0.0" +version = "14.0.0" dependencies = [ "arrayvec", "bitflags", @@ -1975,7 +1976,6 @@ dependencies = [ "serde", "smallvec", "smartstring", - "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -1986,7 +1986,7 @@ dependencies = [ [[package]] name = "swc_ecma_preset_env" -version = "17.0.0" +version = "20.0.0" dependencies = [ "anyhow", "dashmap", @@ -2009,7 +2009,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms" -version = "16.0.0" +version = "19.0.0" dependencies = [ "par-core", "swc_atoms", @@ -2028,7 +2028,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "13.0.0" +version = "15.0.1" dependencies = [ "better_scoped_tls", "bitflags", @@ -2050,7 +2050,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "13.0.0" +version = "15.0.0" dependencies = [ "swc_atoms", "swc_common", @@ -2062,7 +2062,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_compat" -version = "14.0.0" +version = "17.0.0" dependencies = [ "arrayvec", "indexmap", @@ -2107,7 +2107,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_module" -version = "14.0.0" +version = "17.0.0" dependencies = [ "Inflector", "anyhow", @@ -2133,7 +2133,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_optimization" -version = "13.0.0" +version = "16.0.0" dependencies = [ "dashmap", "indexmap", @@ -2155,7 +2155,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_proposal" -version = "13.0.0" +version = "15.0.0" dependencies = [ "either", "rustc-hash", @@ -2173,7 +2173,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "14.0.0" +version = "17.0.0" dependencies = [ "base64", "dashmap", @@ -2197,7 +2197,7 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "14.0.0" +version = "17.0.0" dependencies = [ "once_cell", "rustc-hash", @@ -2214,7 +2214,7 @@ dependencies = [ [[package]] name = "swc_ecma_usage_analyzer" -version = "14.0.0" +version = "16.0.0" dependencies = [ "bitflags", "indexmap", @@ -2230,7 +2230,7 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "13.0.0" +version = "15.0.0" dependencies = [ "indexmap", "num_cpus", @@ -2249,7 +2249,7 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "9.0.0" +version = "11.0.0" dependencies = [ "new_debug_unreachable", "num-bigint", @@ -2271,7 +2271,7 @@ dependencies = [ [[package]] name = "swc_error_reporters" -version = "11.0.0" +version = "13.0.0" dependencies = [ "anyhow", "miette", @@ -2294,7 +2294,7 @@ dependencies = [ [[package]] name = "swc_node_comments" -version = "9.0.0" +version = "11.0.0" dependencies = [ "dashmap", "rustc-hash", @@ -2320,7 +2320,7 @@ dependencies = [ [[package]] name = "swc_transform_common" -version = "3.0.0" +version = "5.0.0" dependencies = [ "better_scoped_tls", "once_cell", @@ -2332,7 +2332,7 @@ dependencies = [ [[package]] name = "swc_typescript" -version = "12.0.0" +version = "14.0.1" dependencies = [ "bitflags", "petgraph", diff --git a/crates/swc_ecma_lexer/Cargo.toml b/crates/swc_ecma_lexer/Cargo.toml index 7a2a1c23d94a..09d9fc48cc62 100644 --- a/crates/swc_ecma_lexer/Cargo.toml +++ b/crates/swc_ecma_lexer/Cargo.toml @@ -20,6 +20,7 @@ bench = false # Used for debugging debug = ["tracing-spans"] default = ["typescript", "stacker"] +stacker = ["swc_common/stacker"] tracing-spans = [] typescript = [] verify = ["swc_ecma_visit"] @@ -44,9 +45,6 @@ swc_common = { version = "11.0.0", path = "../swc_common" } swc_ecma_ast = { version = "11.0.0", path = "../swc_ecma_ast" } swc_ecma_visit = { version = "11.0.0", path = "../swc_ecma_visit", optional = true } -[target.'cfg(not(any(target_arch = "wasm32", target_arch = "arm")))'.dependencies] -stacker = { version = "0.1.15", optional = true } - [dev-dependencies] criterion = { workspace = true } pretty_assertions = { workspace = true } diff --git a/crates/swc_ecma_lexer/src/common/parser/stmt.rs b/crates/swc_ecma_lexer/src/common/parser/stmt.rs index cacaf59a7e69..8c7d94f6c1a4 100644 --- a/crates/swc_ecma_lexer/src/common/parser/stmt.rs +++ b/crates/swc_ecma_lexer/src/common/parser/stmt.rs @@ -623,7 +623,7 @@ fn parse_if_stmt<'a, P: Parser<'a>>(p: &mut P) -> PResult { let cons = { // Prevent stack overflow - crate::maybe_grow(256 * 1024, 1024 * 1024, || { + swc_common::stack_size::maybe_grow(256 * 1024, 1024 * 1024, || { // Annex B if !p.ctx().contains(Context::Strict) && p.input_mut().is(&P::Token::FUNCTION) { // TODO: report error? diff --git a/crates/swc_ecma_lexer/src/common/parser/typescript.rs b/crates/swc_ecma_lexer/src/common/parser/typescript.rs index 7446a60cc3e9..455604701551 100644 --- a/crates/swc_ecma_lexer/src/common/parser/typescript.rs +++ b/crates/swc_ecma_lexer/src/common/parser/typescript.rs @@ -28,7 +28,7 @@ use crate::{ }, }, error::SyntaxError, - Syntax, TsSyntax, + Syntax, }; #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -2660,7 +2660,10 @@ pub fn try_parse_ts_declare<'a, P: Parser<'a>>( } if p.ctx().contains(Context::InDeclare) - && matches!(p.syntax(), Syntax::Typescript(TsSyntax { dts: false, .. })) + && matches!( + p.syntax(), + Syntax::Typescript(crate::TsSyntax { dts: false, .. }) + ) { let span_of_declare = p.span(start); p.emit_err(span_of_declare, SyntaxError::TS1038); diff --git a/crates/swc_ecma_lexer/src/lib.rs b/crates/swc_ecma_lexer/src/lib.rs index 556d074514dd..5d2683d7503e 100644 --- a/crates/swc_ecma_lexer/src/lib.rs +++ b/crates/swc_ecma_lexer/src/lib.rs @@ -367,27 +367,6 @@ macro_rules! tok { }; } -#[inline(always)] -#[cfg(any( - target_arch = "wasm32", - target_arch = "arm", - not(feature = "stacker"), - // miri does not work with stacker - miri -))] -fn maybe_grow R>(_red_zone: usize, _stack_size: usize, callback: F) -> R { - callback() -} - -#[inline(always)] -#[cfg(all( - not(any(target_arch = "wasm32", target_arch = "arm", miri)), - feature = "stacker" -))] -fn maybe_grow R>(red_zone: usize, stack_size: usize, callback: F) -> R { - stacker::maybe_grow(red_zone, stack_size, callback) -} - pub fn lexer(input: Lexer) -> PResult> { let capturing = input::Capturing::new(input); let mut parser = parser::Parser::new_from(capturing); diff --git a/crates/swc_ecma_lexer/src/parser/mod.rs b/crates/swc_ecma_lexer/src/parser/mod.rs index 6d3fda121a30..63640f3b4596 100644 --- a/crates/swc_ecma_lexer/src/parser/mod.rs +++ b/crates/swc_ecma_lexer/src/parser/mod.rs @@ -16,7 +16,7 @@ use crate::{ error::Error, input::Buffer, token::{Token, TokenAndSpan}, - Context, Syntax, TsSyntax, *, + Context, *, }; #[macro_use] diff --git a/crates/swc_ecma_parser/Cargo.toml b/crates/swc_ecma_parser/Cargo.toml index 3b19fb1e88fe..3ceb1b1fa3e6 100644 --- a/crates/swc_ecma_parser/Cargo.toml +++ b/crates/swc_ecma_parser/Cargo.toml @@ -20,6 +20,7 @@ bench = false # Used for debugging debug = ["tracing-spans"] default = ["typescript", "stacker"] +stacker = ["swc_common/stacker"] tracing-spans = [] typescript = [] verify = ["swc_ecma_visit", "swc_ecma_lexer/verify"] @@ -45,9 +46,6 @@ swc_ecma_ast = { version = "11.0.0", path = "../swc_ecma_ast" } swc_ecma_lexer = { version = "14.0.0", path = "../swc_ecma_lexer" } swc_ecma_visit = { version = "11.0.0", path = "../swc_ecma_visit", optional = true } -[target.'cfg(not(any(target_arch = "wasm32", target_arch = "arm")))'.dependencies] -stacker = { version = "0.1.15", optional = true } - [dev-dependencies] criterion = { workspace = true } pretty_assertions = { workspace = true } diff --git a/crates/swc_ecma_transforms/Cargo.toml b/crates/swc_ecma_transforms/Cargo.toml index ef94df227ade..ba509d3f5da8 100644 --- a/crates/swc_ecma_transforms/Cargo.toml +++ b/crates/swc_ecma_transforms/Cargo.toml @@ -29,7 +29,7 @@ multi-module-decorator = ["swc_ecma_transforms_proposal/multi-module"] optimization = ["swc_ecma_transforms_optimization"] proposal = ["swc_ecma_transforms_proposal"] react = ["swc_ecma_transforms_react"] -stacker = ["swc_ecma_utils/stacker"] +stacker = ["swc_common/stacker"] typescript = ["swc_ecma_transforms_typescript"] [dependencies] diff --git a/crates/swc_ecma_transforms_base/src/fixer.rs b/crates/swc_ecma_transforms_base/src/fixer.rs index aac91ff6c55e..93d7aa9b3269 100644 --- a/crates/swc_ecma_transforms_base/src/fixer.rs +++ b/crates/swc_ecma_transforms_base/src/fixer.rs @@ -2,9 +2,10 @@ use std::{hash::BuildHasherDefault, mem, ops::RangeFull}; use indexmap::IndexMap; use rustc_hash::FxHasher; -use swc_common::{comments::Comments, util::take::Take, Span, Spanned, DUMMY_SP}; +use swc_common::{ + comments::Comments, stack_size::maybe_grow_default, util::take::Take, Span, Spanned, DUMMY_SP, +}; use swc_ecma_ast::*; -use swc_ecma_utils::stack_size::maybe_grow_default; use swc_ecma_visit::{noop_visit_mut_type, visit_mut_pass, VisitMut, VisitMutWith}; /// Fixes ast nodes before printing so semantics are preserved. diff --git a/crates/swc_ecma_transforms_base/src/hygiene/mod.rs b/crates/swc_ecma_transforms_base/src/hygiene/mod.rs index 4037cd3299ab..a5d928d3962a 100644 --- a/crates/swc_ecma_transforms_base/src/hygiene/mod.rs +++ b/crates/swc_ecma_transforms_base/src/hygiene/mod.rs @@ -1,6 +1,5 @@ -use swc_common::Mark; +use swc_common::{stack_size::maybe_grow_default, Mark}; use swc_ecma_ast::*; -use swc_ecma_utils::stack_size::maybe_grow_default; use swc_ecma_visit::{noop_visit_mut_type, visit_mut_pass, VisitMut, VisitMutWith}; pub use crate::rename::rename; diff --git a/crates/swc_ecma_transforms_base/src/rename/analyzer/mod.rs b/crates/swc_ecma_transforms_base/src/rename/analyzer/mod.rs index a95469614f90..b6a1a085493a 100644 --- a/crates/swc_ecma_transforms_base/src/rename/analyzer/mod.rs +++ b/crates/swc_ecma_transforms_base/src/rename/analyzer/mod.rs @@ -1,6 +1,5 @@ -use swc_common::Mark; +use swc_common::{stack_size::maybe_grow_default, Mark}; use swc_ecma_ast::*; -use swc_ecma_utils::stack_size::maybe_grow_default; use swc_ecma_visit::{noop_visit_type, Visit, VisitWith}; use self::scope::{Scope, ScopeKind}; diff --git a/crates/swc_ecma_transforms_base/src/rename/collector.rs b/crates/swc_ecma_transforms_base/src/rename/collector.rs index 8f0f23bb0417..7319a38e1312 100644 --- a/crates/swc_ecma_transforms_base/src/rename/collector.rs +++ b/crates/swc_ecma_transforms_base/src/rename/collector.rs @@ -2,9 +2,9 @@ use std::hash::Hash; use rustc_hash::FxHashSet; use swc_atoms::Atom; -use swc_common::{Mark, SyntaxContext}; +use swc_common::{stack_size::maybe_grow_default, Mark, SyntaxContext}; use swc_ecma_ast::*; -use swc_ecma_utils::{ident::IdentLike, stack_size::maybe_grow_default}; +use swc_ecma_utils::ident::IdentLike; use swc_ecma_visit::{noop_visit_type, visit_obj_and_computed, Visit, VisitWith}; struct IdCollector { diff --git a/crates/swc_ecma_transforms_base/src/rename/eval.rs b/crates/swc_ecma_transforms_base/src/rename/eval.rs index 2146814ed708..69373a3b1101 100644 --- a/crates/swc_ecma_transforms_base/src/rename/eval.rs +++ b/crates/swc_ecma_transforms_base/src/rename/eval.rs @@ -1,5 +1,5 @@ +use swc_common::stack_size::maybe_grow_default; use swc_ecma_ast::*; -use swc_ecma_utils::stack_size::maybe_grow_default; use swc_ecma_visit::{noop_visit_type, visit_obj_and_computed, Visit, VisitWith}; pub fn contains_eval(node: &N, include_with: bool) -> bool diff --git a/crates/swc_ecma_transforms_base/src/rename/mod.rs b/crates/swc_ecma_transforms_base/src/rename/mod.rs index 8de9e72d53c3..cbabfe03041c 100644 --- a/crates/swc_ecma_transforms_base/src/rename/mod.rs +++ b/crates/swc_ecma_transforms_base/src/rename/mod.rs @@ -5,8 +5,8 @@ use std::{borrow::Cow, collections::hash_map::Entry}; use collector::{collect, Collector}; use rustc_hash::{FxHashMap, FxHashSet}; use swc_atoms::Atom; +use swc_common::stack_size::maybe_grow_default; use swc_ecma_ast::*; -use swc_ecma_utils::stack_size::maybe_grow_default; use swc_ecma_visit::{ noop_visit_mut_type, visit_mut_pass, Fold, VisitMut, VisitMutWith, VisitWith, }; diff --git a/crates/swc_ecma_transforms_base/src/rename/ops.rs b/crates/swc_ecma_transforms_base/src/rename/ops.rs index 3ae17d63b35a..68d3014b22e8 100644 --- a/crates/swc_ecma_transforms_base/src/rename/ops.rs +++ b/crates/swc_ecma_transforms_base/src/rename/ops.rs @@ -1,10 +1,11 @@ use rustc_hash::FxHashMap; use swc_common::{ + stack_size::maybe_grow_default, util::{move_map::MoveMap, take::Take}, Spanned, SyntaxContext, DUMMY_SP, }; use swc_ecma_ast::*; -use swc_ecma_utils::{ident::IdentLike, stack_size::maybe_grow_default}; +use swc_ecma_utils::ident::IdentLike; use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith}; use super::RenameMap; diff --git a/crates/swc_ecma_transforms_base/src/resolver/mod.rs b/crates/swc_ecma_transforms_base/src/resolver/mod.rs index 06067f8c9f61..a12fb9e338fb 100644 --- a/crates/swc_ecma_transforms_base/src/resolver/mod.rs +++ b/crates/swc_ecma_transforms_base/src/resolver/mod.rs @@ -1,8 +1,8 @@ use rustc_hash::{FxHashMap, FxHashSet}; use swc_atoms::Atom; -use swc_common::{Mark, SyntaxContext}; +use swc_common::{stack_size::maybe_grow_default, Mark, SyntaxContext}; use swc_ecma_ast::*; -use swc_ecma_utils::{find_pat_ids, stack_size::maybe_grow_default}; +use swc_ecma_utils::find_pat_ids; use swc_ecma_visit::{ noop_visit_mut_type, visit_mut_obj_and_computed, visit_mut_pass, VisitMut, VisitMutWith, }; diff --git a/crates/swc_ecma_transforms_proposal/src/decorator_impl.rs b/crates/swc_ecma_transforms_proposal/src/decorator_impl.rs index 64235b4f0b32..df167ff63fa1 100644 --- a/crates/swc_ecma_transforms_proposal/src/decorator_impl.rs +++ b/crates/swc_ecma_transforms_proposal/src/decorator_impl.rs @@ -2,13 +2,15 @@ use std::{collections::VecDeque, iter::once, mem::take}; use rustc_hash::FxHashMap; use swc_atoms::Atom; -use swc_common::{util::take::Take, Mark, Spanned, SyntaxContext, DUMMY_SP}; +use swc_common::{ + stack_size::maybe_grow_default, util::take::Take, Mark, Spanned, SyntaxContext, DUMMY_SP, +}; use swc_ecma_ast::*; use swc_ecma_transforms_base::{helper, helper_expr}; use swc_ecma_utils::{ alias_ident_for, constructor::inject_after_super, default_constructor_with_span, is_maybe_branch_directive, private_ident, prop_name_to_expr_value, quote_ident, replace_ident, - stack_size::maybe_grow_default, ExprFactory, IdentRenamer, + ExprFactory, IdentRenamer, }; use swc_ecma_visit::{noop_visit_mut_type, visit_mut_pass, VisitMut, VisitMutWith}; diff --git a/crates/swc_ecma_transforms_proposal/src/explicit_resource_management.rs b/crates/swc_ecma_transforms_proposal/src/explicit_resource_management.rs index 6593aea988f0..53529b409613 100644 --- a/crates/swc_ecma_transforms_proposal/src/explicit_resource_management.rs +++ b/crates/swc_ecma_transforms_proposal/src/explicit_resource_management.rs @@ -1,10 +1,7 @@ -use swc_common::{util::take::Take, DUMMY_SP}; +use swc_common::{stack_size::maybe_grow_default, util::take::Take, DUMMY_SP}; use swc_ecma_ast::*; use swc_ecma_transforms_base::helper; -use swc_ecma_utils::{ - private_ident, quote_ident, stack_size::maybe_grow_default, ExprFactory, ModuleItemLike, - StmtLike, -}; +use swc_ecma_utils::{private_ident, quote_ident, ExprFactory, ModuleItemLike, StmtLike}; use swc_ecma_visit::{noop_visit_mut_type, visit_mut_pass, VisitMut, VisitMutWith}; pub fn explicit_resource_management() -> impl Pass { diff --git a/crates/swc_ecma_transforms_typescript/src/strip_import_export.rs b/crates/swc_ecma_transforms_typescript/src/strip_import_export.rs index 8912667ca27c..334b56e17d53 100644 --- a/crates/swc_ecma_transforms_typescript/src/strip_import_export.rs +++ b/crates/swc_ecma_transforms_typescript/src/strip_import_export.rs @@ -1,6 +1,6 @@ use rustc_hash::{FxHashMap, FxHashSet}; +use swc_common::stack_size::maybe_grow_default; use swc_ecma_ast::*; -use swc_ecma_utils::stack_size::maybe_grow_default; use swc_ecma_visit::{noop_visit_type, Visit, VisitMut, VisitMutWith, VisitWith}; use crate::{strip_type::IsConcrete, ImportsNotUsedAsValues}; diff --git a/crates/swc_ecma_transforms_typescript/src/strip_type.rs b/crates/swc_ecma_transforms_typescript/src/strip_type.rs index 2c7a5a65506b..b2bcc9298cb2 100644 --- a/crates/swc_ecma_transforms_typescript/src/strip_type.rs +++ b/crates/swc_ecma_transforms_typescript/src/strip_type.rs @@ -1,6 +1,5 @@ -use swc_common::util::take::Take; +use swc_common::{stack_size::maybe_grow_default, util::take::Take}; use swc_ecma_ast::*; -use swc_ecma_utils::stack_size::maybe_grow_default; use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith}; use crate::type_to_none; diff --git a/crates/swc_ecma_transforms_typescript/src/transform.rs b/crates/swc_ecma_transforms_typescript/src/transform.rs index 99ef7ad1fe27..118b912871b1 100644 --- a/crates/swc_ecma_transforms_typescript/src/transform.rs +++ b/crates/swc_ecma_transforms_typescript/src/transform.rs @@ -3,14 +3,14 @@ use std::{iter, mem}; use rustc_hash::{FxHashMap, FxHashSet}; use swc_atoms::Atom; use swc_common::{ - errors::HANDLER, source_map::PURE_SP, util::take::Take, Mark, Span, Spanned, SyntaxContext, - DUMMY_SP, + errors::HANDLER, source_map::PURE_SP, stack_size::maybe_grow_default, util::take::Take, Mark, + Span, Spanned, SyntaxContext, DUMMY_SP, }; use swc_ecma_ast::*; use swc_ecma_utils::{ alias_ident_for, constructor::inject_after_super, find_pat_ids, ident::IdentLike, is_literal, - member_expr, private_ident, quote_ident, quote_str, stack_size::maybe_grow_default, - ExprFactory, QueryRef, RefRewriter, StmtLikeInjector, + member_expr, private_ident, quote_ident, quote_str, ExprFactory, QueryRef, RefRewriter, + StmtLikeInjector, }; use swc_ecma_visit::{ noop_visit_mut_type, noop_visit_type, visit_mut_pass, Visit, VisitMut, VisitMutWith, VisitWith, diff --git a/crates/swc_ecma_utils/Cargo.toml b/crates/swc_ecma_utils/Cargo.toml index f4ca4ec87b75..87a1e3d45fb6 100644 --- a/crates/swc_ecma_utils/Cargo.toml +++ b/crates/swc_ecma_utils/Cargo.toml @@ -36,8 +36,6 @@ swc_common = { version = "11.0.0", path = "../swc_common" } swc_ecma_ast = { version = "11.0.0", path = "../swc_ecma_ast" } swc_ecma_visit = { version = "11.0.0", path = "../swc_ecma_visit" } -[target.'cfg(not(any(target_arch = "wasm32", target_arch = "arm")))'.dependencies] -stacker = { version = "0.1.15", optional = true } [dev-dependencies] par-core = { workspace = true, features = ["chili"] } diff --git a/crates/swc_ecma_utils/src/lib.rs b/crates/swc_ecma_utils/src/lib.rs index 135101fac0bd..f0a33e5a02ad 100644 --- a/crates/swc_ecma_utils/src/lib.rs +++ b/crates/swc_ecma_utils/src/lib.rs @@ -54,7 +54,6 @@ pub mod var; mod node_ignore_span; pub mod number; -pub mod stack_size; pub use node_ignore_span::NodeIgnoringSpan; // TODO: remove