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}