@@ -326,14 +326,14 @@ if (process.platform === 'win32') {
326326// 'index.' character codes
327327var indexChars = [ 105 , 110 , 100 , 101 , 120 , 46 ] ;
328328var indexLen = indexChars . length ;
329- Module . _resolveLookupPaths = function ( request , parent ) {
329+ Module . _resolveLookupPaths = function ( request , parent , newReturn ) {
330330 if ( NativeModule . nonInternalExists ( request ) ) {
331- return [ request , [ ] ] ;
331+ debug ( 'looking for %j in []' , request ) ;
332+ return ( newReturn ? null : [ request , [ ] ] ) ;
332333 }
333334
334- var reqLen = request . length ;
335335 // Check for relative path
336- if ( reqLen < 2 ||
336+ if ( request . length < 2 ||
337337 request . charCodeAt ( 0 ) !== 46 /*.*/ ||
338338 ( request . charCodeAt ( 1 ) !== 46 /*.*/ &&
339339 request . charCodeAt ( 1 ) !== 47 /*/*/ ) ) {
@@ -355,15 +355,18 @@ Module._resolveLookupPaths = function(request, parent) {
355355 }
356356 }
357357
358- return [ request , paths ] ;
358+ debug ( 'looking for %j in %j' , request , paths ) ;
359+ return ( newReturn ? ( paths . length > 0 ? paths : null ) : [ request , paths ] ) ;
359360 }
360361
361362 // with --eval, parent.id is not set and parent.filename is null
362363 if ( ! parent || ! parent . id || ! parent . filename ) {
363364 // make require('./path/to/foo') work - normally the path is taken
364365 // from realpath(__filename) but with eval there is no filename
365366 var mainPaths = [ '.' ] . concat ( Module . _nodeModulePaths ( '.' ) , modulePaths ) ;
366- return [ request , mainPaths ] ;
367+
368+ debug ( 'looking for %j in %j' , request , mainPaths ) ;
369+ return ( newReturn ? mainPaths : [ request , mainPaths ] ) ;
367370 }
368371
369372 // Is the parent an index module?
@@ -413,7 +416,9 @@ Module._resolveLookupPaths = function(request, parent) {
413416 debug ( 'RELATIVE: requested: %s set ID to: %s from %s' , request , id ,
414417 parent . id ) ;
415418
416- return [ id , [ path . dirname ( parent . filename ) ] ] ;
419+ var parentDir = [ path . dirname ( parent . filename ) ] ;
420+ debug ( 'looking for %j in %j' , id , parentDir ) ;
421+ return ( newReturn ? parentDir : [ id , parentDir ] ) ;
417422} ;
418423
419424
@@ -472,16 +477,12 @@ Module._resolveFilename = function(request, parent, isMain) {
472477 return request ;
473478 }
474479
475- var resolvedModule = Module . _resolveLookupPaths ( request , parent ) ;
476- var id = resolvedModule [ 0 ] ;
477- var paths = resolvedModule [ 1 ] ;
480+ var paths = Module . _resolveLookupPaths ( request , parent , true ) ;
478481
479482 // look up the filename first, since that's the cache key.
480- debug ( 'looking for %j in %j' , id , paths ) ;
481-
482483 var filename = Module . _findPath ( request , paths , isMain ) ;
483484 if ( ! filename ) {
484- var err = new Error ( " Cannot find module '" + request + "'" ) ;
485+ var err = new Error ( ` Cannot find module '${ request } '` ) ;
485486 err . code = 'MODULE_NOT_FOUND' ;
486487 throw err ;
487488 }
@@ -564,7 +565,7 @@ Module.prototype._compile = function(content, filename) {
564565 if ( ! resolvedArgv ) {
565566 // we enter the repl if we're not given a filename argument.
566567 if ( process . argv [ 1 ] ) {
567- resolvedArgv = Module . _resolveFilename ( process . argv [ 1 ] , null ) ;
568+ resolvedArgv = Module . _resolveFilename ( process . argv [ 1 ] , null , false ) ;
568569 } else {
569570 resolvedArgv = 'repl' ;
570571 }
0 commit comments