From d81acf600b76b7bcaddaaf03c38b29aca2e8b926 Mon Sep 17 00:00:00 2001 From: Rich-Harris Date: Sat, 18 Jul 2015 14:43:42 -0400 Subject: [PATCH] ensure external modules have names, and that those names take priority (#42) --- src/Bundle.js | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/Bundle.js b/src/Bundle.js index e461c27..538ba45 100644 --- a/src/Bundle.js +++ b/src/Bundle.js @@ -99,6 +99,22 @@ export default class Bundle { let definers = blank(); let conflicts = blank(); + // Assign names to external modules + this.externalModules.forEach( module => { + // TODO is this right? + let name = makeLegalIdentifier( module.suggestedNames['*'] || module.suggestedNames.default || module.id ); + + if ( definers[ name ] ) { + conflicts[ name ] = true; + } else { + definers[ name ] = []; + } + + definers[ name ].push( module ); + module.name = name; + this.assumedGlobals[ name ] = true; + }); + // Discover conflicts (i.e. two statements in separate modules both define `foo`) this.statements.forEach( statement => { const module = statement.module; @@ -131,21 +147,6 @@ export default class Bundle { }); }); - // Assign names to external modules - this.externalModules.forEach( module => { - // TODO is this right? - let name = makeLegalIdentifier( module.suggestedNames['*'] || module.suggestedNames.default || module.id ); - - if ( definers[ name ] ) { - conflicts[ name ] = true; - } else { - definers[ name ] = []; - } - - definers[ name ].push( module ); - module.name = name; - }); - // Ensure we don't conflict with globals keys( this.assumedGlobals ).forEach( name => { if ( definers[ name ] ) {