|  |  | @@ -36,8 +36,8 @@ const mimalloc = @import("mimalloc.zig"); | 
			
		
	
		
		
			
				
					
					|  |  |  | // init initializes netsurf lib. |  |  |  | // init initializes netsurf lib. | 
			
		
	
		
		
			
				
					
					|  |  |  | // init starts a mimalloc heap arena for the netsurf session. The caller must |  |  |  | // init starts a mimalloc heap arena for the netsurf session. The caller must | 
			
		
	
		
		
			
				
					
					|  |  |  | // call deinit() to free the arena memory. |  |  |  | // call deinit() to free the arena memory. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub fn init() !void { |  |  |  | pub fn init() void { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     try mimalloc.create(); |  |  |  |     mimalloc.create(); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // deinit frees the mimalloc heap arena memory. |  |  |  | // deinit frees the mimalloc heap arena memory. | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -84,7 +84,7 @@ pub fn deinit() void { | 
			
		
	
		
		
			
				
					
					|  |  |  | // - VtableT: the type of the vtable (dom_node_vtable, dom_element_vtable, etc) |  |  |  | // - VtableT: the type of the vtable (dom_node_vtable, dom_element_vtable, etc) | 
			
		
	
		
		
			
				
					
					|  |  |  | // - NodeT: the type of the node interface (dom_element, dom_document, etc) |  |  |  | // - NodeT: the type of the node interface (dom_element, dom_document, etc) | 
			
		
	
		
		
			
				
					
					|  |  |  | // - node: the node interface instance |  |  |  | // - node: the node interface instance | 
			
		
	
		
		
			
				
					
					|  |  |  | inline fn getVtable(comptime VtableT: type, comptime NodeT: type, node: anytype) VtableT { |  |  |  | fn getVtable(comptime VtableT: type, comptime NodeT: type, node: anytype) VtableT { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     // first align correctly the node interface |  |  |  |     // first align correctly the node interface | 
			
		
	
		
		
			
				
					
					|  |  |  |     const node_aligned: *align(@alignOf(NodeExternal)) NodeT = @alignCast(node); |  |  |  |     const node_aligned: *align(@alignOf(NodeExternal)) NodeT = @alignCast(node); | 
			
		
	
		
		
			
				
					
					|  |  |  |     // then convert the node interface to a base node |  |  |  |     // then convert the node interface to a base node | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -101,12 +101,12 @@ inline fn getVtable(comptime VtableT: type, comptime NodeT: type, node: anytype) | 
			
		
	
		
		
			
				
					
					|  |  |  | // Utils |  |  |  | // Utils | 
			
		
	
		
		
			
				
					
					|  |  |  | const String = c.dom_string; |  |  |  | const String = c.dom_string; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | inline fn strToData(s: *String) []const u8 { |  |  |  | fn strToData(s: *String) []const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     const data = c.dom_string_data(s); |  |  |  |     const data = c.dom_string_data(s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return data[0..c.dom_string_byte_length(s)]; |  |  |  |     return data[0..c.dom_string_byte_length(s)]; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn strFromData(data: []const u8) !*String { |  |  |  | pub fn strFromData(data: []const u8) !*String { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*String = null; |  |  |  |     var s: ?*String = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = c.dom_string_create(data.ptr, data.len, &s); |  |  |  |     const err = c.dom_string_create(data.ptr, data.len, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -116,10 +116,10 @@ pub inline fn strFromData(data: []const u8) !*String { | 
			
		
	
		
		
			
				
					
					|  |  |  | const LWCString = c.lwc_string; |  |  |  | const LWCString = c.lwc_string; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // TODO implement lwcStringToData |  |  |  | // TODO implement lwcStringToData | 
			
		
	
		
		
			
				
					
					|  |  |  | // inline fn lwcStringToData(s: *LWCString) []const u8 { |  |  |  | // fn lwcStringToData(s: *LWCString) []const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | // } |  |  |  | // } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | inline fn lwcStringFromData(data: []const u8) !*LWCString { |  |  |  | fn lwcStringFromData(data: []const u8) !*LWCString { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*LWCString = null; |  |  |  |     var s: ?*LWCString = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = c.lwc_intern_string(data.ptr, data.len, &s); |  |  |  |     const err = c.lwc_intern_string(data.ptr, data.len, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1460,12 +1460,12 @@ pub fn nodeGetElementById(node: *Node, id: []const u8) !?*Element { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // nodeToElement is an helper to convert a node to an element. |  |  |  | // nodeToElement is an helper to convert a node to an element. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn nodeToElement(node: *Node) *Element { |  |  |  | pub fn nodeToElement(node: *Node) *Element { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Element, @ptrCast(node)); |  |  |  |     return @as(*Element, @ptrCast(node)); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // nodeToDocument is an helper to convert a node to an document. |  |  |  | // nodeToDocument is an helper to convert a node to an document. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn nodeToDocument(node: *Node) *Document { |  |  |  | pub fn nodeToDocument(node: *Node) *Document { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Document, @ptrCast(node)); |  |  |  |     return @as(*Document, @ptrCast(node)); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1485,7 +1485,7 @@ fn characterDataVtable(data: *CharacterData) c.dom_characterdata_vtable { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return getVtable(c.dom_characterdata_vtable, CharacterData, data); |  |  |  |     return getVtable(c.dom_characterdata_vtable, CharacterData, data); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn characterDataToNode(cdata: *CharacterData) *Node { |  |  |  | pub fn characterDataToNode(cdata: *CharacterData) *Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(cdata))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(cdata))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1570,7 +1570,7 @@ pub const Comment = c.dom_comment; | 
			
		
	
		
		
			
				
					
					|  |  |  | pub const ProcessingInstruction = c.dom_processing_instruction; |  |  |  | pub const ProcessingInstruction = c.dom_processing_instruction; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // processingInstructionToNode is an helper to convert an ProcessingInstruction to a node. |  |  |  | // processingInstructionToNode is an helper to convert an ProcessingInstruction to a node. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn processingInstructionToNode(pi: *ProcessingInstruction) *Node { |  |  |  | pub fn processingInstructionToNode(pi: *ProcessingInstruction) *Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(pi))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(pi))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1625,7 +1625,7 @@ pub fn attributeGetOwnerElement(a: *Attribute) !?*Element { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // attributeToNode is an helper to convert an attribute to a node. |  |  |  | // attributeToNode is an helper to convert an attribute to a node. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn attributeToNode(a: *Attribute) *Node { |  |  |  | pub fn attributeToNode(a: *Attribute) *Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(a))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(a))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1787,7 +1787,7 @@ pub fn elementHasClass(elem: *Element, class: []const u8) !bool { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // elementToNode is an helper to convert an element to a node. |  |  |  | // elementToNode is an helper to convert an element to a node. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn elementToNode(e: *Element) *Node { |  |  |  | pub fn elementToNode(e: *Element) *Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(e))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(e))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1856,14 +1856,14 @@ fn elementHTMLVtable(elem_html: *ElementHTML) c.dom_html_element_vtable { | 
			
		
	
		
		
			
				
					
					|  |  |  | // HTMLScriptElement |  |  |  | // HTMLScriptElement | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // scriptToElt is an helper to convert an script to an element. |  |  |  | // scriptToElt is an helper to convert an script to an element. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn scriptToElt(s: *Script) *Element { |  |  |  | pub fn scriptToElt(s: *Script) *Element { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Element, @ptrCast(@alignCast(s))); |  |  |  |     return @as(*Element, @ptrCast(@alignCast(s))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // HTMLAnchorElement |  |  |  | // HTMLAnchorElement | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // anchorToNode is an helper to convert an anchor to a node. |  |  |  | // anchorToNode is an helper to convert an anchor to a node. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn anchorToNode(a: *Anchor) *Node { |  |  |  | pub fn anchorToNode(a: *Anchor) *Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(a))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(a))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2024,7 +2024,7 @@ pub const OptionCollection = c.dom_html_options_collection; | 
			
		
	
		
		
			
				
					
					|  |  |  | // Document Fragment |  |  |  | // Document Fragment | 
			
		
	
		
		
			
				
					
					|  |  |  | pub const DocumentFragment = c.dom_document_fragment; |  |  |  | pub const DocumentFragment = c.dom_document_fragment; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentFragmentToNode(doc: *DocumentFragment) *Node { |  |  |  | pub fn documentFragmentToNode(doc: *DocumentFragment) *Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(doc))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(doc))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2055,21 +2055,21 @@ fn documentTypeVtable(dt: *DocumentType) c.dom_document_type_vtable { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return getVtable(c.dom_document_type_vtable, DocumentType, dt); |  |  |  |     return getVtable(c.dom_document_type_vtable, DocumentType, dt); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentTypeGetName(dt: *DocumentType) ![]const u8 { |  |  |  | pub fn documentTypeGetName(dt: *DocumentType) ![]const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*String = null; |  |  |  |     var s: ?*String = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentTypeVtable(dt).dom_document_type_get_name.?(dt, &s); |  |  |  |     const err = documentTypeVtable(dt).dom_document_type_get_name.?(dt, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return strToData(s.?); |  |  |  |     return strToData(s.?); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentTypeGetPublicId(dt: *DocumentType) []const u8 { |  |  |  | pub fn documentTypeGetPublicId(dt: *DocumentType) []const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*String = null; |  |  |  |     var s: ?*String = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentTypeVtable(dt).dom_document_type_get_public_id.?(dt, &s); |  |  |  |     const err = documentTypeVtable(dt).dom_document_type_get_public_id.?(dt, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     std.debug.assert(err == c.DOM_NO_ERR); |  |  |  |     std.debug.assert(err == c.DOM_NO_ERR); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return strToData(s.?); |  |  |  |     return strToData(s.?); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentTypeGetSystemId(dt: *DocumentType) []const u8 { |  |  |  | pub fn documentTypeGetSystemId(dt: *DocumentType) []const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*String = null; |  |  |  |     var s: ?*String = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentTypeVtable(dt).dom_document_type_get_system_id.?(dt, &s); |  |  |  |     const err = documentTypeVtable(dt).dom_document_type_get_system_id.?(dt, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     std.debug.assert(err == c.DOM_NO_ERR); |  |  |  |     std.debug.assert(err == c.DOM_NO_ERR); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2077,7 +2077,7 @@ pub inline fn documentTypeGetSystemId(dt: *DocumentType) []const u8 { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // DOMImplementation |  |  |  | // DOMImplementation | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn domImplementationCreateDocument( |  |  |  | pub fn domImplementationCreateDocument( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     namespace: ?[:0]const u8, |  |  |  |     namespace: ?[:0]const u8, | 
			
		
	
		
		
			
				
					
					|  |  |  |     qname: ?[:0]const u8, |  |  |  |     qname: ?[:0]const u8, | 
			
		
	
		
		
			
				
					
					|  |  |  |     doctype: ?*DocumentType, |  |  |  |     doctype: ?*DocumentType, | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2107,7 +2107,7 @@ pub inline fn domImplementationCreateDocument( | 
			
		
	
		
		
			
				
					
					|  |  |  |     return doc.?; |  |  |  |     return doc.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn domImplementationCreateDocumentType( |  |  |  | pub fn domImplementationCreateDocumentType( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     qname: [:0]const u8, |  |  |  |     qname: [:0]const u8, | 
			
		
	
		
		
			
				
					
					|  |  |  |     publicId: [:0]const u8, |  |  |  |     publicId: [:0]const u8, | 
			
		
	
		
		
			
				
					
					|  |  |  |     systemId: [:0]const u8, |  |  |  |     systemId: [:0]const u8, | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2118,7 +2118,7 @@ pub inline fn domImplementationCreateDocumentType( | 
			
		
	
		
		
			
				
					
					|  |  |  |     return dt.?; |  |  |  |     return dt.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn domImplementationCreateHTMLDocument(title: ?[]const u8) !*DocumentHTML { |  |  |  | pub fn domImplementationCreateHTMLDocument(title: ?[]const u8) !*DocumentHTML { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     const doc_html = try documentCreateDocument(title); |  |  |  |     const doc_html = try documentCreateDocument(title); | 
			
		
	
		
		
			
				
					
					|  |  |  |     const doc = documentHTMLToDocument(doc_html); |  |  |  |     const doc = documentHTMLToDocument(doc_html); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2149,18 +2149,18 @@ fn documentVtable(doc: *Document) c.dom_document_vtable { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return getVtable(c.dom_document_vtable, Document, doc); |  |  |  |     return getVtable(c.dom_document_vtable, Document, doc); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentToNode(doc: *Document) *Node { |  |  |  | pub fn documentToNode(doc: *Document) *Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(doc))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(doc))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentGetElementById(doc: *Document, id: []const u8) !?*Element { |  |  |  | pub fn documentGetElementById(doc: *Document, id: []const u8) !?*Element { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var elem: ?*Element = null; |  |  |  |     var elem: ?*Element = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_get_element_by_id.?(doc, try strFromData(id), &elem); |  |  |  |     const err = documentVtable(doc).dom_document_get_element_by_id.?(doc, try strFromData(id), &elem); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return elem; |  |  |  |     return elem; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentGetElementsByTagName(doc: *Document, tagname: []const u8) !*NodeList { |  |  |  | pub fn documentGetElementsByTagName(doc: *Document, tagname: []const u8) !*NodeList { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var nlist: ?*NodeList = null; |  |  |  |     var nlist: ?*NodeList = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_get_elements_by_tag_name.?(doc, try strFromData(tagname), &nlist); |  |  |  |     const err = documentVtable(doc).dom_document_get_elements_by_tag_name.?(doc, try strFromData(tagname), &nlist); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2168,7 +2168,7 @@ pub inline fn documentGetElementsByTagName(doc: *Document, tagname: []const u8) | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // documentGetDocumentElement returns the root document element. |  |  |  | // documentGetDocumentElement returns the root document element. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentGetDocumentElement(doc: *Document) !?*Element { |  |  |  | pub fn documentGetDocumentElement(doc: *Document) !?*Element { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var elem: ?*Element = null; |  |  |  |     var elem: ?*Element = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_get_document_element.?(doc, &elem); |  |  |  |     const err = documentVtable(doc).dom_document_get_document_element.?(doc, &elem); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2176,7 +2176,7 @@ pub inline fn documentGetDocumentElement(doc: *Document) !?*Element { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return elem.?; |  |  |  |     return elem.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentGetDocumentURI(doc: *Document) ![]const u8 { |  |  |  | pub fn documentGetDocumentURI(doc: *Document) ![]const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*String = null; |  |  |  |     var s: ?*String = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_get_uri.?(doc, &s); |  |  |  |     const err = documentVtable(doc).dom_document_get_uri.?(doc, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2188,19 +2188,19 @@ pub fn documentSetDocumentURI(doc: *Document, uri: []const u8) !void { | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentGetInputEncoding(doc: *Document) ![]const u8 { |  |  |  | pub fn documentGetInputEncoding(doc: *Document) ![]const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*String = null; |  |  |  |     var s: ?*String = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_get_input_encoding.?(doc, &s); |  |  |  |     const err = documentVtable(doc).dom_document_get_input_encoding.?(doc, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return strToData(s.?); |  |  |  |     return strToData(s.?); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentSetInputEncoding(doc: *Document, enc: []const u8) !void { |  |  |  | pub fn documentSetInputEncoding(doc: *Document, enc: []const u8) !void { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_set_input_encoding.?(doc, try strFromData(enc)); |  |  |  |     const err = documentVtable(doc).dom_document_set_input_encoding.?(doc, try strFromData(enc)); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentCreateDocument(title: ?[]const u8) !*DocumentHTML { |  |  |  | pub fn documentCreateDocument(title: ?[]const u8) !*DocumentHTML { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var doc: ?*Document = null; |  |  |  |     var doc: ?*Document = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = c.dom_implementation_create_document( |  |  |  |     const err = c.dom_implementation_create_document( | 
			
		
	
		
		
			
				
					
					|  |  |  |         c.DOM_IMPLEMENTATION_HTML, |  |  |  |         c.DOM_IMPLEMENTATION_HTML, | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2267,42 +2267,42 @@ pub fn documentCreateElementNS(doc: *Document, ns: []const u8, tag_name: []const | 
			
		
	
		
		
			
				
					
					|  |  |  |     return elem.?; |  |  |  |     return elem.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentGetDoctype(doc: *Document) !?*DocumentType { |  |  |  | pub fn documentGetDoctype(doc: *Document) !?*DocumentType { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var dt: ?*DocumentType = null; |  |  |  |     var dt: ?*DocumentType = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_get_doctype.?(doc, &dt); |  |  |  |     const err = documentVtable(doc).dom_document_get_doctype.?(doc, &dt); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return dt; |  |  |  |     return dt; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentCreateDocumentFragment(doc: *Document) !*DocumentFragment { |  |  |  | pub fn documentCreateDocumentFragment(doc: *Document) !*DocumentFragment { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var df: ?*DocumentFragment = null; |  |  |  |     var df: ?*DocumentFragment = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_create_document_fragment.?(doc, &df); |  |  |  |     const err = documentVtable(doc).dom_document_create_document_fragment.?(doc, &df); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return df.?; |  |  |  |     return df.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentCreateTextNode(doc: *Document, s: []const u8) !*Text { |  |  |  | pub fn documentCreateTextNode(doc: *Document, s: []const u8) !*Text { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var txt: ?*Text = null; |  |  |  |     var txt: ?*Text = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_create_text_node.?(doc, try strFromData(s), &txt); |  |  |  |     const err = documentVtable(doc).dom_document_create_text_node.?(doc, try strFromData(s), &txt); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return txt.?; |  |  |  |     return txt.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentCreateCDATASection(doc: *Document, s: []const u8) !*CDATASection { |  |  |  | pub fn documentCreateCDATASection(doc: *Document, s: []const u8) !*CDATASection { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var cdata: ?*CDATASection = null; |  |  |  |     var cdata: ?*CDATASection = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_create_cdata_section.?(doc, try strFromData(s), &cdata); |  |  |  |     const err = documentVtable(doc).dom_document_create_cdata_section.?(doc, try strFromData(s), &cdata); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return cdata.?; |  |  |  |     return cdata.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentCreateComment(doc: *Document, s: []const u8) !*Comment { |  |  |  | pub fn documentCreateComment(doc: *Document, s: []const u8) !*Comment { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var com: ?*Comment = null; |  |  |  |     var com: ?*Comment = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_create_comment.?(doc, try strFromData(s), &com); |  |  |  |     const err = documentVtable(doc).dom_document_create_comment.?(doc, try strFromData(s), &com); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return com.?; |  |  |  |     return com.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentCreateProcessingInstruction(doc: *Document, target: []const u8, data: []const u8) !*ProcessingInstruction { |  |  |  | pub fn documentCreateProcessingInstruction(doc: *Document, target: []const u8, data: []const u8) !*ProcessingInstruction { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var pi: ?*ProcessingInstruction = null; |  |  |  |     var pi: ?*ProcessingInstruction = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_create_processing_instruction.?( |  |  |  |     const err = documentVtable(doc).dom_document_create_processing_instruction.?( | 
			
		
	
		
		
			
				
					
					|  |  |  |         doc, |  |  |  |         doc, | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2314,7 +2314,7 @@ pub inline fn documentCreateProcessingInstruction(doc: *Document, target: []cons | 
			
		
	
		
		
			
				
					
					|  |  |  |     return pi.?; |  |  |  |     return pi.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentImportNode(doc: *Document, node: *Node, deep: bool) !*Node { |  |  |  | pub fn documentImportNode(doc: *Document, node: *Node, deep: bool) !*Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var res: NodeExternal = undefined; |  |  |  |     var res: NodeExternal = undefined; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const nodeext = toNodeExternal(Node, node); |  |  |  |     const nodeext = toNodeExternal(Node, node); | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_import_node.?(doc, nodeext, deep, &res); |  |  |  |     const err = documentVtable(doc).dom_document_import_node.?(doc, nodeext, deep, &res); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2322,7 +2322,7 @@ pub inline fn documentImportNode(doc: *Document, node: *Node, deep: bool) !*Node | 
			
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(res))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(res))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentAdoptNode(doc: *Document, node: *Node) !*Node { |  |  |  | pub fn documentAdoptNode(doc: *Document, node: *Node) !*Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var res: NodeExternal = undefined; |  |  |  |     var res: NodeExternal = undefined; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const nodeext = toNodeExternal(Node, node); |  |  |  |     const nodeext = toNodeExternal(Node, node); | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_adopt_node.?(doc, nodeext, &res); |  |  |  |     const err = documentVtable(doc).dom_document_adopt_node.?(doc, nodeext, &res); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2330,14 +2330,14 @@ pub inline fn documentAdoptNode(doc: *Document, node: *Node) !*Node { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(res))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(res))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentCreateAttribute(doc: *Document, name: []const u8) !*Attribute { |  |  |  | pub fn documentCreateAttribute(doc: *Document, name: []const u8) !*Attribute { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var attr: ?*Attribute = null; |  |  |  |     var attr: ?*Attribute = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_create_attribute.?(doc, try strFromData(name), &attr); |  |  |  |     const err = documentVtable(doc).dom_document_create_attribute.?(doc, try strFromData(name), &attr); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return attr.?; |  |  |  |     return attr.?; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentCreateAttributeNS(doc: *Document, ns: []const u8, qname: []const u8) !*Attribute { |  |  |  | pub fn documentCreateAttributeNS(doc: *Document, ns: []const u8, qname: []const u8) !*Attribute { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var attr: ?*Attribute = null; |  |  |  |     var attr: ?*Attribute = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentVtable(doc).dom_document_create_attribute_ns.?( |  |  |  |     const err = documentVtable(doc).dom_document_create_attribute_ns.?( | 
			
		
	
		
		
			
				
					
					|  |  |  |         doc, |  |  |  |         doc, | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2361,7 +2361,7 @@ pub fn documentSetScriptAddedCallback( | 
			
		
	
		
		
			
				
					
					|  |  |  | pub const DocumentHTML = c.dom_html_document; |  |  |  | pub const DocumentHTML = c.dom_html_document; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // documentHTMLToNode is an helper to convert a documentHTML to an node. |  |  |  | // documentHTMLToNode is an helper to convert a documentHTML to an node. | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentHTMLToNode(doc: *DocumentHTML) *Node { |  |  |  | pub fn documentHTMLToNode(doc: *DocumentHTML) *Node { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Node, @ptrCast(@alignCast(doc))); |  |  |  |     return @as(*Node, @ptrCast(@alignCast(doc))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2511,11 +2511,11 @@ pub fn documentHTMLClose(doc: *DocumentHTML) !void { | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentHTMLToDocument(doc_html: *DocumentHTML) *Document { |  |  |  | pub fn documentHTMLToDocument(doc_html: *DocumentHTML) *Document { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Document, @ptrCast(doc_html)); |  |  |  |     return @as(*Document, @ptrCast(doc_html)); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentHTMLBody(doc_html: *DocumentHTML) !?*Body { |  |  |  | pub fn documentHTMLBody(doc_html: *DocumentHTML) !?*Body { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var body: ?*ElementHTML = null; |  |  |  |     var body: ?*ElementHTML = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentHTMLVtable(doc_html).get_body.?(doc_html, &body); |  |  |  |     const err = documentHTMLVtable(doc_html).get_body.?(doc_html, &body); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2523,16 +2523,16 @@ pub inline fn documentHTMLBody(doc_html: *DocumentHTML) !?*Body { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Body, @ptrCast(body.?)); |  |  |  |     return @as(*Body, @ptrCast(body.?)); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn bodyToElement(body: *Body) *Element { |  |  |  | pub fn bodyToElement(body: *Body) *Element { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     return @as(*Element, @ptrCast(@alignCast(body))); |  |  |  |     return @as(*Element, @ptrCast(@alignCast(body))); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentHTMLSetBody(doc_html: *DocumentHTML, elt: ?*ElementHTML) !void { |  |  |  | pub fn documentHTMLSetBody(doc_html: *DocumentHTML, elt: ?*ElementHTML) !void { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     const err = documentHTMLVtable(doc_html).set_body.?(doc_html, elt); |  |  |  |     const err = documentHTMLVtable(doc_html).set_body.?(doc_html, elt); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentHTMLGetReferrer(doc: *DocumentHTML) ![]const u8 { |  |  |  | pub fn documentHTMLGetReferrer(doc: *DocumentHTML) ![]const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*String = null; |  |  |  |     var s: ?*String = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentHTMLVtable(doc).get_referrer.?(doc, &s); |  |  |  |     const err = documentHTMLVtable(doc).get_referrer.?(doc, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2540,7 +2540,7 @@ pub inline fn documentHTMLGetReferrer(doc: *DocumentHTML) ![]const u8 { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return strToData(s.?); |  |  |  |     return strToData(s.?); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentHTMLGetTitle(doc: *DocumentHTML) ![]const u8 { |  |  |  | pub fn documentHTMLGetTitle(doc: *DocumentHTML) ![]const u8 { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     var s: ?*String = null; |  |  |  |     var s: ?*String = null; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const err = documentHTMLVtable(doc).get_title.?(doc, &s); |  |  |  |     const err = documentHTMLVtable(doc).get_title.?(doc, &s); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2548,7 +2548,7 @@ pub inline fn documentHTMLGetTitle(doc: *DocumentHTML) ![]const u8 { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return strToData(s.?); |  |  |  |     return strToData(s.?); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | pub inline fn documentHTMLSetTitle(doc: *DocumentHTML, v: []const u8) !void { |  |  |  | pub fn documentHTMLSetTitle(doc: *DocumentHTML, v: []const u8) !void { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     const err = documentHTMLVtable(doc).set_title.?(doc, try strFromData(v)); |  |  |  |     const err = documentHTMLVtable(doc).set_title.?(doc, try strFromData(v)); | 
			
		
	
		
		
			
				
					
					|  |  |  |     try DOMErr(err); |  |  |  |     try DOMErr(err); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					
					|  |  |   |