| 123456789101112131415161718192021222324252627282930313233 | var forOwn = require('./forOwn');var isPlainObject = require('../lang/isPlainObject');    /**     * Deeply copy missing properties in the target from the defaults.     */    function deepFillIn(target, defaults){        var i = 0,            n = arguments.length,            obj;        while(++i < n) {            obj = arguments[i];            if (obj) {                // jshint loopfunc: true                forOwn(obj, function(newValue, key) {                    var curValue = target[key];                    if (curValue == null) {                        target[key] = newValue;                    } else if (isPlainObject(curValue) &&                               isPlainObject(newValue)) {                        deepFillIn(curValue, newValue);                    }                });            }        }        return target;    }    module.exports = deepFillIn;
 |