refactor(reactivity): use function isSymbol instead of typeof (#155)
This commit is contained in:
parent
b255f42ab3
commit
b9a4d8d088
@ -2,19 +2,19 @@ import { reactive, readonly, toRaw } from './reactive'
|
||||
import { OperationTypes } from './operations'
|
||||
import { track, trigger } from './effect'
|
||||
import { LOCKED } from './lock'
|
||||
import { isObject, hasOwn } from '@vue/shared'
|
||||
import { isObject, hasOwn, isSymbol } from '@vue/shared'
|
||||
import { isRef } from './ref'
|
||||
|
||||
const builtInSymbols = new Set(
|
||||
Object.getOwnPropertyNames(Symbol)
|
||||
.map(key => (Symbol as any)[key])
|
||||
.filter(value => typeof value === 'symbol')
|
||||
.filter(isSymbol)
|
||||
)
|
||||
|
||||
function createGetter(isReadonly: boolean) {
|
||||
return function get(target: any, key: string | symbol, receiver: any) {
|
||||
const res = Reflect.get(target, key, receiver)
|
||||
if (typeof key === 'symbol' && builtInSymbols.has(key)) {
|
||||
if (isSymbol(key) && builtInSymbols.has(key)) {
|
||||
return res
|
||||
}
|
||||
if (isRef(res)) {
|
||||
|
Loading…
Reference in New Issue
Block a user