diff --git a/src/generators/dom/Block.ts b/src/generators/dom/Block.ts index f9cd8e8513..1a074e7825 100644 --- a/src/generators/dom/Block.ts +++ b/src/generators/dom/Block.ts @@ -228,7 +228,8 @@ export default class Block { } if (this.first) { - properties.addBlock(`first: ${this.first},`); + properties.addBlock(`first: null,`); + this.builders.hydrate.addLine( `this.first = ${this.first};` ); } if (this.builders.create.isEmpty()) { diff --git a/src/generators/dom/visitors/EachBlock.ts b/src/generators/dom/visitors/EachBlock.ts index 70a6665eaa..f5c642f5d1 100644 --- a/src/generators/dom/visitors/EachBlock.ts +++ b/src/generators/dom/visitors/EachBlock.ts @@ -132,7 +132,7 @@ function keyed( block: Block, state: State, node: Node, - snippet, + snippet: string, { each_block, create_each_block, @@ -282,7 +282,6 @@ function keyed( } else { if ( ${iteration} ) { // probably a deletion - while ( ${expected} && ${expected}.key !== ${key} ) { ${expected}.discard = true; discard_pile.push( ${expected} ); diff --git a/src/generators/dom/visitors/Element/Element.ts b/src/generators/dom/visitors/Element/Element.ts index 5e3ce48e2f..75ec6ad83e 100644 --- a/src/generators/dom/visitors/Element/Element.ts +++ b/src/generators/dom/visitors/Element/Element.ts @@ -199,7 +199,7 @@ export default function visitElement( } if (node.initialUpdate) { - block.builders.hydrate.addBlock(node.initialUpdate); + block.builders.mount.addBlock(node.initialUpdate); } block.builders.claim.addLine( diff --git a/src/generators/dom/visitors/IfBlock.ts b/src/generators/dom/visitors/IfBlock.ts index 655070f00a..f0a54a4524 100644 --- a/src/generators/dom/visitors/IfBlock.ts +++ b/src/generators/dom/visitors/IfBlock.ts @@ -368,6 +368,7 @@ function compoundWithOutros( const createNewBlock = deindent` ${name} = ${if_blocks}[ ${current_block_index} ] = ${if_block_creators}[ ${current_block_index} ]( ${params}, ${block.component} ); + ${name}.create(); ${name}.${mountOrIntro}( ${parentNode}, ${anchor} ); `;