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)) )