function(fn, scope) {
      var length = this.length, index = 0;
      checkCallback(fn);
      while(index < length) {
        if(index in this) {
          fn.call(scope, this[index], index, this);
        }
        index++;
      }
    }
function(fn, scope) {
      var length = this.length, index = 0;
      checkCallback(fn);
      while(index < length) {
        if(index in this) {
          fn.call(scope, this[index], index, this);
        }
        index++;
      }
    }
function ( fn , scope ) { var length = this . length , index = 0 ; checkCallback ( fn ) ; while ( index < length ) { if ( index in this ) { fn . call ( scope , this [ index ] , index , this ) ; } index ++ ; } }
*
@method forEach([fn], [scope])
@returns Nothing
@short Iterates over the array, calling [fn] on each loop.
@extra This method is only provided for those browsers that do not support it natively. [scope] becomes the %this% object.
@example

['a','b','c'].forEach(function(a) {
// Called 3 times: 'a','b','c'
});

*
* @method forEach ( [ fn ] [ scope ] ) @returns Nothing @short Iterates over the array calling [ fn ] on each loop . @extra This method is only provided for those browsers that do not support it natively . [ scope ] becomes the %this% object . @example