diff --git a/packages/solid/src/reactive/signal.ts b/packages/solid/src/reactive/signal.ts index abea5717..49a5c569 100644 --- a/packages/solid/src/reactive/signal.ts +++ b/packages/solid/src/reactive/signal.ts @@ -1746,7 +1746,17 @@ function resolveChildren(children: JSX.Element | Accessor): ResolvedChildre const results: any[] = []; for (let i = 0; i < children.length; i++) { const result = resolveChildren(children[i]); - Array.isArray(result) ? results.push.apply(results, result) : results.push(result); + if (Array.isArray(result)) { + if (result.length > 32768) { + for (let i = 0; i < result.length; i += 32768) { + results.push.apply(results, result.slice(i, Math.min(i + 32768, result.length))); + } + } else { + results.push.apply(results, result); + } + } else { + results.push(result); + } } return results; } diff --git a/packages/solid/src/server/reactive.ts b/packages/solid/src/server/reactive.ts index 5bdf2828..49b81b58 100644 --- a/packages/solid/src/server/reactive.ts +++ b/packages/solid/src/server/reactive.ts @@ -240,7 +240,17 @@ function resolveChildren(children: any): unknown { const results: any[] = []; for (let i = 0; i < children.length; i++) { const result = resolveChildren(children[i]); - Array.isArray(result) ? results.push.apply(results, result) : results.push(result); + if (Array.isArray(result)) { + if (result.length > 32768) { + for (let i = 0; i < result.length; i += 32768) { + results.push.apply(results, result.slice(i, Math.min(i + 32768, result.length))); + } + } else { + results.push.apply(results, result); + } + } else { + results.push(result); + } } return results; }