@@ -56,7 +56,7 @@ Root.fromJSON = function fromJSON(json, root) {
5656 * @function
5757 * @param {string } origin The file name of the importing file
5858 * @param {string } target The file name being imported
59- * @returns {string } Resolved path to `target`
59+ * @returns {? string } Resolved path to `target` or `null` to skip the file
6060 */
6161Root . prototype . resolvePath = util . path . resolve ;
6262
@@ -104,13 +104,16 @@ Root.prototype.load = function load(filename, options, callback) {
104104 else {
105105 parse . filename = filename ;
106106 var parsed = parse ( source , self , options ) ,
107+ resolved ,
107108 i = 0 ;
108109 if ( parsed . imports )
109110 for ( ; i < parsed . imports . length ; ++ i )
110- fetch ( self . resolvePath ( filename , parsed . imports [ i ] ) ) ;
111+ if ( resolved = self . resolvePath ( filename , parsed . imports [ i ] ) )
112+ fetch ( resolved ) ;
111113 if ( parsed . weakImports )
112114 for ( i = 0 ; i < parsed . weakImports . length ; ++ i )
113- fetch ( self . resolvePath ( filename , parsed . weakImports [ i ] ) , true ) ;
115+ if ( resolved = self . resolvePath ( filename , parsed . weakImports [ i ] ) )
116+ fetch ( resolved , true ) ;
114117 }
115118 } catch ( err ) {
116119 finish ( err ) ;
@@ -184,8 +187,9 @@ Root.prototype.load = function load(filename, options, callback) {
184187 // references anymore, so we can load everything in parallel
185188 if ( util . isString ( filename ) )
186189 filename = [ filename ] ;
187- for ( var i = 0 ; i < filename . length ; ++ i )
188- fetch ( self . resolvePath ( "" , filename [ i ] ) ) ;
190+ for ( var i = 0 , resolved ; i < filename . length ; ++ i )
191+ if ( resolved = self . resolvePath ( "" , filename [ i ] ) )
192+ fetch ( resolved ) ;
189193
190194 if ( sync )
191195 return self ;
0 commit comments