From 3a9309f8ecec1f60409e6f2680ab62493297b8a1 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 18 Sep 2025 22:04:37 -0400 Subject: [PATCH] all tests passing --- .../3-transform/server/visitors/RegularElement.js | 3 ++- .../server/visitors/shared/component.js | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js index 9440719abc..460cffc98f 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js @@ -13,7 +13,8 @@ import { build_template, build_attribute_value, call_child_renderer, - PromiseOptimiser + PromiseOptimiser, + create_async_block } from './shared/utils.js'; /** 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 ca8a119846..09e683d882 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 @@ -5,7 +5,8 @@ import { empty_comment, build_attribute_value, create_async_block, - PromiseOptimiser + PromiseOptimiser, + build_template } from './utils.js'; import * as b from '#compiler/builders'; import { is_element_node } from '../../../../nodes.js'; @@ -318,16 +319,23 @@ export function build_inline_component(node, expression, context) { } if (optimiser.expressions.length > 0) { - statement = create_async_block(b.block([optimiser.apply(), statement])); + statement = create_async_block( + b.block([optimiser.apply(), statement, ...build_template([empty_comment])]) + ); } + // TODO in the async case this probably needs to go inside the async block? if (dynamic && custom_css_props.length === 0) { context.state.template.push(empty_comment); } context.state.template.push(statement); - if (!context.state.skip_hydration_boundaries && custom_css_props.length === 0) { + if ( + !context.state.skip_hydration_boundaries && + custom_css_props.length === 0 && + optimiser.expressions.length === 0 + ) { context.state.template.push(empty_comment); } }