You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					29 lines
				
				899 B
			
		
		
			
		
	
	
					29 lines
				
				899 B
			| 
											3 years ago
										 | var baseAssignValue = require('./_baseAssignValue'), | ||
|  |     eq = require('./eq'); | ||
|  | 
 | ||
|  | /** Used for built-in method references. */ | ||
|  | var objectProto = Object.prototype; | ||
|  | 
 | ||
|  | /** Used to check objects for own properties. */ | ||
|  | var hasOwnProperty = objectProto.hasOwnProperty; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Assigns `value` to `key` of `object` if the existing value is not equivalent | ||
|  |  * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 | ||
|  |  * for equality comparisons. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {Object} object The object to modify. | ||
|  |  * @param {string} key The key of the property to assign. | ||
|  |  * @param {*} value The value to assign. | ||
|  |  */ | ||
|  | function assignValue(object, key, value) { | ||
|  |   var objValue = object[key]; | ||
|  |   if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || | ||
|  |       (value === undefined && !(key in object))) { | ||
|  |     baseAssignValue(object, key, value); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = assignValue; |