Sha256: 68cd72e67a6f7bfa3cc4b776715a145dc3762c70b0309b46128235ee0ab75075

Contents?: true

Size: 1.25 KB

Versions: 25

Compression:

Stored size: 1.25 KB

Contents

var toIndexedObject = require('../internals/to-indexed-object');
var toLength = require('../internals/to-length');
var toAbsoluteIndex = require('../internals/to-absolute-index');

// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIndexedObject($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) && O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};

module.exports = {
  // `Array.prototype.includes` method
  // https://tc39.github.io/ecma262/#sec-array.prototype.includes
  includes: createMethod(true),
  // `Array.prototype.indexOf` method
  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
  indexOf: createMethod(false)
};

Version data entries

25 entries across 25 versions & 7 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/core-js/internals/array-includes.js
disco_app-0.18.0 test/dummy/node_modules/core-js/internals/array-includes.js
disco_app-0.18.2 test/dummy/node_modules/core-js/internals/array-includes.js
tang-0.2.1 spec/tang_app/node_modules/core-js/internals/array-includes.js
tang-0.2.0 spec/tang_app/node_modules/core-js/internals/array-includes.js
tang-0.1.0 spec/tang_app/node_modules/core-js/internals/array-includes.js
tang-0.0.9 spec/tang_app/node_modules/core-js/internals/array-includes.js
enju_library-0.3.8 spec/dummy/node_modules/core-js/internals/array-includes.js
condenser-0.3 lib/condenser/processors/node_modules/core-js-pure/internals/array-includes.js
condenser-0.2 lib/condenser/processors/node_modules/core-js-pure/internals/array-includes.js
condenser-0.1 lib/condenser/processors/node_modules/core-js-pure/internals/array-includes.js
condenser-0.0.12 lib/condenser/processors/node_modules/core-js-pure/internals/array-includes.js
condenser-0.0.11 lib/condenser/processors/node_modules/core-js-pure/internals/array-includes.js
condenser-0.0.10 lib/condenser/processors/node_modules/core-js-pure/internals/array-includes.js
condenser-0.0.9 lib/condenser/processors/node_modules/core-js-pure/internals/array-includes.js
condenser-0.0.8 lib/condenser/processors/node_modules/core-js-pure/internals/array-includes.js
jester-data-8.0.0 node_modules/core-js/internals/array-includes.js
ezii-os-5.2.1 node_modules/core-js/internals/array-includes.js
ezii-os-2.0.1 node_modules/core-js/internals/array-includes.js
ezii-os-1.1.0 node_modules/core-js/internals/array-includes.js