define(['dojo/_base/lang'], function(lang){ return { isEmpty: function(arg) { if ( arg == undefined || arg == null ) return true; if ( lang.isString(arg) ) return this.isEmptyString(arg); if ( lang.isArrayLike(arg) ) return this.isEmptyArray(arg); if ( lang.isObject() ) return this.isEmptyObject(arg); if ( lang.isAlien(arg) ) return false; return false; }, isEmptyObject: function(obj) { if ( !lang.isObject(obj) ) return false; for(var prop in obj) { if(obj.hasOwnProperty(prop)) return false; } return true; }, isEmptyString: function(str) { if ( !lang.isString(str) ) return false; return str === ''; }, isEmptyArray: function(array) { if ( !lang.isArrayLike(array) ) return false; return array.length > 0; } }; });