From 248a2e1db4a497bc13cda883d1d8b2be4bb3a8e3 Mon Sep 17 00:00:00 2001 From: Yuichiro Yamashita Date: Tue, 18 Aug 2026 21:26:56 +0900 Subject: [PATCH] fix: transform expressions inside labeled statements during server compilation (#18617) close: #18615 --- .changeset/clear-badgers-type.md | 5 +++++ .../3-transform/server/visitors/LabeledStatement.js | 1 + .../samples/labeled-statement-derived/_config.js | 5 +++++ .../samples/labeled-statement-derived/main.svelte | 8 ++++++++ 4 files changed, 19 insertions(+) create mode 100644 .changeset/clear-badgers-type.md create mode 100644 packages/svelte/tests/runtime-runes/samples/labeled-statement-derived/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/labeled-statement-derived/main.svelte diff --git a/.changeset/clear-badgers-type.md b/.changeset/clear-badgers-type.md new file mode 100644 index 0000000000..3668aa7644 --- /dev/null +++ b/.changeset/clear-badgers-type.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: transform expressions inside labeled statements during server compilation diff --git a/packages/svelte/src/compiler/phases/3-transform/server/visitors/LabeledStatement.js b/packages/svelte/src/compiler/phases/3-transform/server/visitors/LabeledStatement.js index 83c828b839..e71e7473cd 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/visitors/LabeledStatement.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/visitors/LabeledStatement.js @@ -8,6 +8,7 @@ import * as b from '#compiler/builders'; */ export function LabeledStatement(node, context) { if (context.state.analysis.runes || context.path.length > 1 || node.label.name !== '$') { + context.next(); return; } diff --git a/packages/svelte/tests/runtime-runes/samples/labeled-statement-derived/_config.js b/packages/svelte/tests/runtime-runes/samples/labeled-statement-derived/_config.js new file mode 100644 index 0000000000..3507fb4707 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/labeled-statement-derived/_config.js @@ -0,0 +1,5 @@ +import { test } from '../../test'; + +export default test({ + html: '

correct

' +}); diff --git a/packages/svelte/tests/runtime-runes/samples/labeled-statement-derived/main.svelte b/packages/svelte/tests/runtime-runes/samples/labeled-statement-derived/main.svelte new file mode 100644 index 0000000000..87cf8483f1 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/labeled-statement-derived/main.svelte @@ -0,0 +1,8 @@ + + +

{result}