From 89d485c7d76dc97a5badf7bf7c90730a456a683a Mon Sep 17 00:00:00 2001 From: Arpad Borsos Date: Fri, 6 Sep 2019 16:32:34 +0200 Subject: [PATCH] Introduce a `claim_space` helper This brings the hydration `claim` code more in-line with what the `create` code does. --- src/compiler/compile/render_dom/wrappers/Text.ts | 5 +++-- src/runtime/internal/dom.ts | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/compiler/compile/render_dom/wrappers/Text.ts b/src/compiler/compile/render_dom/wrappers/Text.ts index e51ab5c370..704d5aad77 100644 --- a/src/compiler/compile/render_dom/wrappers/Text.ts +++ b/src/compiler/compile/render_dom/wrappers/Text.ts @@ -66,11 +66,12 @@ export default class TextWrapper extends Wrapper { render(block: Block, parent_node: string, parent_nodes: string) { if (this.skip) return; + const use_space = this.use_space(); block.add_element( this.var, - this.use_space() ? `@space()` : `@text(${stringify(this.data)})`, - parent_nodes && `@claim_text(${parent_nodes}, ${stringify(this.data)})`, + use_space ? `@space()` : `@text(${stringify(this.data)})`, + parent_nodes && (use_space ? `@claim_space(${parent_nodes})` : `@claim_text(${parent_nodes}, ${stringify(this.data)})`), parent_node ); } diff --git a/src/runtime/internal/dom.ts b/src/runtime/internal/dom.ts index d8ebffa2b1..91425fbf85 100644 --- a/src/runtime/internal/dom.ts +++ b/src/runtime/internal/dom.ts @@ -164,6 +164,10 @@ export function claim_text(nodes, data) { return text(data); } +export function claim_space(nodes) { + return claim_text(nodes, ' '); +} + export function set_data(text, data) { data = '' + data; if (text.data !== data) text.data = data;