diff --git a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts index 2f23ab0a26..206268837b 100644 --- a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts +++ b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts @@ -405,8 +405,20 @@ export default class InlineComponentWrapper extends Wrapper { const snippet = this.node.expression.manipulate(block); + let css_custom_properties_wrapper_anchor = null; if (has_css_custom_properties) { this.set_css_custom_properties(block, css_custom_properties_wrapper); + if ((this.next ? !this.next.is_dom_node() : !parent_node || !this.parent.is_dom_node())) { + css_custom_properties_wrapper_anchor = block.get_unique_name(`${this.var.name}_anchor`); + block.add_element( + css_custom_properties_wrapper_anchor, + x`@empty()`, + parent_nodes && x`@empty()`, + parent_node + ); + } else { + css_custom_properties_wrapper_anchor = (this.next && this.next.var) || parent_node; + } } this.create_claim_chunk(block, parent_nodes, name, css_custom_properties_wrapper); @@ -435,31 +447,16 @@ export default class InlineComponentWrapper extends Wrapper { b`if (${name}) @create_component(${name}.$$.fragment);` ); - const tmp_anchor = this.get_or_create_anchor(block, parent_node, parent_nodes); - const anchor = css_custom_properties_wrapper ? 'null' : tmp_anchor; - const update_mount_node = has_css_custom_properties ? css_custom_properties_wrapper : this.get_update_mount_node(tmp_anchor); - - let css_custom_properties_wrapper_anchor = null; - if (has_css_custom_properties) { - if ((this.next ? !this.next.is_dom_node() : !parent_node || !this.parent.is_dom_node())) { - css_custom_properties_wrapper_anchor = block.get_unique_name(`${this.var.name}_anchor`); - block.add_element( - css_custom_properties_wrapper_anchor, - x`@empty()`, - parent_nodes && x`@empty()`, - parent_node - ); - } else { - css_custom_properties_wrapper_anchor = (this.next && this.next.var) || parent_node; - } - } - if (updates.length) { block.chunks.update.push(b` ${updates} `); } + const tmp_anchor = this.get_or_create_anchor(block, parent_node, parent_nodes); + const anchor = css_custom_properties_wrapper ? 'null' : tmp_anchor; + const update_mount_node = has_css_custom_properties ? css_custom_properties_wrapper : this.get_update_mount_node(tmp_anchor); + block.chunks.update.push(b` if (${switch_value} !== (${switch_value} = ${snippet})) { if (${name}) {