Repository: denoland/deno_core
Pull request #184 (2023-09-08 20:17:16)

chore: update Cargo.toml + Cargo.lock
All deps are now workspace deps
Run a big cargo update
Required a reformat of proc_macro outputs due to a bump in prettyplease


Patch:
diff --git a/Cargo.lock b/Cargo.lock
index 122537a..9413123 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -14,9 +14,9 @@ dependencies = [
 
 [[package]]
 name = "addr2line"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -27,43 +27,32 @@ version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
-[[package]]
-name = "ahash"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
 [[package]]
 name = "aho-corasick"
-version = "1.0.2"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.72"
+version = "1.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "ast_node"
-version = "0.9.4"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c704e2f6ee1a98223f5a7629a6ef0f3decb3b552ed282889dc957edff98ce1e6"
+checksum = "c09c69dffe06d222d072c878c3afe86eee2179806f20503faec97250268b4c24"
 dependencies = [
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -74,9 +63,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "backtrace"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
@@ -125,9 +114,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
 
 [[package]]
 name = "block-buffer"
@@ -146,15 +135,18 @@ checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cfg-if"
@@ -195,9 +187,9 @@ dependencies = [
 
 [[package]]
 name = "dashmap"
-version = "5.5.0"
+version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if",
  "hashbrown 0.14.0",
@@ -214,9 +206,9 @@ checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
 
 [[package]]
 name = "data-url"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
+checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f"
 
 [[package]]
 name = "debugid"
@@ -236,7 +228,7 @@ checksum = "3c65c2ffdafc1564565200967edc4851c7b55422d3913466688907efd05ea26f"
 dependencies = [
  "deno-proc-macro-rules-macros",
  "proc-macro2",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -248,14 +240,14 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "deno_ast"
-version = "0.27.3"
+version = "0.29.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b17e25531279d9795aeb076909c91c9b369fa63fd4d801486950577d0457d22"
+checksum = "e8bb902bcaa072210ca7b2f28c391f77bb16f6ef64664331c5d928d99943303c"
 dependencies = [
  "anyhow",
  "base64",
@@ -299,7 +291,7 @@ dependencies = [
  "deno_ops",
  "deno_unsync",
  "futures",
- "indexmap 1.9.3",
+ "indexmap 2.0.0",
  "libc",
  "log",
  "once_cell",
@@ -309,7 +301,7 @@ dependencies = [
  "serde_json",
  "serde_v8",
  "smallvec",
- "sourcemap",
+ "sourcemap 7.0.0",
  "tokio",
  "url",
  "v8",
@@ -317,9 +309,9 @@ dependencies = [
 
 [[package]]
 name = "deno_media_type"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63772a60d740a41d97fbffb4788fc3779e6df47289e01892c12be38f4a5beded"
+checksum = "a798670c20308e5770cc0775de821424ff9e85665b602928509c8c70430b3ee0"
 dependencies = [
  "data-url",
  "serde",
@@ -333,7 +325,7 @@ dependencies = [
  "deno-proc-macro-rules",
  "lazy-regex",
  "once_cell",
- "pmutil 0.6.1",
+ "pmutil",
  "pretty_assertions",
  "prettyplease",
  "proc-macro-crate",
@@ -342,7 +334,7 @@ dependencies = [
  "regex",
  "strum",
  "strum_macros",
- "syn 2.0.27",
+ "syn 2.0.31",
  "testing_macros",
  "thiserror",
 ]
@@ -358,16 +350,16 @@ dependencies = [
  "prettyplease",
  "rustversion",
  "serde",
- "syn 2.0.27",
+ "syn 2.0.31",
  "testing_macros",
  "trybuild",
 ]
 
 [[package]]
 name = "deno_unsync"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c870ce140f67570e2058e82b699c2476a647c28791b3955cfd0e6afdc3c8badf"
+checksum = "ac0984205f25e71ddd1be603d76e70255953c12ff864707359ab195d26dfc7b3"
 dependencies = [
  "tokio",
 ]
@@ -403,9 +395,9 @@ dependencies = [
 
 [[package]]
 name = "dprint-swc-ext"
-version = "0.10.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd4dda8a1b920e8be367aeaad035753d21bb69b3c50515afb41ab1eefbb886b5"
+checksum = "6a0a2492465344a58a37ae119de59e81fe5a2885f2711c7b5048ef0dfa14ce42"
 dependencies = [
  "bumpalo",
  "num-bigint",
@@ -429,6 +421,27 @@ version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
+[[package]]
+name = "errno"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
 [[package]]
 name = "form_urlencoded"
 version = "1.2.0"
@@ -440,14 +453,14 @@ dependencies = [
 
 [[package]]
 name = "from_variant"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d449976075322384507443937df2f1d5577afbf4282f12a5a66ef29fa3e6307"
+checksum = "03ec5dc38ee19078d84a692b1c41181ff9f94331c76cee66ff0208c770b5e54f"
 dependencies = [
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "swc_macros_common",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -516,7 +529,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -572,9 +585,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.3"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
 
 [[package]]
 name = "glob"
@@ -606,6 +619,15 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 
+[[package]]
+name = "home"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+dependencies = [
+ "windows-sys",
+]
+
 [[package]]
 name = "idna"
 version = "0.4.0"
@@ -644,15 +666,15 @@ dependencies = [
 
 [[package]]
 name = "is-macro"
-version = "0.2.2"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20"
+checksum = "f4467ed1321b310c2625c5aa6c1b1ffc5de4d9e42668cf697a08fb033ee8265e"
 dependencies = [
  "Inflector",
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -663,9 +685,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "lazy-regex"
-version = "2.5.0"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff63c423c68ea6814b7da9e88ce585f793c87ddd9e78f646970891769c8235d4"
+checksum = "57451d19ad5e289ff6c3d69c2a2424652995c42b79dafa11e9c4d5508c913c01"
 dependencies = [
  "lazy-regex-proc_macros",
  "once_cell",
@@ -674,14 +696,14 @@ dependencies = [
 
 [[package]]
 name = "lazy-regex-proc_macros"
-version = "2.4.1"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8edfc11b8f56ce85e207e62ea21557cfa09bb24a8f6b04ae181b086ff8611c22"
+checksum = "0f0a1d9139f0ee2e862e08a9c5d0ba0470f2aa21cd1e1aa1b1562f83116c725f"
 dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -690,85 +712,18 @@ version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
-[[package]]
-name = "lexical"
-version = "6.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6"
-dependencies = [
- "lexical-core",
-]
-
-[[package]]
-name = "lexical-core"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
-dependencies = [
- "lexical-parse-float",
- "lexical-parse-integer",
- "lexical-util",
- "lexical-write-float",
- "lexical-write-integer",
-]
-
-[[package]]
-name = "lexical-parse-float"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
-dependencies = [
- "lexical-parse-integer",
- "lexical-util",
- "static_assertions",
-]
-
-[[package]]
-name = "lexical-parse-integer"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
-dependencies = [
- "lexical-util",
- "static_assertions",
-]
-
-[[package]]
-name = "lexical-util"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
-dependencies = [
- "static_assertions",
-]
-
-[[package]]
-name = "lexical-write-float"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
-dependencies = [
- "lexical-util",
- "lexical-write-integer",
- "static_assertions",
-]
-
-[[package]]
-name = "lexical-write-integer"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
-dependencies = [
- "lexical-util",
- "static_assertions",
-]
-
 [[package]]
 name = "libc"
 version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
+
 [[package]]
 name = "lock_api"
 version = "0.4.10"
@@ -781,15 +736,15 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
 
 [[package]]
 name = "miniz_oxide"
@@ -819,9 +774,9 @@ checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
 name = "num-bigint"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -861,9 +816,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.31.1"
+version = "0.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
 dependencies = [
  "memchr",
 ]
@@ -955,29 +910,29 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.10"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -985,17 +940,6 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
-[[package]]
-name = "pmutil"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
 [[package]]
 name = "pmutil"
 version = "0.6.1"
@@ -1004,7 +948,7 @@ checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1031,12 +975,12 @@ dependencies = [
 
 [[package]]
 name = "prettyplease"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"
+checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
 dependencies = [
  "proc-macro2",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1075,9 +1019,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.32"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
@@ -1123,9 +1067,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.1"
+version = "1.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1135,9 +1079,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.3"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
+checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1146,15 +1090,15 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
 name = "relative-path"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698"
+checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca"
 
 [[package]]
 name = "rustc-demangle"
@@ -1186,6 +1130,19 @@ dependencies = [
  "semver 1.0.18",
 ]
 
+[[package]]
+name = "rustix"
+version = "0.38.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453"
+dependencies = [
+ "bitflags 2.4.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
 [[package]]
 name = "rustversion"
 version = "1.0.14"
@@ -1233,9 +1190,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.175"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
 dependencies = [
  "serde_derive",
 ]
@@ -1251,20 +1208,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.175"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.103"
+version = "1.0.105"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"
+checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
 dependencies = [
  "indexmap 2.0.0",
  "itoa",
@@ -1310,15 +1267,15 @@ dependencies = [
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
@@ -1342,19 +1299,35 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
 dependencies = [
  "libc",
- "winapi",
+ "windows-sys",
 ]
 
 [[package]]
 name = "sourcemap"
-version = "6.3.0"
+version = "6.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8df03d85f2767c45e61b4453eb6144153c80399e4fdd6407a6d16cb87cc0347"
+checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90"
+dependencies = [
+ "data-encoding",
+ "debugid",
+ "if_chain",
+ "rustc_version 0.2.3",
+ "serde",
+ "serde_json",
+ "unicode-id",
+ "url",
+]
+
+[[package]]
+name = "sourcemap"
+version = "7.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbecc42a2b6131acc3bf9a25c9fe4161dba438eb52131bba83c5d781b5b70be3"
 dependencies = [
  "data-encoding",
  "debugid",
@@ -1419,15 +1392,15 @@ dependencies = [
 
 [[package]]
 name = "string_enum"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0090512bdfee4b56d82480d66c0fd8a6f53f0fe0f97e075e949b252acdd482e0"
+checksum = "8fa4d4f81d7c05b9161f8de839975d3326328b8ba2831164b465524cc2f55252"
 dependencies = [
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1441,22 +1414,22 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.25.1"
+version = "0.25.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6069ca09d878a33f883cc06aaa9718ede171841d3832450354410b718b097232"
+checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "swc_atoms"
-version = "0.5.6"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93d0307dc4bfd107d49c7528350c372758cfca94fb503629b9a056e6a1572860"
+checksum = "9f54563d7dcba626d4acfe14ed12def7ecc28e004debe3ecd2c3ee07cc47e449"
 dependencies = [
  "once_cell",
  "rustc-hash",
@@ -1468,11 +1441,10 @@ dependencies = [
 
 [[package]]
 name = "swc_common"
-version = "0.31.12"
+version = "0.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19c774005489d2907fb67909cf42af926e72edee1366512777c605ba2ef19c94"
+checksum = "39cb7fcd56655c8ae7dcf2344f0be6cbff4d9c7cb401fe3ec8e56e1de8dfe582"
 dependencies = [
- "ahash",
  "ast_node",
  "better_scoped_tls",
  "cfg-if",
@@ -1484,7 +1456,7 @@ dependencies = [
  "rustc-hash",
  "serde",
  "siphasher",
- "sourcemap",
+ "sourcemap 6.4.1",
  "string_cache",
  "swc_atoms",
  "swc_eq_ignore_macros",
@@ -1496,9 +1468,9 @@ dependencies = [
 
 [[package]]
 name = "swc_config"
-version = "0.1.5"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89c8fc2c12bb1634c7c32fc3c9b6b963ad8f034cc62c4ecddcf215dc4f6f959d"
+checksum = "9ba1c7a40d38f9dd4e9a046975d3faf95af42937b34b2b963be4d8f01239584b"
 dependencies = [
  "indexmap 1.9.3",
  "serde",
@@ -1508,24 +1480,24 @@ dependencies = [
 
 [[package]]
 name = "swc_config_macro"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dadb9998d4f5fc36ef558ed5a092579441579ee8c6fcce84a5228cca9df4004"
+checksum = "e5b5aaca9a0082be4515f0fbbecc191bf5829cd25b5b9c0a2810f6a2bb0d6829"
 dependencies = [
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "swc_ecma_ast"
-version = "0.104.5"
+version = "0.109.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5cf9dd351d0c285dcd36535267953a18995d4dda0cbe34ac9d1df61aa415b26"
+checksum = "7bc2286cedd688a68f214faa1c19bb5cceab7c9c54d0cbe3273e4c1704e38f69"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
  "is-macro",
  "num-bigint",
  "scoped-tls",
@@ -1538,16 +1510,16 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_codegen"
-version = "0.139.17"
+version = "0.144.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c66d1ea16bb9b7ea6f87f17325742ff256fcbd65b188af57c2bf415fe4afc945"
+checksum = "8e62ba2c0ed1f119fc1a76542d007f1b2c12854d54dea15f5491363227debe11"
 dependencies = [
  "memchr",
  "num-bigint",
  "once_cell",
  "rustc-hash",
  "serde",
- "sourcemap",
+ "sourcemap 6.4.1",
  "swc_atoms",
  "swc_common",
  "swc_ecma_ast",
@@ -1557,24 +1529,23 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_codegen_macros"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4ee0caee1018808d94ecd09490cb7affd3d504b19aa11c49238f5fc4b54901"
+checksum = "dcdff076dccca6cc6a0e0b2a2c8acfb066014382bc6df98ec99e755484814384"
 dependencies = [
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "swc_ecma_loader"
-version = "0.43.14"
+version = "0.44.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe45f1e5dcc1b005544ff78253b787dea5dfd5e2f712b133964cdc3545c954a4"
+checksum = "e7d7c322462657ae27ac090a2c89f7e456c94416284a2f5ecf66c43a6a3c19d1"
 dependencies = [
- "ahash",
  "anyhow",
  "pathdiff",
  "serde",
@@ -1584,13 +1555,13 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_parser"
-version = "0.134.12"
+version = "0.139.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0a3fcfe3d83dd445cbd9321882e47b467594433d9a21c4d6c37a27f534bb89e"
+checksum = "3eab46cb863bc5cd61535464e07e5b74d5f792fa26a27b9f6fd4c8daca9903b7"
 dependencies = [
  "either",
- "lexical",
  "num-bigint",
+ "num-traits",
  "serde",
  "smallvec",
  "smartstring",
@@ -1604,12 +1575,12 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_transforms_base"
-version = "0.127.18"
+version = "0.132.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9c33ec5369178f3a0580ab86cfe89ffb9c3fbd122aed379cfb71d469d9d61c1"
+checksum = "01ffd4a8149052bfc1ec1832fcbe04f317846ce635a49ec438df33b06db27d26"
 dependencies = [
  "better_scoped_tls",
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
  "indexmap 1.9.3",
  "once_cell",
  "phf",
@@ -1627,9 +1598,9 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_transforms_classes"
-version = "0.116.18"
+version = "0.121.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e3b0d5f362f0da97be1f1b06d7b0d8667ea70b4adeabff0dcaecb6259c09525"
+checksum = "f4b7fee0e2c6f12456d2aefb2418f2f26529b995945d493e1dce35a5a22584fc"
 dependencies = [
  "swc_atoms",
  "swc_common",
@@ -1641,22 +1612,22 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_transforms_macros"
-version = "0.5.1"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "984d5ac69b681fc5438f9abf82b0fda34fe04e119bc75f8213b7e01128c7c9a2"
+checksum = "8188eab297da773836ef5cf2af03ee5cca7a563e1be4b146f8141452c28cc690"
 dependencies = [
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "swc_ecma_transforms_proposal"
-version = "0.161.22"
+version = "0.166.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cdce42d44ef775bc29f5ada3678a80ff72fa17a0ef705e14f63cfd0e0155e0e"
+checksum = "122fd9a69f464694edefbf9c59106b3c15e5cc8cb8575a97836e4fb79018e98f"
 dependencies = [
  "either",
  "rustc-hash",
@@ -1674,11 +1645,10 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_transforms_react"
-version = "0.173.20"
+version = "0.178.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fb9481ad4e2acba34c6fbb6d4ccc64efe9f1821675e883dcfa732d7220f4b1e"
+checksum = "675b5c755b0448268830e85e59429095d3423c0ce4a850b209c6f0eeab069f63"
 dependencies = [
- "ahash",
  "base64",
  "dashmap",
  "indexmap 1.9.3",
@@ -1699,9 +1669,9 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_transforms_typescript"
-version = "0.177.23"
+version = "0.182.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fe2eea4f5b8a25c93cdaa29fb1ce4108893da88a11e61e04b7f5295b5468829"
+checksum = "4eba97b1ea71739fcf278aedad4677a3cacb52288a3f3566191b70d16a889de6"
 dependencies = [
  "serde",
  "swc_atoms",
@@ -1715,9 +1685,9 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_utils"
-version = "0.117.13"
+version = "0.122.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad791bbfdafcebd878584021e050964c8ab68aba7eeac9d0ee4afba4c284a629"
+checksum = "11006a3398ffd4693c4d3b0a1b1a5030edbdc04228159f5301120a6178144708"
 dependencies = [
  "indexmap 1.9.3",
  "num_cpus",
@@ -1733,9 +1703,9 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_visit"
-version = "0.90.5"
+version = "0.95.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce3ac941ae1d6c7e683aa375fc71fbf58df58b441f614d757fbb10554936ca2"
+checksum = "0f628ec196e76e67892441e14eef2e423a738543d32bffdabfeec20c29582117"
 dependencies = [
  "num-bigint",
  "swc_atoms",
@@ -1747,33 +1717,33 @@ dependencies = [
 
 [[package]]
 name = "swc_eq_ignore_macros"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c20468634668c2bbab581947bb8c75c97158d5a6959f4ba33df20983b20b4f6"
+checksum = "05a95d367e228d52484c53336991fdcf47b6b553ef835d9159db4ba40efb0ee8"
 dependencies = [
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "swc_macros_common"
-version = "0.3.7"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e582c3e3c2269238524923781df5be49e011dbe29cf7683a2215d600a562ea6"
+checksum = "7a273205ccb09b51fabe88c49f3b34c5a4631c4c00a16ae20e03111d6a42e832"
 dependencies = [
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "swc_visit"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f412dd4fbc58f509a04e64f5c8038333142fc139e8232f01b883db0094b3b51"
+checksum = "e87c337fbb2d191bf371173dea6a957f01899adb8f189c6c31b122a6cfc98fc3"
 dependencies = [
  "either",
  "swc_visit_macros",
@@ -1781,16 +1751,16 @@ dependencies = [
 
 [[package]]
 name = "swc_visit_macros"
-version = "0.5.7"
+version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cfc226380ba54a5feed2c12f3ccd33f1ae8e959160290e5d2d9b4e918b6472a"
+checksum = "0f322730fb82f3930a450ac24de8c98523af7d34ab8cb2f46bcb405839891a99"
 dependencies = [
  "Inflector",
- "pmutil 0.5.3",
+ "pmutil",
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1806,9 +1776,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.27"
+version = "2.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0"
+checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1833,12 +1803,12 @@ dependencies = [
  "anyhow",
  "glob",
  "once_cell",
- "pmutil 0.6.1",
+ "pmutil",
  "proc-macro2",
  "quote",
  "regex",
  "relative-path",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1852,22 +1822,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.44"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
+checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.44"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
+checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1887,11 +1857,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.29.1"
+version = "1.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
 dependencies = [
- "autocfg",
  "backtrace",
  "bytes",
  "libc",
@@ -1913,7 +1882,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1924,9 +1893,9 @@ checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
 
 [[package]]
 name = "toml_edit"
-version = "0.19.14"
+version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap 2.0.0",
  "toml_datetime",
@@ -1953,7 +1922,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.27",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1977,9 +1946,9 @@ dependencies = [
 
 [[package]]
 name = "trybuild"
-version = "1.0.82"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a84e0202ea606ba5ebee8507ab2bfbe89b98551ed9b8f0be198109275cff284b"
+checksum = "6df60d81823ed9c520ee897489573da4b1d79ffbe006b8134f46de1a1aa03555"
 dependencies = [
  "basic-toml",
  "glob",
@@ -2037,9 +2006,9 @@ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -2079,13 +2048,14 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "which"
-version = "4.4.0"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
 dependencies = [
  "either",
- "libc",
+ "home",
  "once_cell",
+ "rustix",
 ]
 
 [[package]]
@@ -2130,9 +2100,9 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.48.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -2145,51 +2115,51 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "winnow"
-version = "0.5.1"
+version = "0.5.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25b5872fa2e10bd067ae946f927e726d7d603eaeb6e02fa6a350e0722d2b8c11"
+checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
 dependencies = [
  "memchr",
 ]
diff --git a/Cargo.toml b/Cargo.toml
index 8429d81..e0d54e9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -16,43 +16,50 @@ license = "MIT"
 repository = "https://github.com/denoland/deno_core"
 
 [workspace.dependencies]
-v8 = { version = "0.75.1", default-features = false }
-deno_ast = { version = "0.27.0", features = ["transpiling"] }
-
+# Local dependencies
 deno_core = { version = "0.209.0", path = "./core" }
 deno_ops = { version = "0.87.0", path = "./ops" }
 serde_v8 = { version = "0.120.0", path = "./serde_v8" }
 
-anyhow = "1.0.57"
+v8 = { version = "0.75.1", default-features = false }
+deno_ast = { version = "0.29.1", features = ["transpiling"] }
+deno_unsync = "0.1"
+
+anyhow = "1"
 bencher = "0.1"
 bytes = "1.4.0"
-deno_unsync = "0.1"
+cooked-waker = "5"
+derive_more = "0.99.17"
 futures = "0.3.21"
 hex = "0.4"
+indexmap = "2"
 libc = "0.2.126"
 log = "0.4.17"
 num-bigint = { version = "0.4", features = ["rand"] }
 once_cell = "1.17.1"
 parking_lot = "0.12.0"
-pin-project = "1.0.11" # don't pin because they yank crates from cargo
+pin-project = "1"
 pretty_assertions = "1.3.0"
 rand = "0.8.5"
-regex = "^1.7.0"
-lazy-regex = "2.5.0"
-serde = { version = "1.0.149", features = ["derive"] }
+regex = "1"
+lazy-regex = "3"
+prettyplease = "0.2.15"
+serde = { version = "1", features = ["derive"] }
 serde_bytes = "0.11"
-serde_json = "1.0.85"
+serde_json = "1"
 sha2 = { version = "0.10.6", features = ["oid"] }
 smallvec = "1.8"
+sourcemap = "7"
 strum = { version = "0.25.0", features = ["derive"] }
 strum_macros = "0.25.0"
-tempfile = "3.4.0"
-thiserror = "1.0.40"
-tokio = { version = "1.28.1", features = ["full"] }
-tokio-metrics = { version = "0.2.2", features = ["rt"] }
+tempfile = "3"
+testing_macros = "0.2.11"
+thiserror = "1"
+tokio = { version = "1", features = ["full"] }
+tokio-metrics = { version = "0.3.0", features = ["rt"] }
 tokio-rustls = "0.24.0"
 tokio-util = "0.7.4"
-url = { version = "2.3.1", features = ["serde", "expose_internals"] }
+url = { version = "2", features = ["serde", "expose_internals"] }
 
 # macros
 proc-macro2 = "1"
@@ -60,6 +67,8 @@ quote = "1"
 syn = { version = "2", features = ["full", "extra-traits"] }
 # Temporary fork while we wait for a more modern version to be published
 deno-proc-macro-rules = "0.3.2"
+pmutil = "0.6.1"
+proc-macro-crate = "1.1.3"
 
 # NB: the `bench` and `release` profiles must remain EXACTLY the same.
 [profile.release]
diff --git a/core/Cargo.toml b/core/Cargo.toml
index a72cf94..6d36fe5 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -25,9 +25,7 @@ bytes.workspace = true
 deno_ops.workspace = true
 deno_unsync.workspace = true
 futures.workspace = true
-# Stay on 1.6 to avoid a dependency cycle in ahash https://github.com/tkaitchuck/aHash/issues/95
-# Projects not depending on ahash are unaffected as cargo will pull any 1.X that is >= 1.6.
-indexmap = "1.6"
+indexmap.workspace = true
 libc.workspace = true
 log.workspace = true
 once_cell.workspace = true
@@ -37,7 +35,7 @@ serde.workspace = true
 serde_json = { workspace = true, features = ["preserve_order"] }
 serde_v8.workspace = true
 smallvec.workspace = true
-sourcemap = "6.1"
+sourcemap.workspace = true
 tokio.workspace = true
 url.workspace = true
 v8.workspace = true
@@ -48,7 +46,7 @@ path = "examples/http_bench_json_ops/main.rs"
 
 # These dependencies are only used for the 'http_bench_*_ops' examples.
 [dev-dependencies]
-cooked-waker = "5"
+cooked-waker.workspace = true
 deno_ast.workspace = true
 bencher.workspace = true
 
diff --git a/core/async_cancel.rs b/core/async_cancel.rs
index d308937..2c5cceb 100644
--- a/core/async_cancel.rs
+++ b/core/async_cancel.rs
@@ -399,13 +399,9 @@ mod internal {
         Some((head, rc)) => {
           // Register this `Cancelable` node with a `CancelHandle` head node.
           assert_ne!(self, head);
-          // TODO(piscisaureus): safety comment
-          #[allow(clippy::undocumented_unsafe_blocks)]
-          let self_inner = unsafe { &mut *self.inner.get() };
-          // TODO(piscisaureus): safety comment
-          #[allow(clippy::undocumented_unsafe_blocks)]
-          let head_inner = unsafe { &mut *head.inner.get() };
-          self_inner.link(waker, head_inner, rc)
+          let self_inner = NonNull::new(self.inner.get()).unwrap();
+          let head_inner = NonNull::new(head.inner.get()).unwrap();
+          NodeInner::link(self_inner, waker, head_inner, rc)
         }
         None => {
           // This `Cancelable` has already been linked to a `CancelHandle` head
@@ -469,30 +465,31 @@ mod internal {
   }
 
   impl NodeInner {
-    fn as_non_null(&mut self) -> NonNull<Self> {
-      NonNull::from(self)
-    }
-
     fn link(
-      &mut self,
+      mut this: NonNull<NodeInner>,
       waker: &Waker,
-      head: &mut Self,
+      mut head: NonNull<NodeInner>,
       rc_pin: &Rc<dyn Any>,
     ) -> Result<(), Canceled> {
+      // SAFETY: head and this are different pointers
+      let head_mut = unsafe { head.as_mut() };
+      // SAFETY: head and this are different pointers
+      let this_mut = unsafe { this.as_mut() };
+
       // The future should not have been linked to a cancel handle before.
-      assert!(matches!(self, NodeInner::Unlinked));
+      assert!(matches!(this_mut, NodeInner::Unlinked));
 
-      match head {
+      match head_mut {
         NodeInner::Unlinked => {
-          *head = NodeInner::Linked {
+          *head_mut = NodeInner::Linked {
             kind: NodeKind::head(rc_pin),
-            prev: self.as_non_null(),
-            next: self.as_non_null(),
+            prev: this,
+            next: this,
           };
-          *self = NodeInner::Linked {
+          *this_mut = NodeInner::Linked {
             kind: NodeKind::item(waker),
-            prev: head.as_non_null(),
-            next: head.as_non_null(),
+            prev: head,
+            next: head,
           };
           Ok(())
         }
@@ -501,19 +498,18 @@ mod internal {
           prev: next_prev_nn,
           ..
         } => {
-          // TODO(piscisaureus): safety comment
-          #[allow(clippy::undocumented_unsafe_blocks)]
-          let prev = unsafe { &mut *next_prev_nn.as_ptr() };
+          // SAFETY: prev is neither head nor this
+          let prev = unsafe { next_prev_nn.as_mut() };
           match prev {
             NodeInner::Linked {
               kind: NodeKind::Item { .. },
               next: prev_next_nn,
               ..
             } => {
-              *self = NodeInner::Linked {
+              *this_mut = NodeInner::Linked {
                 kind: NodeKind::item(waker),
-                prev: replace(next_prev_nn, self.as_non_null()),
-                next: replace(prev_next_nn, self.as_non_null()),
+                prev: replace(next_prev_nn, this),
+                next: replace(prev_next_nn, this),
               };
               Ok(())
             }
@@ -695,7 +691,7 @@ mod tests {
 
   async fn ready_in_n(name: &str, count: usize) -> &str {
     let mut remaining = count as isize;
-    poll_fn(|_| {
+    poll_fn(move |_| {
       assert!(remaining >= 0);
       if remaining == 0 {
         Poll::Ready(name)
@@ -779,6 +775,7 @@ mod tests {
     assert!(!cancel_handles.iter().any(|c| !c.is_canceled()));
   }
 
+  #[cfg(not(miri))]
   #[tokio::test]
   async fn cancel_try_future() {
     {
@@ -860,90 +857,115 @@ mod tests {
     assert_eq!(res, Poll::Ready("hello world!".into()));
   }
 
-  #[tokio::test]
-  async fn abort_future() {
-    // Abort a spawned task before it actually runs.
-    let cancel_handle = Rc::new(CancelHandle::new());
-    let future = spawn(async { 1_u8 }).or_abort(&cancel_handle);
-    cancel_handle.cancel();
-    let error = future.await.unwrap_err();
-    assert_eq!(error.await.expect("failed"), 1_u8);
+  #[test]
+  fn abort_future() {
+    let runtime = tokio::runtime::Builder::new_current_thread()
+      .build()
+      .unwrap();
+    runtime.block_on(async {
+      // Abort a spawned task before it actually runs.
+      let cancel_handle = Rc::new(CancelHandle::new());
+      let future = spawn(async { 1_u8 }).or_abort(&cancel_handle);
+      cancel_handle.cancel();
+      let error = future.await.unwrap_err();
+      assert_eq!(error.await.expect("failed"), 1_u8);
+    });
   }
 
-  #[tokio::test]
-  async fn abort_multiple_times() {
-    // Abort a future multiple times
-    let cancel_handle = Rc::new(CancelHandle::new());
-    let mut future = spawn(async {
-      tokio::time::sleep(std::time::Duration::from_millis(10)).await;
-      1_u8
-    })
-    .or_abort(&cancel_handle);
-    cancel_handle.cancel();
+  #[test]
+  fn abort_multiple_times() {
+    let runtime = tokio::runtime::Builder::new_current_thread()
+      .build()
+      .unwrap();
+    runtime.block_on(async {
+      // Abort a future multiple times
+      let cancel_handle = Rc::new(CancelHandle::new());
+      let mut future = spawn(async {
+        tokio::task::yield_now().await;
+        1_u8
+      })
+      .or_abort(&cancel_handle);
+      cancel_handle.cancel();
 
-    for _ in 0..10 {
-      match future.await {
-        Ok(_) => {
-          panic!("should not have resolved");
-        }
-        Err(f) => {
-          future = f.or_abort(&cancel_handle);
+      for _ in 0..10 {
+        match future.await {
+          Ok(_) => {
+            panic!("should not have resolved");
+          }
+          Err(f) => {
+            future = f.or_abort(&cancel_handle);
+          }
         }
       }
-    }
 
-    let f = future.await.expect_err("should still be failing");
+      let f = future.await.expect_err("should still be failing");
 
-    // But we can still await the underlying future
-    assert_eq!(f.await.unwrap(), 1);
+      // But we can still await the underlying future
+      assert_eq!(f.await.unwrap(), 1);
+    });
   }
 
-  #[tokio::test]
-  async fn future_cancels_itself_before_completion() {
-    // A future cancels itself before it reaches completion. This future should
-    // indeed get canceled and should not be polled again.
-    let cancel_handle = CancelHandle::new_rc();
-    let result = async {
-      cancel_handle.cancel();
-      yield_now().await;
-      unreachable!();
-    }
-    .or_cancel(&cancel_handle)
-    .await;
-    assert_eq!(result.unwrap_err(), Canceled);
+  #[test]
+  fn future_cancels_itself_before_completion() {
+    let runtime = tokio::runtime::Builder::new_current_thread()
+      .build()
+      .unwrap();
+    runtime.block_on(async {
+      // A future cancels itself before it reaches completion. This future should
+      // indeed get canceled and should not be polled again.
+      let cancel_handle = CancelHandle::new_rc();
+      let result = async {
+        cancel_handle.cancel();
+        yield_now().await;
+        unreachable!();
+      }
+      .or_cancel(&cancel_handle)
+      .await;
+      assert_eq!(result.unwrap_err(), Canceled);
+    })
   }
 
-  #[tokio::test]
-  async fn future_cancels_itself_and_hangs() {
-    // A future cancels itself, after which it returns `Poll::Pending` without
-    // setting up a waker that would allow it to make progress towards
-    // completion. Nevertheless, the `Cancelable` wrapper future must finish.
-    let cancel_handle = CancelHandle::new_rc();
-    let result = async {
-      yield_now().await;
-      cancel_handle.cancel();
-      pending!();
-      unreachable!();
-    }
-    .or_cancel(&cancel_handle)
-    .await;
-    assert_eq!(result.unwrap_err(), Canceled);
+  #[test]
+  fn future_cancels_itself_and_hangs() {
+    let runtime = tokio::runtime::Builder::new_current_thread()
+      .build()
+      .unwrap();
+    runtime.block_on(async {
+      // A future cancels itself, after which it returns `Poll::Pending` without
+      // setting up a waker that would allow it to make progress towards
+      // completion. Nevertheless, the `Cancelable` wrapper future must finish.
+      let cancel_handle = CancelHandle::new_rc();
+      let result = async {
+        yield_now().await;
+        cancel_handle.cancel();
+        pending!();
+        unreachable!();
+      }
+      .or_cancel(&cancel_handle)
+      .await;
+      assert_eq!(result.unwrap_err(), Canceled);
+    });
   }
 
-  #[tokio::test]
-  async fn future_cancels_itself_and_completes() {
-    // A TryFuture attempts to cancel itself while it is getting polled, and
-    // yields a result from the very same `poll()` call. Because this future
-    // actually reaches completion, the attempted cancellation has no effect.
-    let cancel_handle = CancelHandle::new_rc();
-    let result = async {
-      yield_now().await;
-      cancel_handle.cancel();
-      Ok::<_, io::Error>("done")
-    }
-    .try_or_cancel(&cancel_handle)
-    .await;
-    assert_eq!(result.unwrap(), "done");
+  #[test]
+  fn future_cancels_itself_and_completes() {
+    let runtime = tokio::runtime::Builder::new_current_thread()
+      .build()
+      .unwrap();
+    runtime.block_on(async {
+      // A TryFuture attempts to cancel itself while it is getting polled, and
+      // yields a result from the very same `poll()` call. Because this future
+      // actually reaches completion, the attempted cancellation has no effect.
+      let cancel_handle = CancelHandle::new_rc();
+      let result = async {
+        yield_now().await;
+        cancel_handle.cancel();
+        Ok::<_, io::Error>("done")
+      }
+      .try_or_cancel(&cancel_handle)
+      .await;
+      assert_eq!(result.unwrap(), "done");
+    });
   }
 
   #[test]
diff --git a/core/async_cell.rs b/core/async_cell.rs
index 97d7069..479aa80 100644
--- a/core/async_cell.rs
+++ b/core/async_cell.rs
@@ -658,49 +658,54 @@ mod tests {
     }
   }
 
-  #[tokio::test]
-  async fn async_ref_cell_borrow() {
-    let cell = AsyncRefCell::<Thing>::default_rc();
-
-    let fut1 = cell.borrow();
-    let fut2 = cell.borrow_mut();
-    let fut3 = cell.borrow();
-    let fut4 = cell.borrow();
-    let fut5 = cell.borrow();
-    let fut6 = cell.borrow();
-    let fut7 = cell.borrow_mut();
-    let fut8 = cell.borrow();
-
-    // The `try_borrow` and `try_borrow_mut` methods should always return `None`
-    // if there's a queue of async borrowers.
-    assert!(cell.try_borrow().is_none());
-    assert!(cell.try_borrow_mut().is_none());
+  #[test]
+  fn async_ref_cell_borrow() {
+    let runtime = tokio::runtime::Builder::new_current_thread()
+      .build()
+      .unwrap();
+    runtime.block_on(async {
+      let cell = AsyncRefCell::<Thing>::default_rc();
+
+      let fut1 = cell.borrow();
+      let fut2 = cell.borrow_mut();
+      let fut3 = cell.borrow();
+      let fut4 = cell.borrow();
+      let fut5 = cell.borrow();
+      let fut6 = cell.borrow();
+      let fut7 = cell.borrow_mut();
+      let fut8 = cell.borrow();
+
+      // The `try_borrow` and `try_borrow_mut` methods should always return `None`
+      // if there's a queue of async borrowers.
+      assert!(cell.try_borrow().is_none());
+      assert!(cell.try_borrow_mut().is_none());
 
-    assert_eq!(fut1.await.look(), 0);
+      assert_eq!(fut1.await.look(), 0);
 
-    assert_eq!(fut2.await.touch(), 1);
+      assert_eq!(fut2.await.touch(), 1);
 
-    {
-      let ref5 = fut5.await;
-      let ref4 = fut4.await;
-      let ref3 = fut3.await;
-      let ref6 = fut6.await;
-      assert_eq!(ref3.look(), 1);
-      assert_eq!(ref4.look(), 1);
-      assert_eq!(ref5.look(), 1);
-      assert_eq!(ref6.look(), 1);
-    }
+      {
+        let ref5 = fut5.await;
+        let ref4 = fut4.await;
+        let ref3 = fut3.await;
+        let ref6 = fut6.await;
+        assert_eq!(ref3.look(), 1);
+        assert_eq!(ref4.look(), 1);
+        assert_eq!(ref5.look(), 1);
+        assert_eq!(ref6.look(), 1);
+      }
 
-    {
-      let mut ref7 = fut7.await;
-      assert_eq!(ref7.look(), 1);
-      assert_eq!(ref7.touch(), 2);
-    }
+      {
+        let mut ref7 = fut7.await;
+        assert_eq!(ref7.look(), 1);
+        assert_eq!(ref7.touch(), 2);
+      }
 
-    {
-      let ref8 = fut8.await;
-      assert_eq!(ref8.look(), 2);
-    }
+      {
+        let ref8 = fut8.await;
+        assert_eq!(ref8.look(), 2);
+      }
+    });
   }
 
   #[test]
@@ -755,26 +760,31 @@ mod tests {
     pub thing3: AsyncRefCell<Thing>,
   }
 
-  #[tokio::test]
-  async fn rc_ref_map() {
-    let three_cells = Rc::new(ThreeThings::default());
+  #[test]
+  fn rc_ref_map() {
+    let runtime = tokio::runtime::Builder::new_current_thread()
+      .build()
+      .unwrap();
+    runtime.block_on(async {
+      let three_cells = Rc::new(ThreeThings::default());
 
-    let rc1 = RcRef::map(three_cells.clone(), |things| &things.thing1);
-    let rc2 = RcRef::map(three_cells.clone(), |things| &things.thing2);
-    let rc3 = RcRef::map(three_cells, |things| &things.thing3);
+      let rc1 = RcRef::map(three_cells.clone(), |things| &things.thing1);
+      let rc2 = RcRef::map(three_cells.clone(), |things| &things.thing2);
+      let rc3 = RcRef::map(three_cells, |things| &things.thing3);
 
-    let mut ref1 = rc1.borrow_mut().await;
-    let ref2 = rc2.borrow().await;
-    let mut ref3 = rc3.borrow_mut().await;
+      let mut ref1 = rc1.borrow_mut().await;
+      let ref2 = rc2.borrow().await;
+      let mut ref3 = rc3.borrow_mut().await;
 
-    assert_eq!(ref1.look(), 0);
-    assert_eq!(ref3.touch(), 1);
-    assert_eq!(ref1.touch(), 1);
-    assert_eq!(ref2.look(), 0);
-    assert_eq!(ref3.touch(), 2);
-    assert_eq!(ref1.look(), 1);
-    assert_eq!(ref1.touch(), 2);
-    assert_eq!(ref3.touch(), 3);
-    assert_eq!(ref1.touch(), 3);
+      assert_eq!(ref1.look(), 0);
+      assert_eq!(ref3.touch(), 1);
+      assert_eq!(ref1.touch(), 1);
+      assert_eq!(ref2.look(), 0);
+      assert_eq!(ref3.touch(), 2);
+      assert_eq!(ref1.look(), 1);
+      assert_eq!(ref1.touch(), 2);
+      assert_eq!(ref3.touch(), 3);
+      assert_eq!(ref1.touch(), 3);
+    });
   }
 }
diff --git a/core/resources.rs b/core/resources.rs
index 92c35ad..d242f40 100644
--- a/core/resources.rs
+++ b/core/resources.rs
@@ -458,6 +458,7 @@ impl ResourceTable {
   /// counted, therefore pending ops are not automatically cancelled. A resource
   /// may implement the `close()` method to perform clean-ups such as canceling
   /// ops.
+  #[deprecated = "This method may deadlock. Use take() and close() instead."]
   pub fn close(&mut self, rid: ResourceId) -> Result<(), Error> {
     self
       .index
diff --git a/ops/Cargo.toml b/ops/Cargo.toml
index 7544680..7537774 100644
--- a/ops/Cargo.toml
+++ b/ops/Cargo.toml
@@ -18,8 +18,8 @@ proc-macro = true
 deno-proc-macro-rules.workspace = true
 lazy-regex.workspace = true
 once_cell.workspace = true
-pmutil = "0.6.1"
-proc-macro-crate = "1.1.3"
+pmutil.workspace = true
+proc-macro-crate.workspace = true
 proc-macro2.workspace = true
 quote.workspace = true
 regex.workspace = true
@@ -30,5 +30,5 @@ thiserror.workspace = true
 
 [dev-dependencies]
 pretty_assertions.workspace = true
-prettyplease = "0.2.12"
-testing_macros = "0.2.11"
+prettyplease.workspace = true
+testing_macros.workspace = true
diff --git a/serde_v8/Cargo.toml b/serde_v8/Cargo.toml
index 43ea49e..2de5482 100644
--- a/serde_v8/Cargo.toml
+++ b/serde_v8/Cargo.toml
@@ -15,7 +15,7 @@ path = "lib.rs"
 
 [dependencies]
 bytes.workspace = true
-derive_more = "0.99.17"
+derive_more.workspace = true
 num-bigint.workspace = true
 serde.workspace = true
 serde_bytes.workspace = true


Test patch:
diff --git a/ops/op2/test_cases/async/async_arg_return.out b/ops/op2/test_cases/async/async_arg_return.out
index b1222a1..c359f0e 100644
--- a/ops/op2/test_cases/async/async_arg_return.out
+++ b/ops/op2/test_cases/async/async_arg_return.out
@@ -53,14 +53,13 @@ impl op_async {
         };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_infallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_infallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
+        ) {
             deno_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv)
         }
     }
diff --git a/ops/op2/test_cases/async/async_arg_return_result.out b/ops/op2/test_cases/async/async_arg_return_result.out
index 8bfdc9b..ab15550 100644
--- a/ops/op2/test_cases/async/async_arg_return_result.out
+++ b/ops/op2/test_cases/async/async_arg_return_result.out
@@ -53,14 +53,13 @@ impl op_async {
         };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_fallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_fallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
+        ) {
             match result {
                 Ok(result) => deno_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv),
                 Err(err) => {
diff --git a/ops/op2/test_cases/async/async_jsbuffer.out b/ops/op2/test_cases/async/async_jsbuffer.out
index 405c72d..c5b664b 100644
--- a/ops/op2/test_cases/async/async_jsbuffer.out
+++ b/ops/op2/test_cases/async/async_jsbuffer.out
@@ -60,16 +60,15 @@ impl op_async_v8_buffer {
         };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_infallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| {
-                    deno_core::_ops::RustToV8Fallible::to_v8_fallible(result, scope)
-                },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_infallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| {
+                deno_core::_ops::RustToV8Fallible::to_v8_fallible(result, scope)
+            },
+        ) {
             match deno_core::_ops::RustToV8Fallible::to_v8_fallible(result, &mut scope) {
                 Ok(v) => rv.set(v),
                 Err(rv_err) => {
diff --git a/ops/op2/test_cases/async/async_opstate.out b/ops/op2/test_cases/async/async_opstate.out
index 6047755..dda71c6 100644
--- a/ops/op2/test_cases/async/async_opstate.out
+++ b/ops/op2/test_cases/async/async_opstate.out
@@ -41,14 +41,13 @@ impl op_async_opstate {
         };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_fallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_fallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
+        ) {
             match result {
                 Ok(result) => deno_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv),
                 Err(err) => {
diff --git a/ops/op2/test_cases/async/async_result.out b/ops/op2/test_cases/async/async_result.out
index 0180b0a..38ff20f 100644
--- a/ops/op2/test_cases/async/async_result.out
+++ b/ops/op2/test_cases/async/async_result.out
@@ -37,14 +37,13 @@ impl op_async {
         let result = { Self::call() };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_fallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_fallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
+        ) {
             match result {
                 Ok(result) => deno_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv),
                 Err(err) => {
diff --git a/ops/op2/test_cases/async/async_result_impl.out b/ops/op2/test_cases/async/async_result_impl.out
index 0d62a17..34d7b69 100644
--- a/ops/op2/test_cases/async/async_result_impl.out
+++ b/ops/op2/test_cases/async/async_result_impl.out
@@ -66,14 +66,13 @@ impl op_async_result_impl {
         };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_fallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_fallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
+        ) {
             match result {
                 Ok(result) => deno_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv),
                 Err(err) => {
diff --git a/ops/op2/test_cases/async/async_result_smi.out b/ops/op2/test_cases/async/async_result_smi.out
index e2bde97..fc5b30a 100644
--- a/ops/op2/test_cases/async/async_result_smi.out
+++ b/ops/op2/test_cases/async/async_result_smi.out
@@ -53,24 +53,23 @@ impl op_async {
         };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_fallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| {
-                    Ok(
-                        deno_core::_ops::RustToV8::to_v8(
-                            deno_core::_ops::RustToV8Marker::<
-                                deno_core::_ops::SmiMarker,
-                                _,
-                            >::from(result),
-                            scope,
-                        ),
-                    )
-                },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_fallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| {
+                Ok(
+                    deno_core::_ops::RustToV8::to_v8(
+                        deno_core::_ops::RustToV8Marker::<
+                            deno_core::_ops::SmiMarker,
+                            _,
+                        >::from(result),
+                        scope,
+                    ),
+                )
+            },
+        ) {
             match result {
                 Ok(result) => {
                     deno_core::_ops::RustToV8RetVal::to_v8_rv(
diff --git a/ops/op2/test_cases/async/async_v8_global.out b/ops/op2/test_cases/async/async_v8_global.out
index 2f61ad9..56bee2d 100644
--- a/ops/op2/test_cases/async/async_v8_global.out
+++ b/ops/op2/test_cases/async/async_v8_global.out
@@ -55,14 +55,13 @@ impl op_async_v8_global {
         };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_infallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_infallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
+        ) {
             deno_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv)
         }
     }
diff --git a/ops/op2/test_cases/async/async_void.out b/ops/op2/test_cases/async/async_void.out
index c1cf9b3..a2bde58 100644
--- a/ops/op2/test_cases/async/async_void.out
+++ b/ops/op2/test_cases/async/async_void.out
@@ -37,14 +37,13 @@ impl op_async {
         let result = { Self::call() };
         let promise_id = deno_core::_ops::to_i32_option(&args.get(0))
             .unwrap_or_default();
-        if let Some(result)
-            = deno_core::_ops::map_async_op_infallible(
-                opctx,
-                false,
-                promise_id,
-                result,
-                |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
-            ) {
+        if let Some(result) = deno_core::_ops::map_async_op_infallible(
+            opctx,
+            false,
+            promise_id,
+            result,
+            |scope, result| { Ok(deno_core::_ops::RustToV8::to_v8(result, scope)) },
+        ) {
             deno_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv)
         }
     }
diff --git a/ops/optimizer_tests/f64_slice.out b/ops/optimizer_tests/f64_slice.out
index 9607e04..2a2011b 100644
--- a/ops/optimizer_tests/f64_slice.out
+++ b/ops/optimizer_tests/f64_slice.out
@@ -60,10 +60,9 @@ impl op_f64_buf {
             &*(deno_core::v8::Local::<deno_core::v8::External>::cast(args.data()).value()
                 as *const deno_core::_ops::OpCtx)
         };
-        let arg_0 = if let Ok(view)
-            = deno_core::v8::Local::<
-                deno_core::v8::Float64Array,
-            >::try_from(args.get(0usize as i32)) {
+        let arg_0 = if let Ok(view) = deno_core::v8::Local::<
+            deno_core::v8::Float64Array,
+        >::try_from(args.get(0usize as i32)) {
             let (offset, len) = (view.byte_offset(), view.byte_length());
             let buffer = match view.buffer(scope) {
                 Some(v) => v,
diff --git a/ops/optimizer_tests/op_ffi_ptr_value.out b/ops/optimizer_tests/op_ffi_ptr_value.out
index 332efe1..56741f2 100644
--- a/ops/optimizer_tests/op_ffi_ptr_value.out
+++ b/ops/optimizer_tests/op_ffi_ptr_value.out
@@ -64,8 +64,9 @@ impl op_ffi_ptr_value {
             let value = args.get(0usize as i32);
             if value.is_null() {
                 std::ptr::null_mut()
-            } else if let Ok(b)
-                = deno_core::v8::Local::<deno_core::v8::External>::try_from(value) {
+            } else if let Ok(b) = deno_core::v8::Local::<
+                deno_core::v8::External,
+            >::try_from(value) {
                 b.value()
             } else {
                 return deno_core::_ops::throw_type_error(
@@ -74,10 +75,9 @@ impl op_ffi_ptr_value {
                 );
             }
         };
-        let arg_1 = if let Ok(view)
-            = deno_core::v8::Local::<
-                deno_core::v8::Uint32Array,
-            >::try_from(args.get(1usize as i32)) {
+        let arg_1 = if let Ok(view) = deno_core::v8::Local::<
+            deno_core::v8::Uint32Array,
+        >::try_from(args.get(1usize as i32)) {
             let (offset, len) = (view.byte_offset(), view.byte_length());
             let buffer = match view.buffer(scope) {
                 Some(v) => v,
diff --git a/ops/optimizer_tests/op_state_with_transforms.out b/ops/optimizer_tests/op_state_with_transforms.out
index f1398d9..efccd5e 100644
--- a/ops/optimizer_tests/op_state_with_transforms.out
+++ b/ops/optimizer_tests/op_state_with_transforms.out
@@ -79,10 +79,9 @@ where
                     }
                 }
                 Err(_) => {
-                    if let Ok(view)
-                        = deno_core::v8::Local::<
-                            deno_core::v8::ArrayBufferView,
-                        >::try_from(value) {
+                    if let Ok(view) = deno_core::v8::Local::<
+                        deno_core::v8::ArrayBufferView,
+                    >::try_from(value) {
                         let len = view.byte_length();
                         let offset = view.byte_offset();
                         let buffer = match view.buffer(scope) {
diff --git a/ops/optimizer_tests/raw_ptr.out b/ops/optimizer_tests/raw_ptr.out
index 5e034a0..aa011b8 100644
--- a/ops/optimizer_tests/raw_ptr.out
+++ b/ops/optimizer_tests/raw_ptr.out
@@ -82,10 +82,9 @@ where
                     }
                 }
                 Err(_) => {
-                    if let Ok(view)
-                        = deno_core::v8::Local::<
-                            deno_core::v8::ArrayBufferView,
-                        >::try_from(value) {
+                    if let Ok(view) = deno_core::v8::Local::<
+                        deno_core::v8::ArrayBufferView,
+                    >::try_from(value) {
                         let offset = view.byte_offset();
                         let buffer = match view.buffer(scope) {
                             Some(v) => v,
@@ -111,10 +110,9 @@ where
                 }
             }
         };
-        let arg_1 = if let Ok(view)
-            = deno_core::v8::Local::<
-                deno_core::v8::Uint32Array,
-            >::try_from(args.get(1usize as i32)) {
+        let arg_1 = if let Ok(view) = deno_core::v8::Local::<
+            deno_core::v8::Uint32Array,
+        >::try_from(args.get(1usize as i32)) {
             let (offset, len) = (view.byte_offset(), view.byte_length());
             let buffer = match view.buffer(scope) {
                 Some(v) => v,
diff --git a/ops/optimizer_tests/uint8array.out b/ops/optimizer_tests/uint8array.out
index 8a977dd..db7d63a 100644
--- a/ops/optimizer_tests/uint8array.out
+++ b/ops/optimizer_tests/uint8array.out
@@ -73,10 +73,9 @@ impl op_import_spki_x25519 {
                     }
                 }
                 Err(_) => {
-                    if let Ok(view)
-                        = deno_core::v8::Local::<
-                            deno_core::v8::ArrayBufferView,
-                        >::try_from(value) {
+                    if let Ok(view) = deno_core::v8::Local::<
+                        deno_core::v8::ArrayBufferView,
+                    >::try_from(value) {
                         let len = view.byte_length();
                         let offset = view.byte_offset();
                         let buffer = match view.buffer(scope) {
@@ -118,10 +117,9 @@ impl op_import_spki_x25519 {
                     }
                 }
                 Err(_) => {
-                    if let Ok(view)
-                        = deno_core::v8::Local::<
-                            deno_core::v8::ArrayBufferView,
-                        >::try_from(value) {
+                    if let Ok(view) = deno_core::v8::Local::<
+                        deno_core::v8::ArrayBufferView,
+                    >::try_from(value) {
                         let len = view.byte_length();
                         let offset = view.byte_offset();
                         let buffer = match view.buffer(scope) {