docs: function reduce(iterator, memo) {
      // Ensure called with a valid context.
      if (this == null) {
        throw new TypeError();
      }
  
      // Ensure a function was passed as the iterator.
      if (typeof iterator !== "function") {
        throw new TypeError();
      }
  
      // Coerce this value to an Array.
      var array = Array.prototype.slice.call(this);
  
      for (var i = 0; i < array.length; i++) {
        if (i in array) {
          memo = iterator(memo, array[i], i, array);
        }
      }
  
      return memo;
    }