Ensure assignValue assigns values if they aren't the same own value. [closes #2022]

This commit is contained in:
John-David Dalton
2016-02-18 22:17:49 -08:00
parent 49389d0a2f
commit bfbfa719ff
2 changed files with 11 additions and 2 deletions

View File

@@ -2160,8 +2160,7 @@
*/
function assignValue(object, key, value) {
var objValue = object[key];
if ((!eq(objValue, value) ||
(eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) ||
if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
(value === undefined && !(key in object))) {
object[key] = value;
}