       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/2f1d2cb699c9d9329e8b782b0463156e211cb0f6/struts_dojo.js.uncompressed.js/buggy/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js