Skip to content

Commit 527d099

Browse files
authored
fix: transform {@render ...} expression (#10116)
fixes #10059
1 parent 05789da commit 527d099

File tree

4 files changed

+24
-2
lines changed

4 files changed

+24
-2
lines changed

.changeset/tidy-buses-whisper.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: transform `{@render ...}` expression

packages/svelte/src/compiler/phases/3-transform/server/transform-server.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,9 +1120,10 @@ const template_visitors = {
11201120
state.init.push(anchor);
11211121
state.template.push(t_expression(anchor_id));
11221122

1123+
const expression = /** @type {import('estree').Expression} */ (context.visit(node.expression));
11231124
const snippet_function = state.options.dev
1124-
? b.call('$.validate_snippet', node.expression)
1125-
: node.expression;
1125+
? b.call('$.validate_snippet', expression)
1126+
: expression;
11261127
if (node.argument) {
11271128
state.template.push(
11281129
t_statement(
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { test } from '../../test';
2+
3+
export default test({
4+
html: `<p>hello world</p>`
5+
});
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<script>
2+
import { writable } from 'svelte/store';
3+
4+
let snippet = writable(hello);
5+
</script>
6+
7+
{#snippet hello()}
8+
<p>hello world</p>
9+
{/snippet}
10+
11+
{@render $snippet()}

0 commit comments

Comments
 (0)