diff --git a/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap index 3a6929d5e..924038450 100644 --- a/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap @@ -3831,6 +3831,7 @@ exports[`compiler: parse > Errors > X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END > < { "children": [], "codegenNode": undefined, + "isSelfClosing": true, "loc": { "end": { "column": 25, @@ -4417,6 +4418,7 @@ exports[`compiler: parse > self closing multiple tag 1`] = ` { "children": [], "codegenNode": undefined, + "isSelfClosing": true, "loc": { "end": { "column": 37, @@ -4497,6 +4499,7 @@ exports[`compiler: parse > self closing multiple tag 1`] = ` { "children": [], "codegenNode": undefined, + "isSelfClosing": true, "loc": { "end": { "column": 37, @@ -4611,6 +4614,7 @@ exports[`compiler: parse > valid html 1`] = ` { "children": [], "codegenNode": undefined, + "isSelfClosing": true, "loc": { "end": { "column": 39, diff --git a/packages/compiler-core/__tests__/parse.spec.ts b/packages/compiler-core/__tests__/parse.spec.ts index 5c7b6252a..fabbfae38 100644 --- a/packages/compiler-core/__tests__/parse.spec.ts +++ b/packages/compiler-core/__tests__/parse.spec.ts @@ -501,6 +501,7 @@ describe('compiler: parse', () => { codegenNode: undefined, props: [], children: [], + isSelfClosing: true, loc: { start: { offset: 0, line: 1, column: 1 }, end: { offset: 6, line: 1, column: 7 }, @@ -545,6 +546,7 @@ describe('compiler: parse', () => { codegenNode: undefined, props: [], children: [], + isSelfClosing: true, loc: { start: { offset: 0, line: 1, column: 1 }, end: { offset: 6, line: 1, column: 7 }, diff --git a/packages/compiler-core/src/ast.ts b/packages/compiler-core/src/ast.ts index 22736aab0..117fef835 100644 --- a/packages/compiler-core/src/ast.ts +++ b/packages/compiler-core/src/ast.ts @@ -131,6 +131,7 @@ export interface BaseElementNode extends Node { tagType: ElementTypes props: Array children: TemplateChildNode[] + isSelfClosing?: boolean innerLoc?: SourceLocation // only for SFC root level elements } diff --git a/packages/compiler-core/src/parser.ts b/packages/compiler-core/src/parser.ts index 7a8080442..9effa0250 100644 --- a/packages/compiler-core/src/parser.ts +++ b/packages/compiler-core/src/parser.ts @@ -172,6 +172,7 @@ const tokenizer = new Tokenizer(stack, { onselfclosingtag(end) { const name = currentOpenTag!.tag + currentOpenTag!.isSelfClosing = true endOpenTag(end) if (stack[0]?.tag === name) { onCloseTag(stack.shift()!, end)