Set a null attribute listener must remove existing value

This commit is contained in:
Pierre Tachoire
2026-02-27 14:47:43 +01:00
parent 3bf596c54c
commit 6fd51cfdc0
2 changed files with 130 additions and 98 deletions

View File

@@ -143,6 +143,29 @@
} }
</script> </script>
<script id="js_setter_null_clears_listener">
{
// Setting an event handler property to null must silently clear it (not throw).
// Browsers also accept undefined and non-function values without throwing.
const div = document.createElement('div');
div.onload = () => 42;
testing.expectEqual('function', typeof div.onload);
// Setting to null removes the listener; getter returns null
div.onload = null;
testing.expectEqual(null, div.onload);
div.onerror = () => {};
div.onerror = null;
testing.expectEqual(null, div.onerror);
div.onclick = () => {};
div.onclick = null;
testing.expectEqual(null, div.onclick);
}
</script>
<script id="different_event_types_independent"> <script id="different_event_types_independent">
{ {
// Test that different event types are stored independently // Test that different event types are stored independently

View File

@@ -410,7 +410,7 @@ pub fn hasAttributeFunction(self: *HtmlElement, listener_type: GlobalEventHandle
fn setAttributeListener( fn setAttributeListener(
self: *Element.Html, self: *Element.Html,
listener_type: GlobalEventHandler, listener_type: GlobalEventHandler,
listener_callback: js.Function.Global, listener_callback: ?js.Function.Global,
page: *Page, page: *Page,
) !void { ) !void {
if (comptime IS_DEBUG) { if (comptime IS_DEBUG) {
@@ -420,13 +420,22 @@ fn setAttributeListener(
}); });
} }
try page._element_attr_listeners.put(page.arena, .{ if (listener_callback) |cb| {
try page._element_attr_listeners.put(page.arena, .{
.target = self.asEventTarget(),
.handler = listener_type,
}, cb);
return;
}
// The listener is null, remove existing listener.
_ = page._element_attr_listeners.remove(.{
.target = self.asEventTarget(), .target = self.asEventTarget(),
.handler = listener_type, .handler = listener_type,
}, listener_callback); });
} }
pub fn setOnAbort(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnAbort(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onabort, callback, page); return self.setAttributeListener(.onabort, callback, page);
} }
@@ -434,7 +443,7 @@ pub fn getOnAbort(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onabort, page); return self.getAttributeFunction(.onabort, page);
} }
pub fn setOnAnimationCancel(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnAnimationCancel(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onanimationcancel, callback, page); return self.setAttributeListener(.onanimationcancel, callback, page);
} }
@@ -442,7 +451,7 @@ pub fn getOnAnimationCancel(self: *HtmlElement, page: *Page) !?js.Function.Globa
return self.getAttributeFunction(.onanimationcancel, page); return self.getAttributeFunction(.onanimationcancel, page);
} }
pub fn setOnAnimationEnd(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnAnimationEnd(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onanimationend, callback, page); return self.setAttributeListener(.onanimationend, callback, page);
} }
@@ -450,7 +459,7 @@ pub fn getOnAnimationEnd(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onanimationend, page); return self.getAttributeFunction(.onanimationend, page);
} }
pub fn setOnAnimationIteration(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnAnimationIteration(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onanimationiteration, callback, page); return self.setAttributeListener(.onanimationiteration, callback, page);
} }
@@ -458,7 +467,7 @@ pub fn getOnAnimationIteration(self: *HtmlElement, page: *Page) !?js.Function.Gl
return self.getAttributeFunction(.onanimationiteration, page); return self.getAttributeFunction(.onanimationiteration, page);
} }
pub fn setOnAnimationStart(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnAnimationStart(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onanimationstart, callback, page); return self.setAttributeListener(.onanimationstart, callback, page);
} }
@@ -466,7 +475,7 @@ pub fn getOnAnimationStart(self: *HtmlElement, page: *Page) !?js.Function.Global
return self.getAttributeFunction(.onanimationstart, page); return self.getAttributeFunction(.onanimationstart, page);
} }
pub fn setOnAuxClick(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnAuxClick(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onauxclick, callback, page); return self.setAttributeListener(.onauxclick, callback, page);
} }
@@ -474,7 +483,7 @@ pub fn getOnAuxClick(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onauxclick, page); return self.getAttributeFunction(.onauxclick, page);
} }
pub fn setOnBeforeInput(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnBeforeInput(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onbeforeinput, callback, page); return self.setAttributeListener(.onbeforeinput, callback, page);
} }
@@ -482,7 +491,7 @@ pub fn getOnBeforeInput(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onbeforeinput, page); return self.getAttributeFunction(.onbeforeinput, page);
} }
pub fn setOnBeforeMatch(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnBeforeMatch(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onbeforematch, callback, page); return self.setAttributeListener(.onbeforematch, callback, page);
} }
@@ -490,7 +499,7 @@ pub fn getOnBeforeMatch(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onbeforematch, page); return self.getAttributeFunction(.onbeforematch, page);
} }
pub fn setOnBeforeToggle(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnBeforeToggle(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onbeforetoggle, callback, page); return self.setAttributeListener(.onbeforetoggle, callback, page);
} }
@@ -498,7 +507,7 @@ pub fn getOnBeforeToggle(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onbeforetoggle, page); return self.getAttributeFunction(.onbeforetoggle, page);
} }
pub fn setOnBlur(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnBlur(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onblur, callback, page); return self.setAttributeListener(.onblur, callback, page);
} }
@@ -506,7 +515,7 @@ pub fn getOnBlur(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onblur, page); return self.getAttributeFunction(.onblur, page);
} }
pub fn setOnCancel(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnCancel(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncancel, callback, page); return self.setAttributeListener(.oncancel, callback, page);
} }
@@ -514,7 +523,7 @@ pub fn getOnCancel(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oncancel, page); return self.getAttributeFunction(.oncancel, page);
} }
pub fn setOnCanPlay(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnCanPlay(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncanplay, callback, page); return self.setAttributeListener(.oncanplay, callback, page);
} }
@@ -522,7 +531,7 @@ pub fn getOnCanPlay(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oncanplay, page); return self.getAttributeFunction(.oncanplay, page);
} }
pub fn setOnCanPlayThrough(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnCanPlayThrough(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncanplaythrough, callback, page); return self.setAttributeListener(.oncanplaythrough, callback, page);
} }
@@ -530,7 +539,7 @@ pub fn getOnCanPlayThrough(self: *HtmlElement, page: *Page) !?js.Function.Global
return self.getAttributeFunction(.oncanplaythrough, page); return self.getAttributeFunction(.oncanplaythrough, page);
} }
pub fn setOnChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onchange, callback, page); return self.setAttributeListener(.onchange, callback, page);
} }
@@ -538,7 +547,7 @@ pub fn getOnChange(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onchange, page); return self.getAttributeFunction(.onchange, page);
} }
pub fn setOnClick(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnClick(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onclick, callback, page); return self.setAttributeListener(.onclick, callback, page);
} }
@@ -546,7 +555,7 @@ pub fn getOnClick(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onclick, page); return self.getAttributeFunction(.onclick, page);
} }
pub fn setOnClose(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnClose(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onclose, callback, page); return self.setAttributeListener(.onclose, callback, page);
} }
@@ -554,7 +563,7 @@ pub fn getOnClose(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onclose, page); return self.getAttributeFunction(.onclose, page);
} }
pub fn setOnCommand(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnCommand(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncommand, callback, page); return self.setAttributeListener(.oncommand, callback, page);
} }
@@ -562,7 +571,7 @@ pub fn getOnCommand(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oncommand, page); return self.getAttributeFunction(.oncommand, page);
} }
pub fn setOnContentVisibilityAutoStateChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnContentVisibilityAutoStateChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncontentvisibilityautostatechange, callback, page); return self.setAttributeListener(.oncontentvisibilityautostatechange, callback, page);
} }
@@ -570,7 +579,7 @@ pub fn getOnContentVisibilityAutoStateChange(self: *HtmlElement, page: *Page) !?
return self.getAttributeFunction(.oncontentvisibilityautostatechange, page); return self.getAttributeFunction(.oncontentvisibilityautostatechange, page);
} }
pub fn setOnContextLost(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnContextLost(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncontextlost, callback, page); return self.setAttributeListener(.oncontextlost, callback, page);
} }
@@ -578,7 +587,7 @@ pub fn getOnContextLost(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oncontextlost, page); return self.getAttributeFunction(.oncontextlost, page);
} }
pub fn setOnContextMenu(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnContextMenu(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncontextmenu, callback, page); return self.setAttributeListener(.oncontextmenu, callback, page);
} }
@@ -586,7 +595,7 @@ pub fn getOnContextMenu(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oncontextmenu, page); return self.getAttributeFunction(.oncontextmenu, page);
} }
pub fn setOnContextRestored(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnContextRestored(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncontextrestored, callback, page); return self.setAttributeListener(.oncontextrestored, callback, page);
} }
@@ -594,7 +603,7 @@ pub fn getOnContextRestored(self: *HtmlElement, page: *Page) !?js.Function.Globa
return self.getAttributeFunction(.oncontextrestored, page); return self.getAttributeFunction(.oncontextrestored, page);
} }
pub fn setOnCopy(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnCopy(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncopy, callback, page); return self.setAttributeListener(.oncopy, callback, page);
} }
@@ -602,7 +611,7 @@ pub fn getOnCopy(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oncopy, page); return self.getAttributeFunction(.oncopy, page);
} }
pub fn setOnCueChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnCueChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncuechange, callback, page); return self.setAttributeListener(.oncuechange, callback, page);
} }
@@ -610,7 +619,7 @@ pub fn getOnCueChange(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oncuechange, page); return self.getAttributeFunction(.oncuechange, page);
} }
pub fn setOnCut(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnCut(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oncut, callback, page); return self.setAttributeListener(.oncut, callback, page);
} }
@@ -618,7 +627,7 @@ pub fn getOnCut(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oncut, page); return self.getAttributeFunction(.oncut, page);
} }
pub fn setOnDblClick(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDblClick(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondblclick, callback, page); return self.setAttributeListener(.ondblclick, callback, page);
} }
@@ -626,7 +635,7 @@ pub fn getOnDblClick(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondblclick, page); return self.getAttributeFunction(.ondblclick, page);
} }
pub fn setOnDrag(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDrag(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondrag, callback, page); return self.setAttributeListener(.ondrag, callback, page);
} }
@@ -634,7 +643,7 @@ pub fn getOnDrag(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondrag, page); return self.getAttributeFunction(.ondrag, page);
} }
pub fn setOnDragEnd(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDragEnd(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondragend, callback, page); return self.setAttributeListener(.ondragend, callback, page);
} }
@@ -642,7 +651,7 @@ pub fn getOnDragEnd(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondragend, page); return self.getAttributeFunction(.ondragend, page);
} }
pub fn setOnDragEnter(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDragEnter(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondragenter, callback, page); return self.setAttributeListener(.ondragenter, callback, page);
} }
@@ -650,7 +659,7 @@ pub fn getOnDragEnter(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondragenter, page); return self.getAttributeFunction(.ondragenter, page);
} }
pub fn setOnDragExit(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDragExit(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondragexit, callback, page); return self.setAttributeListener(.ondragexit, callback, page);
} }
@@ -658,7 +667,7 @@ pub fn getOnDragExit(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondragexit, page); return self.getAttributeFunction(.ondragexit, page);
} }
pub fn setOnDragLeave(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDragLeave(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondragleave, callback, page); return self.setAttributeListener(.ondragleave, callback, page);
} }
@@ -666,7 +675,7 @@ pub fn getOnDragLeave(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondragleave, page); return self.getAttributeFunction(.ondragleave, page);
} }
pub fn setOnDragOver(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDragOver(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondragover, callback, page); return self.setAttributeListener(.ondragover, callback, page);
} }
@@ -674,7 +683,7 @@ pub fn getOnDragOver(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondragover, page); return self.getAttributeFunction(.ondragover, page);
} }
pub fn setOnDragStart(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDragStart(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondragstart, callback, page); return self.setAttributeListener(.ondragstart, callback, page);
} }
@@ -682,7 +691,7 @@ pub fn getOnDragStart(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondragstart, page); return self.getAttributeFunction(.ondragstart, page);
} }
pub fn setOnDrop(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDrop(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondrop, callback, page); return self.setAttributeListener(.ondrop, callback, page);
} }
@@ -690,7 +699,7 @@ pub fn getOnDrop(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ondrop, page); return self.getAttributeFunction(.ondrop, page);
} }
pub fn setOnDurationChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnDurationChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ondurationchange, callback, page); return self.setAttributeListener(.ondurationchange, callback, page);
} }
@@ -698,7 +707,7 @@ pub fn getOnDurationChange(self: *HtmlElement, page: *Page) !?js.Function.Global
return self.getAttributeFunction(.ondurationchange, page); return self.getAttributeFunction(.ondurationchange, page);
} }
pub fn setOnEmptied(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnEmptied(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onemptied, callback, page); return self.setAttributeListener(.onemptied, callback, page);
} }
@@ -706,7 +715,7 @@ pub fn getOnEmptied(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onemptied, page); return self.getAttributeFunction(.onemptied, page);
} }
pub fn setOnEnded(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnEnded(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onended, callback, page); return self.setAttributeListener(.onended, callback, page);
} }
@@ -714,7 +723,7 @@ pub fn getOnEnded(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onended, page); return self.getAttributeFunction(.onended, page);
} }
pub fn setOnError(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnError(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onerror, callback, page); return self.setAttributeListener(.onerror, callback, page);
} }
@@ -722,7 +731,7 @@ pub fn getOnError(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onerror, page); return self.getAttributeFunction(.onerror, page);
} }
pub fn setOnFocus(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnFocus(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onfocus, callback, page); return self.setAttributeListener(.onfocus, callback, page);
} }
@@ -730,7 +739,7 @@ pub fn getOnFocus(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onfocus, page); return self.getAttributeFunction(.onfocus, page);
} }
pub fn setOnFormData(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnFormData(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onformdata, callback, page); return self.setAttributeListener(.onformdata, callback, page);
} }
@@ -738,7 +747,7 @@ pub fn getOnFormData(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onformdata, page); return self.getAttributeFunction(.onformdata, page);
} }
pub fn setOnFullscreenChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnFullscreenChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onfullscreenchange, callback, page); return self.setAttributeListener(.onfullscreenchange, callback, page);
} }
@@ -746,7 +755,7 @@ pub fn getOnFullscreenChange(self: *HtmlElement, page: *Page) !?js.Function.Glob
return self.getAttributeFunction(.onfullscreenchange, page); return self.getAttributeFunction(.onfullscreenchange, page);
} }
pub fn setOnFullscreenError(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnFullscreenError(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onfullscreenerror, callback, page); return self.setAttributeListener(.onfullscreenerror, callback, page);
} }
@@ -754,7 +763,7 @@ pub fn getOnFullscreenError(self: *HtmlElement, page: *Page) !?js.Function.Globa
return self.getAttributeFunction(.onfullscreenerror, page); return self.getAttributeFunction(.onfullscreenerror, page);
} }
pub fn setOnGotPointerCapture(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnGotPointerCapture(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ongotpointercapture, callback, page); return self.setAttributeListener(.ongotpointercapture, callback, page);
} }
@@ -762,7 +771,7 @@ pub fn getOnGotPointerCapture(self: *HtmlElement, page: *Page) !?js.Function.Glo
return self.getAttributeFunction(.ongotpointercapture, page); return self.getAttributeFunction(.ongotpointercapture, page);
} }
pub fn setOnInput(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnInput(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oninput, callback, page); return self.setAttributeListener(.oninput, callback, page);
} }
@@ -770,7 +779,7 @@ pub fn getOnInput(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oninput, page); return self.getAttributeFunction(.oninput, page);
} }
pub fn setOnInvalid(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnInvalid(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.oninvalid, callback, page); return self.setAttributeListener(.oninvalid, callback, page);
} }
@@ -778,7 +787,7 @@ pub fn getOnInvalid(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.oninvalid, page); return self.getAttributeFunction(.oninvalid, page);
} }
pub fn setOnKeyDown(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnKeyDown(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onkeydown, callback, page); return self.setAttributeListener(.onkeydown, callback, page);
} }
@@ -786,7 +795,7 @@ pub fn getOnKeyDown(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onkeydown, page); return self.getAttributeFunction(.onkeydown, page);
} }
pub fn setOnKeyPress(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnKeyPress(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onkeypress, callback, page); return self.setAttributeListener(.onkeypress, callback, page);
} }
@@ -794,7 +803,7 @@ pub fn getOnKeyPress(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onkeypress, page); return self.getAttributeFunction(.onkeypress, page);
} }
pub fn setOnKeyUp(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnKeyUp(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onkeyup, callback, page); return self.setAttributeListener(.onkeyup, callback, page);
} }
@@ -802,7 +811,7 @@ pub fn getOnKeyUp(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onkeyup, page); return self.getAttributeFunction(.onkeyup, page);
} }
pub fn setOnLoad(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnLoad(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onload, callback, page); return self.setAttributeListener(.onload, callback, page);
} }
@@ -810,7 +819,7 @@ pub fn getOnLoad(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onload, page); return self.getAttributeFunction(.onload, page);
} }
pub fn setOnLoadedData(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnLoadedData(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onloadeddata, callback, page); return self.setAttributeListener(.onloadeddata, callback, page);
} }
@@ -818,7 +827,7 @@ pub fn getOnLoadedData(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onloadeddata, page); return self.getAttributeFunction(.onloadeddata, page);
} }
pub fn setOnLoadedMetadata(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnLoadedMetadata(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onloadedmetadata, callback, page); return self.setAttributeListener(.onloadedmetadata, callback, page);
} }
@@ -826,7 +835,7 @@ pub fn getOnLoadedMetadata(self: *HtmlElement, page: *Page) !?js.Function.Global
return self.getAttributeFunction(.onloadedmetadata, page); return self.getAttributeFunction(.onloadedmetadata, page);
} }
pub fn setOnLoadStart(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnLoadStart(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onloadstart, callback, page); return self.setAttributeListener(.onloadstart, callback, page);
} }
@@ -834,7 +843,7 @@ pub fn getOnLoadStart(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onloadstart, page); return self.getAttributeFunction(.onloadstart, page);
} }
pub fn setOnLostPointerCapture(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnLostPointerCapture(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onlostpointercapture, callback, page); return self.setAttributeListener(.onlostpointercapture, callback, page);
} }
@@ -842,7 +851,7 @@ pub fn getOnLostPointerCapture(self: *HtmlElement, page: *Page) !?js.Function.Gl
return self.getAttributeFunction(.onlostpointercapture, page); return self.getAttributeFunction(.onlostpointercapture, page);
} }
pub fn setOnMouseDown(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnMouseDown(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onmousedown, callback, page); return self.setAttributeListener(.onmousedown, callback, page);
} }
@@ -850,7 +859,7 @@ pub fn getOnMouseDown(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onmousedown, page); return self.getAttributeFunction(.onmousedown, page);
} }
pub fn setOnMouseMove(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnMouseMove(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onmousemove, callback, page); return self.setAttributeListener(.onmousemove, callback, page);
} }
@@ -858,7 +867,7 @@ pub fn getOnMouseMove(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onmousemove, page); return self.getAttributeFunction(.onmousemove, page);
} }
pub fn setOnMouseOut(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnMouseOut(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onmouseout, callback, page); return self.setAttributeListener(.onmouseout, callback, page);
} }
@@ -866,7 +875,7 @@ pub fn getOnMouseOut(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onmouseout, page); return self.getAttributeFunction(.onmouseout, page);
} }
pub fn setOnMouseOver(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnMouseOver(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onmouseover, callback, page); return self.setAttributeListener(.onmouseover, callback, page);
} }
@@ -874,7 +883,7 @@ pub fn getOnMouseOver(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onmouseover, page); return self.getAttributeFunction(.onmouseover, page);
} }
pub fn setOnMouseUp(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnMouseUp(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onmouseup, callback, page); return self.setAttributeListener(.onmouseup, callback, page);
} }
@@ -882,7 +891,7 @@ pub fn getOnMouseUp(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onmouseup, page); return self.getAttributeFunction(.onmouseup, page);
} }
pub fn setOnPaste(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPaste(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpaste, callback, page); return self.setAttributeListener(.onpaste, callback, page);
} }
@@ -890,7 +899,7 @@ pub fn getOnPaste(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpaste, page); return self.getAttributeFunction(.onpaste, page);
} }
pub fn setOnPause(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPause(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpause, callback, page); return self.setAttributeListener(.onpause, callback, page);
} }
@@ -898,7 +907,7 @@ pub fn getOnPause(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpause, page); return self.getAttributeFunction(.onpause, page);
} }
pub fn setOnPlay(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPlay(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onplay, callback, page); return self.setAttributeListener(.onplay, callback, page);
} }
@@ -906,7 +915,7 @@ pub fn getOnPlay(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onplay, page); return self.getAttributeFunction(.onplay, page);
} }
pub fn setOnPlaying(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPlaying(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onplaying, callback, page); return self.setAttributeListener(.onplaying, callback, page);
} }
@@ -914,7 +923,7 @@ pub fn getOnPlaying(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onplaying, page); return self.getAttributeFunction(.onplaying, page);
} }
pub fn setOnPointerCancel(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerCancel(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointercancel, callback, page); return self.setAttributeListener(.onpointercancel, callback, page);
} }
@@ -922,7 +931,7 @@ pub fn getOnPointerCancel(self: *HtmlElement, page: *Page) !?js.Function.Global
return self.getAttributeFunction(.onpointercancel, page); return self.getAttributeFunction(.onpointercancel, page);
} }
pub fn setOnPointerDown(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerDown(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointerdown, callback, page); return self.setAttributeListener(.onpointerdown, callback, page);
} }
@@ -930,7 +939,7 @@ pub fn getOnPointerDown(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpointerdown, page); return self.getAttributeFunction(.onpointerdown, page);
} }
pub fn setOnPointerEnter(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerEnter(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointerenter, callback, page); return self.setAttributeListener(.onpointerenter, callback, page);
} }
@@ -938,7 +947,7 @@ pub fn getOnPointerEnter(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpointerenter, page); return self.getAttributeFunction(.onpointerenter, page);
} }
pub fn setOnPointerLeave(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerLeave(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointerleave, callback, page); return self.setAttributeListener(.onpointerleave, callback, page);
} }
@@ -946,7 +955,7 @@ pub fn getOnPointerLeave(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpointerleave, page); return self.getAttributeFunction(.onpointerleave, page);
} }
pub fn setOnPointerMove(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerMove(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointermove, callback, page); return self.setAttributeListener(.onpointermove, callback, page);
} }
@@ -954,7 +963,7 @@ pub fn getOnPointerMove(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpointermove, page); return self.getAttributeFunction(.onpointermove, page);
} }
pub fn setOnPointerOut(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerOut(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointerout, callback, page); return self.setAttributeListener(.onpointerout, callback, page);
} }
@@ -962,7 +971,7 @@ pub fn getOnPointerOut(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpointerout, page); return self.getAttributeFunction(.onpointerout, page);
} }
pub fn setOnPointerOver(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerOver(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointerover, callback, page); return self.setAttributeListener(.onpointerover, callback, page);
} }
@@ -970,7 +979,7 @@ pub fn getOnPointerOver(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpointerover, page); return self.getAttributeFunction(.onpointerover, page);
} }
pub fn setOnPointerRawUpdate(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerRawUpdate(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointerrawupdate, callback, page); return self.setAttributeListener(.onpointerrawupdate, callback, page);
} }
@@ -978,7 +987,7 @@ pub fn getOnPointerRawUpdate(self: *HtmlElement, page: *Page) !?js.Function.Glob
return self.getAttributeFunction(.onpointerrawupdate, page); return self.getAttributeFunction(.onpointerrawupdate, page);
} }
pub fn setOnPointerUp(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnPointerUp(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onpointerup, callback, page); return self.setAttributeListener(.onpointerup, callback, page);
} }
@@ -986,7 +995,7 @@ pub fn getOnPointerUp(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onpointerup, page); return self.getAttributeFunction(.onpointerup, page);
} }
pub fn setOnProgress(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnProgress(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onprogress, callback, page); return self.setAttributeListener(.onprogress, callback, page);
} }
@@ -994,7 +1003,7 @@ pub fn getOnProgress(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onprogress, page); return self.getAttributeFunction(.onprogress, page);
} }
pub fn setOnRateChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnRateChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onratechange, callback, page); return self.setAttributeListener(.onratechange, callback, page);
} }
@@ -1002,7 +1011,7 @@ pub fn getOnRateChange(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onratechange, page); return self.getAttributeFunction(.onratechange, page);
} }
pub fn setOnReset(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnReset(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onreset, callback, page); return self.setAttributeListener(.onreset, callback, page);
} }
@@ -1010,7 +1019,7 @@ pub fn getOnReset(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onreset, page); return self.getAttributeFunction(.onreset, page);
} }
pub fn setOnResize(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnResize(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onresize, callback, page); return self.setAttributeListener(.onresize, callback, page);
} }
@@ -1018,7 +1027,7 @@ pub fn getOnResize(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onresize, page); return self.getAttributeFunction(.onresize, page);
} }
pub fn setOnScroll(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnScroll(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onscroll, callback, page); return self.setAttributeListener(.onscroll, callback, page);
} }
@@ -1026,7 +1035,7 @@ pub fn getOnScroll(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onscroll, page); return self.getAttributeFunction(.onscroll, page);
} }
pub fn setOnScrollEnd(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnScrollEnd(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onscrollend, callback, page); return self.setAttributeListener(.onscrollend, callback, page);
} }
@@ -1034,7 +1043,7 @@ pub fn getOnScrollEnd(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onscrollend, page); return self.getAttributeFunction(.onscrollend, page);
} }
pub fn setOnSecurityPolicyViolation(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSecurityPolicyViolation(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onsecuritypolicyviolation, callback, page); return self.setAttributeListener(.onsecuritypolicyviolation, callback, page);
} }
@@ -1042,7 +1051,7 @@ pub fn getOnSecurityPolicyViolation(self: *HtmlElement, page: *Page) !?js.Functi
return self.getAttributeFunction(.onsecuritypolicyviolation, page); return self.getAttributeFunction(.onsecuritypolicyviolation, page);
} }
pub fn setOnSeeked(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSeeked(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onseeked, callback, page); return self.setAttributeListener(.onseeked, callback, page);
} }
@@ -1050,7 +1059,7 @@ pub fn getOnSeeked(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onseeked, page); return self.getAttributeFunction(.onseeked, page);
} }
pub fn setOnSeeking(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSeeking(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onseeking, callback, page); return self.setAttributeListener(.onseeking, callback, page);
} }
@@ -1058,7 +1067,7 @@ pub fn getOnSeeking(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onseeking, page); return self.getAttributeFunction(.onseeking, page);
} }
pub fn setOnSelect(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSelect(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onselect, callback, page); return self.setAttributeListener(.onselect, callback, page);
} }
@@ -1066,7 +1075,7 @@ pub fn getOnSelect(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onselect, page); return self.getAttributeFunction(.onselect, page);
} }
pub fn setOnSelectionChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSelectionChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onselectionchange, callback, page); return self.setAttributeListener(.onselectionchange, callback, page);
} }
@@ -1074,7 +1083,7 @@ pub fn getOnSelectionChange(self: *HtmlElement, page: *Page) !?js.Function.Globa
return self.getAttributeFunction(.onselectionchange, page); return self.getAttributeFunction(.onselectionchange, page);
} }
pub fn setOnSelectStart(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSelectStart(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onselectstart, callback, page); return self.setAttributeListener(.onselectstart, callback, page);
} }
@@ -1082,7 +1091,7 @@ pub fn getOnSelectStart(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onselectstart, page); return self.getAttributeFunction(.onselectstart, page);
} }
pub fn setOnSlotChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSlotChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onslotchange, callback, page); return self.setAttributeListener(.onslotchange, callback, page);
} }
@@ -1090,7 +1099,7 @@ pub fn getOnSlotChange(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onslotchange, page); return self.getAttributeFunction(.onslotchange, page);
} }
pub fn setOnStalled(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnStalled(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onstalled, callback, page); return self.setAttributeListener(.onstalled, callback, page);
} }
@@ -1098,7 +1107,7 @@ pub fn getOnStalled(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onstalled, page); return self.getAttributeFunction(.onstalled, page);
} }
pub fn setOnSubmit(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSubmit(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onsubmit, callback, page); return self.setAttributeListener(.onsubmit, callback, page);
} }
@@ -1106,7 +1115,7 @@ pub fn getOnSubmit(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onsubmit, page); return self.getAttributeFunction(.onsubmit, page);
} }
pub fn setOnSuspend(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnSuspend(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onsuspend, callback, page); return self.setAttributeListener(.onsuspend, callback, page);
} }
@@ -1114,7 +1123,7 @@ pub fn getOnSuspend(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onsuspend, page); return self.getAttributeFunction(.onsuspend, page);
} }
pub fn setOnTimeUpdate(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnTimeUpdate(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ontimeupdate, callback, page); return self.setAttributeListener(.ontimeupdate, callback, page);
} }
@@ -1122,7 +1131,7 @@ pub fn getOnTimeUpdate(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ontimeupdate, page); return self.getAttributeFunction(.ontimeupdate, page);
} }
pub fn setOnToggle(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnToggle(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ontoggle, callback, page); return self.setAttributeListener(.ontoggle, callback, page);
} }
@@ -1130,7 +1139,7 @@ pub fn getOnToggle(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.ontoggle, page); return self.getAttributeFunction(.ontoggle, page);
} }
pub fn setOnTransitionCancel(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnTransitionCancel(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ontransitioncancel, callback, page); return self.setAttributeListener(.ontransitioncancel, callback, page);
} }
@@ -1138,7 +1147,7 @@ pub fn getOnTransitionCancel(self: *HtmlElement, page: *Page) !?js.Function.Glob
return self.getAttributeFunction(.ontransitioncancel, page); return self.getAttributeFunction(.ontransitioncancel, page);
} }
pub fn setOnTransitionEnd(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnTransitionEnd(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ontransitionend, callback, page); return self.setAttributeListener(.ontransitionend, callback, page);
} }
@@ -1146,7 +1155,7 @@ pub fn getOnTransitionEnd(self: *HtmlElement, page: *Page) !?js.Function.Global
return self.getAttributeFunction(.ontransitionend, page); return self.getAttributeFunction(.ontransitionend, page);
} }
pub fn setOnTransitionRun(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnTransitionRun(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ontransitionrun, callback, page); return self.setAttributeListener(.ontransitionrun, callback, page);
} }
@@ -1154,7 +1163,7 @@ pub fn getOnTransitionRun(self: *HtmlElement, page: *Page) !?js.Function.Global
return self.getAttributeFunction(.ontransitionrun, page); return self.getAttributeFunction(.ontransitionrun, page);
} }
pub fn setOnTransitionStart(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnTransitionStart(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.ontransitionstart, callback, page); return self.setAttributeListener(.ontransitionstart, callback, page);
} }
@@ -1162,7 +1171,7 @@ pub fn getOnTransitionStart(self: *HtmlElement, page: *Page) !?js.Function.Globa
return self.getAttributeFunction(.ontransitionstart, page); return self.getAttributeFunction(.ontransitionstart, page);
} }
pub fn setOnVolumeChange(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnVolumeChange(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onvolumechange, callback, page); return self.setAttributeListener(.onvolumechange, callback, page);
} }
@@ -1170,7 +1179,7 @@ pub fn getOnVolumeChange(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onvolumechange, page); return self.getAttributeFunction(.onvolumechange, page);
} }
pub fn setOnWaiting(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnWaiting(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onwaiting, callback, page); return self.setAttributeListener(.onwaiting, callback, page);
} }
@@ -1178,7 +1187,7 @@ pub fn getOnWaiting(self: *HtmlElement, page: *Page) !?js.Function.Global {
return self.getAttributeFunction(.onwaiting, page); return self.getAttributeFunction(.onwaiting, page);
} }
pub fn setOnWheel(self: *HtmlElement, callback: js.Function.Global, page: *Page) !void { pub fn setOnWheel(self: *HtmlElement, callback: ?js.Function.Global, page: *Page) !void {
return self.setAttributeListener(.onwheel, callback, page); return self.setAttributeListener(.onwheel, callback, page);
} }