]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojo/_base/_loader/loader_debug.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojo / _base / _loader / loader_debug.js
diff --git a/static/dojo-release-1.1.1/dojo/_base/_loader/loader_debug.js b/static/dojo-release-1.1.1/dojo/_base/_loader/loader_debug.js
new file mode 100644 (file)
index 0000000..7e52373
--- /dev/null
@@ -0,0 +1,61 @@
+if(!dojo._hasResource["dojo._base._loader.loader_debug"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base._loader.loader_debug"] = true;
+dojo.provide("dojo._base._loader.loader_debug");
+
+//Override dojo.provide, so we can trigger the next
+//script tag for the next local module. We can only add one
+//at a time because there are browsers that execute script tags
+//in the order that the code is received, and not in the DOM order.
+dojo.nonDebugProvide = dojo.provide;
+
+dojo.provide = function(resourceName){
+       var dbgQueue = dojo["_xdDebugQueue"];
+       if(dbgQueue && dbgQueue.length > 0 && resourceName == dbgQueue["currentResourceName"]){
+               //Set a timeout so the module can be executed into existence. Normally the
+               //dojo.provide call in a module is the first line. Don't want to risk attaching
+               //another script tag until the current one finishes executing.
+               if(dojo.isAIR){
+                       window.setTimeout(function(){dojo._xdDebugFileLoaded(resourceName);}, 1);
+               }else{
+                       window.setTimeout(dojo._scopeName + "._xdDebugFileLoaded('" + resourceName + "')", 1);
+               }
+       }
+
+       return dojo.nonDebugProvide.apply(dojo, arguments);
+}
+
+dojo._xdDebugFileLoaded = function(resourceName){
+
+       if(!this._xdDebugScopeChecked){
+               //If using a scoped dojo, we need to expose dojo as a real global
+               //for the debugAtAllCosts stuff to work.
+               if(dojo._scopeName != "dojo"){
+                       window.dojo = window[dojo.config.scopeMap[0][1]];
+                       window.dijit = window[dojo.config.scopeMap[1][1]];
+                       window.dojox = window[dojo.config.scopeMap[2][1]];
+               }
+
+               this._xdDebugScopeChecked = true;
+       }
+       
+       var dbgQueue = this._xdDebugQueue;
+       
+       if(resourceName && resourceName == dbgQueue.currentResourceName){
+               dbgQueue.shift();
+       }
+
+       if(dbgQueue.length == 0){
+               dbgQueue.currentResourceName = null;
+               this._xdNotifyLoaded();
+       }else{
+               if(resourceName == dbgQueue.currentResourceName){
+                       dbgQueue.currentResourceName = dbgQueue[0].resourceName;
+                       var element = document.createElement("script");
+                       element.type = "text/javascript";
+                       element.src = dbgQueue[0].resourcePath;
+                       document.getElementsByTagName("head")[0].appendChild(element);
+               }
+       }
+}
+
+}