Skip to content

Commit d1f0291

Browse files
committed
fix: ensure $$slots exists in runes mode
fixes #9683
1 parent e3dc185 commit d1f0291

File tree

5 files changed

+26
-0
lines changed

5 files changed

+26
-0
lines changed

.changeset/flat-melons-protect.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: ensure `$$slots` exists in runes mode

packages/svelte/src/compiler/phases/2-analyze/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -892,6 +892,11 @@ const common_visitors = {
892892
const parent = /** @type {import('estree').Node} */ (context.path.at(-1));
893893
if (!is_reference(node, parent)) return;
894894

895+
if (node.name === '$$slots') {
896+
context.state.analysis.uses_slots = true;
897+
return;
898+
}
899+
895900
const binding = context.state.scope.get(node.name);
896901

897902
// if no binding, means some global variable
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { test } from '../../test';
2+
3+
// Test that $$slots exists in runes mode
4+
export default test({
5+
html: `<p>bar</p>`
6+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<script>
2+
import Slot from './slot.svelte';
3+
</script>
4+
5+
<Slot>
6+
<p>bar</p>
7+
</Slot>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{#if $$slots}
2+
<slot></slot>
3+
{/if}

0 commit comments

Comments
 (0)