1 // false -> Array#indexOf
2 // true -> Array#includes
3 var toIObject = require('./_to-iobject')
4 , toLength = require('./_to-length')
5 , toIndex = require('./_to-index');
6 module.exports = function(IS_INCLUDES){
7 return function($this, el, fromIndex){
8 var O = toIObject($this)
9 , length = toLength(O.length)
10 , index = toIndex(fromIndex, length)
12 // Array#includes uses SameValueZero equality algorithm
13 if(IS_INCLUDES && el != el)while(length > index){
15 if(value != value)return true;
16 // Array#toIndex ignores holes, Array#includes - not
17 } else for(;length > index; index++)if(IS_INCLUDES || index in O){
18 if(O[index] === el)return IS_INCLUDES || index || 0;
19 } return !IS_INCLUDES && -1;