Skip to content

Commit

Permalink
chore: improve performance (#2868)
Browse files Browse the repository at this point in the history
  • Loading branch information
janryWang authored Feb 25, 2022
1 parent edcc954 commit 0fd17ea
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
23 changes: 22 additions & 1 deletion packages/path/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,16 @@ const isMatcher = Symbol('PATH_MATCHER')

const isValid = (val: any) => val !== undefined && val !== null

const isSimplePath = (val: string) =>
val.indexOf('*') === -1 &&
val.indexOf('~') === -1 &&
val.indexOf('[') === -1 &&
val.indexOf(']') === -1 &&
val.indexOf(',') === -1 &&
val.indexOf(':') === -1 &&
val.indexOf(' ') === -1 &&
val[0] !== '.'

const isAssignable = (val: any) =>
typeof val === 'object' || typeof val === 'function'

Expand Down Expand Up @@ -140,7 +150,7 @@ const parse = (pattern: Pattern, base?: Pattern) => {
tree: pattern.tree,
}
} else if (isStr(pattern)) {
if (!pattern)
if (!pattern) {
return {
entire: '',
segments: [],
Expand All @@ -149,6 +159,17 @@ const parse = (pattern: Pattern, base?: Pattern) => {
haveExcludePattern: false,
isMatchPattern: false,
}
}
if (isSimplePath(pattern)) {
return {
entire: pattern,
segments: pattern.split('.'),
isRegExp: false,
isWildMatchPattern: false,
haveExcludePattern: false,
isMatchPattern: false,
}
}
const parser = new Parser(pattern, Path.parse(base))
const tree = parser.parse()
if (!parser.isMatchPattern) {
Expand Down
1 change: 1 addition & 0 deletions packages/reactive/src/handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ export const collectionHandlers = {

export const baseHandlers: ProxyHandler<any> = {
get(target, key, receiver) {
if (!key) return
const result = target[key] // use Reflect.get is too slow
if (typeof key === 'symbol' && wellKnownSymbols.has(key)) {
return result
Expand Down

0 comments on commit 0fd17ea

Please sign in to comment.