]> git.pond.sub.org Git - eow/blob - 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
1 if(!dojo._hasResource["dojo._base._loader.loader_debug"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
2 dojo._hasResource["dojo._base._loader.loader_debug"] = true;
3 dojo.provide("dojo._base._loader.loader_debug");
4
5 //Override dojo.provide, so we can trigger the next
6 //script tag for the next local module. We can only add one
7 //at a time because there are browsers that execute script tags
8 //in the order that the code is received, and not in the DOM order.
9 dojo.nonDebugProvide = dojo.provide;
10
11 dojo.provide = function(resourceName){
12         var dbgQueue = dojo["_xdDebugQueue"];
13         if(dbgQueue && dbgQueue.length > 0 && resourceName == dbgQueue["currentResourceName"]){
14                 //Set a timeout so the module can be executed into existence. Normally the
15                 //dojo.provide call in a module is the first line. Don't want to risk attaching
16                 //another script tag until the current one finishes executing.
17                 if(dojo.isAIR){
18                         window.setTimeout(function(){dojo._xdDebugFileLoaded(resourceName);}, 1);
19                 }else{
20                         window.setTimeout(dojo._scopeName + "._xdDebugFileLoaded('" + resourceName + "')", 1);
21                 }
22         }
23
24         return dojo.nonDebugProvide.apply(dojo, arguments);
25 }
26
27 dojo._xdDebugFileLoaded = function(resourceName){
28
29         if(!this._xdDebugScopeChecked){
30                 //If using a scoped dojo, we need to expose dojo as a real global
31                 //for the debugAtAllCosts stuff to work.
32                 if(dojo._scopeName != "dojo"){
33                         window.dojo = window[dojo.config.scopeMap[0][1]];
34                         window.dijit = window[dojo.config.scopeMap[1][1]];
35                         window.dojox = window[dojo.config.scopeMap[2][1]];
36                 }
37
38                 this._xdDebugScopeChecked = true;
39         }
40         
41         var dbgQueue = this._xdDebugQueue;
42         
43         if(resourceName && resourceName == dbgQueue.currentResourceName){
44                 dbgQueue.shift();
45         }
46
47         if(dbgQueue.length == 0){
48                 dbgQueue.currentResourceName = null;
49                 this._xdNotifyLoaded();
50         }else{
51                 if(resourceName == dbgQueue.currentResourceName){
52                         dbgQueue.currentResourceName = dbgQueue[0].resourceName;
53                         var element = document.createElement("script");
54                         element.type = "text/javascript";
55                         element.src = dbgQueue[0].resourcePath;
56                         document.getElementsByTagName("head")[0].appendChild(element);
57                 }
58         }
59 }
60
61 }