diff options
Diffstat (limited to 'node_modules/core-js/modules/es.array.concat.js')
| -rw-r--r-- | node_modules/core-js/modules/es.array.concat.js | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/node_modules/core-js/modules/es.array.concat.js b/node_modules/core-js/modules/es.array.concat.js deleted file mode 100644 index 1c22499..0000000 --- a/node_modules/core-js/modules/es.array.concat.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; -var $ = require('../internals/export'); -var fails = require('../internals/fails'); -var isArray = require('../internals/is-array'); -var isObject = require('../internals/is-object'); -var toObject = require('../internals/to-object'); -var toLength = require('../internals/to-length'); -var createProperty = require('../internals/create-property'); -var arraySpeciesCreate = require('../internals/array-species-create'); -var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support'); -var wellKnownSymbol = require('../internals/well-known-symbol'); -var V8_VERSION = require('../internals/engine-v8-version'); - -var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); -var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; -var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; - -// We can't use this feature detection in V8 since it causes -// deoptimization and serious performance degradation -// https://github.com/zloirock/core-js/issues/679 -var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { - var array = []; - array[IS_CONCAT_SPREADABLE] = false; - return array.concat()[0] !== array; -}); - -var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); - -var isConcatSpreadable = function (O) { - if (!isObject(O)) return false; - var spreadable = O[IS_CONCAT_SPREADABLE]; - return spreadable !== undefined ? !!spreadable : isArray(O); -}; - -var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; - -// `Array.prototype.concat` method -// https://tc39.github.io/ecma262/#sec-array.prototype.concat -// with adding support of @@isConcatSpreadable and @@species -$({ target: 'Array', proto: true, forced: FORCED }, { - concat: function concat(arg) { // eslint-disable-line no-unused-vars - var O = toObject(this); - var A = arraySpeciesCreate(O, 0); - var n = 0; - var i, k, length, len, E; - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); - } else { - if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - createProperty(A, n++, E); - } - } - A.length = n; - return A; - } -}); |
