From 11da12b7009efd9a11cfaeb2ec4760a51aeb238e Mon Sep 17 00:00:00 2001 From: linzhe141 <1572213544@qq.com> Date: Tue, 30 Sep 2025 11:41:26 +0800 Subject: [PATCH 1/6] fix(compiler-core): handle unexpected characters in attribute names --- packages/compiler-core/src/tokenizer.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/compiler-core/src/tokenizer.ts b/packages/compiler-core/src/tokenizer.ts index b8a74790259..2742dd3ecc3 100644 --- a/packages/compiler-core/src/tokenizer.ts +++ b/packages/compiler-core/src/tokenizer.ts @@ -661,7 +661,17 @@ export default class Tokenizer { } } private handleAttrStart(c: number) { - if (c === CharCodes.LowerV && this.peek() === CharCodes.Dash) { + if ( + (__DEV__ || !__BROWSER__) && + (c === CharCodes.DoubleQuote || + c === CharCodes.SingleQuote || + c === CharCodes.Lt) + ) { + this.cbs.onerr( + ErrorCodes.UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME, + this.index, + ) + } else if (c === CharCodes.LowerV && this.peek() === CharCodes.Dash) { this.state = State.InDirName this.sectionStart = this.index } else if ( From 816c57d4a5d4d51eec6b64867ca2536cb6e95520 Mon Sep 17 00:00:00 2001 From: linzhe141 <1572213544@qq.com> Date: Tue, 30 Sep 2025 11:50:17 +0800 Subject: [PATCH 2/6] chore: update test --- .../__snapshots__/parse.spec.ts.snap | 75 +++++++++++++++++++ .../compiler-core/__tests__/parse.spec.ts | 9 +++ 2 files changed, 84 insertions(+) diff --git a/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap index 942eed4c4dc..7870fe62b81 100644 --- a/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap @@ -2444,6 +2444,81 @@ exports[`compiler: parse > Errors > MISSING_END_TAG_NAME >