src/basis.js
function(callback, initialValue){
      var len = this.length;
      var argsLen = arguments.length;

      // no value to return if no initial value and an empty array
      if (len == 0 && argsLen == 1)
        throw new TypeError();

      var result;
      var inited = 0;

      if (argsLen > 1)
      {
        result = initialValue;
        inited = 1;
      }

      for (var i = 0; i < len; i++)
        if (i in this)
          if (inited++)
            result = callback.call(null, result, this[i], i, this);
          else
            result = this[i];

      return result;
    }
function(callback, initialValue){
      var len = this.length;
      var argsLen = arguments.length;

      // no value to return if no initial value and an empty array
      if (len == 0 && argsLen == 1)
        throw new TypeError();

      var result;
      var inited = 0;

      if (argsLen > 1)
      {
        result = initialValue;
        inited = 1;
      }

      for (var i = 0; i < len; i++)
        if (i in this)
          if (inited++)
            result = callback.call(null, result, this[i], i, this);
          else
            result = this[i];

      return result;
    }
function ( callback , initialValue ) { var len = this . length ; var argsLen = arguments . length ; // no value to return if no initial value and an empty array if ( len == 0 && argsLen == 1 ) throw new TypeError ( ) ; var result ; var inited = 0 ; if ( argsLen > 1 ) { result = initialValue ; inited = 1 ; } for ( var i = 0 ; i < len ; i ++ ) if ( i in this ) if ( inited ++ ) result = callback . call ( null , result , this [ i ] , i , this ) ; else result = this [ i ] ; return result ; }
JavaScript 1.8
JavaScript 1 . 8