| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 'use strict';var $ = require('../internals/export');var isArray = require('../internals/is-array');var isConstructor = require('../internals/is-constructor');var isObject = require('../internals/is-object');var toAbsoluteIndex = require('../internals/to-absolute-index');var lengthOfArrayLike = require('../internals/length-of-array-like');var toIndexedObject = require('../internals/to-indexed-object');var createProperty = require('../internals/create-property');var wellKnownSymbol = require('../internals/well-known-symbol');var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');var nativeSlice = require('../internals/array-slice');var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');var SPECIES = wellKnownSymbol('species');var $Array = Array;var max = Math.max;// `Array.prototype.slice` method// https://tc39.es/ecma262/#sec-array.prototype.slice// fallback for not array-like ES3 strings and DOM objects$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {  slice: function slice(start, end) {    var O = toIndexedObject(this);    var length = lengthOfArrayLike(O);    var k = toAbsoluteIndex(start, length);    var fin = toAbsoluteIndex(end === undefined ? length : end, length);    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible    var Constructor, result, n;    if (isArray(O)) {      Constructor = O.constructor;      // cross-realm fallback      if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {        Constructor = undefined;      } else if (isObject(Constructor)) {        Constructor = Constructor[SPECIES];        if (Constructor === null) Constructor = undefined;      }      if (Constructor === $Array || Constructor === undefined) {        return nativeSlice(O, k, fin);      }    }    result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);    result.length = n;    return result;  }});
 |