source: frontend/node_modules/core-js/internals/flatten-into-array.js

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

Fix frontend appearance

  • Property mode set to 100644
File size: 1.2 KB
Line 
1'use strict';
2var isArray = require('../internals/is-array');
3var lengthOfArrayLike = require('../internals/length-of-array-like');
4var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
5var bind = require('../internals/function-bind-context');
6var createProperty = require('../internals/create-property');
7
8// `FlattenIntoArray` abstract operation
9// https://tc39.es/ecma262/#sec-flattenintoarray
10var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
11 var targetIndex = start;
12 var sourceIndex = 0;
13 var mapFn = mapper ? bind(mapper, thisArg) : false;
14 var element, elementLen;
15
16 while (sourceIndex < sourceLen) {
17 if (sourceIndex in source) {
18 element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
19
20 if (depth > 0 && isArray(element)) {
21 elementLen = lengthOfArrayLike(element);
22 targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;
23 } else {
24 doesNotExceedSafeInteger(targetIndex + 1);
25 createProperty(target, targetIndex, element);
26 }
27
28 targetIndex++;
29 }
30 sourceIndex++;
31 }
32 return targetIndex;
33};
34
35module.exports = flattenIntoArray;
Note: See TracBrowser for help on using the repository browser.