Skip to content

Commit cccb8e9

Browse files
Merge pull request #538 from lightpanda-io/node_class_attributes
Add Node.$NODE_TYPE class attributes
2 parents 646fcaf + 361a1a2 commit cccb8e9

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

src/browser/dom/node.zig

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)