33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
//>>built
|
|
define("dojox/mvc/equals",["dojo/_base/array","dojo/_base/lang","dojo/Stateful","./StatefulArray"],function(_1,_2,_3,_4){
|
|
var _5={getType:function(v){
|
|
return _2.isArray(v)?"array":_2.isFunction((v||{}).getTime)?"date":v!=null&&({}.toString.call(v)=="[object Object]"||_2.isFunction((v||{}).set)&&_2.isFunction((v||{}).watch))?"object":"value";
|
|
},equalsArray:function(_6,_7){
|
|
for(var i=0,l=Math.max(_6.length,_7.length);i<l;i++){
|
|
if(!_8(_6[i],_7[i])){
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
},equalsDate:function(_9,_a){
|
|
return _9.getTime()==_a.getTime();
|
|
},equalsObject:function(_b,_c){
|
|
var _d=_2.mixin({},_b,_c);
|
|
for(var s in _d){
|
|
if(!(s in _3.prototype)&&s!="_watchCallbacks"&&!_8(_b[s],_c[s])){
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
},equalsValue:function(_e,_f){
|
|
return _e===_f;
|
|
}};
|
|
var _8=function(dst,src,_10){
|
|
var _11=_10||_8,_12=[_11.getType(dst),_11.getType(src)];
|
|
return _12[0]!=_12[1]?false:_11["equals"+_12[0].replace(/^[a-z]/,function(c){
|
|
return c.toUpperCase();
|
|
})](dst,src);
|
|
};
|
|
return _2.setObject("dojox.mvc.equals",_2.mixin(_8,_5));
|
|
});
|