| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- 'use strict';
 
- 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 implementation
 
- var 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)
 
- };
 
 
  |