From 0d63f89dc47da11318b24da1ce80d812ff959976 Mon Sep 17 00:00:00 2001 From: Aditya Singh Date: Wed, 25 Mar 2026 18:55:50 +0530 Subject: [PATCH] fix: resolve TODO - use handle scope in RenderExec::exec() for load::from_single_file --- crates/metassr-build/src/server/render_exec.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/metassr-build/src/server/render_exec.rs b/crates/metassr-build/src/server/render_exec.rs index 6cafb3d6..6f818f6d 100644 --- a/crates/metassr-build/src/server/render_exec.rs +++ b/crates/metassr-build/src/server/render_exec.rs @@ -34,9 +34,10 @@ impl RenderExec { impl Exec for RenderExec { type Output = String; fn exec(&self) -> Result { - // let path = self.0.strip_prefix(current_dir()?)?; - // TODO: should the scope of this loading be a handle or None ? - if let Err(e) = load::from_single_file(load::Tag::NodeJS, &self.path, None) { + // Each RenderExec uses its own handle to isolate the loaded script + // in a separate scope, preventing function name collisions across pages. + let mut handle = load::Handle::default(); + if let Err(e) = load::from_single_file(load::Tag::NodeJS, &self.path, Some(&mut handle)) { return Err(anyhow!( "Cannot load render script: {e:?} \n path: {:#?}", self.path