@@ -437,9 +437,16 @@ var requirejs, require, define;
437437 name = '_@r' + ( requireCounter += 1 ) ;
438438 }
439439
440- if ( index !== - 1 ) {
440+ //Do not count IDs that are '!a', that just means
441+ //'a'
442+ if ( index > - 1 ) {
441443 prefix = name . substring ( 0 , index ) ;
442444 name = name . substring ( index + 1 , name . length ) ;
445+ } else if ( parentModuleMap &&
446+ parentModuleMap . defaultPrefix ) {
447+ //This is dependency mentioned by a plugin that
448+ //has a default prefix.
449+ prefix = parentModuleMap . defaultPrefix ;
443450 }
444451
445452 if ( prefix ) {
@@ -1002,6 +1009,10 @@ var requirejs, require, define;
10021009 var hasInteractive = useInteractive ,
10031010 moduleMap = makeModuleMap ( moduleName ) ;
10041011
1012+ if ( plugin . useDefaultPrefix ) {
1013+ moduleMap . defaultPrefix = map . prefix ;
1014+ }
1015+
10051016 //Turn off interactive script matching for IE for any define
10061017 //calls in the text, then turn it back on at the end.
10071018 if ( hasInteractive ) {
@@ -1012,7 +1023,12 @@ var requirejs, require, define;
10121023 //it.
10131024 getModule ( moduleMap ) ;
10141025
1015- req . exec ( text ) ;
1026+ try {
1027+ req . exec ( text ) ;
1028+ } catch ( e ) {
1029+ throw new Error ( 'fromText eval for ' + moduleName +
1030+ ' failed: ' + e ) ;
1031+ }
10161032
10171033 if ( hasInteractive ) {
10181034 useInteractive = true ;
0 commit comments