@@ -79,6 +79,23 @@ pub const Node = struct {
7979 };
8080 }
8181
82+ // class attributes
83+
84+ pub const _ELEMENT_NODE = @intFromEnum (parser .NodeType .element );
85+ pub const _ATTRIBUTE_NODE = @intFromEnum (parser .NodeType .attribute );
86+ pub const _TEXT_NODE = @intFromEnum (parser .NodeType .text );
87+ pub const _CDATA_SECTION_NODE = @intFromEnum (parser .NodeType .cdata_section );
88+ pub const _PROCESSING_INSTRUCTION_NODE = @intFromEnum (parser .NodeType .processing_instruction );
89+ pub const _COMMENT_NODE = @intFromEnum (parser .NodeType .comment );
90+ pub const _DOCUMENT_NODE = @intFromEnum (parser .NodeType .document );
91+ pub const _DOCUMENT_TYPE_NODE = @intFromEnum (parser .NodeType .document_type );
92+ pub const _DOCUMENT_FRAGMENT_NODE = @intFromEnum (parser .NodeType .document_fragment );
93+
94+ // These 3 are deprecated, but both Chrome and Firefox still expose them
95+ pub const _ENTITY_REFERENCE_NODE = @intFromEnum (parser .NodeType .entity_reference );
96+ pub const _ENTITY_NODE = @intFromEnum (parser .NodeType .entity );
97+ pub const _NOTATION_NODE = @intFromEnum (parser .NodeType .notation );
98+
8299 // JS funcs
83100 // --------
84101
@@ -589,4 +606,19 @@ test "Browser.DOM.node" {
589606 .{ "let replace = document.createElement('div')" , "undefined" },
590607 .{ "link.replaceChild(replace, insertBefore) !== undefined" , "true" },
591608 }, .{});
609+
610+ try runner .testCases (&.{
611+ .{ "Node.ELEMENT_NODE" , "1" },
612+ .{ "Node.ATTRIBUTE_NODE" , "2" },
613+ .{ "Node.TEXT_NODE" , "3" },
614+ .{ "Node.CDATA_SECTION_NODE" , "4" },
615+ .{ "Node.PROCESSING_INSTRUCTION_NODE" , "7" },
616+ .{ "Node.COMMENT_NODE" , "8" },
617+ .{ "Node.DOCUMENT_NODE" , "9" },
618+ .{ "Node.DOCUMENT_TYPE_NODE" , "10" },
619+ .{ "Node.DOCUMENT_FRAGMENT_NODE" , "11" },
620+ .{ "Node.ENTITY_REFERENCE_NODE" , "5" },
621+ .{ "Node.ENTITY_NODE" , "6" },
622+ .{ "Node.NOTATION_NODE" , "12" },
623+ }, .{});
592624}
0 commit comments