       if(dojo.lang.isObject(obj)){ var tmp = {}; var count = 0; for(var x in obj){ if(obj[x] && (!tmp[x])){ count++; break; } } return count == 0; }else if(dojo.lang.isArrayLike(obj) || dojo.lang.isString(obj)){ return obj.length == 0; } }, 
       if(dojo.lang.isObject(obj)){ var tmp = {}; var count = 0; for(var x in obj){ if(obj[x] && (!tmp[x])){ count++; break; } } return count == 0; }else if(dojo.lang.isArrayLike(obj) || dojo.lang.isString(obj)){ return obj.length == 0; } }, 
  isEmpty: function(/*Object*/obj){    // summary:    //    can be used to determine if the passed object is "empty". In    //    the case of array-like objects, the length, property is    //    examined, but for other types of objects iteration is used to    //    examine the iterable "surface area" to determine if any    //    non-prototypal properties have been assigned. This iteration is    //    prototype-extension safe.    if(dojo.lang.isObject(obj)){      var tmp = {};      var count = 0;      for(var x in obj){        if(obj[x] && (!tmp[x])){          count++;          break;        }      }      return count == 0; // boolean    }else if(dojo.lang.isArrayLike(obj) || dojo.lang.isString(obj)){      return obj.length == 0; // boolean    }  },
6315	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6315/65ae7e8768a77997b7894e274bc242069a1cb027/struts_dojo.js.uncompressed.js/clean/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js