From: daiwei Date: Fri, 13 Jun 2025 08:46:48 +0000 (+0800) Subject: fix(transform): validate property name for v-bind shorthand X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fedison%2Frefactor%2FvBindShorthand;p=thirdparty%2Fvuejs%2Fcore.git fix(transform): validate property name for v-bind shorthand --- diff --git a/packages/compiler-core/src/transforms/transformVBindShorthand.ts b/packages/compiler-core/src/transforms/transformVBindShorthand.ts index a9d03397e7..a2e5e9f933 100644 --- a/packages/compiler-core/src/transforms/transformVBindShorthand.ts +++ b/packages/compiler-core/src/transforms/transformVBindShorthand.ts @@ -6,6 +6,7 @@ import { } from '../ast' import type { NodeTransform } from '../transform' import { ErrorCodes, createCompilerError } from '../errors' +import { validFirstIdentCharRE } from '../utils' export const transformVBindShorthand: NodeTransform = (node, context) => { if (node.type === NodeTypes.ELEMENT) { @@ -28,7 +29,9 @@ export const transformVBindShorthand: NodeTransform = (node, context) => { prop.exp = createSimpleExpression('', true, arg.loc) } else { const propName = camelize((arg as SimpleExpressionNode).content) - prop.exp = createSimpleExpression(propName, false, arg.loc) + if (validFirstIdentCharRE.test(propName[0])) { + prop.exp = createSimpleExpression(propName, false, arg.loc) + } } } } diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index b49d70bb2f..d2278992f8 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -74,7 +74,7 @@ enum MemberExpLexState { inString, } -const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/ +export const validFirstIdentCharRE: RegExp = /[A-Za-z_$\xA0-\uFFFF]/ const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/ const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g