summaryrefslogtreecommitdiff
path: root/ext/node/global.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-07-25 23:43:00 +0200
committerGitHub <noreply@github.com>2023-07-25 23:43:00 +0200
commit06209f824cf398bcd3332dc37f2d22cbdd840647 (patch)
tree4aa5dc460363953f4bb9ab08011bbd75df8a95e1 /ext/node/global.rs
parent5d8d1105a408b0e1f1a89a0d9e3c3cffddd640ab (diff)
perf: cache node resolution when accesing a global (#19930)
Reclaims some of the performance hit introduced by https://github.com/denoland/deno/pull/19307.
Diffstat (limited to 'ext/node/global.rs')
-rw-r--r--ext/node/global.rs6
1 files changed, 1 insertions, 5 deletions
diff --git a/ext/node/global.rs b/ext/node/global.rs
index 3e3bfb853..78e009971 100644
--- a/ext/node/global.rs
+++ b/ext/node/global.rs
@@ -267,16 +267,12 @@ fn current_mode(scope: &mut v8::HandleScope) -> Mode {
return Mode::Deno;
};
let string = v8_string.to_rust_string_lossy(scope);
- // TODO: don't require parsing the specifier
- let Ok(specifier) = deno_core::ModuleSpecifier::parse(&string) else {
- return Mode::Deno;
- };
let op_state = deno_core::JsRuntime::op_state_from(scope);
let op_state = op_state.borrow();
let Some(node_resolver) = op_state.try_borrow::<Rc<NodeResolver>>() else {
return Mode::Deno;
};
- if node_resolver.in_npm_package(&specifier) {
+ if node_resolver.in_npm_package_with_cache(string) {
Mode::Node
} else {
Mode::Deno