dom: add missing tags

according with https://wpt.live/dom/nodes/Node-cloneNode.html test
This commit is contained in:
Pierre Tachoire
2023-10-11 16:49:12 +02:00
parent 7f9ee308bd
commit 24a4164f5e
2 changed files with 104 additions and 2 deletions

View File

@@ -5,6 +5,7 @@ const Element = @import("../dom/element.zig").Element;
// HTMLElement interfaces // HTMLElement interfaces
pub const Interfaces = .{ pub const Interfaces = .{
HTMLElement,
HTMLUnknownElement, HTMLUnknownElement,
HTMLAnchorElement, HTMLAnchorElement,
HTMLAreaElement, HTMLAreaElement,
@@ -16,11 +17,15 @@ pub const Interfaces = .{
HTMLCanvasElement, HTMLCanvasElement,
HTMLDListElement, HTMLDListElement,
HTMLDataElement, HTMLDataElement,
HTMLDataListElement,
HTMLDialogElement, HTMLDialogElement,
HTMLDirectoryElement,
HTMLDivElement, HTMLDivElement,
HTMLEmbedElement, HTMLEmbedElement,
HTMLFieldSetElement, HTMLFieldSetElement,
HTMLFontElement,
HTMLFormElement, HTMLFormElement,
HTMLFrameElement,
HTMLFrameSetElement, HTMLFrameSetElement,
HTMLHRElement, HTMLHRElement,
HTMLHeadElement, HTMLHeadElement,
@@ -43,6 +48,7 @@ pub const Interfaces = .{
HTMLOptionElement, HTMLOptionElement,
HTMLOutputElement, HTMLOutputElement,
HTMLParagraphElement, HTMLParagraphElement,
HTMLParamElement,
HTMLPictureElement, HTMLPictureElement,
HTMLPreElement, HTMLPreElement,
HTMLProgressElement, HTMLProgressElement,
@@ -161,12 +167,24 @@ pub const HTMLDataElement = struct {
pub const mem_guarantied = true; pub const mem_guarantied = true;
}; };
pub const HTMLDataListElement = struct {
pub const Self = parser.DataList;
pub const prototype = *HTMLElement;
pub const mem_guarantied = true;
};
pub const HTMLDialogElement = struct { pub const HTMLDialogElement = struct {
pub const Self = parser.Dialog; pub const Self = parser.Dialog;
pub const prototype = *HTMLElement; pub const prototype = *HTMLElement;
pub const mem_guarantied = true; pub const mem_guarantied = true;
}; };
pub const HTMLDirectoryElement = struct {
pub const Self = parser.Directory;
pub const prototype = *HTMLElement;
pub const mem_guarantied = true;
};
pub const HTMLDivElement = struct { pub const HTMLDivElement = struct {
pub const Self = parser.Div; pub const Self = parser.Div;
pub const prototype = *HTMLElement; pub const prototype = *HTMLElement;
@@ -185,12 +203,24 @@ pub const HTMLFieldSetElement = struct {
pub const mem_guarantied = true; pub const mem_guarantied = true;
}; };
pub const HTMLFontElement = struct {
pub const Self = parser.Font;
pub const prototype = *HTMLElement;
pub const mem_guarantied = true;
};
pub const HTMLFormElement = struct { pub const HTMLFormElement = struct {
pub const Self = parser.Form; pub const Self = parser.Form;
pub const prototype = *HTMLElement; pub const prototype = *HTMLElement;
pub const mem_guarantied = true; pub const mem_guarantied = true;
}; };
pub const HTMLFrameElement = struct {
pub const Self = parser.Frame;
pub const prototype = *HTMLElement;
pub const mem_guarantied = true;
};
pub const HTMLFrameSetElement = struct { pub const HTMLFrameSetElement = struct {
pub const Self = parser.FrameSet; pub const Self = parser.FrameSet;
pub const prototype = *HTMLElement; pub const prototype = *HTMLElement;
@@ -323,6 +353,12 @@ pub const HTMLParagraphElement = struct {
pub const mem_guarantied = true; pub const mem_guarantied = true;
}; };
pub const HTMLParamElement = struct {
pub const Self = parser.Param;
pub const prototype = *HTMLElement;
pub const mem_guarantied = true;
};
pub const HTMLPictureElement = struct { pub const HTMLPictureElement = struct {
pub const Self = parser.Picture; pub const Self = parser.Picture;
pub const prototype = *HTMLElement; pub const prototype = *HTMLElement;
@@ -459,21 +495,26 @@ pub fn toInterface(comptime T: type, e: *parser.Element) T {
const elem: *align(@alignOf(*parser.Element)) parser.Element = @alignCast(e); const elem: *align(@alignOf(*parser.Element)) parser.Element = @alignCast(e);
const tag = parser.elementHTMLGetTagType(@as(*parser.ElementHTML, @ptrCast(elem))); const tag = parser.elementHTMLGetTagType(@as(*parser.ElementHTML, @ptrCast(elem)));
return switch (tag) { return switch (tag) {
.abbr, .acronym, .address, .article, .aside, .b, .bdi, .bdo, .bgsound, .big, .center, .cite, .code, .dd, .details, .dfn, .dt, .figcaption, .figure, .footer, .header, .hgroup, .i, .isindex, .kbd, .main, .mark, .marquee, .nav, .nobr, .noframes, .noscript, .rp, .rt, .ruby, .s, .samp, .section, .small, .spacer, .strike, .sub, .summary, .sup, .tt, .u, .wbr, ._var => .{ .HTMLElement = @as(*parser.ElementHTML, @ptrCast(elem)) },
.a => .{ .HTMLAnchorElement = @as(*parser.Anchor, @ptrCast(elem)) }, .a => .{ .HTMLAnchorElement = @as(*parser.Anchor, @ptrCast(elem)) },
.area => .{ .HTMLAreaElement = @as(*parser.Area, @ptrCast(elem)) }, .area => .{ .HTMLAreaElement = @as(*parser.Area, @ptrCast(elem)) },
.audio => .{ .HTMLAudioElement = @as(*parser.Audio, @ptrCast(elem)) }, .audio => .{ .HTMLAudioElement = @as(*parser.Audio, @ptrCast(elem)) },
.br => .{ .HTMLBRElement = @as(*parser.BR, @ptrCast(elem)) },
.base => .{ .HTMLBaseElement = @as(*parser.Base, @ptrCast(elem)) }, .base => .{ .HTMLBaseElement = @as(*parser.Base, @ptrCast(elem)) },
.body => .{ .HTMLBodyElement = @as(*parser.Body, @ptrCast(elem)) }, .body => .{ .HTMLBodyElement = @as(*parser.Body, @ptrCast(elem)) },
.br => .{ .HTMLBRElement = @as(*parser.BR, @ptrCast(elem)) },
.button => .{ .HTMLButtonElement = @as(*parser.Button, @ptrCast(elem)) }, .button => .{ .HTMLButtonElement = @as(*parser.Button, @ptrCast(elem)) },
.canvas => .{ .HTMLCanvasElement = @as(*parser.Canvas, @ptrCast(elem)) }, .canvas => .{ .HTMLCanvasElement = @as(*parser.Canvas, @ptrCast(elem)) },
.dl => .{ .HTMLDListElement = @as(*parser.DList, @ptrCast(elem)) }, .dl => .{ .HTMLDListElement = @as(*parser.DList, @ptrCast(elem)) },
.data => .{ .HTMLDataElement = @as(*parser.Data, @ptrCast(elem)) }, .data => .{ .HTMLDataElement = @as(*parser.Data, @ptrCast(elem)) },
.datalist => .{ .HTMLDataListElement = @as(*parser.DataList, @ptrCast(elem)) },
.dialog => .{ .HTMLDialogElement = @as(*parser.Dialog, @ptrCast(elem)) }, .dialog => .{ .HTMLDialogElement = @as(*parser.Dialog, @ptrCast(elem)) },
.dir => .{ .HTMLDirectoryElement = @as(*parser.Directory, @ptrCast(elem)) },
.div => .{ .HTMLDivElement = @as(*parser.Div, @ptrCast(elem)) }, .div => .{ .HTMLDivElement = @as(*parser.Div, @ptrCast(elem)) },
.embed => .{ .HTMLEmbedElement = @as(*parser.Embed, @ptrCast(elem)) }, .embed => .{ .HTMLEmbedElement = @as(*parser.Embed, @ptrCast(elem)) },
.fieldset => .{ .HTMLFieldSetElement = @as(*parser.FieldSet, @ptrCast(elem)) }, .fieldset => .{ .HTMLFieldSetElement = @as(*parser.FieldSet, @ptrCast(elem)) },
.font => .{ .HTMLFontElement = @as(*parser.Font, @ptrCast(elem)) },
.form => .{ .HTMLFormElement = @as(*parser.Form, @ptrCast(elem)) }, .form => .{ .HTMLFormElement = @as(*parser.Form, @ptrCast(elem)) },
.frame => .{ .HTMLFrameElement = @as(*parser.Frame, @ptrCast(elem)) },
.frameset => .{ .HTMLFrameSetElement = @as(*parser.FrameSet, @ptrCast(elem)) }, .frameset => .{ .HTMLFrameSetElement = @as(*parser.FrameSet, @ptrCast(elem)) },
.hr => .{ .HTMLHRElement = @as(*parser.HR, @ptrCast(elem)) }, .hr => .{ .HTMLHRElement = @as(*parser.HR, @ptrCast(elem)) },
.head => .{ .HTMLHeadElement = @as(*parser.Head, @ptrCast(elem)) }, .head => .{ .HTMLHeadElement = @as(*parser.Head, @ptrCast(elem)) },
@@ -496,6 +537,7 @@ pub fn toInterface(comptime T: type, e: *parser.Element) T {
.option => .{ .HTMLOptionElement = @as(*parser.Option, @ptrCast(elem)) }, .option => .{ .HTMLOptionElement = @as(*parser.Option, @ptrCast(elem)) },
.output => .{ .HTMLOutputElement = @as(*parser.Output, @ptrCast(elem)) }, .output => .{ .HTMLOutputElement = @as(*parser.Output, @ptrCast(elem)) },
.p => .{ .HTMLParagraphElement = @as(*parser.Paragraph, @ptrCast(elem)) }, .p => .{ .HTMLParagraphElement = @as(*parser.Paragraph, @ptrCast(elem)) },
.param => .{ .HTMLParamElement = @as(*parser.Param, @ptrCast(elem)) },
.picture => .{ .HTMLPictureElement = @as(*parser.Picture, @ptrCast(elem)) }, .picture => .{ .HTMLPictureElement = @as(*parser.Picture, @ptrCast(elem)) },
.pre => .{ .HTMLPreElement = @as(*parser.Pre, @ptrCast(elem)) }, .pre => .{ .HTMLPreElement = @as(*parser.Pre, @ptrCast(elem)) },
.progress => .{ .HTMLProgressElement = @as(*parser.Progress, @ptrCast(elem)) }, .progress => .{ .HTMLProgressElement = @as(*parser.Progress, @ptrCast(elem)) },
@@ -508,7 +550,7 @@ pub fn toInterface(comptime T: type, e: *parser.Element) T {
.table => .{ .HTMLTableElement = @as(*parser.Table, @ptrCast(elem)) }, .table => .{ .HTMLTableElement = @as(*parser.Table, @ptrCast(elem)) },
.caption => .{ .HTMLTableCaptionElement = @as(*parser.TableCaption, @ptrCast(elem)) }, .caption => .{ .HTMLTableCaptionElement = @as(*parser.TableCaption, @ptrCast(elem)) },
.th, .td => .{ .HTMLTableCellElement = @as(*parser.TableCell, @ptrCast(elem)) }, .th, .td => .{ .HTMLTableCellElement = @as(*parser.TableCell, @ptrCast(elem)) },
.col => .{ .HTMLTableColElement = @as(*parser.TableCol, @ptrCast(elem)) }, .col, .colgroup => .{ .HTMLTableColElement = @as(*parser.TableCol, @ptrCast(elem)) },
.tr => .{ .HTMLTableRowElement = @as(*parser.TableRow, @ptrCast(elem)) }, .tr => .{ .HTMLTableRowElement = @as(*parser.TableRow, @ptrCast(elem)) },
.thead, .tbody, .tfoot => .{ .HTMLTableSectionElement = @as(*parser.TableSection, @ptrCast(elem)) }, .thead, .tbody, .tfoot => .{ .HTMLTableSectionElement = @as(*parser.TableSection, @ptrCast(elem)) },
.template => .{ .HTMLTemplateElement = @as(*parser.Template, @ptrCast(elem)) }, .template => .{ .HTMLTemplateElement = @as(*parser.Template, @ptrCast(elem)) },

View File

@@ -68,41 +68,81 @@ inline fn stringFromData(data: []const u8) *String {
// Tag // Tag
pub const Tag = enum(u8) { pub const Tag = enum(u8) {
acronym = 123, // TODO c.DOM_HTML_ELEMENT_TYPE_ACRONYM,
bgsound = 124, // TODO c.DOM_HTML_ELEMENT_TYPE_BGSOUND,
big = 125, // TODO c.DOM_HTML_ELEMENT_TYPE_BIG,
marquee = 127, // TODO c.DOM_HTML_ELEMENT_TYPE_MARQUEE,
nobr = 128, // TODO c.DOM_HTML_ELEMENT_TYPE_NOBR,
noframes = 129, // TODO c.DOM_HTML_ELEMENT_TYPE_NOFRAMES,
spacer = 130, // TODO c.DOM_HTML_ELEMENT_TYPE_SPACER,
strike = 131, // TODO c.DOM_HTML_ELEMENT_TYPE_STRIKE,
tt = 132, // TODO c.DOM_HTML_ELEMENT_TYPE_TT,
a = c.DOM_HTML_ELEMENT_TYPE_A, a = c.DOM_HTML_ELEMENT_TYPE_A,
abbr = c.DOM_HTML_ELEMENT_TYPE_ABBR,
address = c.DOM_HTML_ELEMENT_TYPE_ADDRESS,
article = c.DOM_HTML_ELEMENT_TYPE_ARTICLE,
aside = c.DOM_HTML_ELEMENT_TYPE_ASIDE,
area = c.DOM_HTML_ELEMENT_TYPE_AREA, area = c.DOM_HTML_ELEMENT_TYPE_AREA,
audio = c.DOM_HTML_ELEMENT_TYPE_AUDIO, audio = c.DOM_HTML_ELEMENT_TYPE_AUDIO,
b = c.DOM_HTML_ELEMENT_TYPE_B,
bdi = c.DOM_HTML_ELEMENT_TYPE_BDI,
bdo = c.DOM_HTML_ELEMENT_TYPE_BDO,
br = c.DOM_HTML_ELEMENT_TYPE_BR, br = c.DOM_HTML_ELEMENT_TYPE_BR,
base = c.DOM_HTML_ELEMENT_TYPE_BASE, base = c.DOM_HTML_ELEMENT_TYPE_BASE,
body = c.DOM_HTML_ELEMENT_TYPE_BODY, body = c.DOM_HTML_ELEMENT_TYPE_BODY,
button = c.DOM_HTML_ELEMENT_TYPE_BUTTON, button = c.DOM_HTML_ELEMENT_TYPE_BUTTON,
canvas = c.DOM_HTML_ELEMENT_TYPE_CANVAS, canvas = c.DOM_HTML_ELEMENT_TYPE_CANVAS,
center = c.DOM_HTML_ELEMENT_TYPE_CENTER,
cite = c.DOM_HTML_ELEMENT_TYPE_CITE,
code = c.DOM_HTML_ELEMENT_TYPE_CODE,
dd = c.DOM_HTML_ELEMENT_TYPE_DD,
details = c.DOM_HTML_ELEMENT_TYPE_DETAILS,
dfn = c.DOM_HTML_ELEMENT_TYPE_DFN,
dt = c.DOM_HTML_ELEMENT_TYPE_DT,
dl = c.DOM_HTML_ELEMENT_TYPE_DL, dl = c.DOM_HTML_ELEMENT_TYPE_DL,
dialog = c.DOM_HTML_ELEMENT_TYPE_DIALOG, dialog = c.DOM_HTML_ELEMENT_TYPE_DIALOG,
data = c.DOM_HTML_ELEMENT_TYPE_DATA, data = c.DOM_HTML_ELEMENT_TYPE_DATA,
datalist = c.DOM_HTML_ELEMENT_TYPE_DATALIST,
dir = c.DOM_HTML_ELEMENT_TYPE_DIR,
div = c.DOM_HTML_ELEMENT_TYPE_DIV, div = c.DOM_HTML_ELEMENT_TYPE_DIV,
embed = c.DOM_HTML_ELEMENT_TYPE_EMBED, embed = c.DOM_HTML_ELEMENT_TYPE_EMBED,
figcaption = c.DOM_HTML_ELEMENT_TYPE_FIGCAPTION,
figure = c.DOM_HTML_ELEMENT_TYPE_FIGURE,
fieldset = c.DOM_HTML_ELEMENT_TYPE_FIELDSET, fieldset = c.DOM_HTML_ELEMENT_TYPE_FIELDSET,
footer = c.DOM_HTML_ELEMENT_TYPE_FOOTER,
font = c.DOM_HTML_ELEMENT_TYPE_FONT,
form = c.DOM_HTML_ELEMENT_TYPE_FORM, form = c.DOM_HTML_ELEMENT_TYPE_FORM,
frame = c.DOM_HTML_ELEMENT_TYPE_FRAME,
frameset = c.DOM_HTML_ELEMENT_TYPE_FRAMESET, frameset = c.DOM_HTML_ELEMENT_TYPE_FRAMESET,
hr = c.DOM_HTML_ELEMENT_TYPE_HR, hr = c.DOM_HTML_ELEMENT_TYPE_HR,
head = c.DOM_HTML_ELEMENT_TYPE_HEAD, head = c.DOM_HTML_ELEMENT_TYPE_HEAD,
header = c.DOM_HTML_ELEMENT_TYPE_HEADER,
h1 = c.DOM_HTML_ELEMENT_TYPE_H1, h1 = c.DOM_HTML_ELEMENT_TYPE_H1,
h2 = c.DOM_HTML_ELEMENT_TYPE_H2, h2 = c.DOM_HTML_ELEMENT_TYPE_H2,
h3 = c.DOM_HTML_ELEMENT_TYPE_H3, h3 = c.DOM_HTML_ELEMENT_TYPE_H3,
h4 = c.DOM_HTML_ELEMENT_TYPE_H4, h4 = c.DOM_HTML_ELEMENT_TYPE_H4,
h5 = c.DOM_HTML_ELEMENT_TYPE_H5, h5 = c.DOM_HTML_ELEMENT_TYPE_H5,
h6 = c.DOM_HTML_ELEMENT_TYPE_H6, h6 = c.DOM_HTML_ELEMENT_TYPE_H6,
hgroup = c.DOM_HTML_ELEMENT_TYPE_HGROUP,
html = c.DOM_HTML_ELEMENT_TYPE_HTML, html = c.DOM_HTML_ELEMENT_TYPE_HTML,
i = c.DOM_HTML_ELEMENT_TYPE_I,
isindex = c.DOM_HTML_ELEMENT_TYPE_ISINDEX,
iframe = c.DOM_HTML_ELEMENT_TYPE_IFRAME, iframe = c.DOM_HTML_ELEMENT_TYPE_IFRAME,
img = c.DOM_HTML_ELEMENT_TYPE_IMG, img = c.DOM_HTML_ELEMENT_TYPE_IMG,
input = c.DOM_HTML_ELEMENT_TYPE_INPUT, input = c.DOM_HTML_ELEMENT_TYPE_INPUT,
kbd = c.DOM_HTML_ELEMENT_TYPE_KBD,
li = c.DOM_HTML_ELEMENT_TYPE_LI, li = c.DOM_HTML_ELEMENT_TYPE_LI,
label = c.DOM_HTML_ELEMENT_TYPE_LABEL, label = c.DOM_HTML_ELEMENT_TYPE_LABEL,
legend = c.DOM_HTML_ELEMENT_TYPE_LEGEND, legend = c.DOM_HTML_ELEMENT_TYPE_LEGEND,
link = c.DOM_HTML_ELEMENT_TYPE_LINK, link = c.DOM_HTML_ELEMENT_TYPE_LINK,
main = c.DOM_HTML_ELEMENT_TYPE_MAIN,
map = c.DOM_HTML_ELEMENT_TYPE_MAP, map = c.DOM_HTML_ELEMENT_TYPE_MAP,
mark = c.DOM_HTML_ELEMENT_TYPE_MARK,
meta = c.DOM_HTML_ELEMENT_TYPE_META, meta = c.DOM_HTML_ELEMENT_TYPE_META,
meter = c.DOM_HTML_ELEMENT_TYPE_METER, meter = c.DOM_HTML_ELEMENT_TYPE_METER,
nav = c.DOM_HTML_ELEMENT_TYPE_NAV,
noscript = c.DOM_HTML_ELEMENT_TYPE_NOSCRIPT,
ins = c.DOM_HTML_ELEMENT_TYPE_INS, ins = c.DOM_HTML_ELEMENT_TYPE_INS,
del = c.DOM_HTML_ELEMENT_TYPE_DEL, del = c.DOM_HTML_ELEMENT_TYPE_DEL,
ol = c.DOM_HTML_ELEMENT_TYPE_OL, ol = c.DOM_HTML_ELEMENT_TYPE_OL,
@@ -111,11 +151,22 @@ pub const Tag = enum(u8) {
option = c.DOM_HTML_ELEMENT_TYPE_OPTION, option = c.DOM_HTML_ELEMENT_TYPE_OPTION,
output = c.DOM_HTML_ELEMENT_TYPE_OUTPUT, output = c.DOM_HTML_ELEMENT_TYPE_OUTPUT,
p = c.DOM_HTML_ELEMENT_TYPE_P, p = c.DOM_HTML_ELEMENT_TYPE_P,
param = c.DOM_HTML_ELEMENT_TYPE_PARAM,
picture = c.DOM_HTML_ELEMENT_TYPE_PICTURE, picture = c.DOM_HTML_ELEMENT_TYPE_PICTURE,
pre = c.DOM_HTML_ELEMENT_TYPE_PRE, pre = c.DOM_HTML_ELEMENT_TYPE_PRE,
progress = c.DOM_HTML_ELEMENT_TYPE_PROGRESS, progress = c.DOM_HTML_ELEMENT_TYPE_PROGRESS,
blockquote = c.DOM_HTML_ELEMENT_TYPE_BLOCKQUOTE, blockquote = c.DOM_HTML_ELEMENT_TYPE_BLOCKQUOTE,
q = c.DOM_HTML_ELEMENT_TYPE_Q, q = c.DOM_HTML_ELEMENT_TYPE_Q,
rp = c.DOM_HTML_ELEMENT_TYPE_RP,
rt = c.DOM_HTML_ELEMENT_TYPE_RT,
ruby = c.DOM_HTML_ELEMENT_TYPE_RUBY,
s = c.DOM_HTML_ELEMENT_TYPE_S,
samp = c.DOM_HTML_ELEMENT_TYPE_SAMP,
section = c.DOM_HTML_ELEMENT_TYPE_SECTION,
small = c.DOM_HTML_ELEMENT_TYPE_SMALL,
sub = c.DOM_HTML_ELEMENT_TYPE_SUB,
summary = c.DOM_HTML_ELEMENT_TYPE_SUMMARY,
sup = c.DOM_HTML_ELEMENT_TYPE_SUP,
script = c.DOM_HTML_ELEMENT_TYPE_SCRIPT, script = c.DOM_HTML_ELEMENT_TYPE_SCRIPT,
select = c.DOM_HTML_ELEMENT_TYPE_SELECT, select = c.DOM_HTML_ELEMENT_TYPE_SELECT,
source = c.DOM_HTML_ELEMENT_TYPE_SOURCE, source = c.DOM_HTML_ELEMENT_TYPE_SOURCE,
@@ -126,6 +177,7 @@ pub const Tag = enum(u8) {
th = c.DOM_HTML_ELEMENT_TYPE_TH, th = c.DOM_HTML_ELEMENT_TYPE_TH,
td = c.DOM_HTML_ELEMENT_TYPE_TD, td = c.DOM_HTML_ELEMENT_TYPE_TD,
col = c.DOM_HTML_ELEMENT_TYPE_COL, col = c.DOM_HTML_ELEMENT_TYPE_COL,
colgroup = c.DOM_HTML_ELEMENT_TYPE_COLGROUP,
tr = c.DOM_HTML_ELEMENT_TYPE_TR, tr = c.DOM_HTML_ELEMENT_TYPE_TR,
thead = c.DOM_HTML_ELEMENT_TYPE_THEAD, thead = c.DOM_HTML_ELEMENT_TYPE_THEAD,
tbody = c.DOM_HTML_ELEMENT_TYPE_TBODY, tbody = c.DOM_HTML_ELEMENT_TYPE_TBODY,
@@ -135,8 +187,11 @@ pub const Tag = enum(u8) {
time = c.DOM_HTML_ELEMENT_TYPE_TIME, time = c.DOM_HTML_ELEMENT_TYPE_TIME,
title = c.DOM_HTML_ELEMENT_TYPE_TITLE, title = c.DOM_HTML_ELEMENT_TYPE_TITLE,
track = c.DOM_HTML_ELEMENT_TYPE_TRACK, track = c.DOM_HTML_ELEMENT_TYPE_TRACK,
u = c.DOM_HTML_ELEMENT_TYPE_U,
ul = c.DOM_HTML_ELEMENT_TYPE_UL, ul = c.DOM_HTML_ELEMENT_TYPE_UL,
_var = c.DOM_HTML_ELEMENT_TYPE_VAR,
video = c.DOM_HTML_ELEMENT_TYPE_VIDEO, video = c.DOM_HTML_ELEMENT_TYPE_VIDEO,
wbr = c.DOM_HTML_ELEMENT_TYPE_WBR,
undef = c.DOM_HTML_ELEMENT_TYPE__UNKNOWN, undef = c.DOM_HTML_ELEMENT_TYPE__UNKNOWN,
pub fn all() []Tag { pub fn all() []Tag {
@@ -583,11 +638,15 @@ pub const Button = c.dom_html_button_element;
pub const Canvas = c.dom_html_canvas_element; pub const Canvas = c.dom_html_canvas_element;
pub const DList = c.dom_html_dlist_element; pub const DList = c.dom_html_dlist_element;
pub const Data = struct { base: *c.dom_html_element }; pub const Data = struct { base: *c.dom_html_element };
pub const DataList = struct { base: *c.dom_html_element };
pub const Dialog = struct { base: *c.dom_html_element }; pub const Dialog = struct { base: *c.dom_html_element };
pub const Directory = struct { base: *c.dom_html_element };
pub const Div = c.dom_html_div_element; pub const Div = c.dom_html_div_element;
pub const Embed = struct { base: *c.dom_html_element }; pub const Embed = struct { base: *c.dom_html_element };
pub const FieldSet = c.dom_html_field_set_element; pub const FieldSet = c.dom_html_field_set_element;
pub const Form = c.dom_html_form_element; pub const Form = c.dom_html_form_element;
pub const Font = c.dom_html_font_element;
pub const Frame = c.dom_html_frame_element;
pub const FrameSet = c.dom_html_frame_set_element; pub const FrameSet = c.dom_html_frame_set_element;
pub const HR = c.dom_html_hr_element; pub const HR = c.dom_html_hr_element;
pub const Head = c.dom_html_head_element; pub const Head = c.dom_html_head_element;
@@ -610,6 +669,7 @@ pub const OptGroup = c.dom_html_opt_group_element;
pub const Option = c.dom_html_option_element; pub const Option = c.dom_html_option_element;
pub const Output = struct { base: *c.dom_html_element }; pub const Output = struct { base: *c.dom_html_element };
pub const Paragraph = c.dom_html_paragraph_element; pub const Paragraph = c.dom_html_paragraph_element;
pub const Param = c.dom_html_param_element;
pub const Picture = struct { base: *c.dom_html_element }; pub const Picture = struct { base: *c.dom_html_element };
pub const Pre = c.dom_html_pre_element; pub const Pre = c.dom_html_pre_element;
pub const Progress = struct { base: *c.dom_html_element }; pub const Progress = struct { base: *c.dom_html_element };