You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					24 lines
				
				924 B
			
		
		
			
		
	
	
					24 lines
				
				924 B
			| 
											3 years ago
										 | // 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; | ||
|  |   }; | ||
|  | }; |