diff options
Diffstat (limited to 'ext/node/global.rs')
-rw-r--r-- | ext/node/global.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/node/global.rs b/ext/node/global.rs index 78e009971..52c1b6bb9 100644 --- a/ext/node/global.rs +++ b/ext/node/global.rs @@ -1,5 +1,6 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +use std::mem::MaybeUninit; use std::rc::Rc; use deno_core::v8; @@ -266,13 +267,14 @@ fn current_mode(scope: &mut v8::HandleScope) -> Mode { let Some(v8_string) = v8::StackTrace::current_script_name_or_source_url(scope) else { return Mode::Deno; }; - let string = v8_string.to_rust_string_lossy(scope); 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_with_cache(string) { + let mut buffer = [MaybeUninit::uninit(); 2048]; + let str = v8_string.to_rust_cow_lossy(scope, &mut buffer); + if node_resolver.in_npm_package_with_cache(str) { Mode::Node } else { Mode::Deno |