From 82baceb8ac77f54144255d6c884d4e527c27dd33 Mon Sep 17 00:00:00 2001 From: Jacob Wright Date: Wed, 3 Apr 2019 11:16:34 -0600 Subject: [PATCH 1/2] Update text.data only when necessary Only update the text node if the text node's value is not equal. This fix is for contenteditable usage where text content may change outside of Svelte's control in order to preserve text composition. Accomplishes the same thing as #2341 without the added API. --- src/internal/dom.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/internal/dom.js b/src/internal/dom.js index 2d661b5958..e7b32f5798 100644 --- a/src/internal/dom.js +++ b/src/internal/dom.js @@ -154,7 +154,7 @@ export function claim_text(nodes, data) { } export function set_data(text, data) { - text.data = '' + data; + if (text.data !== '' + data) text.data = '' + data; } export function set_input_type(input, type) { From 5cd5f36cce6ba82acf015d1d9e7ab54527983ed4 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 6 Apr 2019 08:38:11 -0400 Subject: [PATCH 2/2] only coerce once --- src/internal/dom.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/internal/dom.js b/src/internal/dom.js index e7b32f5798..db1b95e4da 100644 --- a/src/internal/dom.js +++ b/src/internal/dom.js @@ -154,7 +154,8 @@ export function claim_text(nodes, data) { } export function set_data(text, data) { - if (text.data !== '' + data) text.data = '' + data; + data = '' + data; + if (text.data !== data) text.data = data; } export function set_input_type(input, type) { @@ -236,4 +237,4 @@ export function custom_event(type, detail) { const e = document.createEvent('CustomEvent'); e.initCustomEvent(type, false, false, detail); return e; -} \ No newline at end of file +}