From da0918f49ad0ee8641d9f2e0c98286b788a136f0 Mon Sep 17 00:00:00 2001 From: tophf Date: Sun, 23 Jan 2022 23:46:10 +0300 Subject: [PATCH] don't merge arrays in deepMerge by default --- js/toolbox.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/toolbox.js b/js/toolbox.js index 2b33dd27..e7b9cb08 100644 --- a/js/toolbox.js +++ b/js/toolbox.js @@ -333,13 +333,13 @@ Object.assign(debounce, { }, }); -function deepMerge(src, dst) { +function deepMerge(src, dst, mergeArrays) { if (!src || typeof src !== 'object') { return src; } if (Array.isArray(src)) { // using `Array` that belongs to this `window`; not using Array.from as it's slower - if (!dst) dst = Array.prototype.map.call(src, deepCopy); + if (!dst || !mergeArrays) dst = Array.prototype.map.call(src, deepCopy); else for (const v of src) dst.push(deepMerge(v)); } else { // using an explicit {} that belongs to this `window`