diff options
Diffstat (limited to 'node_modules/cli-table2/node_modules/lodash/internal/assignWith.js')
-rw-r--r-- | node_modules/cli-table2/node_modules/lodash/internal/assignWith.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/node_modules/cli-table2/node_modules/lodash/internal/assignWith.js b/node_modules/cli-table2/node_modules/lodash/internal/assignWith.js new file mode 100644 index 000000000..d2b261ad2 --- /dev/null +++ b/node_modules/cli-table2/node_modules/lodash/internal/assignWith.js @@ -0,0 +1,32 @@ +var keys = require('../object/keys'); + +/** + * A specialized version of `_.assign` for customizing assigned values without + * support for argument juggling, multiple sources, and `this` binding `customizer` + * functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + */ +function assignWith(object, source, customizer) { + var index = -1, + props = keys(source), + length = props.length; + + while (++index < length) { + var key = props[index], + value = object[key], + result = customizer(value, source[key], key, object, source); + + if ((result === result ? (result !== value) : (value === value)) || + (value === undefined && !(key in object))) { + object[key] = result; + } + } + return object; +} + +module.exports = assignWith; |