docs: function flatMap(iterator) {
      // Calling .flatMap() with no arguments is a no-op. Don't bother cloning.
      if (arguments.length === 0) {
        return this;
      }
  
      var result = [],
          length = this.length,
          index;
  
      for (index = 0; index < length; index++) {
        var iteratorResult = iterator(this[index], index, this);
  
        if (Array.isArray(iteratorResult)) {
          // Concatenate Array results into the return value we're building up.
          result.push.apply(result, iteratorResult);
        } else {
          // Handle non-Array results the same way map() does.
          result.push(iteratorResult);
        }
      }
  
      return makeImmutableArray(result);
    }