From 7927ad8fcf7a833c1ff57ec763189faa9c3fdb02 Mon Sep 17 00:00:00 2001 From: egrs Date: Tue, 10 Mar 2026 20:27:05 +0100 Subject: [PATCH] route appendData through replaceData for spec compliance Per DOM spec, appendData(data) is defined as replaceData(length, 0, data). While the range update would be a no-op (offset=length, count=0), routing through replaceData ensures consistent code path and spec compliance. --- src/browser/webapi/CData.zig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/browser/webapi/CData.zig b/src/browser/webapi/CData.zig index 5a74f87d..4fb6de6f 100644 --- a/src/browser/webapi/CData.zig +++ b/src/browser/webapi/CData.zig @@ -271,9 +271,9 @@ pub fn isEqualNode(self: *const CData, other: *const CData) bool { } pub fn appendData(self: *CData, data: []const u8, page: *Page) !void { - const old_value = self._data; - self._data = try String.concat(page.arena, &.{ self._data.str(), data }); - page.characterDataChange(self.asNode(), old_value); + // Per DOM spec, appendData(data) is replaceData(length, 0, data). + const length = self.getLength(); + try self.replaceData(length, 0, data, page); } pub fn deleteData(self: *CData, offset: usize, count: usize, page: *Page) !void {