diff --git a/src/inner_runtime.rs b/src/inner_runtime.rs index e2fa5f2d..9f0106ae 100644 --- a/src/inner_runtime.rs +++ b/src/inner_runtime.rs @@ -10,6 +10,7 @@ use deno_core::{ JsRuntimeForSnapshot, PollEventLoopOptions, }; use serde::de::DeserializeOwned; +use std::sync::Arc; use std::{ collections::{HashMap, HashSet}, path::{Path, PathBuf}, @@ -745,7 +746,8 @@ impl InnerRuntime { .translate_cjs(&module_specifier, &code) .await?; - let fast_code = deno_core::FastString::from(code.clone()); + let arc_code: Arc = Arc::from(code); + let fast_code = deno_core::FastString::from(arc_code.clone()); let s_modid = self .deno_runtime() @@ -755,7 +757,7 @@ impl InnerRuntime { // Update source map cache self.module_loader.insert_source_map( module_specifier.as_str(), - code, + arc_code.to_string(), sourcemap.map(|s| s.to_vec()), ); @@ -777,7 +779,8 @@ impl InnerRuntime { .translate_cjs(&module_specifier, &code) .await?; - let fast_code = deno_core::FastString::from(code.clone()); + let arc_code: Arc = Arc::from(code); + let fast_code = deno_core::FastString::from(arc_code.clone()); let module_id = self .deno_runtime() @@ -787,7 +790,7 @@ impl InnerRuntime { // Update source map cache self.module_loader.insert_source_map( module_specifier.as_str(), - code, + arc_code.to_string(), sourcemap.map(|s| s.to_vec()), );