From: Pick Date: Tue, 13 Oct 2020 20:06:36 +0000 (+0800) Subject: refactor(runtime-core): simplify deep watch traverse (#2212) X-Git-Tag: v3.0.1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b34f915ab3211b099f71472e450a39b0d149b57;p=thirdparty%2Fvuejs%2Fcore.git refactor(runtime-core): simplify deep watch traverse (#2212) --- diff --git a/packages/runtime-core/src/apiWatch.ts b/packages/runtime-core/src/apiWatch.ts index 30a76b0f1a..62592d3938 100644 --- a/packages/runtime-core/src/apiWatch.ts +++ b/packages/runtime-core/src/apiWatch.ts @@ -333,13 +333,8 @@ function traverse(value: unknown, seen: Set = new Set()) { for (let i = 0; i < value.length; i++) { traverse(value[i], seen) } - } else if (isMap(value)) { - value.forEach((_, key) => { - // to register mutation dep for existing keys - traverse(value.get(key), seen) - }) - } else if (isSet(value)) { - value.forEach(v => { + } else if (isSet(value) || isMap(value)) { + value.forEach((v: any) => { traverse(v, seen) }) } else {