From 240b362c002d17bc2b676673ed1b9406683ff0c2 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 1 Apr 2024 09:10:04 -0400 Subject: perf(node): put pkg json into an `Rc` (#23156) Was doing a bit of debugging on why some stuff is not working in a personal project and ran a quick debug profile and saw it cloning the pkg json a lot. We should put this in an Rc. --- ext/node/ops/require.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'ext/node/ops') diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs index d6771c668..426c41995 100644 --- a/ext/node/ops/require.rs +++ b/ext/node/ops/require.rs @@ -542,10 +542,12 @@ where )?; let node_resolver = state.borrow::>(); let permissions = state.borrow::

(); - node_resolver.get_closest_package_json( - &Url::from_file_path(filename).unwrap(), - permissions, - ) + node_resolver + .get_closest_package_json( + &Url::from_file_path(filename).unwrap(), + permissions, + ) + .map(|maybe_pkg| maybe_pkg.map(|pkg| (*pkg).clone())) } #[op2] @@ -562,6 +564,7 @@ where let package_json_path = PathBuf::from(package_json_path); node_resolver .load_package_json(permissions, package_json_path) + .map(|pkg| (*pkg).clone()) .ok() } -- cgit v1.2.3