| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | var bind = require('../internals/function-bind-context');var uncurryThis = require('../internals/function-uncurry-this');var IndexedObject = require('../internals/indexed-object');var toObject = require('../internals/to-object');var lengthOfArrayLike = require('../internals/length-of-array-like');var arraySpeciesCreate = require('../internals/array-species-create');var push = uncurryThis([].push);// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementationvar createMethod = function (TYPE) {  var IS_MAP = TYPE == 1;  var IS_FILTER = TYPE == 2;  var IS_SOME = TYPE == 3;  var IS_EVERY = TYPE == 4;  var IS_FIND_INDEX = TYPE == 6;  var IS_FILTER_REJECT = TYPE == 7;  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;  return function ($this, callbackfn, that, specificCreate) {    var O = toObject($this);    var self = IndexedObject(O);    var boundFunction = bind(callbackfn, that);    var length = lengthOfArrayLike(self);    var index = 0;    var create = specificCreate || arraySpeciesCreate;    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;    var value, result;    for (;length > index; index++) if (NO_HOLES || index in self) {      value = self[index];      result = boundFunction(value, index, O);      if (TYPE) {        if (IS_MAP) target[index] = result; // map        else if (result) switch (TYPE) {          case 3: return true;              // some          case 5: return value;             // find          case 6: return index;             // findIndex          case 2: push(target, value);      // filter        } else switch (TYPE) {          case 4: return false;             // every          case 7: push(target, value);      // filterReject        }      }    }    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;  };};module.exports = {  // `Array.prototype.forEach` method  // https://tc39.es/ecma262/#sec-array.prototype.foreach  forEach: createMethod(0),  // `Array.prototype.map` method  // https://tc39.es/ecma262/#sec-array.prototype.map  map: createMethod(1),  // `Array.prototype.filter` method  // https://tc39.es/ecma262/#sec-array.prototype.filter  filter: createMethod(2),  // `Array.prototype.some` method  // https://tc39.es/ecma262/#sec-array.prototype.some  some: createMethod(3),  // `Array.prototype.every` method  // https://tc39.es/ecma262/#sec-array.prototype.every  every: createMethod(4),  // `Array.prototype.find` method  // https://tc39.es/ecma262/#sec-array.prototype.find  find: createMethod(5),  // `Array.prototype.findIndex` method  // https://tc39.es/ecma262/#sec-array.prototype.findIndex  findIndex: createMethod(6),  // `Array.prototype.filterReject` method  // https://github.com/tc39/proposal-array-filtering  filterReject: createMethod(7)};
 |