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)
})
})