diff --git a/src/browser/tests/document_fragment/document_fragment.html b/src/browser/tests/document_fragment/document_fragment.html
index 663d483f..cda2f85d 100644
--- a/src/browser/tests/document_fragment/document_fragment.html
+++ b/src/browser/tests/document_fragment/document_fragment.html
@@ -176,3 +176,16 @@
testing.expectEqual("Nested content", clonedInner.textContent);
}
+
+
diff --git a/src/browser/tests/element/element.html b/src/browser/tests/element/element.html
index 2a7adbaf..84044ecd 100644
--- a/src/browser/tests/element/element.html
+++ b/src/browser/tests/element/element.html
@@ -153,3 +153,16 @@
testing.expectEqual(d, parent.childNodes[3]);
}
+
+
diff --git a/src/browser/webapi/Node.zig b/src/browser/webapi/Node.zig
index 1149ef44..47ef3db9 100644
--- a/src/browser/webapi/Node.zig
+++ b/src/browser/webapi/Node.zig
@@ -269,11 +269,21 @@ pub fn getTextContentAlloc(self: *Node, allocator: Allocator) error{WriteFailed}
pub fn setTextContent(self: *Node, data: []const u8, page: *Page) !void {
switch (self._type) {
- .element => |el| return el.replaceChildren(&.{.{ .text = data }}, page),
+ .element => |el| {
+ if (data.len == 0) {
+ return el.replaceChildren(&.{}, page);
+ }
+ return el.replaceChildren(&.{.{ .text = data }}, page);
+ },
.cdata => |c| c._data = try page.arena.dupe(u8, data),
.document => {},
.document_type => {},
- .document_fragment => |frag| return frag.replaceChildren(&.{.{ .text = data }}, page),
+ .document_fragment => |frag| {
+ if (data.len == 0) {
+ return frag.replaceChildren(&.{}, page);
+ }
+ return frag.replaceChildren(&.{.{ .text = data }}, page);
+ },
.attribute => |attr| return attr.setValue(data, page),
}
}