From 911b959c8533365df274ce52346ff6358be5df62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=87=8E=E6=9C=AA?= <826036140@qq.com> Date: Sat, 23 Mar 2024 23:40:44 +0800 Subject: [PATCH 1/2] fix(compiler-core): simple identifier should include Chinese --- packages/compiler-core/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index 99a2c5b61a8..48ea4e04e5c 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -62,7 +62,7 @@ export function isCoreComponent(tag: string): symbol | void { } } -const nonIdentifierRE = /^\d|[^\$\w]/ +const nonIdentifierRE = /^\d|[^\$\w\u4e00-\u9fa5]/ export const isSimpleIdentifier = (name: string): boolean => !nonIdentifierRE.test(name) From 4902f9b88ecd042866be8ca83c5266cfe1c97500 Mon Sep 17 00:00:00 2001 From: wangjie36 <826036140@qq.com> Date: Mon, 25 Mar 2024 16:50:10 +0800 Subject: [PATCH 2/2] test(compiler-core): add unit test in `v-on` --- .../__tests__/transforms/vOn.spec.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/compiler-core/__tests__/transforms/vOn.spec.ts b/packages/compiler-core/__tests__/transforms/vOn.spec.ts index 568fa0b5a8c..d4433c6a55a 100644 --- a/packages/compiler-core/__tests__/transforms/vOn.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vOn.spec.ts @@ -13,11 +13,12 @@ import { import { transformOn } from '../../src/transforms/vOn' import { transformElement } from '../../src/transforms/transformElement' import { transformExpression } from '../../src/transforms/transformExpression' +import { transformFor } from 'packages/compiler-core/src/transforms/vFor' function parseWithVOn(template: string, options: CompilerOptions = {}) { const ast = parse(template, options) transform(ast, { - nodeTransforms: [transformExpression, transformElement], + nodeTransforms: [transformExpression, transformElement, transformFor], directiveTransforms: { on: transformOn, }, @@ -683,5 +684,17 @@ describe('compiler: transform v-on', () => { }, }) }) + + test('should not be cached with Chinese identifiers', () => { + const { root } = parseWithVOn( + ``, + { + prefixIdentifiers: true, + cacheHandlers: true, + }, + ) + + expect(root.cached).toBe(0) + }) }) })