perf(reactivity): should not track __isVue (#2940)

This commit is contained in:
HcySunYang 2021-02-04 02:28:07 +08:00 committed by GitHub
parent 9dc816d634
commit dd02cf37d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,10 +22,13 @@ import {
hasChanged, hasChanged,
isArray, isArray,
isIntegerKey, isIntegerKey,
extend extend,
makeMap
} from '@vue/shared' } from '@vue/shared'
import { isRef } from './ref' import { isRef } from './ref'
const isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`)
const builtInSymbols = new Set( const builtInSymbols = new Set(
Object.getOwnPropertyNames(Symbol) Object.getOwnPropertyNames(Symbol)
.map(key => (Symbol as any)[key]) .map(key => (Symbol as any)[key])
@ -93,7 +96,7 @@ function createGetter(isReadonly = false, shallow = false) {
if ( if (
isSymbol(key) isSymbol(key)
? builtInSymbols.has(key as symbol) ? builtInSymbols.has(key as symbol)
: key === `__proto__` || key === `__v_isRef` : isNonTrackableKeys(key)
) { ) {
return res return res
} }