From 80f7b46e85f7f16e96eeb6ba8748a42417bfd2c1 Mon Sep 17 00:00:00 2001 From: James Sumners Date: Fri, 29 Aug 2025 12:05:29 -0400 Subject: [PATCH] Use rest parameters instead of cached parameters --- Cargo.lock | 266 +++++++++---------- Cargo.toml | 2 +- src/instrumentation.rs | 26 +- tests/wasm/__snapshots__/tests.test.mjs.snap | 17 +- 4 files changed, 159 insertions(+), 152 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 08e522d..50b3400 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,9 +73,9 @@ checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arrayvec" @@ -160,9 +160,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" [[package]] name = "bitvec" @@ -187,9 +187,9 @@ dependencies = [ [[package]] name = "browserslist-data" -version = "0.1.1" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c49471c5ae53cefe3ac4acc4d3c75cb4b68995b70b3bbb864f8e08fae282098c" +checksum = "2e977366ea69a6e756ae616c0d5def0da9a3521fca5f91f447fdf613c928a15a" dependencies = [ "ahash", "chrono", @@ -219,7 +219,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", - "regex-automata 0.4.9", + "regex-automata 0.4.10", "serde", ] @@ -280,9 +280,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.10" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" dependencies = [ "serde", ] @@ -321,7 +321,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -335,18 +335,18 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.30" +version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "shlex", ] [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "chrono" @@ -586,9 +586,9 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -635,9 +635,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "globset" @@ -647,8 +647,8 @@ checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" dependencies = [ "aho-corasick", "bstr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata 0.4.10", + "regex-syntax 0.8.6", ] [[package]] @@ -685,9 +685,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", @@ -727,9 +727,9 @@ dependencies = [ [[package]] name = "hstr" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4933df6fceb5d21a21e9fb5b46e572a83be4108e5b544de7ebe87cc1245b5d23" +checksum = "ced1416104790052518d199e753d49a7d8130d476c664bc9e53f40cfecb8e615" dependencies = [ "hashbrown 0.14.5", "new_debug_unreachable", @@ -856,9 +856,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -883,12 +883,12 @@ checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "serde", ] @@ -946,9 +946,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.174" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "linux-raw-sys" @@ -1241,9 +1241,9 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "petgraph" @@ -1305,9 +1305,9 @@ checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -1375,9 +1375,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -1473,14 +1473,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata 0.4.10", + "regex-syntax 0.8.6", ] [[package]] @@ -1494,13 +1494,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax 0.8.6", ] [[package]] @@ -1511,9 +1511,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "regress" @@ -1521,7 +1521,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "145bb27393fe455dd64d6cbc8d059adfa392590a45eadf079c01b11857e7b010" dependencies = [ - "hashbrown 0.15.4", + "hashbrown 0.15.5", "memchr", ] @@ -1548,7 +1548,7 @@ checksum = "19f5c3e5da784cd8c69d32cdc84673f3204536ca56e1fa01be31a74b92c932ac" dependencies = [ "bytecheck", "bytes", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "indexmap", "munge", "ptr_meta", @@ -1591,9 +1591,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -1678,9 +1678,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.141" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", "memchr", @@ -1845,7 +1845,7 @@ dependencies = [ "serde", "serde_json", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_compiler_base", "swc_config", "swc_ecma_ast 14.0.0", @@ -1904,7 +1904,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3500dcf04c84606b38464561edc5e46f5132201cb3e23cf9613ed4033d6b1bb2" dependencies = [ "bytecheck", - "hstr 2.0.0", + "hstr 2.0.1", "once_cell", "rancor", "rkyv", @@ -1940,9 +1940,9 @@ dependencies = [ [[package]] name = "swc_common" -version = "14.0.2" +version = "14.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e510ae120281a9daee0b9246b6740b509b99bd78f88b2a7210c87ec78572a7" +checksum = "63fdb58d278e7cd625f671e5371b3e6c0eab56c6e2a995a6f70dd0f7725255d4" dependencies = [ "anyhow", "ast_node", @@ -1985,7 +1985,7 @@ dependencies = [ "serde", "serde_json", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_config", "swc_ecma_ast 14.0.0", "swc_ecma_codegen", @@ -2031,13 +2031,13 @@ dependencies = [ [[package]] name = "swc_core" -version = "34.0.3" +version = "34.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4638e0e6fac7184531bd67e4244a4a27ceec81cd039171ceb5649456816f8346" +checksum = "49bdd38caa35501b140a0344e1aeed8d6173f0fa2c55da9d9181ccc65a32f327" dependencies = [ "swc_allocator", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_quote_macros", "swc_ecma_transforms_base", @@ -2088,7 +2088,7 @@ dependencies = [ "serde", "string_enum", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_visit", "unicode-id-start", ] @@ -2110,7 +2110,7 @@ dependencies = [ "serde", "swc_allocator", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_codegen_macros", "swc_sourcemap", @@ -2136,7 +2136,7 @@ checksum = "3a3f347c4383d37a02fee3c872d206a8b560ea437b89e407a98200a78c8069e3" dependencies = [ "rustc-hash", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_compat_es2015", "swc_ecma_transforms_base", @@ -2152,7 +2152,7 @@ version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f573f45c9756d0b40788bcf4456ffdd8432785f57a5b9c24bcc2c93078f3280d" dependencies = [ - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_utils", "swc_ecma_visit 14.0.0", @@ -2172,7 +2172,7 @@ dependencies = [ "serde_derive", "smallvec", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_config", "swc_ecma_ast 14.0.0", "swc_ecma_compat_common", @@ -2191,7 +2191,7 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "148e194737c87a64252280698364be0d2ab12e097be450d6aeda3868fe3b3f9c" dependencies = [ - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_transforms_base", "swc_ecma_transforms_macros", @@ -2208,7 +2208,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37399e4ead34a3d6991aa8cc17ea4bd5133a0c54be70ecc0eeb96905f75e3939" dependencies = [ "serde", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_transforms_base", "swc_ecma_utils", @@ -2224,7 +2224,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "737ace9c05605dd5bd54852bb6199aa37f4378346ebef2ab08c29501a781a8d2" dependencies = [ "serde", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_compat_common", "swc_ecma_transforms_base", @@ -2241,7 +2241,7 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60f0e0422bdd6704e10437af83d9f2e79aad86b8a310fc1661200baf496b209d" dependencies = [ - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_transforms_base", "swc_ecma_utils", @@ -2257,7 +2257,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39393fbf2af0200e29160131cba4036758ff1d175f910760dff1bd8e0b2ec9fa" dependencies = [ "serde", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_compat_es2022", "swc_ecma_compiler", @@ -2288,7 +2288,7 @@ checksum = "e4dc22f7f1667e0e598a9967876de8e76e1adf2a37435d36bad17ca5f677d018" dependencies = [ "rustc-hash", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_compat_common", "swc_ecma_compiler", @@ -2307,7 +2307,7 @@ version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5ea46821c0b5c8f8f55935b21957fbb4668a12f5101a28ed8038ef1ccf05b8e" dependencies = [ - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_utils", "swc_ecma_visit 14.0.0", @@ -2324,7 +2324,7 @@ dependencies = [ "bitflags", "rustc-hash", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_transforms_base", "swc_ecma_utils", @@ -2340,7 +2340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2f85f84aa5b1116bac920f548be87b7c45d936002ca2654c455a148751826be" dependencies = [ "phf", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_utils", "swc_ecma_visit 14.0.0", @@ -2364,7 +2364,7 @@ dependencies = [ "smartstring", "stacker", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "tracing", ] @@ -2383,7 +2383,7 @@ dependencies = [ "rustc-hash", "serde", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_config", "swc_ecma_ast 14.0.0", "swc_ecma_utils", @@ -2408,7 +2408,7 @@ dependencies = [ "serde", "serde_json", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "tracing", ] @@ -2434,7 +2434,7 @@ dependencies = [ "serde", "serde_json", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_config", "swc_ecma_ast 14.0.0", "swc_ecma_codegen", @@ -2450,15 +2450,15 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "22.0.2" +version = "22.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d61d0b6ecfdf633595d41a730da0c44195cf292e8417a3e77226be9d6e99653" +checksum = "3a43a77589c03110cb7f749b0e3feb8a75c5a81e9e539bde2873ddd5072fcb13" dependencies = [ "either", "num-bigint", "serde", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_lexer", "tracing", @@ -2481,7 +2481,7 @@ dependencies = [ "serde_json", "string_enum", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_compiler", "swc_ecma_transforms", @@ -2500,7 +2500,7 @@ dependencies = [ "quote", "rustc-hash", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_parser", "swc_macros_common", @@ -2527,7 +2527,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3806045dcfcd0a58b58f6c82dea68d26aa7dac0bc8233ca36c4474ad5732ab45" dependencies = [ "par-core", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_transforms_base", "swc_ecma_transforms_compat", @@ -2553,7 +2553,7 @@ dependencies = [ "rustc-hash", "serde", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_parser", "swc_ecma_utils", @@ -2567,7 +2567,7 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb9db85f13957bd240ed574131f0d36f735cb2487747200a6e72842f76e3db6d" dependencies = [ - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_transforms_base", "swc_ecma_utils", @@ -2584,7 +2584,7 @@ dependencies = [ "par-core", "serde", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_compat_bugfixes", "swc_ecma_compat_common", @@ -2632,7 +2632,7 @@ dependencies = [ "rustc-hash", "serde", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_config", "swc_ecma_ast 14.0.0", "swc_ecma_loader", @@ -2658,7 +2658,7 @@ dependencies = [ "rustc-hash", "serde_json", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_parser", "swc_ecma_transforms_base", @@ -2677,7 +2677,7 @@ dependencies = [ "rustc-hash", "serde", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_transforms_base", "swc_ecma_transforms_classes", @@ -2700,7 +2700,7 @@ dependencies = [ "sha1", "string_enum", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_config", "swc_ecma_ast 14.0.0", "swc_ecma_parser", @@ -2722,7 +2722,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_codegen", "swc_ecma_parser", @@ -2745,7 +2745,7 @@ dependencies = [ "rustc-hash", "serde", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_transforms_base", "swc_ecma_transforms_react", @@ -2763,7 +2763,7 @@ dependencies = [ "indexmap", "rustc-hash", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_utils", "swc_ecma_visit 14.0.0", @@ -2784,7 +2784,7 @@ dependencies = [ "rustc-hash", "ryu-js", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_visit 14.0.0", "tracing", @@ -2814,7 +2814,7 @@ dependencies = [ "new_debug_unreachable", "num-bigint", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_visit", "tracing", @@ -2841,7 +2841,7 @@ dependencies = [ "miette", "once_cell", "serde", - "swc_common 14.0.2", + "swc_common 14.0.3", ] [[package]] @@ -2864,7 +2864,7 @@ dependencies = [ "dashmap", "rustc-hash", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", ] [[package]] @@ -2898,7 +2898,7 @@ dependencies = [ "rancor", "rkyv", "rustc-hash", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_trace_macro", "tracing", @@ -2906,9 +2906,9 @@ dependencies = [ [[package]] name = "swc_sourcemap" -version = "9.3.3" +version = "9.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd6e0cad02163875258edaf9ae6004e2526be137bdde6a46c540515615949b1" +checksum = "de08ef00f816acdd1a58ee8a81c0e1a59eefef2093aefe5611f256fa6b64c4d7" dependencies = [ "base64-simd", "bitvec", @@ -2951,7 +2951,7 @@ dependencies = [ "better_scoped_tls", "rustc-hash", "serde", - "swc_common 14.0.2", + "swc_common 14.0.3", ] [[package]] @@ -2964,7 +2964,7 @@ dependencies = [ "petgraph", "rustc-hash", "swc_atoms 7.0.0", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_ecma_ast 14.0.0", "swc_ecma_utils", "swc_ecma_visit 14.0.0", @@ -2982,9 +2982,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.104" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -3010,15 +3010,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", "getrandom", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3050,7 +3050,7 @@ dependencies = [ "rustc-hash", "serde", "serde_json", - "swc_common 14.0.2", + "swc_common 14.0.3", "swc_error_reporters", "testing_macros", "tracing", @@ -3094,11 +3094,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.16", ] [[package]] @@ -3114,9 +3114,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", @@ -3144,9 +3144,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -3292,13 +3292,14 @@ checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -3309,9 +3310,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" dependencies = [ "js-sys", "wasm-bindgen", @@ -3371,11 +3372,11 @@ dependencies = [ [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.3+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] @@ -3464,11 +3465,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3693,13 +3694,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags", -] +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" [[package]] name = "writeable" @@ -3800,9 +3798,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", diff --git a/Cargo.toml b/Cargo.toml index 031f7cb..a924979 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,4 +33,4 @@ assert_cmd = "2" [profile.release] lto = true -opt-level = "s" \ No newline at end of file +opt-level = "s" diff --git a/src/instrumentation.rs b/src/instrumentation.rs index 984767d..10592fa 100644 --- a/src/instrumentation.rs +++ b/src/instrumentation.rs @@ -4,12 +4,12 @@ **/ use crate::config::InstrumentationConfig; use std::path::PathBuf; -use swc_core::common::{Span, SyntaxContext}; +use swc_core::common::{Span, SyntaxContext, DUMMY_SP}; use swc_core::ecma::{ ast::{ - ArrowExpr, AssignExpr, AssignTarget, BlockStmt, ClassDecl, ClassExpr, ClassMethod, - Constructor, Expr, FnDecl, FnExpr, Ident, Lit, MemberProp, MethodProp, Module, ModuleItem, - Param, Pat, PropName, Script, SimpleAssignTarget, Stmt, Str, VarDecl, + ArrowExpr, AssignExpr, AssignTarget, BindingIdent, BlockStmt, ClassDecl, ClassExpr, ClassMethod, + Constructor, Expr, FnDecl, FnExpr, Ident, IdentName, Lit, MemberProp, MethodProp, Module, ModuleItem, + Param, Pat, PropName, RestPat, Script, SimpleAssignTarget, Stmt, Str, VarDecl, }, atoms::Atom, }; @@ -67,8 +67,21 @@ impl Instrumentation { } fn new_fn(&self, body: BlockStmt, params: Vec) -> ArrowExpr { + let rest_param = Pat::Rest(RestPat { + span: DUMMY_SP, + dot3_token: DUMMY_SP, + arg: Box::new( + Pat::Ident( + BindingIdent::from( + IdentName::new(Atom::from("wrappedArgs"), DUMMY_SP) + ) + ) + ), + type_ann: None, + }); + ArrowExpr { - params, + params: vec![rest_param], body: Box::new(body.into()), is_async: self.config.function_query.kind().is_async(), is_generator: false, @@ -119,7 +132,7 @@ impl Instrumentation { ctxt: SyntaxContext::empty(), stmts: vec![ quote!("const __apm$wrapped = $wrapped;" as Stmt, wrapped: Expr = wrapped_fn.into()), - quote!("return __apm$wrapped.apply(null, __apm$original_args);" as Stmt), + quote!("return __apm$wrapped.apply(null, wrappedArgs);" as Stmt), ], }; @@ -134,7 +147,6 @@ impl Instrumentation { )); body.stmts = vec![ - quote!("const __apm$original_args = arguments" as Stmt), quote!("const __apm$traced = $traced;" as Stmt, traced: Expr = traced_fn.into()), quote!( "if (!$ch.hasSubscribers) return __apm$traced();" as Stmt, diff --git a/tests/wasm/__snapshots__/tests.test.mjs.snap b/tests/wasm/__snapshots__/tests.test.mjs.snap index 92eec37..cd780a9 100644 --- a/tests/wasm/__snapshots__/tests.test.mjs.snap +++ b/tests/wasm/__snapshots__/tests.test.mjs.snap @@ -33,12 +33,11 @@ module.exports = class Up { } } fetch() { - const __apm$original_args = arguments; - const __apm$traced = ()=>{ + const __apm$traced = (...wrappedArgs)=>{ const __apm$wrapped = ()=>{ console.log('fetch'); }; - return __apm$wrapped.apply(null, __apm$original_args); + return __apm$wrapped.apply(null, wrappedArgs); }; if (!tr_ch_apm$up_fetch.hasSubscribers) return __apm$traced(); return tr_ch_apm$up_fetch.traceSync(__apm$traced, { @@ -86,12 +85,11 @@ export class Up { } } fetch() { - const __apm$original_args = arguments; - const __apm$traced = ()=>{ + const __apm$traced = (...wrappedArgs)=>{ const __apm$wrapped = ()=>{ console.log('fetch'); }; - return __apm$wrapped.apply(null, __apm$original_args); + return __apm$wrapped.apply(null, wrappedArgs); }; if (!tr_ch_apm$up_fetch.hasSubscribers) return __apm$traced(); return tr_ch_apm$up_fetch.traceSync(__apm$traced, { @@ -139,12 +137,11 @@ export class Up { } } fetch(url) { - const __apm$original_args = arguments; - const __apm$traced = ()=>{ + const __apm$traced = (...wrappedArgs)=>{ const __apm$wrapped = (url)=>{ console.log('fetch'); }; - return __apm$wrapped.apply(null, __apm$original_args); + return __apm$wrapped.apply(null, wrappedArgs); }; if (!tr_ch_apm$up_fetch.hasSubscribers) return __apm$traced(); return tr_ch_apm$up_fetch.traceSync(__apm$traced, { @@ -155,6 +152,6 @@ export class Up { } } ", - "map": "{"version":3,"file":"module.js","sources":["module.ts"],"sourceRoot":"","names":[],"mappings":";;;AAEA,MAAM,CAAA,MAAO,EAAE;IACX,aAAA;;;;;;;;;YACI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;;;;;;;;;;;;;;;;IAC/B,CAAC;IACD,KAAK,IAAS,EAAA;;;mCAAR;gBACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;;;;;;;;;;IACzB,CAAC;CACJ"}", + "map": "{"version":3,"file":"module.js","sources":["module.ts"],"sourceRoot":"","names":[],"mappings":";;;AAEA,MAAM,CAAA,MAAO,EAAE;IACX,aAAA;;;;;;;;;YACI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;;;;;;;;;;;;;;;;IAC/B,CAAC;IACD,KAAK,CAAC,GAAQ,EAAA;;;gBACV,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;;;;;;;;;;IACzB,CAAC;CACJ"}", } `;