From: zhiyuanzmj <260480378@qq.com> Date: Fri, 18 Jul 2025 07:03:36 +0000 (+0800) Subject: fix(compiler-vapor): handle special characters in cached variable names (#13626) X-Git-Tag: v3.6.0-alpha.2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a5e106d96eb17d73c8673e826393c910d5594a2f;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler-vapor): handle special characters in cached variable names (#13626) --- diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOn.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOn.spec.ts.snap index dd00e55267..e7a2b30e69 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOn.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vOn.spec.ts.snap @@ -12,6 +12,21 @@ export function render(_ctx) { }" `; +exports[`v-on > component event with special characters 1`] = ` +"import { resolveComponent as _resolveComponent, createComponentWithFallback as _createComponentWithFallback } from 'vue'; + +export function render(_ctx) { + const _component_Foo = _resolveComponent("Foo") + const _on_update_model = () => {} + const _on_update_model1 = () => {} + const n0 = _createComponentWithFallback(_component_Foo, { + "onUpdate:model": () => _on_update_model, + "onUpdate-model": () => _on_update_model1 + }, null, true) + return n0 +}" +`; + exports[`v-on > dynamic arg 1`] = ` "import { on as _on, renderEffect as _renderEffect, template as _template } from 'vue'; const t0 = _template("
", true) diff --git a/packages/compiler-vapor/__tests__/transforms/vOn.spec.ts b/packages/compiler-vapor/__tests__/transforms/vOn.spec.ts index aca88c791b..963f46ad2a 100644 --- a/packages/compiler-vapor/__tests__/transforms/vOn.spec.ts +++ b/packages/compiler-vapor/__tests__/transforms/vOn.spec.ts @@ -695,4 +695,16 @@ describe('v-on', () => { expect(code).matchSnapshot() expect(code).include('n0.$evtclick = e => _ctx.handleClick(e)') }) + + test('component event with special characters', () => { + const { code } = compileWithVOn( + `