From a9708037c9e333104bfdfe0ccadbc40395809c39 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 10 May 2024 09:55:20 -0400 Subject: fix(node): better cjs re-export handling (#23760) Closes #23458 --- ext/node/analyze.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'ext') diff --git a/ext/node/analyze.rs b/ext/node/analyze.rs index 0a0226625..ad38a511b 100644 --- a/ext/node/analyze.rs +++ b/ext/node/analyze.rs @@ -86,7 +86,7 @@ impl NodeCodeTranslator { permissions: &dyn NodePermissions, ) -> Result { let mut temp_var_count = 0; - let mut handled_reexports: HashSet = HashSet::default(); + let mut handled_reexports: HashSet = HashSet::default(); let analysis = self.cjs_code_analyzer.analyze_cjs(specifier, source)?; @@ -114,12 +114,6 @@ impl NodeCodeTranslator { } while let Some((reexport, referrer)) = reexports_to_handle.pop_front() { - if handled_reexports.contains(&reexport) { - continue; - } - - handled_reexports.insert(reexport.to_string()); - // First, resolve the reexport specifier let reexport_specifier = self.resolve( &reexport, @@ -131,6 +125,10 @@ impl NodeCodeTranslator { permissions, )?; + if !handled_reexports.insert(reexport_specifier.clone()) { + continue; + } + // Second, resolve its exports and re-exports let analysis = self .cjs_code_analyzer -- cgit v1.2.3