]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(watch): avoid traversing non-plain objects
authorEvan You <yyx990803@gmail.com>
Tue, 20 Apr 2021 21:13:58 +0000 (17:13 -0400)
committerEvan You <yyx990803@gmail.com>
Tue, 20 Apr 2021 21:13:58 +0000 (17:13 -0400)
packages/runtime-core/src/apiWatch.ts

index 5dc7929ee3b2d28335593073242afa6a43c3aeb9..b2cf45001fd6bc1d17d9401ea919f5058b419357 100644 (file)
@@ -18,7 +18,8 @@ import {
   NOOP,
   remove,
   isMap,
-  isSet
+  isSet,
+  isPlainObject
 } from '@vue/shared'
 import {
   currentInstance,
@@ -391,9 +392,9 @@ function traverse(value: unknown, seen: Set<unknown> = new Set()) {
     value.forEach((v: any) => {
       traverse(v, seen)
     })
-  } else {
+  } else if (isPlainObject(value)) {
     for (const key in value) {
-      traverse(value[key], seen)
+      traverse((value as any)[key], seen)
     }
   }
   return value