diff --git a/packages/runtime-core/src/componentProps.ts b/packages/runtime-core/src/componentProps.ts index fc8120ef..a8146b49 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