Sha256: d2cbce03d5a8189a25f7c2ba94573c39ec24da6f267f4627c85706295460aa3a

Contents?: true

Size: 1.08 KB

Versions: 17

Compression:

Stored size: 1.08 KB

Contents

'use strict';
var isArray = require('../internals/is-array');
var toLength = require('../internals/to-length');
var bind = require('../internals/function-bind-context');

// `FlattenIntoArray` abstract operation
// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
  var targetIndex = start;
  var sourceIndex = 0;
  var mapFn = mapper ? bind(mapper, thisArg, 3) : false;
  var element;

  while (sourceIndex < sourceLen) {
    if (sourceIndex in source) {
      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];

      if (depth > 0 && isArray(element)) {
        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
      } else {
        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');
        target[targetIndex] = element;
      }

      targetIndex++;
    }
    sourceIndex++;
  }
  return targetIndex;
};

module.exports = flattenIntoArray;

Version data entries

17 entries across 16 versions & 6 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/core-js/internals/flatten-into-array.js
tang-0.2.1 spec/tang_app/node_modules/core-js/internals/flatten-into-array.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/core-js/internals/flatten-into-array.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/core-js/internals/flatten-into-array.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/core-js/internals/flatten-into-array.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/core-js/internals/flatten-into-array.js
tang-0.2.0 spec/tang_app/node_modules/core-js/internals/flatten-into-array.js
tang-0.1.0 spec/tang_app/node_modules/core-js/internals/flatten-into-array.js
tang-0.0.9 spec/tang_app/node_modules/core-js/internals/flatten-into-array.js
enju_library-0.3.8 spec/dummy/node_modules/core-js/internals/flatten-into-array.js
condenser-0.3 lib/condenser/processors/node_modules/core-js-pure/internals/flatten-into-array.js
condenser-0.2 lib/condenser/processors/node_modules/core-js-pure/internals/flatten-into-array.js
condenser-0.1 lib/condenser/processors/node_modules/core-js-pure/internals/flatten-into-array.js
condenser-0.0.12 lib/condenser/processors/node_modules/core-js-pure/internals/flatten-into-array.js
condenser-0.0.11 lib/condenser/processors/node_modules/core-js-pure/internals/flatten-into-array.js
condenser-0.0.10 lib/condenser/processors/node_modules/core-js-pure/internals/flatten-into-array.js
condenser-0.0.9 lib/condenser/processors/node_modules/core-js-pure/internals/flatten-into-array.js