![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/lib/node_modules/browserify/node_modules/es-abstract/2020/ |
Upload File : |
'use strict'; var GetIntrinsic = require('get-intrinsic'); var $TypeError = GetIntrinsic('%TypeError%'); var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); var Call = require('./Call'); var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); var Get = require('./Get'); var HasProperty = require('./HasProperty'); var IsArray = require('./IsArray'); var LengthOfArrayLike = require('./LengthOfArrayLike'); var ToString = require('./ToString'); // https://ecma-international.org/ecma-262/11.0/#sec-flattenintoarray // eslint-disable-next-line max-params module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) { var mapperFunction; if (arguments.length > 5) { mapperFunction = arguments[5]; } var targetIndex = start; var sourceIndex = 0; while (sourceIndex < sourceLen) { var P = ToString(sourceIndex); var exists = HasProperty(source, P); if (exists === true) { var element = Get(source, P); if (typeof mapperFunction !== 'undefined') { if (arguments.length <= 6) { throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided'); } element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]); } var shouldFlatten = false; if (depth > 0) { shouldFlatten = IsArray(element); } if (shouldFlatten) { var elementLen = LengthOfArrayLike(element); targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1); } else { if (targetIndex >= MAX_SAFE_INTEGER) { throw new $TypeError('index too large'); } CreateDataPropertyOrThrow(target, ToString(targetIndex), element); targetIndex += 1; } } sourceIndex += 1; } return targetIndex; };