diff --git a/src/dom/document.zig b/src/dom/document.zig index aa4a5c6a..734bc178 100644 --- a/src/dom/document.zig +++ b/src/dom/document.zig @@ -137,6 +137,10 @@ pub const Document = struct { return try parser.documentCreateCDATASection(self, data); } + pub fn _createComment(self: *parser.Document, data: []const u8) !*parser.Comment { + return try parser.documentCreateComment(self, data); + } + pub fn deinit(_: *parser.Document, _: std.mem.Allocator) void {} }; @@ -244,6 +248,11 @@ pub fn testExecFn( }; try checkCases(js_env, &createCDATASection); + var createComment = [_]Case{ + .{ .src = "document.createComment('foo')", .ex = "[object Comment]" }, + }; + try checkCases(js_env, &createComment); + const tags = comptime parser.Tag.all(); comptime var createElements: [(tags.len) * 2]Case = undefined; inline for (tags, 0..) |tag, i| { diff --git a/src/netsurf.zig b/src/netsurf.zig index 3042da20..fe46b57f 100644 --- a/src/netsurf.zig +++ b/src/netsurf.zig @@ -1154,6 +1154,13 @@ pub inline fn documentCreateCDATASection(doc: *Document, s: []const u8) !*CDATAS return cdata.?; } +pub inline fn documentCreateComment(doc: *Document, s: []const u8) !*Comment { + var com: ?*Comment = undefined; + const err = documentVtable(doc).dom_document_create_comment.?(doc, try strFromData(s), &com); + try DOMErr(err); + return com.?; +} + // DocumentHTML pub const DocumentHTML = c.dom_html_document;