From d20977d9676b9c600b17542e8bc0a29d0623726d Mon Sep 17 00:00:00 2001 From: Michael Ficarra Date: Thu, 25 Jan 2024 08:52:28 -0700 Subject: [PATCH 1/2] fixes #309: call stack exceeded in Control.Bind.Bind instance for Array --- src/Control/Bind.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Control/Bind.js b/src/Control/Bind.js index fa0dbaeb..7435fb95 100644 --- a/src/Control/Bind.js +++ b/src/Control/Bind.js @@ -1,8 +1,16 @@ +var APPLY_CHUNK_SIZE = 10e3; +var push = Function.prototype.apply.bind(Array.prototype.push); + export const arrayBind = function (arr) { return function (f) { var result = []; for (var i = 0, l = arr.length; i < l; i++) { - Array.prototype.push.apply(result, f(arr[i])); + var subArr = f(arr[i]); + while (subArr.length > APPLY_CHUNK_SIZE) { + push(result, subArr.slice(0, APPLY_CHUNK_SIZE); + subArr = subArr.slice(APPLY_CHUNK_SIZE); + } + push(result, subArr); } return result; }; From e244d58982d25c163535f84deedc90545ec677e8 Mon Sep 17 00:00:00 2001 From: Michael Ficarra Date: Thu, 25 Jan 2024 08:58:05 -0700 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7e5af83..5620a4a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Breaking changes: New features: Bugfixes: +- call stack exceeded in Control.Bind.Bind instance for Array (#311 by @michaelficarra) Other improvements: