@ -1,5 +1,5 @@
/ * * v i m : e t : t s = 4 : s w = 4 : s t s = 4
* @ license RequireJS 2.1 . 5 Copyright ( c ) 2010 - 2012 , The Dojo Foundation All Rights Reserved .
* @ license RequireJS 2.1 . 6 Copyright ( c ) 2010 - 2012 , The Dojo Foundation All Rights Reserved .
* Available via the MIT or new BSD license .
* see : http : //github.com/jrburke/requirejs for details
* /
@ -12,7 +12,7 @@ var requirejs, require, define;
( function ( global ) {
var req , s , head , baseElement , dataMain , src ,
interactiveScript , currentlyAddingScript , mainScript , subPath ,
version = '2.1. 5 ',
version = '2.1. 6 ',
commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg ,
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g ,
jsSuffixRegExp = /\.js$/ ,
@ -22,7 +22,7 @@ var requirejs, require, define;
hasOwn = op . hasOwnProperty ,
ap = Array . prototype ,
apsp = ap . splice ,
isBrowser = ! ! ( typeof window !== 'undefined' && navigator && document) ,
isBrowser = ! ! ( typeof window !== 'undefined' && navigator && window. document) ,
isWebWorker = ! isBrowser && typeof importScripts !== 'undefined' ,
//PS3 indicates loaded and complete, but need to wait for complete
//specifically. Sequence is 'loading', 'loaded', execution,
@ -134,6 +134,10 @@ var requirejs, require, define;
return document . getElementsByTagName ( 'script' ) ;
}
function defaultOnError ( err ) {
throw err ;
}
//Allow getting a global that expressed in
//dot notation, like 'a.b.c'.
function getGlobal ( value ) {
@ -500,7 +504,12 @@ var requirejs, require, define;
fn ( defined [ id ] ) ;
}
} else {
getModule ( depMap ) . on ( name , fn ) ;
mod = getModule ( depMap ) ;
if ( mod . error && name === 'error' ) {
fn ( mod . error ) ;
} else {
mod . on ( name , fn ) ;
}
}
}
@ -571,7 +580,13 @@ var requirejs, require, define;
id : mod . map . id ,
uri : mod . map . url ,
config : function ( ) {
return ( config . config && getOwn ( config . config , mod . map . id ) ) || { } ;
var c ,
pkg = getOwn ( config . pkgs , mod . map . id ) ;
// For packages, only support config targeted
// at the main module.
c = pkg ? getOwn ( config . config , mod . map . id + '/' + pkg . main ) :
getOwn ( config . config , mod . map . id ) ;
return c || { } ;
} ,
exports : defined [ mod . map . id ]
} ) ;
@ -840,8 +855,13 @@ var requirejs, require, define;
if ( this . depCount < 1 && ! this . defined ) {
if ( isFunction ( factory ) ) {
//If there is an error listener, favor passing
//to that instead of throwing an error.
if ( this . events . error ) {
//to that instead of throwing an error. However,
//only do it for define()'d modules. require
//errbacks should not be called for failures in
//their callbacks (#699). However if a global
//onError is set, use that.
if ( ( this . events . error && this . map . isDefine ) ||
req . onError !== defaultOnError ) {
try {
exports = context . execCb ( id , factory , depExports , exports ) ;
} catch ( e ) {
@ -869,8 +889,8 @@ var requirejs, require, define;
if ( err ) {
err . requireMap = this . map ;
err . requireModules = [ this . map . id ] ;
err . requireType = 'defin e';
err . requireModules = this . map . isDefine ? [ this . map . id ] : null ;
err . requireType = this . map . isDefine ? 'defin e' : 'requir e';
return onError ( ( this . error = err ) ) ;
}
@ -1093,7 +1113,7 @@ var requirejs, require, define;
} ) ) ;
if ( this . errback ) {
on ( depMap , 'error' , this . errback ) ;
on ( depMap , 'error' , bind ( this , this . errback ) ) ;
}
}
@ -1605,7 +1625,7 @@ var requirejs, require, define;
} ,
/ * *
* Executes a module call ack function . Broken out as a separate function
* Executes a module call b ack function . Broken out as a separate function
* solely to allow the build system to sequence the files in the built
* layer in the right sequence .
*
@ -1643,7 +1663,7 @@ var requirejs, require, define;
onScriptError : function ( evt ) {
var data = getScriptData ( evt ) ;
if ( ! hasPathFallback ( data . id ) ) {
return onError ( makeError ( 'scripterror' , 'Script error ', evt , [ data . id ] ) ) ;
return onError ( makeError ( 'scripterror' , 'Script error for: ' + data . id , evt , [ data . id ] ) ) ;
}
}
} ;
@ -1772,9 +1792,7 @@ var requirejs, require, define;
* function . Intercept / override it if you want custom error handling .
* @ param { Error } err the error object .
* /
req . onError = function ( err ) {
throw err ;
} ;
req . onError = defaultOnError ;
/ * *
* Does the request to load a module for the browser case .
@ -1906,24 +1924,31 @@ var requirejs, require, define;
//baseUrl, if it is not already set.
dataMain = script . getAttribute ( 'data-main' ) ;
if ( dataMain ) {
//Preserve dataMain in case it is a path (i.e. contains '?')
mainScript = dataMain ;
//Set final baseUrl if there is not already an explicit one.
if ( ! cfg . baseUrl ) {
//Pull off the directory of data-main for use as the
//baseUrl.
src = dataMain . split ( '/' ) ;
src = mainScript . split ( '/' ) ;
mainScript = src . pop ( ) ;
subPath = src . length ? src . join ( '/' ) + '/' : './' ;
cfg . baseUrl = subPath ;
dataMain = mainScript ;
}
//Strip off any trailing .js since dataMain is now
//Strip off any trailing .js since mainScript is now
//like a module name.
dataMain = dataMain . replace ( jsSuffixRegExp , '' ) ;
mainScript = mainScript . replace ( jsSuffixRegExp , '' ) ;
//If mainScript is still a path, fall back to dataMain
if ( req . jsExtRegExp . test ( mainScript ) ) {
mainScript = dataMain ;
}
//Put the data-main script in the files to load.
cfg . deps = cfg . deps ? cfg . deps . concat ( dataMain ) : [ dataMain ] ;
cfg . deps = cfg . deps ? cfg . deps . concat ( mainScript) : [ mainScript ] ;
return true ;
}