diff --git a/.gitignore b/.gitignore index 96a6fb94e940..064a75b0fcf7 100644 --- a/.gitignore +++ b/.gitignore @@ -237,4 +237,7 @@ diff_output /packages/*/temp # rspress build output -/website/doc_build \ No newline at end of file +/website/doc_build + +# xcode trace +*.trace \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 1044799b8c21..d90968ffc98e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5221,9 +5221,9 @@ dependencies = [ [[package]] name = "swc" -version = "1.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbc58027ccd964d169ddc178e1a2f16672fd1e92dac73ec7b5dee571690a5d44" +checksum = "2183536db1e18e9b1d8b6c98716b2f030f459f3e46a0f1806125c0d03a081fff" dependencies = [ "anyhow", "base64 0.21.7", @@ -5315,9 +5315,9 @@ dependencies = [ [[package]] name = "swc_common" -version = "1.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8505eddfd6488cde74b0e80a4b959b12392a8a15eb62243d45eb82cf568b9b9" +checksum = "a9c96bb59e6721eb665764d6dc42a8537d61129ade06f8dd87894d51e018c81d" dependencies = [ "ahash 0.8.11", "anyhow", @@ -5347,9 +5347,9 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7194d052fbd71f5ef0c7d22c50f906f19fb1131654dca545bbaf893f644a6e01" +checksum = "ee24249ab88d3951169364c6c9042d7200d3f8d9657f4ead33f0f8b212cf8c16" dependencies = [ "anyhow", "base64 0.21.7", @@ -5400,9 +5400,9 @@ dependencies = [ [[package]] name = "swc_core" -version = "1.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a322c95f99033d16ebba06999a8ca98ffe74d864ff29a027473c344b5ef3fde8" +checksum = "05c73dfbb25de4c4059b40ecd352be76a6a1a9424890f4579a815f25432468c6" dependencies = [ "swc", "swc_allocator", @@ -5428,9 +5428,9 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6795be2785b968ccff06096bc758b306459f05fc936e6363b4dd39fb27fba22a" +checksum = "e4257865f3b7f30a6c6f46035a39f27c08b59a1af093a9400f90bd5e2d510993" dependencies = [ "bitflags 2.5.0", "bytecheck 0.6.11", @@ -5443,14 +5443,15 @@ dependencies = [ "string_enum", "swc_atoms", "swc_common", + "swc_visit", "unicode-id-start", ] [[package]] name = "swc_ecma_codegen" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae4fee003ef373adef1ff2af1e73607925f510a8105a5e368c1aa655ece9a41" +checksum = "ca92989669711b99814770f32ccd55ae526627f0576e2a2b7c99df78007fed02" dependencies = [ "memchr", "num-bigint", @@ -5480,9 +5481,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_bugfixes" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057714c6d55ef69a015b8d2b21d146514c7d408773e7682e18454e9c1d76d6d8" +checksum = "744bf969587ec9f0f3a1fa648bdaa8db5895b5c3ba24cab22e2f55fbf3145f80" dependencies = [ "swc_atoms", "swc_common", @@ -5497,9 +5498,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_common" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a83e449bb6dfc864f665ff5967f8ade2efdf61c50b0b2094e0e2770dca017e28" +checksum = "105c4288abcade8e27cf094f3a8357d8525f05116fb90555ae916de004ce37ef" dependencies = [ "swc_common", "swc_ecma_ast", @@ -5510,9 +5511,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2015" -version = "1.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f248aa75dec77e4b229bb2515f1c640915b43c6a5f3fd74678e90d1979a48b5" +checksum = "0f2d82ed9ea4af9cffd600d3e67e6799bf6aa44058baec555db1e76156fb0bf6" dependencies = [ "arrayvec", "indexmap 2.2.6", @@ -5537,9 +5538,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2016" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ed78da21bb08165fc6482f9e18fd9d855151f1ceceb52ac479670daf638a93" +checksum = "000baf706f58d331bce625df7c3d7753ee9b082257348f01a6322de324c32657" dependencies = [ "swc_atoms", "swc_common", @@ -5554,9 +5555,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2017" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f07d95be4b1b211cdd5037387f5bb9bf71a24b1f0511667b10113d4c081c7e4b" +checksum = "32d35656f67ed3bb4b47e2db1c38a672f162b4a8da2209c5e6d1630e9fb9a5e5" dependencies = [ "serde", "swc_atoms", @@ -5572,9 +5573,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2018" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c8fa68f4f4d9b9185ad67aee6055eec2cecf0b873c4ed3fe52cda54516c778" +checksum = "1ca1a1a415b68621c35cf9e6abeca238a10ebe7755aa41c1f62ca7963507def9" dependencies = [ "serde", "swc_atoms", @@ -5591,9 +5592,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2019" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "007e7708253adba943bc5c099fb50176c37090bbf9eddc3579f8806f4c6d5245" +checksum = "9c7139341fc2fcefd6b95c513556b3e40a582e8cfddf60e7ea1de3a925feaa3b" dependencies = [ "swc_atoms", "swc_common", @@ -5607,9 +5608,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2020" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fb6997a7425e5a5ed48939bd470d044214a24c9b63760a131baa5eb8e3072f8" +checksum = "8a7a17758f8aabed8c7d7b283a091636e66a19bf08232aa346299361fa7536ae" dependencies = [ "serde", "swc_atoms", @@ -5625,9 +5626,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2021" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f813956f45bb0ddc59e3e74798ab13d323dc7d7994de7215edd97a374ee4db" +checksum = "108fa9dbaea53ac3fc94bb4245a3a88c5655575b455913c5103bde3e669e0a97" dependencies = [ "swc_atoms", "swc_common", @@ -5641,9 +5642,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2022" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "205d58536ba7cbb4333bf73dc15da14dc3749f77a790c995fa123ffb3e007007" +checksum = "190af774d89b59ea9477c740304c4e90401ab18ae38aa60865ad4a9ec3184eec" dependencies = [ "swc_atoms", "swc_common", @@ -5660,9 +5661,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es3" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6399dec3eb785ecd4a910c89640ea711be532cb636d906c14f5cba88a626c64" +checksum = "b9fef5471201257b228aac059359ab2c9b63d75c046c0f1898a118b88ad29a72" dependencies = [ "swc_common", "swc_ecma_ast", @@ -5675,9 +5676,9 @@ dependencies = [ [[package]] name = "swc_ecma_ext_transforms" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0707b57d10bb5e4cc5cec0ffad61da132a521ab1cf91f36dcc1af5d31ee07ee7" +checksum = "99bb59c22fb1fa791b62e8c85708613e5ce735d6e10b876008e78cd29c74944e" dependencies = [ "phf 0.11.2", "swc_atoms", @@ -5689,9 +5690,9 @@ dependencies = [ [[package]] name = "swc_ecma_lints" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca5f88f6282fc64b19fcfea238afd24cb4a16c028861743323d07df137550c6" +checksum = "e8e245e1c8a40e1bbb1d1e07944c7c3f609cec90aeb58a3146eef811b21aa713" dependencies = [ "auto_impl", "dashmap 5.5.3", @@ -5709,9 +5710,9 @@ dependencies = [ [[package]] name = "swc_ecma_loader" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3437031ac49f5fdc5f236a9263bb4cab144d34864cf530767b1bf53d3ca75a" +checksum = "d1e95137d89bd71b770d2bd26a0de8205387fb12d727a9ca5a1fc4c3a7994611" dependencies = [ "anyhow", "dashmap 5.5.3", @@ -5731,9 +5732,9 @@ dependencies = [ [[package]] name = "swc_ecma_minifier" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "638fbd0db2fe9127bf91e6f57d3489c5fb8e5060ce2c4ec542d68142ef354796" +checksum = "95e35da2034a38396a1547b2746d32fe37bcd4ff52a4b7ab793ebc034aa2d47d" dependencies = [ "arrayvec", "indexmap 2.2.6", @@ -5767,9 +5768,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b26e37822d421710c4f49eb7f63cc9792a57ad1b6e461d1b3eca84dbe45ae6" +checksum = "2af71660a9c76b542d1e42a9d5bec7ae061c6969fc742f024a53c474a5a57bd3" dependencies = [ "either", "new_debug_unreachable", @@ -5789,9 +5790,9 @@ dependencies = [ [[package]] name = "swc_ecma_preset_env" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1ece4f571841a978305f300f65e52f6e8ffbcbe94b8fab4e576b63a96b02d1" +checksum = "dbaaa45a4900566137daaa092ab6d486ca07aa1019fe2336ca6839f665034c48" dependencies = [ "anyhow", "dashmap 5.5.3", @@ -5814,9 +5815,9 @@ dependencies = [ [[package]] name = "swc_ecma_quote_macros" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95d9410749b3abae6d4dafbaad79f446f91c5848b07b7fabd5a55f8aca0babd" +checksum = "400f606bcc8576c1fd0e8f278ae5f8e405f8f575917eef9e7acff3ab483b53cb" dependencies = [ "anyhow", "proc-macro2", @@ -5831,9 +5832,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19ea1b66e4e99ae56d8645b763cc55683201c3b373c36c3c6876d279312ca63" +checksum = "a0646ade61000feaff7a4b1a1ff326b86e156f1bb9fd462a8f246ce171037723" dependencies = [ "swc_atoms", "swc_common", @@ -5851,9 +5852,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7feebd16859fb7c102d9dfdf75dde065825683c38f3ba250729da33dbfc11869" +checksum = "c09e305178eb251f9115ee765842f3e27589c079bee265c85658582de46cb8d6" dependencies = [ "better_scoped_tls", "bitflags 2.5.0", @@ -5875,9 +5876,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82f5b18390f80e0cb0de3a4586db34f6092b419a49b1689ca2b0e8bedae7318" +checksum = "08b7446902482d5b132bccafee83172c98fd7b07b7ab1df863d9cfb2c0d3ff3e" dependencies = [ "swc_atoms", "swc_common", @@ -5889,9 +5890,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_compat" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8cc2d31ec8ed2f65ebc6461a931befc6d9e48438d28fb612a30038694a76227" +checksum = "4be6ada1ae8e7495852a1645bbac4d1e87fe7fc4d061ce6256d2466c25295065" dependencies = [ "arrayvec", "indexmap 2.2.6", @@ -5937,9 +5938,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_module" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e711b88fd1c7127a7a26245a2bc9f98505969eb181709153ea7696abae1459" +checksum = "4235ddd644e14a7b7a7f068640f353136858bf7987694122cc00fdc964d61fea" dependencies = [ "Inflector", "anyhow", @@ -5964,9 +5965,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_optimization" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e01c27c2855f23341d26ab9267cb8e1518657b334ed0da2a0ce0864a0d9569" +checksum = "05703e5671b838797b8bae42baf29be7a4541e8ab7c03ee3587689ad37ff71bd" dependencies = [ "dashmap 5.5.3", "indexmap 2.2.6", @@ -5989,9 +5990,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_proposal" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59560cd399796ec9d0aab77dadbc30314c8bab68ee16440121188ff32ce0efff" +checksum = "d07e74fddfd7dc82368257a678ff9683566ae3d99cacee2831959d60ba76ddc2" dependencies = [ "either", "rustc-hash 1.1.0", @@ -6009,9 +6010,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240b46d37c929693ecbfecdd8023b3f2b50d52d46b9329df4dad705713c15a36" +checksum = "94b6432ee6b1f232c7d5eb21eefa363802aba8683f11f215eb3c58d4e43d924f" dependencies = [ "base64 0.21.7", "dashmap 5.5.3", @@ -6034,9 +6035,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f94fc9b875bf9d25e961cc019b0aa7b340a8bd5893cef87b00153d745e4d3c4d" +checksum = "5e2d6d68482f78da5e68105b706aa0023b78fa16b6a82b1f72d1b7de8d349960" dependencies = [ "ryu-js", "serde", @@ -6051,9 +6052,9 @@ dependencies = [ [[package]] name = "swc_ecma_usage_analyzer" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8931e47f1370758e8babde04a137c0652f1096c6707f5051a50341a78ed9f3e" +checksum = "215b4b4953eba739e825d7e7d70270fa884d8ae4c24d463e9f9c477c857cdabe" dependencies = [ "indexmap 2.2.6", "rustc-hash 1.1.0", @@ -6068,9 +6069,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb34d0a24e40cfeedaae2a49bd2ba4d27ad8bfd0cf006d3de292f385a9b9335" +checksum = "860ebda7452f4c6d3ef37f4e781a7d130cd5698e20044d07484ad85ab14d5324" dependencies = [ "indexmap 2.2.6", "num_cpus", @@ -6088,9 +6089,9 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9cc511aa14bf58a6bc66815e78b76a4fed15f148681856d8d9b0456577050aa" +checksum = "942b666a2d56c29f7535c158d8f70b7750436cad62cc356953d3ed550e4607ed" dependencies = [ "new_debug_unreachable", "num-bigint", @@ -6114,9 +6115,9 @@ dependencies = [ [[package]] name = "swc_error_reporters" -version = "2.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca3b3c6da0e2d659c8a5cc6d0a1c76fe3272ae1d55e93e48c74de655271142b" +checksum = "a9f077f41ae28feb53f73c84f59f6e992c6e74b1e7ea65c6eb7dd0f2b5c17b5f" dependencies = [ "anyhow", "miette 7.2.0", @@ -6127,9 +6128,9 @@ dependencies = [ [[package]] name = "swc_fast_graph" -version = "2.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca7ec2681ee91fd5a8dc83dd202d71aae2356e3bb12597d329aad1264bb3495" +checksum = "780bf429bd56049d2ca2678e6ac3304a1f178327550eec52b04a7932c300b497" dependencies = [ "indexmap 2.2.6", "petgraph", @@ -6139,9 +6140,9 @@ dependencies = [ [[package]] name = "swc_html" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ebda2a4990413321ecf9e09aef375d8b32b34d31543be75eb67a4562a956e8" +checksum = "8fdadc2bcf53c7853d6464338abf595d438034339ad9fe8cf9ef6fce2a357d77" dependencies = [ "swc_html_ast", "swc_html_codegen", @@ -6151,9 +6152,9 @@ dependencies = [ [[package]] name = "swc_html_ast" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5d7a6d2dc82e3e0e37cce765435ea88574c6441f799f7478552edc3b1d777c" +checksum = "7f775c4a26fe724f0bb847cea66830678d20f217bf2e6a98c7e322025ce94eba" dependencies = [ "is-macro", "string_enum", @@ -6163,9 +6164,9 @@ dependencies = [ [[package]] name = "swc_html_codegen" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3012cbdedfafafd7ad9eac595f2cde8d12169314ffe039019fe95315c25787d2" +checksum = "b34a3e0a30dbd22182f8ada3e97dd95ef2aa7e6f2ea755c1915a05a5f13fa0f4" dependencies = [ "auto_impl", "bitflags 2.5.0", @@ -6191,9 +6192,9 @@ dependencies = [ [[package]] name = "swc_html_minifier" -version = "1.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176155050c77c7741366ae6423caf0b8f2c731a2596c2b5aa64ef466406d483d" +checksum = "2079e1e09525f3da212ba0c440bc65da0dfee1a3578ea1d25048805a4ac8bc8a" dependencies = [ "once_cell", "serde", @@ -6216,9 +6217,9 @@ dependencies = [ [[package]] name = "swc_html_parser" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746245cc4f2dece69422df8a1d5f4c6424f5ddb813add44d633492225c8522ac" +checksum = "742129ab25e26dd70c9a78ea2dd520896f49373e4e781797684a5520810bcf23" dependencies = [ "swc_atoms", "swc_common", @@ -6228,9 +6229,9 @@ dependencies = [ [[package]] name = "swc_html_utils" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbb59303f9ee157b99e78255ca2a46d4bcead61945e8043973548f17709c744" +checksum = "e17d1db98068a7f00261019c29637fa7552a251d3bb38a3b993329fd8a4257b7" dependencies = [ "once_cell", "serde", @@ -6241,9 +6242,9 @@ dependencies = [ [[package]] name = "swc_html_visit" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef54997f934325b477b9eff387abca082bac9e126b67f586fffed0b1b0ae24e" +checksum = "b1f3c962a7d5a5e79029af143ad64a182b2c18277e7f47d8e7791a7004be510d" dependencies = [ "serde", "swc_atoms", @@ -6265,9 +6266,9 @@ dependencies = [ [[package]] name = "swc_node_comments" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89487176679eb1e1f71af72f3c5b97cdf0162275fe2b9b8033153353b9becd3a" +checksum = "782b6885d35056d93d8370426e0dffa7aba514250e5bd54dea312b35c7704f6a" dependencies = [ "dashmap 5.5.3", "swc_atoms", @@ -6288,9 +6289,9 @@ dependencies = [ [[package]] name = "swc_plugin_proxy" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b12f6e1064370116757b9aebc33ab82c123eabc635d00b38770a1f2dbebdc8" +checksum = "43330668909c0db594e6779754c4e53c249b4f3c9c7ea1af6668ff028f7072e6" dependencies = [ "better_scoped_tls", "rkyv 0.7.45", @@ -6302,9 +6303,9 @@ dependencies = [ [[package]] name = "swc_plugin_runner" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6926f8af80f66d3c01d609a0f235512b1347b5371f61c6cab3a5ad7df2bbb06" +checksum = "5c88b8d131b40a85482143089082dc32e3557e4cb05fc1ac1676fa48bc917e58" dependencies = [ "anyhow", "enumset", @@ -6361,9 +6362,9 @@ dependencies = [ [[package]] name = "swc_typescript" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626ad5c9e9f4b9e77748c0990c021f3bc23f61c679597e604e44a47c9d87093d" +checksum = "ddce3a99df78efd73b3401ee9893165f571d1fa867d8c46bca69a8a23e0844c5" dependencies = [ "swc_atoms", "swc_common", @@ -6373,9 +6374,9 @@ dependencies = [ [[package]] name = "swc_visit" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b40b33e89a4fe7b07b39665f81203a83ffecb3a930522b6ad075716ee6dad637" +checksum = "9138b6a36bbe76dd6753c4c0794f7e26480ea757bee499738bedbbb3ae3ec5f3" dependencies = [ "either", "new_debug_unreachable", diff --git a/Cargo.toml b/Cargo.toml index f724ecc0da0b..2b840a97e7b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,12 +79,12 @@ rkyv = { version = "=0.8.8" } # Must be pinned with the same swc versions swc_config = { version = "=1.0.0" } -swc_core = { version = "=1.0.0", default-features = false } -swc_ecma_minifier = { version = "=1.0.0", default-features = false } -swc_error_reporters = { version = "=2.0.0" } -swc_html = { version = "=1.0.0" } -swc_html_minifier = { version = "=1.0.0", default-features = false } -swc_node_comments = { version = "=1.0.0" } +swc_core = { version = "=3.0.1", default-features = false } +swc_ecma_minifier = { version = "=3.0.0", default-features = false } +swc_error_reporters = { version = "=3.0.0" } +swc_html = { version = "=3.0.0" } +swc_html_minifier = { version = "=3.0.0", default-features = false } +swc_node_comments = { version = "=2.0.0" } rspack_dojang = { version = "0.1.9" } [workspace.metadata.release] diff --git a/crates/rspack_loader_swc/src/compiler.rs b/crates/rspack_loader_swc/src/compiler.rs index a02f4d2497ed..d48749ce656e 100644 --- a/crates/rspack_loader_swc/src/compiler.rs +++ b/crates/rspack_loader_swc/src/compiler.rs @@ -30,12 +30,11 @@ use swc_core::common::{ comments::SingleThreadedComments, FileName, FilePathMapping, Mark, SourceMap, GLOBALS, }; use swc_core::common::{BytePos, SourceFile}; -use swc_core::ecma::ast::{EsVersion, Program}; +use swc_core::ecma::ast::{EsVersion, Pass, Program}; use swc_core::ecma::parser::{ parse_file_as_module, parse_file_as_program, parse_file_as_script, Syntax, }; use swc_core::ecma::transforms::base::helpers::{self, Helpers}; -use swc_core::ecma::visit::{Fold, FoldWith}; use swc_core::{ base::{config::Options, try_with_handler}, common::Globals, @@ -340,9 +339,9 @@ impl SwcCompiler { &'a self, program: Option, before_pass: impl FnOnce(&Program) -> P + 'a, - ) -> Result, Error> + ) -> Result, Error> where - P: Fold + 'a, + P: Pass + 'a, { let built = self.run(|| { try_with_handler(self.cm.clone(), Default::default(), |handler| { @@ -381,17 +380,14 @@ impl SwcCompiler { } } - pub fn transform(&self, config: BuiltInput) -> Result { + pub fn transform(&self, config: BuiltInput) -> Result { let program = config.program; let mut pass = config.pass; let program = self.run(|| { helpers::HELPERS.set(&self.helpers, || { try_with_handler(self.cm.clone(), Default::default(), |handler| { - HANDLER.set(handler, || { - // Fold module - Ok(program.fold_with(&mut pass)) - }) + HANDLER.set(handler, || Ok(program.apply(&mut pass))) }) }) }); diff --git a/crates/rspack_loader_swc/src/transformer.rs b/crates/rspack_loader_swc/src/transformer.rs index ea494ef8ddfd..3091ec510a3e 100644 --- a/crates/rspack_loader_swc/src/transformer.rs +++ b/crates/rspack_loader_swc/src/transformer.rs @@ -2,9 +2,9 @@ use either::Either; use swc_core::atoms::Atom; use swc_core::common::collections::AHashMap; use swc_core::common::BytePos; -use swc_core::ecma::ast::Ident; +use swc_core::ecma::ast::Pass; +use swc_core::ecma::ast::{noop_pass, Ident}; use swc_core::ecma::visit::{noop_visit_type, Visit}; -use swc_core::ecma::{transforms::base::pass::noop, visit::Fold}; use crate::options::RspackExperiments; @@ -14,7 +14,7 @@ macro_rules! either { #[allow(clippy::redundant_closure_call)] Either::Left($f(config)) } else { - Either::Right(noop()) + Either::Right(noop_pass()) } }; ($config:expr, $f:expr, $enabled:expr) => { @@ -27,7 +27,7 @@ macro_rules! either { } #[allow(clippy::too_many_arguments)] -pub(crate) fn transform(rspack_experiments: &RspackExperiments) -> impl Fold + '_ { +pub(crate) fn transform(rspack_experiments: &RspackExperiments) -> impl Pass + '_ { either!(rspack_experiments.import, |options| { swc_plugin_import::plugin_import(options) }) diff --git a/crates/rspack_plugin_javascript/src/plugin/side_effects_flag_plugin.rs b/crates/rspack_plugin_javascript/src/plugin/side_effects_flag_plugin.rs index a496c3bc10d6..3a1b299b0184 100644 --- a/crates/rspack_plugin_javascript/src/plugin/side_effects_flag_plugin.rs +++ b/crates/rspack_plugin_javascript/src/plugin/side_effects_flag_plugin.rs @@ -358,6 +358,7 @@ fn is_pure_call_expr( let expr = Expr::Call(call_expr.clone()); !expr.may_have_side_effects(&ExprCtx { unresolved_ctxt, + in_strict: false, is_unresolved_ref_safe: false, }) } else { @@ -433,6 +434,7 @@ pub fn is_pure_expression<'a>( _ => !expr.may_have_side_effects(&ExprCtx { unresolved_ctxt, is_unresolved_ref_safe: true, + in_strict: false, }), } } diff --git a/crates/rspack_plugin_javascript/src/visitors/swc_visitor/dropped_comments_preserver.rs b/crates/rspack_plugin_javascript/src/visitors/swc_visitor/dropped_comments_preserver.rs index 0caeef71fa0d..ce97bd4b04a5 100644 --- a/crates/rspack_plugin_javascript/src/visitors/swc_visitor/dropped_comments_preserver.rs +++ b/crates/rspack_plugin_javascript/src/visitors/swc_visitor/dropped_comments_preserver.rs @@ -21,7 +21,7 @@ use swc_core::common::{ BytePos, Span, DUMMY_SP, }; use swc_core::ecma::ast::{Module, Script}; -use swc_core::ecma::visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}; +use swc_core::ecma::visit::{noop_visit_mut_type, visit_mut_pass, VisitMut, VisitMutWith}; use swc_node_comments::SwcComments; /// Preserves comments that would otherwise be dropped. @@ -36,8 +36,8 @@ use swc_node_comments::SwcComments; /// while making a best-effort to preserve the "general orientation" of /// comments. -pub fn dropped_comments_preserver(comments: Option) -> impl Fold + VisitMut { - as_folder(DroppedCommentsPreserver { +pub fn dropped_comments_preserver(comments: Option) -> impl VisitMut { + visit_mut_pass(DroppedCommentsPreserver { comments, is_first_span: true, known_spans: Vec::new(), diff --git a/crates/rspack_plugin_javascript/src/visitors/swc_visitor/hygiene.rs b/crates/rspack_plugin_javascript/src/visitors/swc_visitor/hygiene.rs index 4301e5a88c33..4b0ec489d0b7 100644 --- a/crates/rspack_plugin_javascript/src/visitors/swc_visitor/hygiene.rs +++ b/crates/rspack_plugin_javascript/src/visitors/swc_visitor/hygiene.rs @@ -1,9 +1,9 @@ use swc_core::common::Mark; +use swc_core::ecma::ast::Pass; use swc_core::ecma::transforms::base::hygiene::{hygiene_with_config, Config}; -use swc_core::ecma::visit::Fold; - +use swc_core::ecma::visit::VisitMut; #[allow(deprecated)] -pub fn hygiene(keep_class_names: bool, top_level_mark: Mark) -> impl Fold { +pub fn hygiene(keep_class_names: bool, top_level_mark: Mark) -> impl 'static + Pass + VisitMut { hygiene_with_config(Config { keep_class_names, safari_10: true, diff --git a/crates/rspack_plugin_swc_js_minimizer/src/minify.rs b/crates/rspack_plugin_swc_js_minimizer/src/minify.rs index f0b4f6d55346..4141a527693c 100644 --- a/crates/rspack_plugin_swc_js_minimizer/src/minify.rs +++ b/crates/rspack_plugin_swc_js_minimizer/src/minify.rs @@ -35,7 +35,7 @@ use swc_core::{ hygiene::hygiene, resolver, }, - visit::{noop_visit_type, FoldWith, Visit, VisitMutWith, VisitWith}, + visit::{noop_visit_type, Visit, VisitMutWith, VisitWith}, }, }; use swc_ecma_minifier::{ @@ -215,9 +215,8 @@ pub fn minify( let program = helpers::HELPERS.set(&Helpers::new(false), || { HANDLER.set(handler, || { let program = program - .fold_with(&mut resolver(unresolved_mark, top_level_mark, false)) - .fold_with(&mut paren_remover(Some(&comments as &dyn Comments))); - + .apply(&mut resolver(unresolved_mark, top_level_mark, false)) + .apply(&mut paren_remover(Some(&comments as &dyn Comments))); let mut program = swc_ecma_minifier::optimize( program, cm.clone(), @@ -234,7 +233,7 @@ pub fn minify( if !is_mangler_enabled { program.visit_mut_with(&mut hygiene()) } - program.fold_with(&mut fixer(Some(&comments as &dyn Comments))) + program.apply(&mut fixer(Some(&comments as &dyn Comments))) }) }); diff --git a/crates/swc_plugin_import/src/lib.rs b/crates/swc_plugin_import/src/lib.rs index 75c4fdc70189..d3f4d53fef1e 100644 --- a/crates/swc_plugin_import/src/lib.rs +++ b/crates/swc_plugin_import/src/lib.rs @@ -18,7 +18,7 @@ use swc_core::{ ImportSpecifier, Module, ModuleDecl, ModuleExportName, ModuleItem, Str, }, atoms::Atom, - visit::{as_folder, Fold, VisitMut, VisitWith}, + visit::{visit_mut_pass, VisitMut, VisitWith}, }, }; @@ -151,7 +151,9 @@ const CUSTOM_STYLE_NAME: &str = "CUSTOM_STYLE_NAME"; /// Panic: /// /// Panics in sometimes if [swc_core::common::errors::HANDLER] is not provided. -pub fn plugin_import(config: &Vec) -> impl Fold + '_ { +pub fn plugin_import( + config: &Vec, +) -> swc_core::ecma::visit::VisitMutPass> { let mut renderer = handlebars::Handlebars::new(); renderer.register_helper( @@ -310,7 +312,7 @@ pub fn plugin_import(config: &Vec) -> impl Fold + '_ { } }); - as_folder(ImportPlugin { config, renderer }) + visit_mut_pass(ImportPlugin { config, renderer }) } #[derive(Debug)]