@@ -380,11 +380,11 @@ var requirejs, require, define;
380380 if ( index > - 1 ) {
381381 prefix = name . substring ( 0 , index ) ;
382382 name = name . substring ( index + 1 , name . length ) ;
383- } else if ( relMap &&
384- relMap . defaultPrefix ) {
383+ } else if ( relMap && ! handlers [ name ] ) {
385384 //This is dependency mentioned by a plugin that
386- //has a default prefix.
387- prefix = relMap . defaultPrefix ;
385+ //has a default prefix, and it is not one of the
386+ //special dependency names, require, exports, module.
387+ prefix = relMap . prefix || relMap . defaultPrefix ;
388388 }
389389 return [ prefix , name ] ;
390390 }
@@ -419,9 +419,7 @@ var requirejs, require, define;
419419 name = '_@r' + ( requireCounter += 1 ) ;
420420 }
421421
422- //Split the name, and only pass in a parentModuleMap
423- //for defaultPrefix reference if this is a define call.
424- nameParts = splitPrefix ( name , ( isDefine ? parentModuleMap : null ) ) ;
422+ nameParts = splitPrefix ( name , parentModuleMap ) ;
425423 prefix = nameParts [ 0 ] ;
426424 name = nameParts [ 1 ] ;
427425
@@ -995,7 +993,10 @@ var requirejs, require, define;
995993 var hasInteractive = useInteractive ,
996994 moduleMap = makeModuleMap ( moduleName ) ;
997995
998- if ( plugin . useDefaultPrefix ) {
996+ //If no specific prefix in place, pass on the prefix
997+ //to use, but only by module IDs that are normalized
998+ //against this ID.
999+ if ( moduleName . charAt ( 0 ) !== '!' && ! moduleMap . prefix ) {
9991000 moduleMap . defaultPrefix = map . prefix ;
10001001 }
10011002
@@ -1028,8 +1029,8 @@ var requirejs, require, define;
10281029 context . completeLoad ( moduleName ) ;
10291030
10301031 //Make sure to ask for the real JS module, and not
1031- //get a handle on one that will have defaultPrefix
1032- //applied.
1032+ //get a handle on one that will have a default plugin
1033+ //ID applied to dependency .
10331034 localRequire ( [ '!' + moduleName ] , load ) ;
10341035 } ) ;
10351036
0 commit comments