* The base implementation of `_.merge` without support for multiple sources. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @param {number} srcIndex The index of `source`. * @param {Function} [customizer] The
(object, source, srcIndex, customizer, stack)
| 3641 | * counterparts. |
| 3642 | */ |
| 3643 | function baseMerge(object, source, srcIndex, customizer, stack) { |
| 3644 | if (object === source) { |
| 3645 | return; |
| 3646 | } |
| 3647 | baseFor(source, function(srcValue, key) { |
| 3648 | stack || (stack = new Stack); |
| 3649 | if (isObject(srcValue)) { |
| 3650 | baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); |
| 3651 | } |
| 3652 | else { |
| 3653 | var newValue = customizer |
| 3654 | ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) |
| 3655 | : undefined; |
| 3656 | |
| 3657 | if (newValue === undefined) { |
| 3658 | newValue = srcValue; |
| 3659 | } |
| 3660 | assignMergeValue(object, key, newValue); |
| 3661 | } |
| 3662 | }, keysIn); |
| 3663 | } |
| 3664 | |
| 3665 | /** |
| 3666 | * A specialized version of `baseMerge` for arrays and objects which performs |
no test coverage detected