mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-21 05:40:29 +08:00
46 lines
1.8 KiB
JavaScript
46 lines
1.8 KiB
JavaScript
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const appendArrayInPlace=require('../../_virtual/append-array-in-place.cjs');var hasRequiredAppendArrayInPlace;
|
|
|
|
function requireAppendArrayInPlace () {
|
|
if (hasRequiredAppendArrayInPlace) return appendArrayInPlace.__exports;
|
|
hasRequiredAppendArrayInPlace = 1;
|
|
(function (exports) {
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
appendArrayInPlace: function() {
|
|
return appendArrayInPlace;
|
|
},
|
|
appendArrayInPlaceCurried: function() {
|
|
return appendArrayInPlaceCurried;
|
|
}
|
|
});
|
|
const MAX_BLOCK_SIZE = 65535; // max parameter array size for use in Webkit
|
|
function appendArrayInPlace(dest, source) {
|
|
let offset = 0;
|
|
let itemsLeft = source.length;
|
|
if (itemsLeft <= MAX_BLOCK_SIZE) {
|
|
// eslint-disable-next-line prefer-spread -- performance
|
|
dest.push.apply(dest, source);
|
|
} else {
|
|
while(itemsLeft > 0){
|
|
const pushCount = itemsLeft > MAX_BLOCK_SIZE ? MAX_BLOCK_SIZE : itemsLeft;
|
|
const subSource = source.slice(offset, offset + pushCount);
|
|
// eslint-disable-next-line prefer-spread -- performance
|
|
dest.push.apply(dest, subSource);
|
|
itemsLeft -= pushCount;
|
|
offset += pushCount;
|
|
}
|
|
}
|
|
return dest;
|
|
}
|
|
const appendArrayInPlaceCurried = (dest)=>(source)=>appendArrayInPlace(dest, source);
|
|
} (appendArrayInPlace.__exports));
|
|
return appendArrayInPlace.__exports;
|
|
}exports.__require=requireAppendArrayInPlace; |