From 05adf3b14d8274eb112e111daf3d7f039b1942b4 Mon Sep 17 00:00:00 2001 From: HcySunYang Date: Tue, 5 Jan 2021 11:31:08 +0800 Subject: [PATCH] perf(reactivity): should not track `__isVue` --- packages/reactivity/src/baseHandlers.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/reactivity/src/baseHandlers.ts b/packages/reactivity/src/baseHandlers.ts index 5f57a3c9f90..694893265be 100644 --- a/packages/reactivity/src/baseHandlers.ts +++ b/packages/reactivity/src/baseHandlers.ts @@ -22,10 +22,13 @@ import { hasChanged, isArray, isIntegerKey, - extend + extend, + makeMap } from '@vue/shared' import { isRef } from './ref' +const isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`) + const builtInSymbols = new Set( Object.getOwnPropertyNames(Symbol) .map(key => (Symbol as any)[key]) @@ -93,7 +96,7 @@ function createGetter(isReadonly = false, shallow = false) { if ( isSymbol(key) ? builtInSymbols.has(key as symbol) - : key === `__proto__` || key === `__v_isRef` + : isNonTrackableKeys(key) ) { return res }