Quellcode durchsuchen

fix: sledgehammer hydate text

Jonathan Kelley vor 2 Jahren
Ursprung
Commit
e4d089fabc
1 geänderte Dateien mit 11 neuen und 1 gelöschten Zeilen
  1. 11 1
      packages/interpreter/src/sledgehammer_bindings.rs

+ 11 - 1
packages/interpreter/src/sledgehammer_bindings.rs

@@ -210,7 +210,17 @@ mod js {
         "{nodes[$id$] = LoadChild($ptr$, $len$);}"
     }
     fn hydrate_text(ptr: u32, len: u8, value: &str, id: u32) {
-        "{node = LoadChild($ptr$, $len$); node.textContent = $value$; nodes[$id$] = node;}"
+        r#"{
+            node = LoadChild($ptr$, $len$);
+            if (node.nodeType == Node.TEXT_NODE) {
+                node.textContent = value;
+            } else {
+                let text = document.createTextNode(value);
+                node.replaceWith(text);
+                node = text;
+            }
+            nodes[$id$] = node;
+        }"#
     }
     fn replace_placeholder(ptr: u32, len: u8, n: u32) {
         "{els = stack.splice(stack.length - $n$); node = LoadChild($ptr$, $len$); node.replaceWith(...els);}"