summaryrefslogtreecommitdiff
path: root/ext/node/analyze.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/analyze.rs')
-rw-r--r--ext/node/analyze.rs12
1 files changed, 5 insertions, 7 deletions
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<TCjsCodeAnalyzer: CjsCodeAnalyzer> NodeCodeTranslator<TCjsCodeAnalyzer> {
permissions: &dyn NodePermissions,
) -> Result<String, AnyError> {
let mut temp_var_count = 0;
- let mut handled_reexports: HashSet<String> = HashSet::default();
+ let mut handled_reexports: HashSet<ModuleSpecifier> = HashSet::default();
let analysis = self.cjs_code_analyzer.analyze_cjs(specifier, source)?;
@@ -114,12 +114,6 @@ impl<TCjsCodeAnalyzer: CjsCodeAnalyzer> NodeCodeTranslator<TCjsCodeAnalyzer> {
}
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<TCjsCodeAnalyzer: CjsCodeAnalyzer> NodeCodeTranslator<TCjsCodeAnalyzer> {
permissions,
)?;
+ if !handled_reexports.insert(reexport_specifier.clone()) {
+ continue;
+ }
+
// Second, resolve its exports and re-exports
let analysis = self
.cjs_code_analyzer