From: Runyasak Chaengnaimuang Date: Wed, 21 May 2025 01:06:05 +0000 (+0700) Subject: fix(compiler-sfc): add error handling for defineModel() without variable assignment... X-Git-Tag: v3.5.15~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=00734afef5f7bddbdaee52aa5359a6ef989f32d3;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler-sfc): add error handling for defineModel() without variable assignment (#13352) close #13280 --- diff --git a/packages/compiler-sfc/__tests__/compileScript.spec.ts b/packages/compiler-sfc/__tests__/compileScript.spec.ts index 73c6d316a4..b2a8036a0e 100644 --- a/packages/compiler-sfc/__tests__/compileScript.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript.spec.ts @@ -1007,7 +1007,7 @@ describe('SFC compile `), @@ -1017,7 +1017,7 @@ describe('SFC compile `), @@ -1027,7 +1027,7 @@ describe('SFC compile + `), + ).toThrow( + 'defineModel() must be assigned to a variable. For example: const model = defineModel()', + ) + }) }) diff --git a/packages/compiler-sfc/src/script/defineModel.ts b/packages/compiler-sfc/src/script/defineModel.ts index 0508280028..746bbabe55 100644 --- a/packages/compiler-sfc/src/script/defineModel.ts +++ b/packages/compiler-sfc/src/script/defineModel.ts @@ -22,6 +22,13 @@ export function processDefineModel( return false } + if (!declId) { + ctx.error( + 'defineModel() must be assigned to a variable. For example: const model = defineModel()', + node, + ) + } + ctx.hasDefineModelCall = true const type =