diff --git a/packages/compiler-core/__tests__/parse.spec.ts b/packages/compiler-core/__tests__/parse.spec.ts index 0e839d26..51cdb0e3 100644 --- a/packages/compiler-core/__tests__/parse.spec.ts +++ b/packages/compiler-core/__tests__/parse.spec.ts @@ -1244,6 +1244,27 @@ describe('compiler: parse', () => { } }) }) + test('directive with no name', () => { + let errorCode = -1 + const ast = baseParse('
', { + onError: err => { + errorCode = err.code as number + } + }) + const directive = (ast.children[0] as ElementNode).props[0] + + expect(errorCode).toBe(ErrorCodes.X_MISSING_DIRECTIVE_NAME) + expect(directive).toStrictEqual({ + type: NodeTypes.ATTRIBUTE, + name: 'v-', + value: undefined, + loc: { + start: { offset: 5, line: 1, column: 6 }, + end: { offset: 7, line: 1, column: 8 }, + source: 'v-' + } + }) + }) test('v-bind shorthand', () => { const ast = baseParse('') diff --git a/packages/compiler-core/src/errors.ts b/packages/compiler-core/src/errors.ts index 57f2f3b2..1f2afac7 100644 --- a/packages/compiler-core/src/errors.ts +++ b/packages/compiler-core/src/errors.ts @@ -67,6 +67,7 @@ export const enum ErrorCodes { X_INVALID_END_TAG, X_MISSING_END_TAG, X_MISSING_INTERPOLATION_END, + X_MISSING_DIRECTIVE_NAME, X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END, // transform errors @@ -143,6 +144,7 @@ export const errorMessages: Record