From: Evan You Date: Wed, 16 Oct 2019 18:05:18 +0000 (-0400) Subject: feat(compiler-core/v-model): error when v-model is used on scope variable X-Git-Tag: v3.0.0-alpha.0~397 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=25dd507f71b1df065a81e0cb8623674ae672fa71;p=thirdparty%2Fvuejs%2Fcore.git feat(compiler-core/v-model): error when v-model is used on scope variable --- diff --git a/packages/compiler-core/__tests__/transforms/vModel.spec.ts b/packages/compiler-core/__tests__/transforms/vModel.spec.ts index 42f3d8c524..1fde627ac5 100644 --- a/packages/compiler-core/__tests__/transforms/vModel.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vModel.spec.ts @@ -361,7 +361,7 @@ describe('compiler: transform v-model', () => { test('should mark update handler dynamic if it refers slot scope variables', () => { const root = parseWithVModel( - '', + '', { prefixIdentifiers: true } @@ -407,5 +407,20 @@ describe('compiler: transform v-model', () => { }) ) }) + + test('used on scope variable', () => { + const onError = jest.fn() + parseWithVModel('', { + onError, + prefixIdentifiers: true + }) + + expect(onError).toHaveBeenCalledTimes(1) + expect(onError).toHaveBeenCalledWith( + expect.objectContaining({ + code: ErrorCodes.X_V_MODEL_ON_SCOPE_VARIABLE + }) + ) + }) }) }) diff --git a/packages/compiler-core/src/errors.ts b/packages/compiler-core/src/errors.ts index 24b2a107d4..30b839058e 100644 --- a/packages/compiler-core/src/errors.ts +++ b/packages/compiler-core/src/errors.ts @@ -81,6 +81,7 @@ export const enum ErrorCodes { X_V_SLOT_MISPLACED, X_V_MODEL_NO_EXPRESSION, X_V_MODEL_MALFORMED_EXPRESSION, + X_V_MODEL_ON_SCOPE_VARIABLE, // generic errors X_PREFIX_ID_NOT_SUPPORTED, @@ -171,6 +172,7 @@ export const errorMessages: { [code: number]: string } = { [ErrorCodes.X_V_SLOT_MISPLACED]: `v-slot can only be used on components or