From 36ccca7a0bef12c412834ddb957ffc43106c2fe7 Mon Sep 17 00:00:00 2001 From: likui <2218301630@qq.com> Date: Wed, 17 Jun 2020 16:56:33 +0800 Subject: [PATCH 1/2] perf(reactivity): should not track `__v_isRef` and some methods in prototype.eg.`toString` --- packages/reactivity/src/baseHandlers.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/reactivity/src/baseHandlers.ts b/packages/reactivity/src/baseHandlers.ts index 3f875abaa53..d8178956dd4 100644 --- a/packages/reactivity/src/baseHandlers.ts +++ b/packages/reactivity/src/baseHandlers.ts @@ -63,7 +63,13 @@ function createGetter(isReadonly = false, shallow = false) { const res = Reflect.get(target, key, receiver) - if ((isSymbol(key) && builtInSymbols.has(key)) || key === '__proto__') { + if ( + (isSymbol(key) && builtInSymbols.has(key)) || + key === '__proto__' || + key === '__v_isRef' || + ((hasOwn(Object.prototype, key) || hasOwn(Array.prototype, key)) && + !hasOwn(target, key)) + ) { return res } From 40bcd47c864f4bb61ee8d096ef150a11c6f861b5 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 25 Jun 2020 11:39:18 -0400 Subject: [PATCH 2/2] Update baseHandlers.ts --- packages/reactivity/src/baseHandlers.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/reactivity/src/baseHandlers.ts b/packages/reactivity/src/baseHandlers.ts index d8178956dd4..82e6b98dced 100644 --- a/packages/reactivity/src/baseHandlers.ts +++ b/packages/reactivity/src/baseHandlers.ts @@ -64,11 +64,9 @@ function createGetter(isReadonly = false, shallow = false) { const res = Reflect.get(target, key, receiver) if ( - (isSymbol(key) && builtInSymbols.has(key)) || - key === '__proto__' || - key === '__v_isRef' || - ((hasOwn(Object.prototype, key) || hasOwn(Array.prototype, key)) && - !hasOwn(target, key)) + isSymbol(key) + ? builtInSymbols.has(key) + : key === `__proto__` || key === `__v_isRef` ) { return res }