diff --git a/packages/svelte/src/compiler/migrate/index.js b/packages/svelte/src/compiler/migrate/index.js index 909b95ff5c..c14b577319 100644 --- a/packages/svelte/src/compiler/migrate/index.js +++ b/packages/svelte/src/compiler/migrate/index.js @@ -927,6 +927,9 @@ function handle_identifier(node, state, path) { } else if (node.name === '$$slots' && state.analysis.uses_slots) { if (parent?.type === 'MemberExpression') { state.str.update(/** @type {number} */ (node.start), parent.property.start, ''); + if (parent.property.name === 'default') { + state.str.update(parent.property.start, parent.property.end, 'children'); + } } // else passed as identifier, we don't know what to do here, so let it error } diff --git a/packages/svelte/tests/migrate/samples/slots/input.svelte b/packages/svelte/tests/migrate/samples/slots/input.svelte index cc1fbd1f98..d7bbede906 100644 --- a/packages/svelte/tests/migrate/samples/slots/input.svelte +++ b/packages/svelte/tests/migrate/samples/slots/input.svelte @@ -9,4 +9,6 @@ {/if} +{#if $$slots.default}foo{/if} + diff --git a/packages/svelte/tests/migrate/samples/slots/output.svelte b/packages/svelte/tests/migrate/samples/slots/output.svelte index 9f3059d39d..b04dbdea18 100644 --- a/packages/svelte/tests/migrate/samples/slots/output.svelte +++ b/packages/svelte/tests/migrate/samples/slots/output.svelte @@ -19,4 +19,6 @@ {@render bar?.()} {/if} +{#if children}foo{/if} + {@render dashed_name?.()} \ No newline at end of file