From 49d04d5c754223ea55636b98b6c3cd87f9697d44 Mon Sep 17 00:00:00 2001 From: Josh Duff Date: Thu, 13 Oct 2016 09:23:29 -0500 Subject: [PATCH] Fix array clone case The issue was noted in https://github.com/KyleAMathews/deepmerge/pull/44#issuecomment-253238515 --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index fec8cbd..cef611a 100644 --- a/index.js +++ b/index.js @@ -22,7 +22,7 @@ function emptyTarget(val) { function cloneIfNecessary(value, optionsArgument) { var clone = optionsArgument && optionsArgument.clone === true - return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value) : value + return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value } function defaultArrayMerge(target, source, optionsArgument) { @@ -62,7 +62,7 @@ function deepmerge(target, source, optionsArgument) { var arrayMerge = options.arrayMerge || defaultArrayMerge if (array) { - return Array.isArray(target) ? arrayMerge(target, source, optionsArgument) : source.slice() + return Array.isArray(target) ? arrayMerge(target, source, optionsArgument) : cloneIfNecessary(source, optionsArgument) } else { return mergeObject(target, source, optionsArgument) }