fix: exit resolved async blocks on correct node when hydrating

pull/17640/head
Rich Harris 3 days ago
parent a75866f34d
commit c9019c7a1b

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: exit resolved async blocks on correct node when hydrating

@ -27,6 +27,11 @@ export function async(node, blockers = [], expressions = [], fn) {
if (expressions.length === 0 && blockers.every((b) => b.settled)) {
fn(node);
if (was_hydrating) {
hydrate_next();
}
return;
}

@ -0,0 +1,11 @@
import { tick } from 'svelte';
import { test } from '../../test';
export default test({
mode: ['hydrate'],
async test({ assert, target }) {
await tick();
assert.htmlEqual(target.innerHTML, `<div><p>hello</p></div>`);
}
});

@ -0,0 +1,13 @@
<script lang="ts">
await 1;
let b = true;
let a = true;
</script>
{#if a}
<div>
{#if b}
<p>hello</p>
{/if}
</div>
{/if}
Loading…
Cancel
Save