blob: 3106f71cb09296c87ae70368307d13777f50b110 [file] [log] [blame]
dojo.provide("dojo.lang.type");
dojo.require("dojo.lang.common");
dojo.lang.whatAmI=function(_1){
dojo.deprecated("dojo.lang.whatAmI","use dojo.lang.getType instead","0.5");
return dojo.lang.getType(_1);
};
dojo.lang.whatAmI.custom={};
dojo.lang.getType=function(_2){
try{
if(dojo.lang.isArray(_2)){
return "array";
}
if(dojo.lang.isFunction(_2)){
return "function";
}
if(dojo.lang.isString(_2)){
return "string";
}
if(dojo.lang.isNumber(_2)){
return "number";
}
if(dojo.lang.isBoolean(_2)){
return "boolean";
}
if(dojo.lang.isAlien(_2)){
return "alien";
}
if(dojo.lang.isUndefined(_2)){
return "undefined";
}
for(var _3 in dojo.lang.whatAmI.custom){
if(dojo.lang.whatAmI.custom[_3](_2)){
return _3;
}
}
if(dojo.lang.isObject(_2)){
return "object";
}
}
catch(e){
}
return "unknown";
};
dojo.lang.isNumeric=function(_4){
return (!isNaN(_4)&&isFinite(_4)&&(_4!=null)&&!dojo.lang.isBoolean(_4)&&!dojo.lang.isArray(_4)&&!/^\s*$/.test(_4));
};
dojo.lang.isBuiltIn=function(_5){
return (dojo.lang.isArray(_5)||dojo.lang.isFunction(_5)||dojo.lang.isString(_5)||dojo.lang.isNumber(_5)||dojo.lang.isBoolean(_5)||(_5==null)||(_5 instanceof Error)||(typeof _5=="error"));
};
dojo.lang.isPureObject=function(_6){
return ((_6!=null)&&dojo.lang.isObject(_6)&&_6.constructor==Object);
};
dojo.lang.isOfType=function(_7,_8,_9){
var _a=false;
if(_9){
_a=_9["optional"];
}
if(_a&&((_7===null)||dojo.lang.isUndefined(_7))){
return true;
}
if(dojo.lang.isArray(_8)){
var _b=_8;
for(var i in _b){
var _d=_b[i];
if(dojo.lang.isOfType(_7,_d)){
return true;
}
}
return false;
}else{
if(dojo.lang.isString(_8)){
_8=_8.toLowerCase();
}
switch(_8){
case Array:
case "array":
return dojo.lang.isArray(_7);
case Function:
case "function":
return dojo.lang.isFunction(_7);
case String:
case "string":
return dojo.lang.isString(_7);
case Number:
case "number":
return dojo.lang.isNumber(_7);
case "numeric":
return dojo.lang.isNumeric(_7);
case Boolean:
case "boolean":
return dojo.lang.isBoolean(_7);
case Object:
case "object":
return dojo.lang.isObject(_7);
case "pureobject":
return dojo.lang.isPureObject(_7);
case "builtin":
return dojo.lang.isBuiltIn(_7);
case "alien":
return dojo.lang.isAlien(_7);
case "undefined":
return dojo.lang.isUndefined(_7);
case null:
case "null":
return (_7===null);
case "optional":
dojo.deprecated("dojo.lang.isOfType(value, [type, \"optional\"])","use dojo.lang.isOfType(value, type, {optional: true} ) instead","0.5");
return ((_7===null)||dojo.lang.isUndefined(_7));
default:
if(dojo.lang.isFunction(_8)){
return (_7 instanceof _8);
}else{
dojo.raise("dojo.lang.isOfType() was passed an invalid type");
}
}
}
dojo.raise("If we get here, it means a bug was introduced above.");
};
dojo.lang.getObject=function(_e){
var _f=_e.split("."),i=0,obj=dj_global;
do{
obj=obj[_f[i++]];
}while(i<_f.length&&obj);
return (obj!=dj_global)?obj:null;
};
dojo.lang.doesObjectExist=function(str){
var _13=str.split("."),i=0,obj=dj_global;
do{
obj=obj[_13[i++]];
}while(i<_13.length&&obj);
return (obj&&obj!=dj_global);
};