Skip to content
This repository was archived by the owner on Jan 24, 2019. It is now read-only.

Commit f18a9ff

Browse files
committed
bugfix
1 parent 89abce1 commit f18a9ff

File tree

2 files changed

+77
-74
lines changed

2 files changed

+77
-74
lines changed

js.js

Lines changed: 76 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
$js - asynchronous module definition framework
33
or just simple lightweight javascript dependencies manager
44
5-
@version 4.2
5+
@version 4.3
66
@link http://github.com/redcatphp/js/
77
@author Jo Surikat <jo@surikat.pro>
88
@website http://redcatphp.com
@@ -189,7 +189,7 @@
189189
}
190190
}
191191
}
192-
}
192+
}
193193
return deps;
194194
};
195195
var resolveDepCalls = function(u){
@@ -302,7 +302,7 @@
302302
}
303303
}
304304
if(ok){
305-
$js(dp,(function(){
305+
js(dp,(function(){
306306
var dpz = dp.toString();
307307
return function(){
308308
r(dpz,depTree,depMap,rio,arrSrc,c);
@@ -387,7 +387,7 @@
387387
u.push(getSrc(uo[k]));
388388
}
389389
u = u.sort().toString();
390-
$js(s,function(){
390+
js(s,function(){
391391
requiredGroups[i].push(getSrc(s));
392392
if(requiredGroups[i].sort().toString()==u){
393393
if(typeof(c)=='function')
@@ -396,6 +396,7 @@
396396
},false,deps);
397397
};
398398
var asyncJsObject = function(u,c){
399+
399400
requiredGroups.push([]);
400401
var arr = resolveAsyncArr(u);
401402
var deps = resolveDeps(u,arr);
@@ -445,9 +446,9 @@
445446
}
446447
if(typeof(u[g])=='function')
447448
ev = 'u["'+g+'"]();'+ev;
448-
ev = '$js("'+g+'",function(){r("'+g+'",t,o,'+rio+',h,b);'+ev+'},false);';
449+
ev = 'js("'+g+'",function(){r("'+g+'",t,o,'+rio+',h,b);'+ev+'},false);';
449450
}
450-
eval(ev);
451+
if(ev) eval(ev);
451452
};
452453
var syncJsObject = function(u,c){
453454
var tops = depsToTops(resolveDeps(u));
@@ -480,7 +481,7 @@
480481
}
481482
if(typeof(u[d])=='function')
482483
ev = 'u["'+d+'"]();'+ev;
483-
ev = '$js("'+d+'",function(){'+ev+'});';
484+
ev = 'js("'+d+'",function(){'+ev+'});';
484485
}
485486
}
486487
eval(ev);
@@ -498,7 +499,7 @@
498499
sync = sync?true:false;
499500
if(s instanceof Array){
500501
s.reverse();
501-
var ev = '$js(s'+(sync?',true':'')+',y);';
502+
var ev = 'js(s'+(sync?',true':'')+',y);';
502503
for(var i = 0; i < s.length; i++){
503504
ev = '$js.onExists("'+s[i]+'",function(){'+ev+'},n);';
504505
}
@@ -530,7 +531,7 @@
530531
if(httpRequest.readyState==4){
531532
if(httpRequest.status!=404){
532533
existsRegistry[s] = true;
533-
$js(s,sync,y);
534+
js(s,sync,y);
534535
}
535536
else{
536537
existsRegistry[s] = false;
@@ -540,67 +541,70 @@
540541
};
541542
httpRequest.send();
542543
};
543-
$js = (function(){
544+
545+
var js = function(){
546+
//mixed args
547+
var u,c,sync,deps = true;
548+
for(var i = 0; i < arguments.length; i++){
549+
switch(typeof(arguments[i])){
550+
case 'boolean':
551+
if(typeof(sync)=='undefined')
552+
sync = arguments[i];
553+
else
554+
deps = arguments[i];
555+
break;
556+
case 'function':
557+
c = arguments[i];
558+
break;
559+
case 'string':
560+
case 'object':
561+
u = arguments[i];
562+
break;
563+
}
564+
}
565+
if(typeof(sync)=='undefined')
566+
sync = !$js.async;
544567

545-
//invoker
546-
var js = function(){
547-
//mixed args
548-
var u,c,sync,deps = true;
549-
for(var i = 0; i < arguments.length; i++){
550-
switch(typeof(arguments[i])){
551-
case 'boolean':
552-
if(typeof(sync)=='undefined')
553-
sync = arguments[i];
554-
else
555-
deps = arguments[i];
556-
break;
557-
case 'function':
558-
c = arguments[i];
559-
break;
560-
case 'string':
561-
case 'object':
562-
u = arguments[i];
563-
break;
564-
}
568+
//alias
569+
u = resolveAlias(u);
570+
571+
//handle
572+
if(typeof(u)=='object'){
573+
if(sync)
574+
syncJsObject(u,c);
575+
else
576+
asyncJsObject(u,c);
577+
}
578+
else{
579+
if(typeof(u)=='function'){
580+
c = u;
581+
u = 0;
565582
}
566-
if(typeof(sync)=='undefined')
567-
sync = !$js.async;
568-
569-
if(!windowLoaded&&typeof(u)=='string'&&!deps)
570-
u = [u];
571-
572-
//alias
573-
u = resolveAlias(u);
574-
575-
//handle
576-
if(typeof(u)=='object'){
577-
if(sync)
578-
syncJsObject(u,c);
579-
else
580-
asyncJsObject(u,c);
583+
if(deps&&typeof($js.dependenciesMap[u])!='undefined'){
584+
asyncJsObject($js.dependenciesMap[u],function(){
585+
apt(u,c,!sync);
586+
});
581587
}
582588
else{
583-
if(typeof(u)=='function'){
584-
c = u;
585-
u = 0;
586-
}
587-
if(deps&&typeof($js.dependenciesMap[u])!='undefined'){
588-
asyncJsObject($js.dependenciesMap[u],function(){
589-
$js(u,c,sync,false);
590-
});
591-
}
592-
else{
593-
apt(u,c,!sync);
594-
}
589+
apt(u,c,!sync);
595590
}
596-
597-
//chainable
598-
return function(){
599-
var a = arguments;
600-
return $js(u,function(){
601-
$js.apply(null,a);
602-
});
603-
};
591+
}
592+
593+
//chainable
594+
return function(){
595+
var a = arguments;
596+
return js(u,function(){
597+
js.apply(null,a);
598+
});
599+
};
600+
};
601+
$js = (function(j){
602+
603+
//invoker
604+
var js = function(){
605+
if(typeof(arguments[0])=='string')
606+
arguments[0] = [arguments[0]];
607+
j.apply(null,arguments);
604608
};
605609

606610
//vars init
@@ -638,7 +642,7 @@
638642
}
639643
var interceptor = {};
640644
intercepting = interceptor;
641-
$js(obj,sync,function(){
645+
js(obj,sync,function(){
642646
if(!interceptor.callback){
643647
intercepting = false;
644648
}
@@ -681,7 +685,7 @@
681685
if(obj){
682686
var interceptor = {};
683687
intercepting = interceptor;
684-
var when = $js(obj,sync,function(){
688+
var when = js(obj,sync,function(){
685689
if(id){
686690
js.modules[getSrc(id)] = mod;
687691
delete(waitingModule[id]);
@@ -734,7 +738,7 @@
734738
}
735739
};
736740
js.invokeArray = function(mod,args){
737-
return $js(mod,function(){
741+
return js(mod,function(){
738742
$js.module(mod).apply(null,args);
739743
});
740744
};
@@ -750,7 +754,7 @@
750754
if(o.dependencies)
751755
$js.dependencies(o.dependencies);
752756
if(o.call)
753-
$js(o.call);
757+
js(o.call);
754758
};
755759
js.intercept = function(){
756760
var interceptor = {};
@@ -765,7 +769,8 @@
765769
};
766770
};
767771
return js;
768-
})();
772+
})(js);
773+
769774
var y = {};
770775
var keysOf = function(o){
771776
var a = [];
@@ -825,7 +830,6 @@
825830
}
826831
}
827832

828-
var windowLoaded = false;
829833
var loadAsync = function(k,s){
830834
x(k,function(){
831835
for(var i = 0; i < s.length; i++){
@@ -835,8 +839,7 @@
835839
});
836840
};
837841
var y = {};
838-
var load = function(){
839-
windowLoaded = true;
842+
var load = function(){
840843
apt = x;
841844
for(var k in scripts[0]){
842845
if(!scripts[0].hasOwnProperty(k)) continue;

0 commit comments

Comments
 (0)