diff --git a/src/compiler/compile/render_dom/wrappers/IfBlock.ts b/src/compiler/compile/render_dom/wrappers/IfBlock.ts index 9b3e56635d..d536744bbf 100644 --- a/src/compiler/compile/render_dom/wrappers/IfBlock.ts +++ b/src/compiler/compile/render_dom/wrappers/IfBlock.ts @@ -522,13 +522,13 @@ export default class IfBlockWrapper extends Wrapper { const enter = b` if (${name}) { - ${dynamic && b`${name}.p(#ctx, #dirty);`} ${ has_transitions && b`if (${block.renderer.dirty(branch.dependencies)}) { @transition_in(${name}, 1); }` } + ${dynamic && b`${name}.p(#ctx, #dirty);`} } else { ${name} = ${branch.block.name}(#ctx); ${name}.c(); diff --git a/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/Component.svelte b/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/Component.svelte new file mode 100644 index 0000000000..8c7e5a667f --- /dev/null +++ b/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/Component.svelte @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/_config.js b/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/_config.js new file mode 100644 index 0000000000..78aec696b6 --- /dev/null +++ b/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/_config.js @@ -0,0 +1,10 @@ +export default { + async test({ assert, target, window, raf }) { + const button = target.querySelector("button"); + const event = new window.MouseEvent("click"); + assert.htmlEqual(target.innerHTML, "A"); + await button.dispatchEvent(event); + raf.tick(500); + assert.htmlEqual(target.innerHTML, "A"); + }, +}; diff --git a/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/main.svelte b/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/main.svelte new file mode 100644 index 0000000000..982593dd5c --- /dev/null +++ b/test/runtime/samples/transition-js-if-else-in-if-outro-cancelled/main.svelte @@ -0,0 +1,36 @@ + + + +{#if !animationActive} +