if(!dojo._hasResource["dojox.lang.utils"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojox.lang.utils"] = true; dojo.provide("dojox.lang.utils"); (function(){ var empty = {}, du = dojox.lang.utils; dojo.mixin(dojox.lang.utils, { coerceType: function(target, source){ switch(typeof target){ case "number": return Number(eval("(" + source + ")")); case "string": return String(source); case "boolean": return Boolean(eval("(" + source + ")")); } return eval("(" + source + ")"); }, updateWithObject: function(target, source, conv){ // summary: updates an existing object in place with properties from an "source" object. // target: Object: the "target" object to be updated // source: Object: the "source" object, whose properties will be used to source the existed object. // conv: Boolean?: force conversion to the original type if(!source){ return target; } for(var x in target){ if(x in source && !(x in empty)){ var t = target[x]; if(t && typeof t == "object"){ du.updateObject(t, source[x]); }else{ target[x] = conv ? du.coerceType(t, source[x]) : dojo.clone(source[x]); } } } return target; // Object }, updateWithPattern: function(target, source, pattern, conv){ // summary: updates an existing object in place with properties from an "source" object. // target: Object: the "target" object to be updated // source: Object: the "source" object, whose properties will be used to source the existed object. // pattern: Array: an array of properties to be copied // conv: Boolean?: force conversion to the original type if(!source || !pattern){ return target; } for(var x in pattern){ if(x in source && !(x in empty)){ target[x] = conv ? du.coerceType(pattern[x], source[x]) : dojo.clone(source[x]); } } return target; // Object } }); })(); }