From ebedcccdc04d8cda40f7a3b69354acfdda265c74 Mon Sep 17 00:00:00 2001 From: HcySunYang Date: Fri, 26 Mar 2021 05:24:18 +0800 Subject: [PATCH] fix(compiler-core): allow unicode to appear in identifiers (#3443) fix #3440 --- packages/compiler-core/__tests__/transforms/vModel.spec.ts | 7 +++++++ packages/compiler-core/src/utils.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/compiler-core/__tests__/transforms/vModel.spec.ts b/packages/compiler-core/__tests__/transforms/vModel.spec.ts index 119624cd..3c429b31 100644 --- a/packages/compiler-core/__tests__/transforms/vModel.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vModel.spec.ts @@ -507,6 +507,13 @@ describe('compiler: transform v-model', () => { ) }) + test('allow unicode', () => { + const onError = jest.fn() + parseWithVModel('', { onError }) + + expect(onError).toHaveBeenCalledTimes(0) + }) + test('used on scope variable', () => { const onError = jest.fn() parseWithVModel('', { diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index 107bb0f6..b65c812a 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -56,7 +56,7 @@ const nonIdentifierRE = /^\d|[^\$\w]/ export const isSimpleIdentifier = (name: string): boolean => !nonIdentifierRE.test(name) -const memberExpRE = /^[A-Za-z_$][\w$]*(?:\s*\.\s*[A-Za-z_$][\w$]*|\[[^\]]+\])*$/ +const memberExpRE = /^[A-Za-z_$\xA0-\uFFFF][\w$\xA0-\uFFFF]*(?:\s*\.\s*[A-Za-z_$\xA0-\uFFFF][\w$\xA0-\uFFFF]*|\[[^\]]+\])*$/ export const isMemberExpression = (path: string): boolean => { if (!path) return false return memberExpRE.test(path.trim())