]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor(reactivity): use hasChanged to avoid tracking NaN key twice (#7378)
author <2553241022@qq.com>
Mon, 10 Jul 2023 10:17:26 +0000 (18:17 +0800)
committerGitHub <noreply@github.com>
Mon, 10 Jul 2023 10:17:26 +0000 (18:17 +0800)
packages/reactivity/src/collectionHandlers.ts

index 381bbad6c28d8034e45b9c489d49a942fab31826..1d07af3be8c7e3d00447ee82abb1ef6f0667da80 100644 (file)
@@ -27,7 +27,7 @@ function get(
   const rawTarget = toRaw(target)
   const rawKey = toRaw(key)
   if (!isReadonly) {
-    if (key !== rawKey) {
+    if (hasChanged(key, rawKey)) {
       track(rawTarget, TrackOpTypes.GET, key)
     }
     track(rawTarget, TrackOpTypes.GET, rawKey)
@@ -50,7 +50,7 @@ function has(this: CollectionTypes, key: unknown, isReadonly = false): boolean {
   const rawTarget = toRaw(target)
   const rawKey = toRaw(key)
   if (!isReadonly) {
-    if (key !== rawKey) {
+    if (hasChanged(key, rawKey)) {
       track(rawTarget, TrackOpTypes.HAS, key)
     }
     track(rawTarget, TrackOpTypes.HAS, rawKey)