testArrayReduceOmitDeleted() {
    const a = [0, 1, 2, 3];
    delete a[1];
    delete a[3];
    assertEquals(2, googArray.reduce(a, (rval, val, i, arr) => {
      assertEquals('number', typeof i);
      assertEquals(a, arr);
      return rval + val;
    }, 0));

    /** @const */
    const scope = {
      last: 0,
      /**
       * @param {number} r
       * @param {number} v
       * @param {number} i
       * @param {!IArrayLike<number>} arr
       * @return {number}
       * @this {?}
       */
      testFn: function(r, v, i, arr) {
        assertEquals('number', typeof i);
        assertEquals(a, arr);
        const l = this.last;
        this.last = r + v;
        return this.last + l;
      },
    };

    assertEquals(2, googArray.reduce(a, scope.testFn, 0, scope));
  }
@param {number} r
@param {number} v
@param {number} i
@param {!IArrayLike<number>} arr
@return {number}
@this {?}