From 62b8f4a39ca56b48a8c8fdf7e200cb80735e16ae Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 20 Apr 2021 17:13:58 -0400 Subject: [PATCH] fix(watch): avoid traversing non-plain objects --- packages/runtime-core/src/apiWatch.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/runtime-core/src/apiWatch.ts b/packages/runtime-core/src/apiWatch.ts index 5dc7929ee3b..b2cf45001fd 100644 --- a/packages/runtime-core/src/apiWatch.ts +++ b/packages/runtime-core/src/apiWatch.ts @@ -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 = 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