fix(reactivity): account for NaN in value change checks (#361)

This commit is contained in:
Mayness
2019-10-23 10:53:43 -05:00
committed by Evan You
parent 11d0778f9c
commit 18a349ce8c
7 changed files with 47 additions and 8 deletions

View File

@@ -2,7 +2,7 @@ import { reactive, readonly, toRaw } from './reactive'
import { OperationTypes } from './operations'
import { track, trigger } from './effect'
import { LOCKED } from './lock'
import { isObject, hasOwn, isSymbol } from '@vue/shared'
import { isObject, hasOwn, isSymbol, hasChanged } from '@vue/shared'
import { isRef } from './ref'
const builtInSymbols = new Set(
@@ -52,13 +52,13 @@ function set(
const extraInfo = { oldValue, newValue: value }
if (!hadKey) {
trigger(target, OperationTypes.ADD, key, extraInfo)
} else if (value !== oldValue) {
} else if (hasChanged(value, oldValue)) {
trigger(target, OperationTypes.SET, key, extraInfo)
}
} else {
if (!hadKey) {
trigger(target, OperationTypes.ADD, key)
} else if (value !== oldValue) {
} else if (hasChanged(value, oldValue)) {
trigger(target, OperationTypes.SET, key)
}
}

View File

@@ -2,7 +2,7 @@ import { toRaw, reactive, readonly } from './reactive'
import { track, trigger } from './effect'
import { OperationTypes } from './operations'
import { LOCKED } from './lock'
import { isObject, capitalize, hasOwn } from '@vue/shared'
import { isObject, capitalize, hasOwn, hasChanged } from '@vue/shared'
export type CollectionTypes = IterableCollections | WeakCollections
@@ -73,13 +73,13 @@ function set(this: MapTypes, key: unknown, value: unknown) {
const extraInfo = { oldValue, newValue: value }
if (!hadKey) {
trigger(target, OperationTypes.ADD, key, extraInfo)
} else if (value !== oldValue) {
} else if (hasChanged(value, oldValue)) {
trigger(target, OperationTypes.SET, key, extraInfo)
}
} else {
if (!hadKey) {
trigger(target, OperationTypes.ADD, key)
} else if (value !== oldValue) {
} else if (hasChanged(value, oldValue)) {
trigger(target, OperationTypes.SET, key)
}
}