function(obj, fn) {
      var values = [];
      iterateOverObject(obj, function(k,v) {
        values.push(v);
        if(fn) fn.call(obj,v);
      });
      return values;
    }
function(obj, fn) {
      var values = [];
      iterateOverObject(obj, function(k,v) {
        values.push(v);
        if(fn) fn.call(obj,v);
      });
      return values;
    }
function ( obj , fn ) { var values = [ ] ; iterateOverObject ( obj , function ( k , v ) { values . push ( v ) ; if ( fn ) fn . call ( obj , v ) ; } ) ; return values ; }
*
@method values(<obj>, [fn])
@returns Array
@short Returns an array containing the values in <obj>. Optionally calls [fn] for each value.
@extra Returned values are in no particular order. %values% is available as an instance method on extended objects.
@example

Object.values({ broken: 'wear' }) -> ['wear']
Object.values({ broken: 'wear' }, function(value) {
// Called once for each value.
});
Object.extended({ broken: 'wear' }).values() -> ['wear']

*
* @method values ( <obj > [ fn ] ) @returns Array @short Returns an array containing the values in <obj > . Optionally calls [ fn ] for each value . @extra Returned values are in no particular order . %values% is available as an instance method on extended objects . @example