diff --git a/src/compiler/compile/render_dom/wrappers/IfBlock.ts b/src/compiler/compile/render_dom/wrappers/IfBlock.ts index 207e1e349e..c1ff2024f3 100644 --- a/src/compiler/compile/render_dom/wrappers/IfBlock.ts +++ b/src/compiler/compile/render_dom/wrappers/IfBlock.ts @@ -520,25 +520,14 @@ export default class IfBlockWrapper extends Wrapper { if (branch.dependencies.length > 0) { const update_mount_node = this.get_update_mount_node(anchor); - const enter = dynamic - ? b` - if (${name}) { - ${name}.p(#ctx, #dirty); - ${has_transitions && b`@transition_in(${name}, 1);`} - } else { - ${name} = ${branch.block.name}(#ctx); - ${name}.c(); - ${has_transitions && b`@transition_in(${name}, 1);`} - ${name}.m(${update_mount_node}, ${anchor}); - } - ` - : b` + const enter = b` if (!${name}) { ${name} = ${branch.block.name}(#ctx); ${name}.c(); ${has_transitions && b`@transition_in(${name}, 1);`} ${name}.m(${update_mount_node}, ${anchor}); - } else { + } else if (${block.renderer.dirty(branch.dependencies)}) { + ${dynamic && b`${name}.p(#ctx, #dirty);`} ${has_transitions && b`@transition_in(${name}, 1);`} } `;