24 lines
		
	
	
		
			924 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			924 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// false -> Array#indexOf
 | 
						|
// true  -> Array#includes
 | 
						|
var toIObject = require('./_to-iobject');
 | 
						|
var toLength = require('./_to-length');
 | 
						|
var toAbsoluteIndex = require('./_to-absolute-index');
 | 
						|
module.exports = function (IS_INCLUDES) {
 | 
						|
  return function ($this, el, fromIndex) {
 | 
						|
    var O = toIObject($this);
 | 
						|
    var length = toLength(O.length);
 | 
						|
    var index = toAbsoluteIndex(fromIndex, length);
 | 
						|
    var value;
 | 
						|
    // Array#includes uses SameValueZero equality algorithm
 | 
						|
    // eslint-disable-next-line no-self-compare
 | 
						|
    if (IS_INCLUDES && el != el) while (length > index) {
 | 
						|
      value = O[index++];
 | 
						|
      // eslint-disable-next-line no-self-compare
 | 
						|
      if (value != value) return true;
 | 
						|
    // Array#indexOf ignores holes, Array#includes - not
 | 
						|
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
 | 
						|
      if (O[index] === el) return IS_INCLUDES || index || 0;
 | 
						|
    } return !IS_INCLUDES && -1;
 | 
						|
  };
 | 
						|
};
 |