From 92e0fc23f64e5cccaa8e759a7ef22ad39606b5bc Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 25 Oct 2025 18:46:59 -0400 Subject: [PATCH] WIP --- .../compiler/phases/3-transform/client/visitors/RenderTag.js | 4 +++- .../phases/3-transform/client/visitors/SlotElement.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RenderTag.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RenderTag.js index b3619e8669..d6834c5ab0 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RenderTag.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RenderTag.js @@ -71,13 +71,15 @@ export function RenderTag(node, context) { } const async_values = memoizer.async_values(); + const blockers = memoizer.blockers(); - if (async_values) { + if (async_values || blockers.elements.length > 0) { context.state.init.push( b.stmt( b.call( '$.async', context.state.node, + blockers, memoizer.async_values(), b.arrow([context.state.node, ...memoizer.async_ids()], b.block(statements)) ) diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js index f6db21212b..5c3e59ad6c 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js @@ -74,13 +74,15 @@ export function SlotElement(node, context) { ); const async_values = memoizer.async_values(); + const blockers = memoizer.blockers(); - if (async_values) { + if (async_values || blockers.elements.length > 0) { context.state.init.push( b.stmt( b.call( '$.async', context.state.node, + blockers, async_values, b.arrow([context.state.node, ...memoizer.async_ids()], b.block(statements)) )