Skip to content

Commit ef4b317

Browse files
committed
fix: handle expression labeled statements
1 parent bb4b7f4 commit ef4b317

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

packages/svelte/src/compiler/migrate/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,8 +493,10 @@ const instance_script = {
493493
);
494494

495495
const labeled_has_single_assignment =
496-
labeled_statement?.body.type === 'BlockStatement' &&
497-
labeled_statement.body.body.length === 1;
496+
(labeled_statement?.body.type === 'BlockStatement' &&
497+
labeled_statement.body.body.length === 1) ||
498+
(labeled_statement?.body.type === 'ExpressionStatement' &&
499+
labeled_statement.body.expression.type === 'AssignmentExpression');
498500

499501
if (
500502
possible_derived &&

packages/svelte/tests/migrate/samples/single-assignment-labeled/input.svelte

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@
4040
evenmore = count * 64;
4141
evenmore_doubled = evenmore * 2;
4242
}
43+
44+
let almost_infinity;
45+
$: almost_infinity = count * 128;
4346
</script>
4447

4548
<button on:click={()=>{

packages/svelte/tests/migrate/samples/single-assignment-labeled/output.svelte

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@
4040
evenmore = count * 64;
4141
evenmore_doubled = evenmore * 2;
4242
});
43+
44+
let almost_infinity = $derived(count * 128);
45+
4346
</script>
4447

4548
<button onclick={()=>{

0 commit comments

Comments
 (0)