1 | 'use strict';
|
2 | var $ = require('../internals/export');
|
3 | var $indexOf = require('../internals/array-includes').indexOf;
|
4 | var arrayMethodIsStrict = require('../internals/array-method-is-strict');
|
5 | var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
|
6 |
|
7 | var nativeIndexOf = [].indexOf;
|
8 |
|
9 | var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
|
10 | var STRICT_METHOD = arrayMethodIsStrict('indexOf');
|
11 | var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
|
12 |
|
13 |
|
14 |
|
15 | $({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {
|
16 | indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
|
17 | return NEGATIVE_ZERO
|
18 |
|
19 | ? nativeIndexOf.apply(this, arguments) || 0
|
20 | : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
|
21 | }
|
22 | });
|