summaryrefslogtreecommitdiff
path: root/lib/dojo/_base/_loader/loader.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/_base/_loader/loader.js')
-rw-r--r--lib/dojo/_base/_loader/loader.js300
1 files changed, 300 insertions, 0 deletions
diff --git a/lib/dojo/_base/_loader/loader.js b/lib/dojo/_base/_loader/loader.js
new file mode 100644
index 000000000..3f31040a1
--- /dev/null
+++ b/lib/dojo/_base/_loader/loader.js
@@ -0,0 +1,300 @@
+/*
+ Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojo.foo"]){
+dojo._hasResource["dojo.foo"]=true;
+(function(){
+var d=dojo;
+d.mixin(d,{_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_1){
+var mp=d._modulePrefixes;
+return !!(mp[_1]&&mp[_1].value);
+},_getModulePrefix:function(_2){
+var mp=d._modulePrefixes;
+if(d._moduleHasPrefix(_2)){
+return mp[_2].value;
+}
+return _2;
+},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false});
+dojo._loadPath=function(_3,_4,cb){
+var _5=((_3.charAt(0)=="/"||_3.match(/^\w+:/))?"":d.baseUrl)+_3;
+try{
+return !_4?d._loadUri(_5,cb):d._loadUriAndCheck(_5,_4,cb);
+}
+catch(e){
+console.error(e);
+return false;
+}
+};
+dojo._loadUri=function(_6,cb){
+if(d._loadedUrls[_6]){
+return true;
+}
+d._inFlightCount++;
+var _7=d._getText(_6,true);
+if(_7){
+d._loadedUrls[_6]=true;
+d._loadedUrls.push(_6);
+if(cb){
+_7="("+_7+")";
+}else{
+_7=d._scopePrefix+_7+d._scopeSuffix;
+}
+if(!d.isIE){
+_7+="\r\n//@ sourceURL="+_6;
+}
+var _8=d["eval"](_7);
+if(cb){
+cb(_8);
+}
+}
+if(--d._inFlightCount==0&&d._postLoad&&d._loaders.length){
+setTimeout(function(){
+if(d._inFlightCount==0){
+d._callLoaded();
+}
+},0);
+}
+return !!_7;
+};
+dojo._loadUriAndCheck=function(_9,_a,cb){
+var ok=false;
+try{
+ok=d._loadUri(_9,cb);
+}
+catch(e){
+console.error("failed loading "+_9+" with error: "+e);
+}
+return !!(ok&&d._loadedModules[_a]);
+};
+dojo.loaded=function(){
+d._loadNotifying=true;
+d._postLoad=true;
+var _b=d._loaders;
+d._loaders=[];
+for(var x=0;x<_b.length;x++){
+_b[x]();
+}
+d._loadNotifying=false;
+if(d._postLoad&&d._inFlightCount==0&&_b.length){
+d._callLoaded();
+}
+};
+dojo.unloaded=function(){
+var _c=d._unloaders;
+while(_c.length){
+(_c.pop())();
+}
+};
+d._onto=function(_d,_e,fn){
+if(!fn){
+_d.push(_e);
+}else{
+if(fn){
+var _f=(typeof fn=="string")?_e[fn]:fn;
+_d.push(function(){
+_f.call(_e);
+});
+}
+}
+};
+dojo.ready=dojo.addOnLoad=function(obj,_10){
+d._onto(d._loaders,obj,_10);
+if(d._postLoad&&d._inFlightCount==0&&!d._loadNotifying){
+d._callLoaded();
+}
+};
+var dca=d.config.addOnLoad;
+if(dca){
+d.addOnLoad[(dca instanceof Array?"apply":"call")](d,dca);
+}
+dojo._modulesLoaded=function(){
+if(d._postLoad){
+return;
+}
+if(d._inFlightCount>0){
+console.warn("files still in flight!");
+return;
+}
+d._callLoaded();
+};
+dojo._callLoaded=function(){
+if(typeof setTimeout=="object"||(d.config.useXDomain&&d.isOpera)){
+setTimeout(d.isAIR?function(){
+d.loaded();
+}:d._scopeName+".loaded();",0);
+}else{
+d.loaded();
+}
+};
+dojo._getModuleSymbols=function(_11){
+var _12=_11.split(".");
+for(var i=_12.length;i>0;i--){
+var _13=_12.slice(0,i).join(".");
+if(i==1&&!d._moduleHasPrefix(_13)){
+_12[0]="../"+_12[0];
+}else{
+var _14=d._getModulePrefix(_13);
+if(_14!=_13){
+_12.splice(0,i,_14);
+break;
+}
+}
+}
+return _12;
+};
+dojo._global_omit_module_check=false;
+dojo.loadInit=function(_15){
+_15();
+};
+dojo._loadModule=dojo.require=function(_16,_17){
+_17=d._global_omit_module_check||_17;
+var _18=d._loadedModules[_16];
+if(_18){
+return _18;
+}
+var _19=d._getModuleSymbols(_16).join("/")+".js";
+var _1a=!_17?_16:null;
+var ok=d._loadPath(_19,_1a);
+if(!ok&&!_17){
+throw new Error("Could not load '"+_16+"'; last tried '"+_19+"'");
+}
+if(!_17&&!d._isXDomain){
+_18=d._loadedModules[_16];
+if(!_18){
+throw new Error("symbol '"+_16+"' is not defined after loading '"+_19+"'");
+}
+}
+return _18;
+};
+dojo.provide=function(_1b){
+_1b=_1b+"";
+return (d._loadedModules[_1b]=d.getObject(_1b,true));
+};
+dojo.platformRequire=function(_1c){
+var _1d=_1c.common||[];
+var _1e=_1d.concat(_1c[d._name]||_1c["default"]||[]);
+for(var x=0;x<_1e.length;x++){
+var _1f=_1e[x];
+if(_1f.constructor==Array){
+d._loadModule.apply(d,_1f);
+}else{
+d._loadModule(_1f);
+}
+}
+};
+dojo.requireIf=function(_20,_21){
+if(_20===true){
+var _22=[];
+for(var i=1;i<arguments.length;i++){
+_22.push(arguments[i]);
+}
+d.require.apply(d,_22);
+}
+};
+dojo.requireAfterIf=d.requireIf;
+dojo.registerModulePath=function(_23,_24){
+d._modulePrefixes[_23]={name:_23,value:_24};
+};
+dojo.requireLocalization=function(_25,_26,_27,_28){
+d.require("dojo.i18n");
+d.i18n._requireLocalization.apply(d.hostenv,arguments);
+};
+var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");
+dojo._Url=function(){
+var n=null,_29=arguments,uri=[_29[0]];
+for(var i=1;i<_29.length;i++){
+if(!_29[i]){
+continue;
+}
+var _2a=new d._Url(_29[i]+""),_2b=new d._Url(uri[0]+"");
+if(_2a.path==""&&!_2a.scheme&&!_2a.authority&&!_2a.query){
+if(_2a.fragment!=n){
+_2b.fragment=_2a.fragment;
+}
+_2a=_2b;
+}else{
+if(!_2a.scheme){
+_2a.scheme=_2b.scheme;
+if(!_2a.authority){
+_2a.authority=_2b.authority;
+if(_2a.path.charAt(0)!="/"){
+var _2c=_2b.path.substring(0,_2b.path.lastIndexOf("/")+1)+_2a.path;
+var _2d=_2c.split("/");
+for(var j=0;j<_2d.length;j++){
+if(_2d[j]=="."){
+if(j==_2d.length-1){
+_2d[j]="";
+}else{
+_2d.splice(j,1);
+j--;
+}
+}else{
+if(j>0&&!(j==1&&_2d[0]=="")&&_2d[j]==".."&&_2d[j-1]!=".."){
+if(j==(_2d.length-1)){
+_2d.splice(j,1);
+_2d[j-1]="";
+}else{
+_2d.splice(j-1,2);
+j-=2;
+}
+}
+}
+}
+_2a.path=_2d.join("/");
+}
+}
+}
+}
+uri=[];
+if(_2a.scheme){
+uri.push(_2a.scheme,":");
+}
+if(_2a.authority){
+uri.push("//",_2a.authority);
+}
+uri.push(_2a.path);
+if(_2a.query){
+uri.push("?",_2a.query);
+}
+if(_2a.fragment){
+uri.push("#",_2a.fragment);
+}
+}
+this.uri=uri.join("");
+var r=this.uri.match(ore);
+this.scheme=r[2]||(r[1]?"":n);
+this.authority=r[4]||(r[3]?"":n);
+this.path=r[5];
+this.query=r[7]||(r[6]?"":n);
+this.fragment=r[9]||(r[8]?"":n);
+if(this.authority!=n){
+r=this.authority.match(ire);
+this.user=r[3]||n;
+this.password=r[4]||n;
+this.host=r[6]||r[7];
+this.port=r[9]||n;
+}
+};
+dojo._Url.prototype.toString=function(){
+return this.uri;
+};
+dojo.moduleUrl=function(_2e,url){
+var loc=d._getModuleSymbols(_2e).join("/");
+if(!loc){
+return null;
+}
+if(loc.lastIndexOf("/")!=loc.length-1){
+loc+="/";
+}
+var _2f=loc.indexOf(":");
+if(loc.charAt(0)!="/"&&(_2f==-1||_2f>loc.indexOf("/"))){
+loc=d.baseUrl+loc;
+}
+return new d._Url(loc,url);
+};
+})();
+}