1 var keys = require('../object/keys');
4 * A specialized version of `_.assign` for customizing assigned values without
5 * support for argument juggling, multiple sources, and `this` binding `customizer`
9 * @param {Object} object The destination object.
10 * @param {Object} source The source object.
11 * @param {Function} customizer The function to customize assigned values.
12 * @returns {Object} Returns `object`.
14 function assignWith(object, source, customizer) {
17 length = props.length;
19 while (++index < length) {
20 var key = props[index],
22 result = customizer(value, source[key], key, object, source);
24 if ((result === result ? (result !== value) : (value === value)) ||
25 (value === undefined && !(key in object))) {
32 module.exports = assignWith;