source: frontend/node_modules/core-js-pure/modules/es.array.to-spliced.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.7 KB
Line 
1'use strict';
2var $ = require('../internals/export');
3var addToUnscopables = require('../internals/add-to-unscopables');
4var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
5var lengthOfArrayLike = require('../internals/length-of-array-like');
6var toAbsoluteIndex = require('../internals/to-absolute-index');
7var toIndexedObject = require('../internals/to-indexed-object');
8var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
9var createProperty = require('../internals/create-property');
10
11var $Array = Array;
12var max = Math.max;
13var min = Math.min;
14
15// `Array.prototype.toSpliced` method
16// https://tc39.es/ecma262/#sec-array.prototype.tospliced
17$({ target: 'Array', proto: true }, {
18 toSpliced: function toSpliced(start, deleteCount /* , ...items */) {
19 var O = toIndexedObject(this);
20 var len = lengthOfArrayLike(O);
21 var actualStart = toAbsoluteIndex(start, len);
22 var argumentsLength = arguments.length;
23 var k = 0;
24 var insertCount, actualDeleteCount, newLen, A;
25 if (argumentsLength === 0) {
26 insertCount = actualDeleteCount = 0;
27 } else if (argumentsLength === 1) {
28 insertCount = 0;
29 actualDeleteCount = len - actualStart;
30 } else {
31 insertCount = argumentsLength - 2;
32 actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);
33 }
34 newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);
35 A = $Array(newLen);
36
37 for (; k < actualStart; k++) createProperty(A, k, O[k]);
38 for (; k < actualStart + insertCount; k++) createProperty(A, k, arguments[k - actualStart + 2]);
39 for (; k < newLen; k++) createProperty(A, k, O[k + actualDeleteCount - insertCount]);
40
41 return A;
42 }
43});
44
45addToUnscopables('toSpliced');
Note: See TracBrowser for help on using the repository browser.