| /** Used for native method references. */ |
| var objectProto = Object.prototype; |
| |
| /** Used to check objects for own properties. */ |
| var hasOwnProperty = objectProto.hasOwnProperty; |
| |
| /** |
| * Used by `_.template` to customize its `_.assign` use. |
| * |
| * **Note:** This function is like `assignDefaults` except that it ignores |
| * inherited property values when checking if a property is `undefined`. |
| * |
| * @private |
| * @param {*} objectValue The destination object property value. |
| * @param {*} sourceValue The source object property value. |
| * @param {string} key The key associated with the object and source values. |
| * @param {Object} object The destination object. |
| * @returns {*} Returns the value to assign to the destination object. |
| */ |
| function assignOwnDefaults(objectValue, sourceValue, key, object) { |
| return (objectValue === undefined || !hasOwnProperty.call(object, key)) |
| ? sourceValue |
| : objectValue; |
| } |
| |
| module.exports = assignOwnDefaults; |