From 9dcbf17f3af18d8e10e01a71003c6de8d87b812c Mon Sep 17 00:00:00 2001 From: edison Date: Wed, 23 Oct 2019 22:34:58 +0800 Subject: [PATCH] perf(runtime-core): use `makeMap` instead of `RE` (#350) --- packages/runtime-core/src/componentProps.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/runtime-core/src/componentProps.ts b/packages/runtime-core/src/componentProps.ts index fc8120efa..a8146b499 100644 --- a/packages/runtime-core/src/componentProps.ts +++ b/packages/runtime-core/src/componentProps.ts @@ -11,7 +11,8 @@ import { isReservedProp, hasOwn, toTypeString, - PatchFlags + PatchFlags, + makeMap } from '@vue/shared' import { warn } from './warning' import { Data, ComponentInternalInstance } from './component' @@ -315,12 +316,14 @@ function validateProp( } } -const simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/ +const isSimpleType = /*#__PURE__*/ makeMap( + 'String,Number,Boolean,Function,Symbol' +) function assertType(value: unknown, type: PropConstructor): AssertionResult { let valid const expectedType = getType(type) - if (simpleCheckRE.test(expectedType)) { + if (isSimpleType(expectedType)) { const t = typeof value valid = t === expectedType.toLowerCase() // for primitive wrapper objects