docs: function(obj){
  		if(obj == null) {
  			return 0;
  		}
  		var size = obj[sizeSymbol];
  		var count = 0;
  		if(size) {
  			return size.call(obj);
  		}
  		else if(helpers.hasLength(obj)){
  			return obj.length;
  		}
  		else if(typeReflections.isListLike(obj)){
  
  			shapeReflections.eachIndex(obj, function(){
  				count++;
  			});
  			return count;
  		}
  		else if( obj ) {
  			return shapeReflections.getOwnEnumerableKeys(obj).length;
  		}
  		else {
  			return undefined;
  		}
  	}