| | |
| | | 'use strict'; |
| | | var $ = require('../internals/export'); |
| | | var global = require('../internals/global'); |
| | | var isArray = require('../internals/is-array'); |
| | | var isConstructor = require('../internals/is-constructor'); |
| | | var isObject = require('../internals/is-object'); |
| | |
| | | var createProperty = require('../internals/create-property'); |
| | | var wellKnownSymbol = require('../internals/well-known-symbol'); |
| | | var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support'); |
| | | var un$Slice = require('../internals/array-slice'); |
| | | |
| | | var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); |
| | | |
| | | var SPECIES = wellKnownSymbol('species'); |
| | | var nativeSlice = [].slice; |
| | | var Array = global.Array; |
| | | var max = Math.max; |
| | | |
| | | // `Array.prototype.slice` method |
| | |
| | | if (Constructor === null) Constructor = undefined; |
| | | } |
| | | if (Constructor === Array || Constructor === undefined) { |
| | | return nativeSlice.call(O, k, fin); |
| | | return un$Slice(O, k, fin); |
| | | } |
| | | } |
| | | result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0)); |