From faec3f0eb9a8a4b270e782a6073de06d89bb457a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sun, 14 Sep 2025 12:18:06 -0400 Subject: [PATCH 1/2] chore: simplify slots --- .../3-transform/server/visitors/shared/component.js | 9 +-------- .../_expected/server/index.svelte.js | 4 +--- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js b/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js index 3dd78a7638d8..7caa363f2ffe 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js @@ -227,14 +227,7 @@ export function build_inline_component(node, expression, context) { params.push(pattern); } - const slot_fn = b.arrow( - params, - // TODO: This will always produce correct results because it will always produce async functions - // if the current component is an async component, but it may produce async functions where they're - // not necessary -- eg. when the component is asynchronous but the child content is not. - // May or may not be worth optimizing. - b.block([call_child_payload(b.block(block.body), node.fragment.metadata.is_async)]) - ); + const slot_fn = b.arrow(params, b.block(block.body)); if (slot_name === 'default' && !has_children_prop) { if ( diff --git a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js index 03b3fb93d720..a9fa4efd5039 100644 --- a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js @@ -15,9 +15,7 @@ export default function Function_prop_no_getter($$payload) { onmouseenter: () => count = plusOne(count), children: ($$payload) => { - $$payload.child(($$payload) => { - $$payload.push(`clicks: ${$.escape(count)}`); - }); + $$payload.push(`clicks: ${$.escape(count)}`); }, $$slots: { default: true } From 8632107fe2318480084409cd90aa004a5e8e61e0 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sun, 14 Sep 2025 12:19:13 -0400 Subject: [PATCH 2/2] unused --- .../phases/3-transform/server/visitors/shared/component.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js b/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js index 7caa363f2ffe..9bccf9e05e05 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/component.js @@ -1,7 +1,7 @@ /** @import { BlockStatement, Expression, Pattern, Property, SequenceExpression, Statement } from 'estree' */ /** @import { AST } from '#compiler' */ /** @import { ComponentContext } from '../../types.js' */ -import { empty_comment, build_attribute_value, call_child_payload } from './utils.js'; +import { empty_comment, build_attribute_value } from './utils.js'; import * as b from '#compiler/builders'; import { is_element_node } from '../../../../nodes.js'; import { dev } from '../../../../../state.js';