/
drndsv
/
react
Обзор
Документация
Войти
/
drndsv
/
react
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/safe-array-concat/index.js
36 строк
1 KB
drndsv
Initial commit
14 апр 2025, 22:53
14 апр 2025, 22:53
641ac8a
Код
Авторство
О чём код?
'use strict'; var GetIntrinsic = require('get-intrinsic'); var $concat = GetIntrinsic('%Array.prototype.concat%'); var callBind = require('call-bind'); var callBound = require('call-bind/callBound'); var $slice = callBound('Array.prototype.slice'); var hasSymbols = require('has-symbols/shams')(); var isConcatSpreadable = hasSymbols && Symbol.isConcatSpreadable; var empty = []; var $concatApply = isConcatSpreadable ? callBind.apply($concat, empty) : null; var $concatCall = isConcatSpreadable ? null : callBind($concat, empty); var isArray = isConcatSpreadable ? require('isarray') : null; module.exports = isConcatSpreadable // eslint-disable-next-line no-unused-vars ? function safeArrayConcat(item) { for (var i = 0; i < arguments.length; i += 1) { var arg = arguments[i]; if (arg && typeof arg === 'object' && typeof arg[isConcatSpreadable] === 'boolean') { if (!empty[isConcatSpreadable]) { empty[isConcatSpreadable] = true; } var arr = isArray(arg) ? $slice(arg) : [arg]; arr[isConcatSpreadable] = true; // shadow the property. TODO: use [[Define]] arguments[i] = arr; } } return $concatApply(arguments); } : $concatCall;