From 7f456c265453177a609e9197d448c27c92b46c87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=90=B9=E8=89=B2=E5=BE=A1=E5=AE=88?= <85992002+KazariEX@users.noreply.github.com> Date: Wed, 21 May 2025 16:54:27 +0800 Subject: [PATCH 1/3] test: add failed case --- packages/compiler-core/__tests__/parse.spec.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/compiler-core/__tests__/parse.spec.ts b/packages/compiler-core/__tests__/parse.spec.ts index 4e5a9616511..5a956c6c953 100644 --- a/packages/compiler-core/__tests__/parse.spec.ts +++ b/packages/compiler-core/__tests__/parse.spec.ts @@ -2271,6 +2271,12 @@ describe('compiler: parse', () => { expect(span.loc.start.offset).toBe(0) expect(span.loc.end.offset).toBe(27) }) + + test('correct loc when a line in attribute value ends with &', () => { + const [span] = baseParse(``).children + + expect(span.loc.end.line).toBe(2) + }) }) describe('decodeEntities option', () => { From cbd0a0d9dac22051f2726dba6556f195af81b792 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=90=B9=E8=89=B2=E5=BE=A1=E5=AE=88?= <85992002+KazariEX@users.noreply.github.com> Date: Wed, 21 May 2025 17:08:26 +0800 Subject: [PATCH 2/3] fix: do not increase newlines in `InEntity` state --- packages/compiler-core/src/tokenizer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compiler-core/src/tokenizer.ts b/packages/compiler-core/src/tokenizer.ts index 329e8b48181..b8a74790259 100644 --- a/packages/compiler-core/src/tokenizer.ts +++ b/packages/compiler-core/src/tokenizer.ts @@ -929,7 +929,7 @@ export default class Tokenizer { this.buffer = input while (this.index < this.buffer.length) { const c = this.buffer.charCodeAt(this.index) - if (c === CharCodes.NewLine) { + if (c === CharCodes.NewLine && this.state !== State.InEntity) { this.newlines.push(this.index) } switch (this.state) { From a47a8b045a3a12080ddc03fae8c9bfa73e2e4869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=90=B9=E8=89=B2=E5=BE=A1=E5=AE=88?= <85992002+KazariEX@users.noreply.github.com> Date: Wed, 21 May 2025 05:22:46 -0700 Subject: [PATCH 3/3] Update parse.spec.ts --- packages/compiler-core/__tests__/parse.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/compiler-core/__tests__/parse.spec.ts b/packages/compiler-core/__tests__/parse.spec.ts index 5a956c6c953..cdc2b09fd48 100644 --- a/packages/compiler-core/__tests__/parse.spec.ts +++ b/packages/compiler-core/__tests__/parse.spec.ts @@ -2274,7 +2274,6 @@ describe('compiler: parse', () => { test('correct loc when a line in attribute value ends with &', () => { const [span] = baseParse(``).children - expect(span.loc.end.line).toBe(2) }) })