[html5] r7146 - [e] (0) sync with WebIDL for event handlers Affected topics: DOM APIs, HTML, Off [...]

whatwg at whatwg.org whatwg at whatwg.org
Tue Jun 26 12:58:44 PDT 2012


Author: ianh
Date: 2012-06-26 12:58:43 -0700 (Tue, 26 Jun 2012)
New Revision: 7146

Modified:
   complete.html
   index
   source
Log:
[e] (0) sync with WebIDL for event handlers
Affected topics: DOM APIs, HTML, Offline Web Applications, Server-Sent Events, Video Text Tracks, Video and Audio, Web Workers, WebSocket API

Modified: complete.html
===================================================================
--- complete.html	2012-06-26 19:29:30 UTC (rev 7145)
+++ complete.html	2012-06-26 19:58:43 UTC (rev 7146)
@@ -9707,7 +9707,7 @@
 
      <dd><p>Let <var title="">output</var> be a clone of the object as defined by the other specification.</dd>
 
-     <dt>If <var title="">input</var> is another native object type (e.g. <code>Error</code>, <code><a href=#function>Function</a></code>)</dt>
+     <dt>If <var title="">input</var> is another native object type (e.g. <code>Error</code>, <code>Function</code>)</dt>
      <dt>If <var title="">input</var> is a host object (e.g. a DOM node)</dt>
 
      <dd><p>Throw a <code><a href=#datacloneerror>DataCloneError</a></code> exception and abort
@@ -9931,64 +9931,64 @@
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-commands title=dom-document-commands>commands</a>;
 
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclose title=handler-onclose>onclose</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onblur title=handler-onblur>onblur</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclose title=handler-onclose>onclose</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#onerroreventhandler>OnErrorEventHandler</a> <a href=#handler-onerror title=handler-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onload title=handler-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 
   // special <a href=#event-handler-idl-attributes>event handler IDL attributes</a> that only apply to Document objects
-  [TreatNonCallableAsNull,LenientThis] attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+  [LenientThis] attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
 };</pre>
 
 
@@ -10948,61 +10948,61 @@
   readonly attribute <a href=#cssstyledeclaration>CSSStyleDeclaration</a> <a href=#dom-style title=dom-style>style</a>;
 
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclose title=handler-onclose>onclose</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onblur title=handler-onblur>onblur</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclose title=handler-onclose>onclose</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#onerroreventhandler>OnErrorEventHandler</a> <a href=#handler-onerror title=handler-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onload title=handler-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };
 
 interface <dfn id=htmlunknownelement>HTMLUnknownElement</dfn> : <a href=#htmlelement>HTMLElement</a> { };</pre>
@@ -17538,24 +17538,24 @@
    <dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
    <dd>
 <pre class=idl>interface <dfn id=htmlbodyelement>HTMLBodyElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#onerroreventhandler>OnErrorEventHandler</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
 };</pre>
 </dd>
   </dl><!--TOPIC:HTML--><p>The <code><a href=#the-body-element>body</a></code> element <a href=#represents>represents</a> the main
@@ -31300,9 +31300,9 @@
   getter <a href=#audiotrack>AudioTrack</a> (unsigned long index);
   <a href=#audiotrack>AudioTrack</a>? <a href=#dom-audiotracklist-gettrackbyid title=dom-AudioTrackList-getTrackById>getTrackById</a>(DOMString id);
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onremovetrack title=handler-TrackList-onremovetrack>onremovetrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onremovetrack title=handler-TrackList-onremovetrack>onremovetrack</a>;
 };
 
 interface <dfn id=audiotrack>AudioTrack</dfn> {
@@ -31319,9 +31319,9 @@
   <a href=#videotrack>VideoTrack</a>? <a href=#dom-videotracklist-gettrackbyid title=dom-VideoTrackList-getTrackById>getTrackById</a>(DOMString id);
   readonly attribute long <a href=#dom-videotracklist-selectedindex title=dom-VideoTrackList-selectedIndex>selectedIndex</a>;
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onremovetrack title=handler-TrackList-onremovetrack>onremovetrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onremovetrack title=handler-TrackList-onremovetrack>onremovetrack</a>;
 };
 
 interface <dfn id=videotrack>VideoTrack</dfn> {
@@ -31774,21 +31774,21 @@
            attribute double <a href=#dom-mediacontroller-volume title=dom-MediaController-volume>volume</a>;
            attribute boolean <a href=#dom-mediacontroller-muted title=dom-MediaController-muted>muted</a>;
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onended title=handler-MediaController-onended>onended</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onended title=handler-MediaController-onended>onended</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onvolumechange title=handler-MediaController-onvolumechange>onvolumechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onvolumechange title=handler-MediaController-onvolumechange>onvolumechange</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">controller</var> = new <code title=dom-MediaController><a href=#dom-mediacontroller>MediaController</a></code>()</dt>
@@ -33528,8 +33528,8 @@
   readonly attribute unsigned long <a href=#dom-texttracklist-length title=dom-TextTrackList-length>length</a>;
   getter <a href=#texttrack>TextTrack</a> (unsigned long index);
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttracklist-onaddtrack title=handler-TextTrackList-onaddtrack>onaddtrack</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttracklist-onremovetrack title=handler-TextTrackList-onremovetrack>onremovetrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttracklist-onaddtrack title=handler-TextTrackList-onaddtrack>onaddtrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttracklist-onremovetrack title=handler-TextTrackList-onremovetrack>onremovetrack</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-textTracks><a href=#dom-media-texttracks>textTracks</a></code> . <code title="">length</code></dt>
@@ -33595,7 +33595,7 @@
   void <a href=#dom-texttrack-addcue title=dom-TextTrack-addCue>addCue</a>(<a href=#texttrackcue>TextTrackCue</a> cue);
   void <a href=#dom-texttrack-removecue title=dom-TextTrack-removeCue>removeCue</a>(<a href=#texttrackcue>TextTrackCue</a> cue);
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">textTrack</var> . <code title=dom-TextTrack-kind><a href=#dom-texttrack-kind>kind</a></code></dt>
@@ -33985,8 +33985,8 @@
            attribute DOMString <a href=#dom-texttrackcue-text title=dom-TextTrackCue-text>text</a>;
   <a href=#documentfragment>DocumentFragment</a> <a href=#dom-texttrackcue-getcueashtml title=dom-TextTrackCue-getCueAsHTML>getCueAsHTML</a>();
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">cue</var> = new <code title=dom-TextTrackCue><a href=#dom-texttrackcue>TextTrackCue</a></code>( <var title="">startTime</var>, <var title="">endTime</var>, <var title="">text</var> )</dt>
@@ -65437,74 +65437,74 @@
   void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, DOMString targetOrigin, optional sequence<<a href=#transferable>Transferable</a>> transfer);
 <!--POSTMSG-->
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclose title=handler-onclose>onclose</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclose title=handler-onclose>onclose</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#onerroreventhandler>OnErrorEventHandler</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };</pre>
 
 <!-- for more features to add here, look here:
@@ -71488,14 +71488,14 @@
   void <a href=#dom-appcache-swapcache title=dom-appcache-swapCache>swapCache</a>();
 
   // events
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">cache</var> = <var title="">window</var> . <code title=dom-applicationCache><a href=#dom-applicationcache>applicationCache</a></code></dt>
@@ -71880,7 +71880,7 @@
     <p class=example>In JavaScript, the script execution environment
     consists of the interpreter, the stack of <i>execution
     contexts</i>, the <i>global code</i> and <i>function code</i> and
-    the Function objects resulting, and so forth.</p>
+    the <code>Function</code> objects resulting, and so forth.</p>
 
    </dd>
 
@@ -71892,9 +71892,9 @@
     that the script exposes to other scripts and to the user
     agent.</p>
 
-    <p class=example>Each Function object in a JavaScript
-    <a href=#script-execution-environment>script execution environment</a> has a corresponding code
-    entry-point, for instance.</p>
+    <p class=example>Each <code>Function</code> object in a
+    JavaScript <a href=#script-execution-environment>script execution environment</a> has a
+    corresponding code entry-point, for instance.</p>
 
     <p>The main program code of the script, if any, is the
     <dfn id=initial-code-entry-point><i>initial code entry-point</i></dfn>. Typically, the code
@@ -72154,7 +72154,7 @@
   after which the error is either <dfn id=concept-error-handled title=concept-error-handled><i>handled</i></dfn> or <dfn id=concept-error-nothandled title=concept-error-nothandled><i>not handled</i></dfn>:</p>
 
   <dl class=switch><dt>If the value of <var title="">onerror</var> is a
-   <code><a href=#function>Function</a></code></dt>
+   <code><a href=#onerroreventhandler>OnErrorEventHandler</a></code></dt>
 
    <dd>
 
@@ -72170,10 +72170,10 @@
 
      <li>
 
-      <p>The function must be invoked with four arguments: <var title="">message</var>, <var title="">location</var>, <var title="">line</var>, and <var title="">col</var>.</p>
+      <p>The callback must be invoked with four arguments: <var title="">message</var>, <var title="">location</var>, <var title="">line</var>, and <var title="">col</var>.</p>
 
-      <p>If the function returns true, then the error is <i title=concept-error-handled><a href=#concept-error-handled>handled</a></i>. Otherwise, the error is
-      <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i>.</p>
+      <p>If the callback returns true, then the error is <i title=concept-error-handled><a href=#concept-error-handled>handled</a></i>. Otherwise, the error
+      is <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i>.</p>
 
       <p>Any uncaught exceptions thrown or errors caused by this
       function may be reported to the user immediately after the error
@@ -72704,8 +72704,8 @@
   specified. <a href=#refsDOMCORE>[DOMCORE]</a></p>
 
   <p>An <a href=#event-handlers title="event handlers">event handler</a> can either
-  have the value null or be set to a <code><a href=#function>Function</a></code>
-  object. <span class=impl>Initially, event handlers must be set to
+  have the value null or be set to a callback object. This is defined
+  using the <code><a href=#eventhandler>EventHandler</a></code> callback interface type. <span class=impl>Initially, event handlers must be set to
   null.</span></p>
 
   <p>Event handlers are exposed in one or two ways.</p>
@@ -72932,9 +72932,9 @@
   event listeners for a particular event type will always be first the
   event listeners registered with <code title=dom-EventTarget-addEventListener>addEventListener()</code>
   before the first time the <a href=#event-handlers title="event handlers">event
-  handler</a> was set to a non-null value, then the
-  <code><a href=#function>Function</a></code> to which it is currently set, if any, and
-  finally the event listeners registered with <code title=dom-EventTarget-addEventListener>addEventListener()</code>
+  handler</a> was set to a non-null value, then the callback to
+  which it is currently set, if any, and finally the event listeners
+  registered with <code title=dom-EventTarget-addEventListener>addEventListener()</code>
   <em>after</em> the first time the <a href=#event-handlers title="event handlers">event
   handler</a> was set to a non-null value.</p>
 
@@ -72983,10 +72983,10 @@
    these steps.</li>
 
    <li><p>Let <var title="">callback</var> be <var title="">H</var>'s
-   value, the <code><a href=#function>Function</a></code> object that the <a href=#event-handlers title="event
-   handlers">event handler</a> was last set to.</li>
+   value, the callback that the <a href=#event-handlers title="event handlers">event
+   handler</a> was last set to.</li>
 
-   <li><p>Invoke <var title="">callback</var>'s <code title=dom-function-call><a href=#dom-function-call>call()</a></code> operation with one
+   <li><p>Invoke <var title="">callback</var> with one
    argument, the value of which is the <code><a href=#event>Event</a></code> object <var title="">E</var>, with the <i title=dfn-callback-this-value>callback this value</i> set to the
    <var title="">E</var>'s <code title=dom-Event-currentTarget>currentTarget</code>. Let the
    return value be <var title="">return value</var>. <a href=#refsWEBIDL>[WEBIDL]</a></li>
@@ -73019,21 +73019,17 @@
 
   </ol></div>
 
-  <hr><p>The <code><a href=#function>Function</a></code> interface represents a function in the
-  scripting language being used. It is represented in Web IDL as
+  <hr><p>The <code><a href=#eventhandler>EventHandler</a></code> interface represents a callback
+  used for event handlers. It is represented in Web IDL as
   follows:</p>
 
-  <pre class=idl>[Callback=FunctionOnly, NoInterfaceObject]
-interface <dfn id=function>Function</dfn> {
-  any <a href=#dom-function-call title=dom-function-call>call</a>(any... arguments);
-};</pre>
+  <pre class=idl>[TreatNonCallableAsNull]
+callback <dfn id=eventhandlernonnull>EventHandlerNonNull</dfn> = any (<a href=#event>Event</a> event);
+typedef <a href=#eventhandlernonnull>EventHandlerNonNull</a>? <dfn id=eventhandler>EventHandler</dfn>;</pre>
 
-  <p>The <dfn id=dom-function-call title=dom-function-call><code>call(...)</code></dfn>
-  method is the object's callback.</p>
+  <p class=note>In JavaScript, any <code>Function</code> object
+  implements this interface.</p>
 
-  <p class=note>In JavaScript, any <code title="">Function</code>
-  object implements this interface.</p>
-
   <div class=example>
 
    <p>For example, the following document fragment:</p>
@@ -73054,7 +73050,16 @@
   <code title=event-beforeunload>beforeunload</code> events, the
   value is instead used to determine the message to show the user.</p>
 
+  <p>For historical reasons, the <code title=handler-onerror><a href=#handler-onerror>onerror</a></code> handler has different
+  arguments:</p>
 
+  <pre class=idl>[TreatNonCallableAsNull]
+callback <dfn id=onerroreventhandlernonnull>OnErrorEventHandlerNonNull</dfn> = any ((<a href=#event>Event</a> or DOMString) event, DOMString source, unsigned long lineno, unsigned long column);
+typedef <a href=#onerroreventhandlernonnull>OnErrorEventHandlerNonNull</a>? <dfn id=onerroreventhandler>OnErrorEventHandler</dfn>;</pre>
+
+  <!-- onreadystatechange is also defined specially, using [LenientThis]; see IDL -->
+
+
   <h5 id=event-handlers-on-elements,-document-objects,-and-window-objects><span class=secno>7.1.6.2 </span>Event handlers on elements, <code><a href=#document>Document</a></code> objects, and <code><a href=#window>Window</a></code> objects</h5>
 
   <p>The following are the <a href=#event-handlers>event handlers</a> (and their
@@ -73482,15 +73487,17 @@
 
   <pre class=idl>[NoInterfaceObject]
 interface <dfn id=windowtimers>WindowTimers</dfn> {
-  long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>(Function handler, optional long timeout, any... args);
+  long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>(<a href=#arbitrarycallback>ArbitraryCallback</a> handler, optional long timeout, any... args);
   long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>([AllowAny] DOMString handler, optional long timeout, any... args);
   void <a href=#dom-windowtimers-cleartimeout title=dom-windowtimers-clearTimeout>clearTimeout</a>(long handle);
-  long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>(Function handler, optional long timeout, any... args);
+  long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>(<a href=#arbitrarycallback>ArbitraryCallback</a> handler, optional long timeout, any... args);
   long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>([AllowAny] DOMString handler, optional long timeout, any... args);
   void <a href=#dom-windowtimers-clearinterval title=dom-windowtimers-clearInterval>clearInterval</a>(long handle);
 };
-<a href=#window>Window</a> implements <a href=#windowtimers>WindowTimers</a>;</pre>
+<a href=#window>Window</a> implements <a href=#windowtimers>WindowTimers</a>;
 
+[TreatNonCallableAsNull] callback <dfn id=arbitrarycallback>ArbitraryCallback</dfn> = any (any... args);</pre>
+
   <!-- Demonstrating the need for wrapping of the timeout argument value treated as long rather than clamping or treating as double:
           http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1228
        Demonstrating the need for the timeout argument to be signed rather than unsigned:
@@ -73750,12 +73757,12 @@
 
   <ol><li>
 
-    <p>If the first argument to the invoked method is a
-    <code><a href=#function>Function</a></code>, then return a <a href=#concept-task title=concept-task>task</a> that checks if the entry for <var title="">handle</var> in <var title="">list</var> has been
-    cleared, and if it has not, calls the <code><a href=#function>Function</a></code> with
-    as its arguments the third and subsequent arguments to the invoked
-    method (if any) and with an undefined <var title="">thisArg</var>,
-    and abort these steps. <a href=#refsECMA262>[ECMA262]</a></p>
+    <p>If the first argument to the invoked method is an
+    <code><a href=#arbitrarycallback>ArbitraryCallback</a></code>, then return a <a href=#concept-task title=concept-task>task</a> that checks if the entry for <var title="">handle</var> in <var title="">list</var> has been
+    cleared, and if it has not, calls the
+    <code><a href=#arbitrarycallback>ArbitraryCallback</a></code> with as its arguments the third and
+    subsequent arguments to the invoked method (if any) and with an
+    undefined <var title="">thisArg</var>, and abort these steps. <a href=#refsECMA262>[ECMA262]</a></p>
 
     <p class=note>Setting <var title="">thisArg</var> to undefined
     means that the function code will be executed with the <code title="">this</code> keyword bound to the <code><a href=#windowproxy>WindowProxy</a></code>
@@ -80019,10 +80026,10 @@
   readonly attribute <a href=#workerlocation>WorkerLocation</a> <a href=#dom-workerglobalscope-location title=dom-WorkerGlobalScope-location>location</a>;
 
   void <a href=#dom-workerglobalscope-close title=dom-WorkerGlobalScope-close>close</a>();
-<!-- v2-onclose  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
--->  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline>onoffline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline>ononline</a>;
+<!-- v2-onclose           attribute <span>EventHandler</span> <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
+-->           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline>onoffline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline>ononline</a>;
 };
 <a href=#workerglobalscope>WorkerGlobalScope</a> implements <a href=#workerutils>WorkerUtils</a>;</pre>
 
@@ -80068,7 +80075,7 @@
   <pre class=idl>interface <dfn id=dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
   void <a href=#dom-dedicatedworkerglobalscope-postmessage title=dom-DedicatedWorkerGlobalScope-postMessage>postMessage</a>(any message, optional sequence<<a href=#transferable>Transferable</a>> transfer);<!--
   <span>MessagePort</span> <span title="dom-DedicatedWorkerGlobalScope-startConversation">startConversation</span>(any message);-->
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-dedicatedworkerglobalscope-onmessage title=handler-DedicatedWorkerGlobalScope-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-dedicatedworkerglobalscope-onmessage title=handler-DedicatedWorkerGlobalScope-onmessage>onmessage</a>;
 };</pre>
 
   <p>The <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> interface must not
@@ -80112,7 +80119,7 @@
   <pre class=idl>interface <dfn id=sharedworkerglobalscope>SharedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
   readonly attribute DOMString <a href=#dom-sharedworkerglobalscope-name title=dom-SharedWorkerGlobalScope-name>name</a>;
   readonly attribute <a href=#applicationcache>ApplicationCache</a> <a href=#dom-sharedworkerglobalscope-applicationcache title=dom-SharedWorkerGlobalScope-applicationCache>applicationCache</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-sharedworkerglobalscope-onconnect title=handler-SharedWorkerGlobalScope-onconnect>onconnect</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-sharedworkerglobalscope-onconnect title=handler-SharedWorkerGlobalScope-onconnect>onconnect</a>;
 };</pre>
 
   <p>The <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> interface must not
@@ -80615,8 +80622,8 @@
 
   <pre class=idl>[NoInterfaceObject]
 interface <dfn id=abstractworker>AbstractWorker</dfn> {
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-abstractworker-onerror title=handler-AbstractWorker-onerror>onerror</a>;
-<!-- v2-onclose  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-AbstractWorker-onclose">onclose</span>; -->
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-abstractworker-onerror title=handler-AbstractWorker-onerror>onerror</a>;
+<!-- v2-onclose           attribute <span>EventHandler</span> <span title="handler-AbstractWorker-onclose">onclose</span>; -->
 };</pre>
 
   <p>The following are the <a href=#event-handlers>event handlers</a> (and their
@@ -80635,7 +80642,7 @@
 
   void <a href=#dom-worker-postmessage title=dom-Worker-postMessage>postMessage</a>(any message, optional sequence<<a href=#transferable>Transferable</a>> transfer);<!--
   <span>MessagePort</span> <span title="dom-Worker-startConversation">startConversation</span>(any message);-->
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-worker-onmessage title=handler-Worker-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-worker-onmessage title=handler-Worker-onmessage>onmessage</a>;
 };
 <a href=#worker>Worker</a> implements <a href=#abstractworker>AbstractWorker</a>;</pre>
 
@@ -81449,9 +81456,9 @@
   readonly attribute unsigned short <a href=#dom-eventsource-readystate title=dom-EventSource-readyState>readyState</a>;
 
   // networking
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onopen title=handler-EventSource-onopen>onopen</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onmessage title=handler-EventSource-onmessage>onmessage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onerror title=handler-EventSource-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-eventsource-onopen title=handler-EventSource-onopen>onopen</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-eventsource-onmessage title=handler-EventSource-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-eventsource-onerror title=handler-EventSource-onerror>onerror</a>;
   void <a href=#dom-eventsource-close title=dom-EventSource-close>close</a>();
 };
 
@@ -82322,15 +82329,15 @@
   readonly attribute unsigned long <a href=#dom-websocket-bufferedamount title=dom-WebSocket-bufferedAmount>bufferedAmount</a>;
 
   // networking
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onopen title=handler-WebSocket-onopen>onopen</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onerror title=handler-WebSocket-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onclose title=handler-WebSocket-onclose>onclose</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-websocket-onopen title=handler-WebSocket-onopen>onopen</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-websocket-onerror title=handler-WebSocket-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-websocket-onclose title=handler-WebSocket-onclose>onclose</a>;
   readonly attribute DOMString <a href=#dom-websocket-extensions title=dom-WebSocket-extensions>extensions</a>;
   readonly attribute DOMString <a href=#dom-websocket-protocol title=dom-WebSocket-protocol>protocol</a>;
   void <a href=#dom-websocket-close title=dom-WebSocket-close>close</a>([Clamp] optional unsigned short code, optional DOMString reason);
 
   // messaging
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onmessage title=handler-WebSocket-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-websocket-onmessage title=handler-WebSocket-onmessage>onmessage</a>;
            attribute DOMString <a href=#dom-websocket-binarytype title=dom-WebSocket-binaryType>binaryType</a>;
   void <a href=#dom-websocket-send title=dom-WebSocket-send>send</a>(DOMString data);
   void <a href=#dom-websocket-send title=dom-WebSocket-send>send</a>(<span>ArrayBufferView</span> data);
@@ -83607,7 +83614,7 @@
   void <a href=#dom-messageport-close title=dom-MessagePort-close>close</a>();
 
   // event handlers
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
 };
 <a href=#messageport>MessagePort</a> implements <a href=#transferable>Transferable</a>;</pre>
 
@@ -97475,9 +97482,9 @@
            attribute unsigned long <a href=#dom-marquee-vspace title=dom-marquee-vspace>vspace</a>;
            attribute DOMString <a href=#dom-marquee-width title=dom-marquee-width>width</a>;
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onstart title=handler-marquee-onstart>onstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-marquee-onstart title=handler-marquee-onstart>onstart</a>;
 
   void <a href=#dom-marquee-start title=dom-marquee-start>start</a>();
   void <a href=#dom-marquee-stop title=dom-marquee-stop>stop</a>();
@@ -97638,24 +97645,24 @@
   <pre class=idl>interface <dfn id=htmlframesetelement>HTMLFrameSetElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute DOMString <a href=#dom-frameset-cols title=dom-frameset-cols>cols</a>;
            attribute DOMString <a href=#dom-frameset-rows title=dom-frameset-rows>rows</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
 };</pre>
 
   <p>The <dfn id=dom-frameset-cols title=dom-frameset-cols><code>cols</code></dfn> and

Modified: index
===================================================================
--- index	2012-06-26 19:29:30 UTC (rev 7145)
+++ index	2012-06-26 19:58:43 UTC (rev 7146)
@@ -9707,7 +9707,7 @@
 
      <dd><p>Let <var title="">output</var> be a clone of the object as defined by the other specification.</dd>
 
-     <dt>If <var title="">input</var> is another native object type (e.g. <code>Error</code>, <code><a href=#function>Function</a></code>)</dt>
+     <dt>If <var title="">input</var> is another native object type (e.g. <code>Error</code>, <code>Function</code>)</dt>
      <dt>If <var title="">input</var> is a host object (e.g. a DOM node)</dt>
 
      <dd><p>Throw a <code><a href=#datacloneerror>DataCloneError</a></code> exception and abort
@@ -9931,64 +9931,64 @@
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-commands title=dom-document-commands>commands</a>;
 
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclose title=handler-onclose>onclose</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onblur title=handler-onblur>onblur</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclose title=handler-onclose>onclose</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#onerroreventhandler>OnErrorEventHandler</a> <a href=#handler-onerror title=handler-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onload title=handler-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 
   // special <a href=#event-handler-idl-attributes>event handler IDL attributes</a> that only apply to Document objects
-  [TreatNonCallableAsNull,LenientThis] attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+  [LenientThis] attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
 };</pre>
 
 
@@ -10948,61 +10948,61 @@
   readonly attribute <a href=#cssstyledeclaration>CSSStyleDeclaration</a> <a href=#dom-style title=dom-style>style</a>;
 
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclose title=handler-onclose>onclose</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onblur title=handler-onblur>onblur</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclose title=handler-onclose>onclose</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#onerroreventhandler>OnErrorEventHandler</a> <a href=#handler-onerror title=handler-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onload title=handler-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };
 
 interface <dfn id=htmlunknownelement>HTMLUnknownElement</dfn> : <a href=#htmlelement>HTMLElement</a> { };</pre>
@@ -17538,24 +17538,24 @@
    <dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
    <dd>
 <pre class=idl>interface <dfn id=htmlbodyelement>HTMLBodyElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#onerroreventhandler>OnErrorEventHandler</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
 };</pre>
 </dd>
   </dl><!--TOPIC:HTML--><p>The <code><a href=#the-body-element>body</a></code> element <a href=#represents>represents</a> the main
@@ -31300,9 +31300,9 @@
   getter <a href=#audiotrack>AudioTrack</a> (unsigned long index);
   <a href=#audiotrack>AudioTrack</a>? <a href=#dom-audiotracklist-gettrackbyid title=dom-AudioTrackList-getTrackById>getTrackById</a>(DOMString id);
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onremovetrack title=handler-TrackList-onremovetrack>onremovetrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onremovetrack title=handler-TrackList-onremovetrack>onremovetrack</a>;
 };
 
 interface <dfn id=audiotrack>AudioTrack</dfn> {
@@ -31319,9 +31319,9 @@
   <a href=#videotrack>VideoTrack</a>? <a href=#dom-videotracklist-gettrackbyid title=dom-VideoTrackList-getTrackById>getTrackById</a>(DOMString id);
   readonly attribute long <a href=#dom-videotracklist-selectedindex title=dom-VideoTrackList-selectedIndex>selectedIndex</a>;
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onremovetrack title=handler-TrackList-onremovetrack>onremovetrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-tracklist-onremovetrack title=handler-TrackList-onremovetrack>onremovetrack</a>;
 };
 
 interface <dfn id=videotrack>VideoTrack</dfn> {
@@ -31774,21 +31774,21 @@
            attribute double <a href=#dom-mediacontroller-volume title=dom-MediaController-volume>volume</a>;
            attribute boolean <a href=#dom-mediacontroller-muted title=dom-MediaController-muted>muted</a>;
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onended title=handler-MediaController-onended>onended</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onended title=handler-MediaController-onended>onended</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onvolumechange title=handler-MediaController-onvolumechange>onvolumechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-mediacontroller-onvolumechange title=handler-MediaController-onvolumechange>onvolumechange</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">controller</var> = new <code title=dom-MediaController><a href=#dom-mediacontroller>MediaController</a></code>()</dt>
@@ -33528,8 +33528,8 @@
   readonly attribute unsigned long <a href=#dom-texttracklist-length title=dom-TextTrackList-length>length</a>;
   getter <a href=#texttrack>TextTrack</a> (unsigned long index);
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttracklist-onaddtrack title=handler-TextTrackList-onaddtrack>onaddtrack</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttracklist-onremovetrack title=handler-TextTrackList-onremovetrack>onremovetrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttracklist-onaddtrack title=handler-TextTrackList-onaddtrack>onaddtrack</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttracklist-onremovetrack title=handler-TextTrackList-onremovetrack>onremovetrack</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-textTracks><a href=#dom-media-texttracks>textTracks</a></code> . <code title="">length</code></dt>
@@ -33595,7 +33595,7 @@
   void <a href=#dom-texttrack-addcue title=dom-TextTrack-addCue>addCue</a>(<a href=#texttrackcue>TextTrackCue</a> cue);
   void <a href=#dom-texttrack-removecue title=dom-TextTrack-removeCue>removeCue</a>(<a href=#texttrackcue>TextTrackCue</a> cue);
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">textTrack</var> . <code title=dom-TextTrack-kind><a href=#dom-texttrack-kind>kind</a></code></dt>
@@ -33985,8 +33985,8 @@
            attribute DOMString <a href=#dom-texttrackcue-text title=dom-TextTrackCue-text>text</a>;
   <a href=#documentfragment>DocumentFragment</a> <a href=#dom-texttrackcue-getcueashtml title=dom-TextTrackCue-getCueAsHTML>getCueAsHTML</a>();
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">cue</var> = new <code title=dom-TextTrackCue><a href=#dom-texttrackcue>TextTrackCue</a></code>( <var title="">startTime</var>, <var title="">endTime</var>, <var title="">text</var> )</dt>
@@ -65437,74 +65437,74 @@
   void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, DOMString targetOrigin, optional sequence<<a href=#transferable>Transferable</a>> transfer);
 <!--POSTMSG-->
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclose title=handler-onclose>onclose</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncancel title=handler-oncancel>oncancel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onclose title=handler-onclose>onclose</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#onerroreventhandler>OnErrorEventHandler</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };</pre>
 
 <!-- for more features to add here, look here:
@@ -71488,14 +71488,14 @@
   void <a href=#dom-appcache-swapcache title=dom-appcache-swapCache>swapCache</a>();
 
   // events
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
 };</pre>
 
   <dl class=domintro><dt><var title="">cache</var> = <var title="">window</var> . <code title=dom-applicationCache><a href=#dom-applicationcache>applicationCache</a></code></dt>
@@ -71880,7 +71880,7 @@
     <p class=example>In JavaScript, the script execution environment
     consists of the interpreter, the stack of <i>execution
     contexts</i>, the <i>global code</i> and <i>function code</i> and
-    the Function objects resulting, and so forth.</p>
+    the <code>Function</code> objects resulting, and so forth.</p>
 
    </dd>
 
@@ -71892,9 +71892,9 @@
     that the script exposes to other scripts and to the user
     agent.</p>
 
-    <p class=example>Each Function object in a JavaScript
-    <a href=#script-execution-environment>script execution environment</a> has a corresponding code
-    entry-point, for instance.</p>
+    <p class=example>Each <code>Function</code> object in a
+    JavaScript <a href=#script-execution-environment>script execution environment</a> has a
+    corresponding code entry-point, for instance.</p>
 
     <p>The main program code of the script, if any, is the
     <dfn id=initial-code-entry-point><i>initial code entry-point</i></dfn>. Typically, the code
@@ -72154,7 +72154,7 @@
   after which the error is either <dfn id=concept-error-handled title=concept-error-handled><i>handled</i></dfn> or <dfn id=concept-error-nothandled title=concept-error-nothandled><i>not handled</i></dfn>:</p>
 
   <dl class=switch><dt>If the value of <var title="">onerror</var> is a
-   <code><a href=#function>Function</a></code></dt>
+   <code><a href=#onerroreventhandler>OnErrorEventHandler</a></code></dt>
 
    <dd>
 
@@ -72170,10 +72170,10 @@
 
      <li>
 
-      <p>The function must be invoked with four arguments: <var title="">message</var>, <var title="">location</var>, <var title="">line</var>, and <var title="">col</var>.</p>
+      <p>The callback must be invoked with four arguments: <var title="">message</var>, <var title="">location</var>, <var title="">line</var>, and <var title="">col</var>.</p>
 
-      <p>If the function returns true, then the error is <i title=concept-error-handled><a href=#concept-error-handled>handled</a></i>. Otherwise, the error is
-      <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i>.</p>
+      <p>If the callback returns true, then the error is <i title=concept-error-handled><a href=#concept-error-handled>handled</a></i>. Otherwise, the error
+      is <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i>.</p>
 
       <p>Any uncaught exceptions thrown or errors caused by this
       function may be reported to the user immediately after the error
@@ -72704,8 +72704,8 @@
   specified. <a href=#refsDOMCORE>[DOMCORE]</a></p>
 
   <p>An <a href=#event-handlers title="event handlers">event handler</a> can either
-  have the value null or be set to a <code><a href=#function>Function</a></code>
-  object. <span class=impl>Initially, event handlers must be set to
+  have the value null or be set to a callback object. This is defined
+  using the <code><a href=#eventhandler>EventHandler</a></code> callback interface type. <span class=impl>Initially, event handlers must be set to
   null.</span></p>
 
   <p>Event handlers are exposed in one or two ways.</p>
@@ -72932,9 +72932,9 @@
   event listeners for a particular event type will always be first the
   event listeners registered with <code title=dom-EventTarget-addEventListener>addEventListener()</code>
   before the first time the <a href=#event-handlers title="event handlers">event
-  handler</a> was set to a non-null value, then the
-  <code><a href=#function>Function</a></code> to which it is currently set, if any, and
-  finally the event listeners registered with <code title=dom-EventTarget-addEventListener>addEventListener()</code>
+  handler</a> was set to a non-null value, then the callback to
+  which it is currently set, if any, and finally the event listeners
+  registered with <code title=dom-EventTarget-addEventListener>addEventListener()</code>
   <em>after</em> the first time the <a href=#event-handlers title="event handlers">event
   handler</a> was set to a non-null value.</p>
 
@@ -72983,10 +72983,10 @@
    these steps.</li>
 
    <li><p>Let <var title="">callback</var> be <var title="">H</var>'s
-   value, the <code><a href=#function>Function</a></code> object that the <a href=#event-handlers title="event
-   handlers">event handler</a> was last set to.</li>
+   value, the callback that the <a href=#event-handlers title="event handlers">event
+   handler</a> was last set to.</li>
 
-   <li><p>Invoke <var title="">callback</var>'s <code title=dom-function-call><a href=#dom-function-call>call()</a></code> operation with one
+   <li><p>Invoke <var title="">callback</var> with one
    argument, the value of which is the <code><a href=#event>Event</a></code> object <var title="">E</var>, with the <i title=dfn-callback-this-value>callback this value</i> set to the
    <var title="">E</var>'s <code title=dom-Event-currentTarget>currentTarget</code>. Let the
    return value be <var title="">return value</var>. <a href=#refsWEBIDL>[WEBIDL]</a></li>
@@ -73019,21 +73019,17 @@
 
   </ol></div>
 
-  <hr><p>The <code><a href=#function>Function</a></code> interface represents a function in the
-  scripting language being used. It is represented in Web IDL as
+  <hr><p>The <code><a href=#eventhandler>EventHandler</a></code> interface represents a callback
+  used for event handlers. It is represented in Web IDL as
   follows:</p>
 
-  <pre class=idl>[Callback=FunctionOnly, NoInterfaceObject]
-interface <dfn id=function>Function</dfn> {
-  any <a href=#dom-function-call title=dom-function-call>call</a>(any... arguments);
-};</pre>
+  <pre class=idl>[TreatNonCallableAsNull]
+callback <dfn id=eventhandlernonnull>EventHandlerNonNull</dfn> = any (<a href=#event>Event</a> event);
+typedef <a href=#eventhandlernonnull>EventHandlerNonNull</a>? <dfn id=eventhandler>EventHandler</dfn>;</pre>
 
-  <p>The <dfn id=dom-function-call title=dom-function-call><code>call(...)</code></dfn>
-  method is the object's callback.</p>
+  <p class=note>In JavaScript, any <code>Function</code> object
+  implements this interface.</p>
 
-  <p class=note>In JavaScript, any <code title="">Function</code>
-  object implements this interface.</p>
-
   <div class=example>
 
    <p>For example, the following document fragment:</p>
@@ -73054,7 +73050,16 @@
   <code title=event-beforeunload>beforeunload</code> events, the
   value is instead used to determine the message to show the user.</p>
 
+  <p>For historical reasons, the <code title=handler-onerror><a href=#handler-onerror>onerror</a></code> handler has different
+  arguments:</p>
 
+  <pre class=idl>[TreatNonCallableAsNull]
+callback <dfn id=onerroreventhandlernonnull>OnErrorEventHandlerNonNull</dfn> = any ((<a href=#event>Event</a> or DOMString) event, DOMString source, unsigned long lineno, unsigned long column);
+typedef <a href=#onerroreventhandlernonnull>OnErrorEventHandlerNonNull</a>? <dfn id=onerroreventhandler>OnErrorEventHandler</dfn>;</pre>
+
+  <!-- onreadystatechange is also defined specially, using [LenientThis]; see IDL -->
+
+
   <h5 id=event-handlers-on-elements,-document-objects,-and-window-objects><span class=secno>7.1.6.2 </span>Event handlers on elements, <code><a href=#document>Document</a></code> objects, and <code><a href=#window>Window</a></code> objects</h5>
 
   <p>The following are the <a href=#event-handlers>event handlers</a> (and their
@@ -73482,15 +73487,17 @@
 
   <pre class=idl>[NoInterfaceObject]
 interface <dfn id=windowtimers>WindowTimers</dfn> {
-  long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>(Function handler, optional long timeout, any... args);
+  long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>(<a href=#arbitrarycallback>ArbitraryCallback</a> handler, optional long timeout, any... args);
   long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>([AllowAny] DOMString handler, optional long timeout, any... args);
   void <a href=#dom-windowtimers-cleartimeout title=dom-windowtimers-clearTimeout>clearTimeout</a>(long handle);
-  long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>(Function handler, optional long timeout, any... args);
+  long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>(<a href=#arbitrarycallback>ArbitraryCallback</a> handler, optional long timeout, any... args);
   long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>([AllowAny] DOMString handler, optional long timeout, any... args);
   void <a href=#dom-windowtimers-clearinterval title=dom-windowtimers-clearInterval>clearInterval</a>(long handle);
 };
-<a href=#window>Window</a> implements <a href=#windowtimers>WindowTimers</a>;</pre>
+<a href=#window>Window</a> implements <a href=#windowtimers>WindowTimers</a>;
 
+[TreatNonCallableAsNull] callback <dfn id=arbitrarycallback>ArbitraryCallback</dfn> = any (any... args);</pre>
+
   <!-- Demonstrating the need for wrapping of the timeout argument value treated as long rather than clamping or treating as double:
           http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1228
        Demonstrating the need for the timeout argument to be signed rather than unsigned:
@@ -73750,12 +73757,12 @@
 
   <ol><li>
 
-    <p>If the first argument to the invoked method is a
-    <code><a href=#function>Function</a></code>, then return a <a href=#concept-task title=concept-task>task</a> that checks if the entry for <var title="">handle</var> in <var title="">list</var> has been
-    cleared, and if it has not, calls the <code><a href=#function>Function</a></code> with
-    as its arguments the third and subsequent arguments to the invoked
-    method (if any) and with an undefined <var title="">thisArg</var>,
-    and abort these steps. <a href=#refsECMA262>[ECMA262]</a></p>
+    <p>If the first argument to the invoked method is an
+    <code><a href=#arbitrarycallback>ArbitraryCallback</a></code>, then return a <a href=#concept-task title=concept-task>task</a> that checks if the entry for <var title="">handle</var> in <var title="">list</var> has been
+    cleared, and if it has not, calls the
+    <code><a href=#arbitrarycallback>ArbitraryCallback</a></code> with as its arguments the third and
+    subsequent arguments to the invoked method (if any) and with an
+    undefined <var title="">thisArg</var>, and abort these steps. <a href=#refsECMA262>[ECMA262]</a></p>
 
     <p class=note>Setting <var title="">thisArg</var> to undefined
     means that the function code will be executed with the <code title="">this</code> keyword bound to the <code><a href=#windowproxy>WindowProxy</a></code>
@@ -80019,10 +80026,10 @@
   readonly attribute <a href=#workerlocation>WorkerLocation</a> <a href=#dom-workerglobalscope-location title=dom-WorkerGlobalScope-location>location</a>;
 
   void <a href=#dom-workerglobalscope-close title=dom-WorkerGlobalScope-close>close</a>();
-<!-- v2-onclose  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
--->  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline>onoffline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline>ononline</a>;
+<!-- v2-onclose           attribute <span>EventHandler</span> <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
+-->           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline>onoffline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline>ononline</a>;
 };
 <a href=#workerglobalscope>WorkerGlobalScope</a> implements <a href=#workerutils>WorkerUtils</a>;</pre>
 
@@ -80068,7 +80075,7 @@
   <pre class=idl>interface <dfn id=dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
   void <a href=#dom-dedicatedworkerglobalscope-postmessage title=dom-DedicatedWorkerGlobalScope-postMessage>postMessage</a>(any message, optional sequence<<a href=#transferable>Transferable</a>> transfer);<!--
   <span>MessagePort</span> <span title="dom-DedicatedWorkerGlobalScope-startConversation">startConversation</span>(any message);-->
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-dedicatedworkerglobalscope-onmessage title=handler-DedicatedWorkerGlobalScope-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-dedicatedworkerglobalscope-onmessage title=handler-DedicatedWorkerGlobalScope-onmessage>onmessage</a>;
 };</pre>
 
   <p>The <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> interface must not
@@ -80112,7 +80119,7 @@
   <pre class=idl>interface <dfn id=sharedworkerglobalscope>SharedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
   readonly attribute DOMString <a href=#dom-sharedworkerglobalscope-name title=dom-SharedWorkerGlobalScope-name>name</a>;
   readonly attribute <a href=#applicationcache>ApplicationCache</a> <a href=#dom-sharedworkerglobalscope-applicationcache title=dom-SharedWorkerGlobalScope-applicationCache>applicationCache</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-sharedworkerglobalscope-onconnect title=handler-SharedWorkerGlobalScope-onconnect>onconnect</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-sharedworkerglobalscope-onconnect title=handler-SharedWorkerGlobalScope-onconnect>onconnect</a>;
 };</pre>
 
   <p>The <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> interface must not
@@ -80615,8 +80622,8 @@
 
   <pre class=idl>[NoInterfaceObject]
 interface <dfn id=abstractworker>AbstractWorker</dfn> {
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-abstractworker-onerror title=handler-AbstractWorker-onerror>onerror</a>;
-<!-- v2-onclose  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-AbstractWorker-onclose">onclose</span>; -->
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-abstractworker-onerror title=handler-AbstractWorker-onerror>onerror</a>;
+<!-- v2-onclose           attribute <span>EventHandler</span> <span title="handler-AbstractWorker-onclose">onclose</span>; -->
 };</pre>
 
   <p>The following are the <a href=#event-handlers>event handlers</a> (and their
@@ -80635,7 +80642,7 @@
 
   void <a href=#dom-worker-postmessage title=dom-Worker-postMessage>postMessage</a>(any message, optional sequence<<a href=#transferable>Transferable</a>> transfer);<!--
   <span>MessagePort</span> <span title="dom-Worker-startConversation">startConversation</span>(any message);-->
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-worker-onmessage title=handler-Worker-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-worker-onmessage title=handler-Worker-onmessage>onmessage</a>;
 };
 <a href=#worker>Worker</a> implements <a href=#abstractworker>AbstractWorker</a>;</pre>
 
@@ -81449,9 +81456,9 @@
   readonly attribute unsigned short <a href=#dom-eventsource-readystate title=dom-EventSource-readyState>readyState</a>;
 
   // networking
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onopen title=handler-EventSource-onopen>onopen</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onmessage title=handler-EventSource-onmessage>onmessage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onerror title=handler-EventSource-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-eventsource-onopen title=handler-EventSource-onopen>onopen</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-eventsource-onmessage title=handler-EventSource-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-eventsource-onerror title=handler-EventSource-onerror>onerror</a>;
   void <a href=#dom-eventsource-close title=dom-EventSource-close>close</a>();
 };
 
@@ -82322,15 +82329,15 @@
   readonly attribute unsigned long <a href=#dom-websocket-bufferedamount title=dom-WebSocket-bufferedAmount>bufferedAmount</a>;
 
   // networking
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onopen title=handler-WebSocket-onopen>onopen</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onerror title=handler-WebSocket-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onclose title=handler-WebSocket-onclose>onclose</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-websocket-onopen title=handler-WebSocket-onopen>onopen</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-websocket-onerror title=handler-WebSocket-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-websocket-onclose title=handler-WebSocket-onclose>onclose</a>;
   readonly attribute DOMString <a href=#dom-websocket-extensions title=dom-WebSocket-extensions>extensions</a>;
   readonly attribute DOMString <a href=#dom-websocket-protocol title=dom-WebSocket-protocol>protocol</a>;
   void <a href=#dom-websocket-close title=dom-WebSocket-close>close</a>([Clamp] optional unsigned short code, optional DOMString reason);
 
   // messaging
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onmessage title=handler-WebSocket-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-websocket-onmessage title=handler-WebSocket-onmessage>onmessage</a>;
            attribute DOMString <a href=#dom-websocket-binarytype title=dom-WebSocket-binaryType>binaryType</a>;
   void <a href=#dom-websocket-send title=dom-WebSocket-send>send</a>(DOMString data);
   void <a href=#dom-websocket-send title=dom-WebSocket-send>send</a>(<span>ArrayBufferView</span> data);
@@ -83607,7 +83614,7 @@
   void <a href=#dom-messageport-close title=dom-MessagePort-close>close</a>();
 
   // event handlers
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
 };
 <a href=#messageport>MessagePort</a> implements <a href=#transferable>Transferable</a>;</pre>
 
@@ -97475,9 +97482,9 @@
            attribute unsigned long <a href=#dom-marquee-vspace title=dom-marquee-vspace>vspace</a>;
            attribute DOMString <a href=#dom-marquee-width title=dom-marquee-width>width</a>;
 
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onstart title=handler-marquee-onstart>onstart</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-marquee-onstart title=handler-marquee-onstart>onstart</a>;
 
   void <a href=#dom-marquee-start title=dom-marquee-start>start</a>();
   void <a href=#dom-marquee-stop title=dom-marquee-stop>stop</a>();
@@ -97638,24 +97645,24 @@
   <pre class=idl>interface <dfn id=htmlframesetelement>HTMLFrameSetElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute DOMString <a href=#dom-frameset-cols title=dom-frameset-cols>cols</a>;
            attribute DOMString <a href=#dom-frameset-rows title=dom-frameset-rows>rows</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-  [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#eventhandler>EventHandler</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
 };</pre>
 
   <p>The <dfn id=dom-frameset-cols title=dom-frameset-cols><code>cols</code></dfn> and

Modified: source
===================================================================
--- source	2012-06-26 19:29:30 UTC (rev 7145)
+++ source	2012-06-26 19:58:43 UTC (rev 7146)
@@ -10127,64 +10127,64 @@
   readonly attribute <span>HTMLCollection</span> <span title="dom-document-commands">commands</span>;
 
   // <span>event handler IDL attributes</span>
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onabort">onabort</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onblur">onblur</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncancel">oncancel</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncanplay">oncanplay</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncanplaythrough">oncanplaythrough</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onchange">onchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onclick">onclick</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onclose">onclose</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncontextmenu">oncontextmenu</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncuechange">oncuechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondblclick">ondblclick</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondrag">ondrag</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragend">ondragend</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragenter">ondragenter</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragleave">ondragleave</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragover">ondragover</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragstart">ondragstart</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondrop">ondrop</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondurationchange">ondurationchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onemptied">onemptied</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onended">onended</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onerror">onerror</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onfocus">onfocus</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oninput">oninput</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oninvalid">oninvalid</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeydown">onkeydown</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeypress">onkeypress</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeyup">onkeyup</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onload">onload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadeddata">onloadeddata</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadedmetadata">onloadedmetadata</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadstart">onloadstart</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousedown">onmousedown</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousemove">onmousemove</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseout">onmouseout</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseover">onmouseover</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseup">onmouseup</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousewheel">onmousewheel</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onpause">onpause</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onplay">onplay</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onplaying">onplaying</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onprogress">onprogress</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onratechange">onratechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onreset">onreset</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onscroll">onscroll</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onseeked">onseeked</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onseeking">onseeking</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onselect">onselect</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onshow">onshow</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onstalled">onstalled</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onsubmit">onsubmit</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onsuspend">onsuspend</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ontimeupdate">ontimeupdate</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onvolumechange">onvolumechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onwaiting">onwaiting</span>;
+           attribute <span>EventHandler</span> <span title="handler-onabort">onabort</span>;
+           attribute <span>EventHandler</span> <span title="handler-onblur">onblur</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncancel">oncancel</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncanplay">oncanplay</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
+           attribute <span>EventHandler</span> <span title="handler-onchange">onchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onclick">onclick</span>;
+           attribute <span>EventHandler</span> <span title="handler-onclose">onclose</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncuechange">oncuechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondblclick">ondblclick</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondrag">ondrag</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragend">ondragend</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragenter">ondragenter</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragleave">ondragleave</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragover">ondragover</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragstart">ondragstart</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondrop">ondrop</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondurationchange">ondurationchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onemptied">onemptied</span>;
+           attribute <span>EventHandler</span> <span title="handler-onended">onended</span>;
+           attribute <span>OnErrorEventHandler</span> <span title="handler-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-onfocus">onfocus</span>;
+           attribute <span>EventHandler</span> <span title="handler-oninput">oninput</span>;
+           attribute <span>EventHandler</span> <span title="handler-oninvalid">oninvalid</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeydown">onkeydown</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeypress">onkeypress</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeyup">onkeyup</span>;
+           attribute <span>EventHandler</span> <span title="handler-onload">onload</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadeddata">onloadeddata</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadedmetadata">onloadedmetadata</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadstart">onloadstart</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousedown">onmousedown</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousemove">onmousemove</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseout">onmouseout</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseover">onmouseover</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseup">onmouseup</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousewheel">onmousewheel</span>;
+           attribute <span>EventHandler</span> <span title="handler-onpause">onpause</span>;
+           attribute <span>EventHandler</span> <span title="handler-onplay">onplay</span>;
+           attribute <span>EventHandler</span> <span title="handler-onplaying">onplaying</span>;
+           attribute <span>EventHandler</span> <span title="handler-onprogress">onprogress</span>;
+           attribute <span>EventHandler</span> <span title="handler-onratechange">onratechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onreset">onreset</span>;
+           attribute <span>EventHandler</span> <span title="handler-onscroll">onscroll</span>;
+           attribute <span>EventHandler</span> <span title="handler-onseeked">onseeked</span>;
+           attribute <span>EventHandler</span> <span title="handler-onseeking">onseeking</span>;
+           attribute <span>EventHandler</span> <span title="handler-onselect">onselect</span>;
+           attribute <span>EventHandler</span> <span title="handler-onshow">onshow</span>;
+           attribute <span>EventHandler</span> <span title="handler-onstalled">onstalled</span>;
+           attribute <span>EventHandler</span> <span title="handler-onsubmit">onsubmit</span>;
+           attribute <span>EventHandler</span> <span title="handler-onsuspend">onsuspend</span>;
+           attribute <span>EventHandler</span> <span title="handler-ontimeupdate">ontimeupdate</span>;
+           attribute <span>EventHandler</span> <span title="handler-onvolumechange">onvolumechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onwaiting">onwaiting</span>;
 
   // special <span>event handler IDL attributes</span> that only apply to Document objects
-  [TreatNonCallableAsNull,LenientThis] attribute <span>Function</span>? <span title="handler-onreadystatechange">onreadystatechange</span>;
+  [LenientThis] attribute <span>EventHandler</span> <span title="handler-onreadystatechange">onreadystatechange</span>;
 };</pre>
 
 
@@ -11317,61 +11317,61 @@
   readonly attribute <span>CSSStyleDeclaration</span> <span title="dom-style">style</span>;
 
   // <span>event handler IDL attributes</span>
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onabort">onabort</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onblur">onblur</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncancel">oncancel</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncanplay">oncanplay</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncanplaythrough">oncanplaythrough</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onchange">onchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onclick">onclick</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onclose">onclose</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncontextmenu">oncontextmenu</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncuechange">oncuechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondblclick">ondblclick</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondrag">ondrag</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragend">ondragend</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragenter">ondragenter</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragleave">ondragleave</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragover">ondragover</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragstart">ondragstart</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondrop">ondrop</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondurationchange">ondurationchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onemptied">onemptied</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onended">onended</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onerror">onerror</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onfocus">onfocus</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oninput">oninput</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oninvalid">oninvalid</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeydown">onkeydown</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeypress">onkeypress</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeyup">onkeyup</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onload">onload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadeddata">onloadeddata</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadedmetadata">onloadedmetadata</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadstart">onloadstart</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousedown">onmousedown</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousemove">onmousemove</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseout">onmouseout</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseover">onmouseover</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseup">onmouseup</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousewheel">onmousewheel</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onpause">onpause</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onplay">onplay</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onplaying">onplaying</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onprogress">onprogress</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onratechange">onratechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onreset">onreset</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onscroll">onscroll</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onseeked">onseeked</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onseeking">onseeking</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onselect">onselect</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onshow">onshow</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onstalled">onstalled</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onsubmit">onsubmit</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onsuspend">onsuspend</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ontimeupdate">ontimeupdate</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onvolumechange">onvolumechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onwaiting">onwaiting</span>;
+           attribute <span>EventHandler</span> <span title="handler-onabort">onabort</span>;
+           attribute <span>EventHandler</span> <span title="handler-onblur">onblur</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncancel">oncancel</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncanplay">oncanplay</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
+           attribute <span>EventHandler</span> <span title="handler-onchange">onchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onclick">onclick</span>;
+           attribute <span>EventHandler</span> <span title="handler-onclose">onclose</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncuechange">oncuechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondblclick">ondblclick</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondrag">ondrag</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragend">ondragend</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragenter">ondragenter</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragleave">ondragleave</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragover">ondragover</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragstart">ondragstart</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondrop">ondrop</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondurationchange">ondurationchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onemptied">onemptied</span>;
+           attribute <span>EventHandler</span> <span title="handler-onended">onended</span>;
+           attribute <span>OnErrorEventHandler</span> <span title="handler-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-onfocus">onfocus</span>;
+           attribute <span>EventHandler</span> <span title="handler-oninput">oninput</span>;
+           attribute <span>EventHandler</span> <span title="handler-oninvalid">oninvalid</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeydown">onkeydown</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeypress">onkeypress</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeyup">onkeyup</span>;
+           attribute <span>EventHandler</span> <span title="handler-onload">onload</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadeddata">onloadeddata</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadedmetadata">onloadedmetadata</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadstart">onloadstart</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousedown">onmousedown</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousemove">onmousemove</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseout">onmouseout</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseover">onmouseover</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseup">onmouseup</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousewheel">onmousewheel</span>;
+           attribute <span>EventHandler</span> <span title="handler-onpause">onpause</span>;
+           attribute <span>EventHandler</span> <span title="handler-onplay">onplay</span>;
+           attribute <span>EventHandler</span> <span title="handler-onplaying">onplaying</span>;
+           attribute <span>EventHandler</span> <span title="handler-onprogress">onprogress</span>;
+           attribute <span>EventHandler</span> <span title="handler-onratechange">onratechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onreset">onreset</span>;
+           attribute <span>EventHandler</span> <span title="handler-onscroll">onscroll</span>;
+           attribute <span>EventHandler</span> <span title="handler-onseeked">onseeked</span>;
+           attribute <span>EventHandler</span> <span title="handler-onseeking">onseeking</span>;
+           attribute <span>EventHandler</span> <span title="handler-onselect">onselect</span>;
+           attribute <span>EventHandler</span> <span title="handler-onshow">onshow</span>;
+           attribute <span>EventHandler</span> <span title="handler-onstalled">onstalled</span>;
+           attribute <span>EventHandler</span> <span title="handler-onsubmit">onsubmit</span>;
+           attribute <span>EventHandler</span> <span title="handler-onsuspend">onsuspend</span>;
+           attribute <span>EventHandler</span> <span title="handler-ontimeupdate">ontimeupdate</span>;
+           attribute <span>EventHandler</span> <span title="handler-onvolumechange">onvolumechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onwaiting">onwaiting</span>;
 };
 
 interface <dfn>HTMLUnknownElement</dfn> : <span>HTMLElement</span> { };</pre>
@@ -18823,24 +18823,24 @@
    <dt><span title="element-dfn-dom">DOM interface</span>:</dt><!--TOPIC:DOM APIs-->
    <dd>
 <pre class="idl">interface <dfn>HTMLBodyElement</dfn> : <span>HTMLElement</span> {
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onafterprint">onafterprint</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onbeforeprint">onbeforeprint</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onbeforeunload">onbeforeunload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onblur">onblur</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onerror">onerror</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onfocus">onfocus</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onhashchange">onhashchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onload">onload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onmessage">onmessage</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onoffline">onoffline</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-ononline">ononline</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpopstate">onpopstate</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpagehide">onpagehide</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpageshow">onpageshow</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onresize">onresize</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onscroll">onscroll</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onstorage">onstorage</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onunload">onunload</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onafterprint">onafterprint</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onbeforeprint">onbeforeprint</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onbeforeunload">onbeforeunload</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onblur">onblur</span>;
+           attribute <span>OnErrorEventHandler</span> <span title="handler-window-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onfocus">onfocus</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onhashchange">onhashchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onload">onload</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onmessage">onmessage</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onoffline">onoffline</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-ononline">ononline</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpopstate">onpopstate</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpagehide">onpagehide</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpageshow">onpageshow</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onresize">onresize</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onscroll">onscroll</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onstorage">onstorage</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onunload">onunload</span>;
 };</pre>
 </dd>
   </dl><!--TOPIC:HTML-->
@@ -34160,9 +34160,9 @@
   getter <span>AudioTrack</span> (unsigned long index);
   <span>AudioTrack</span>? <span title="dom-AudioTrackList-getTrackById">getTrackById</span>(DOMString id);
 
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TrackList-onchange">onchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TrackList-onaddtrack">onaddtrack</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TrackList-onremovetrack">onremovetrack</span>;
+           attribute <span>EventHandler</span> <span title="handler-TrackList-onchange">onchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-TrackList-onaddtrack">onaddtrack</span>;
+           attribute <span>EventHandler</span> <span title="handler-TrackList-onremovetrack">onremovetrack</span>;
 };
 
 interface <dfn>AudioTrack</dfn> {
@@ -34179,9 +34179,9 @@
   <span>VideoTrack</span>? <span title="dom-VideoTrackList-getTrackById">getTrackById</span>(DOMString id);
   readonly attribute long <span title="dom-VideoTrackList-selectedIndex">selectedIndex</span>;
 
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TrackList-onchange">onchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TrackList-onaddtrack">onaddtrack</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TrackList-onremovetrack">onremovetrack</span>;
+           attribute <span>EventHandler</span> <span title="handler-TrackList-onchange">onchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-TrackList-onaddtrack">onaddtrack</span>;
+           attribute <span>EventHandler</span> <span title="handler-TrackList-onremovetrack">onremovetrack</span>;
 };
 
 interface <dfn>VideoTrack</dfn> {
@@ -34692,21 +34692,21 @@
            attribute double <span title="dom-MediaController-volume">volume</span>;
            attribute boolean <span title="dom-MediaController-muted">muted</span>;
 
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onemptied">onemptied</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onloadedmetadata">onloadedmetadata</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onloadeddata">onloadeddata</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-oncanplay">oncanplay</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-oncanplaythrough">oncanplaythrough</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onplaying">onplaying</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onended">onended</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onwaiting">onwaiting</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onemptied">onemptied</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onloadedmetadata">onloadedmetadata</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onloadeddata">onloadeddata</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-oncanplay">oncanplay</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-oncanplaythrough">oncanplaythrough</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onplaying">onplaying</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onended">onended</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onwaiting">onwaiting</span>;
 
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-ondurationchange">ondurationchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-ontimeupdate">ontimeupdate</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onplay">onplay</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onpause">onpause</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onratechange">onratechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MediaController-onvolumechange">onvolumechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-ondurationchange">ondurationchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-ontimeupdate">ontimeupdate</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onplay">onplay</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onpause">onpause</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onratechange">onratechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-MediaController-onvolumechange">onvolumechange</span>;
 };</pre>
 
   <dl class="domintro">
@@ -36712,8 +36712,8 @@
   readonly attribute unsigned long <span title="dom-TextTrackList-length">length</span>;
   getter <span>TextTrack</span> (unsigned long index);
 
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TextTrackList-onaddtrack">onaddtrack</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TextTrackList-onremovetrack">onremovetrack</span>;
+           attribute <span>EventHandler</span> <span title="handler-TextTrackList-onaddtrack">onaddtrack</span>;
+           attribute <span>EventHandler</span> <span title="handler-TextTrackList-onremovetrack">onremovetrack</span>;
 };</pre>
 
   <dl class="domintro">
@@ -36789,7 +36789,7 @@
   void <span title="dom-TextTrack-addCue">addCue</span>(<span>TextTrackCue</span> cue);
   void <span title="dom-TextTrack-removeCue">removeCue</span>(<span>TextTrackCue</span> cue);
 
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TextTrack-oncuechange">oncuechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-TextTrack-oncuechange">oncuechange</span>;
 };</pre>
 
   <dl class="domintro">
@@ -37237,8 +37237,8 @@
            attribute DOMString <span title="dom-TextTrackCue-text">text</span>;
   <span>DocumentFragment</span> <span title="dom-TextTrackCue-getCueAsHTML">getCueAsHTML</span>();
 
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TextTrackCue-onenter">onenter</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-TextTrackCue-onexit">onexit</span>;
+           attribute <span>EventHandler</span> <span title="handler-TextTrackCue-onenter">onenter</span>;
+           attribute <span>EventHandler</span> <span title="handler-TextTrackCue-onexit">onexit</span>;
 };</pre>
 
   <dl class="domintro">
@@ -76723,74 +76723,74 @@
   void <span title="dom-window-postMessage">postMessage</span>(any message, DOMString targetOrigin, optional sequence<<span>Transferable</span>> transfer);
 <!--START w3c-html--><!--POSTMSG-->
   // <span>event handler IDL attributes</span>
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onabort">onabort</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onafterprint">onafterprint</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onbeforeprint">onbeforeprint</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onbeforeunload">onbeforeunload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onblur">onblur</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncancel">oncancel</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncanplay">oncanplay</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncanplaythrough">oncanplaythrough</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onchange">onchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onclick">onclick</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onclose">onclose</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncontextmenu">oncontextmenu</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oncuechange">oncuechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondblclick">ondblclick</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondrag">ondrag</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragend">ondragend</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragenter">ondragenter</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragleave">ondragleave</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragover">ondragover</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondragstart">ondragstart</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondrop">ondrop</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ondurationchange">ondurationchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onemptied">onemptied</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onended">onended</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onerror">onerror</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onfocus">onfocus</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onhashchange">onhashchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oninput">oninput</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-oninvalid">oninvalid</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeydown">onkeydown</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeypress">onkeypress</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onkeyup">onkeyup</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onload">onload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadeddata">onloadeddata</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadedmetadata">onloadedmetadata</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onloadstart">onloadstart</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onmessage">onmessage</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousedown">onmousedown</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousemove">onmousemove</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseout">onmouseout</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseover">onmouseover</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmouseup">onmouseup</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onmousewheel">onmousewheel</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onoffline">onoffline</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-ononline">ononline</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onpause">onpause</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onplay">onplay</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onplaying">onplaying</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpagehide">onpagehide</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpageshow">onpageshow</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpopstate">onpopstate</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onprogress">onprogress</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onratechange">onratechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onreset">onreset</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onresize">onresize</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onscroll">onscroll</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onseeked">onseeked</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onseeking">onseeking</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onselect">onselect</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onshow">onshow</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onstalled">onstalled</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onstorage">onstorage</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onsubmit">onsubmit</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onsuspend">onsuspend</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-ontimeupdate">ontimeupdate</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onunload">onunload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onvolumechange">onvolumechange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onwaiting">onwaiting</span>;
+           attribute <span>EventHandler</span> <span title="handler-onabort">onabort</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onafterprint">onafterprint</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onbeforeprint">onbeforeprint</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onbeforeunload">onbeforeunload</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onblur">onblur</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncancel">oncancel</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncanplay">oncanplay</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
+           attribute <span>EventHandler</span> <span title="handler-onchange">onchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onclick">onclick</span>;
+           attribute <span>EventHandler</span> <span title="handler-onclose">onclose</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
+           attribute <span>EventHandler</span> <span title="handler-oncuechange">oncuechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondblclick">ondblclick</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondrag">ondrag</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragend">ondragend</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragenter">ondragenter</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragleave">ondragleave</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragover">ondragover</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondragstart">ondragstart</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondrop">ondrop</span>;
+           attribute <span>EventHandler</span> <span title="handler-ondurationchange">ondurationchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onemptied">onemptied</span>;
+           attribute <span>EventHandler</span> <span title="handler-onended">onended</span>;
+           attribute <span>OnErrorEventHandler</span> <span title="handler-window-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onfocus">onfocus</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onhashchange">onhashchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-oninput">oninput</span>;
+           attribute <span>EventHandler</span> <span title="handler-oninvalid">oninvalid</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeydown">onkeydown</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeypress">onkeypress</span>;
+           attribute <span>EventHandler</span> <span title="handler-onkeyup">onkeyup</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onload">onload</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadeddata">onloadeddata</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadedmetadata">onloadedmetadata</span>;
+           attribute <span>EventHandler</span> <span title="handler-onloadstart">onloadstart</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onmessage">onmessage</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousedown">onmousedown</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousemove">onmousemove</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseout">onmouseout</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseover">onmouseover</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmouseup">onmouseup</span>;
+           attribute <span>EventHandler</span> <span title="handler-onmousewheel">onmousewheel</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onoffline">onoffline</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-ononline">ononline</span>;
+           attribute <span>EventHandler</span> <span title="handler-onpause">onpause</span>;
+           attribute <span>EventHandler</span> <span title="handler-onplay">onplay</span>;
+           attribute <span>EventHandler</span> <span title="handler-onplaying">onplaying</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpagehide">onpagehide</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpageshow">onpageshow</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpopstate">onpopstate</span>;
+           attribute <span>EventHandler</span> <span title="handler-onprogress">onprogress</span>;
+           attribute <span>EventHandler</span> <span title="handler-onratechange">onratechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onreset">onreset</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onresize">onresize</span>;
+           attribute <span>EventHandler</span> <span title="handler-onscroll">onscroll</span>;
+           attribute <span>EventHandler</span> <span title="handler-onseeked">onseeked</span>;
+           attribute <span>EventHandler</span> <span title="handler-onseeking">onseeking</span>;
+           attribute <span>EventHandler</span> <span title="handler-onselect">onselect</span>;
+           attribute <span>EventHandler</span> <span title="handler-onshow">onshow</span>;
+           attribute <span>EventHandler</span> <span title="handler-onstalled">onstalled</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onstorage">onstorage</span>;
+           attribute <span>EventHandler</span> <span title="handler-onsubmit">onsubmit</span>;
+           attribute <span>EventHandler</span> <span title="handler-onsuspend">onsuspend</span>;
+           attribute <span>EventHandler</span> <span title="handler-ontimeupdate">ontimeupdate</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onunload">onunload</span>;
+           attribute <span>EventHandler</span> <span title="handler-onvolumechange">onvolumechange</span>;
+           attribute <span>EventHandler</span> <span title="handler-onwaiting">onwaiting</span>;
 };</pre>
 
 <!-- for more features to add here, look here:
@@ -83701,14 +83701,14 @@
   void <span title="dom-appcache-swapCache">swapCache</span>();
 
   // events
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-appcache-onchecking">onchecking</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-appcache-onerror">onerror</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-appcache-onnoupdate">onnoupdate</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-appcache-ondownloading">ondownloading</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-appcache-onprogress">onprogress</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-appcache-onupdateready">onupdateready</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-appcache-oncached">oncached</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-appcache-onobsolete">onobsolete</span>;
+           attribute <span>EventHandler</span> <span title="handler-appcache-onchecking">onchecking</span>;
+           attribute <span>EventHandler</span> <span title="handler-appcache-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-appcache-onnoupdate">onnoupdate</span>;
+           attribute <span>EventHandler</span> <span title="handler-appcache-ondownloading">ondownloading</span>;
+           attribute <span>EventHandler</span> <span title="handler-appcache-onprogress">onprogress</span>;
+           attribute <span>EventHandler</span> <span title="handler-appcache-onupdateready">onupdateready</span>;
+           attribute <span>EventHandler</span> <span title="handler-appcache-oncached">oncached</span>;
+           attribute <span>EventHandler</span> <span title="handler-appcache-onobsolete">onobsolete</span>;
 };</pre>
 
   <dl class="domintro">
@@ -84167,7 +84167,7 @@
     <p class="example">In JavaScript, the script execution environment
     consists of the interpreter, the stack of <i>execution
     contexts</i>, the <i>global code</i> and <i>function code</i> and
-    the Function objects resulting, and so forth.</p>
+    the <code>Function</code> objects resulting, and so forth.</p>
 
    </dd>
 
@@ -84179,9 +84179,9 @@
     that the script exposes to other scripts and to the user
     agent.</p>
 
-    <p class="example">Each Function object in a JavaScript
-    <span>script execution environment</span> has a corresponding code
-    entry-point, for instance.</p>
+    <p class="example">Each <code>Function</code> object in a
+    JavaScript <span>script execution environment</span> has a
+    corresponding code entry-point, for instance.</p>
 
     <p>The main program code of the script, if any, is the
     <dfn><i>initial code entry-point</i></dfn>. Typically, the code
@@ -84483,7 +84483,7 @@
   <dl class="switch">
 
    <dt>If the value of <var title="">onerror</var> is a
-   <code>Function</code></dt>
+   <code>OnErrorEventHandler</code></dt>
 
    <dd>
 
@@ -84501,13 +84501,13 @@
 
      <li>
 
-      <p>The function must be invoked with four arguments: <var
+      <p>The callback must be invoked with four arguments: <var
       title="">message</var>, <var title="">location</var>, <var
       title="">line</var>, and <var title="">col</var>.</p>
 
-      <p>If the function returns true, then the error is <i
-      title="concept-error-handled">handled</i>. Otherwise, the error is
-      <i title="concept-error-nothandled">not handled</i>.</p>
+      <p>If the callback returns true, then the error is <i
+      title="concept-error-handled">handled</i>. Otherwise, the error
+      is <i title="concept-error-nothandled">not handled</i>.</p>
 
       <p>Any uncaught exceptions thrown or errors caused by this
       function may be reported to the user immediately after the error
@@ -85126,8 +85126,9 @@
   specified. <a href="#refsDOMCORE">[DOMCORE]</a></p>
 
   <p>An <span title="event handlers">event handler</span> can either
-  have the value null or be set to a <code>Function</code>
-  object. <span class="impl">Initially, event handlers must be set to
+  have the value null or be set to a callback object. This is defined
+  using the <code>EventHandler</code> callback interface type. <span
+  class="impl">Initially, event handlers must be set to
   null.</span></p>
 
   <p>Event handlers are exposed in one or two ways.</p>
@@ -85397,9 +85398,9 @@
   event listeners registered with <code
   title="dom-EventTarget-addEventListener">addEventListener()</code>
   before the first time the <span title="event handlers">event
-  handler</span> was set to a non-null value, then the
-  <code>Function</code> to which it is currently set, if any, and
-  finally the event listeners registered with <code
+  handler</span> was set to a non-null value, then the callback to
+  which it is currently set, if any, and finally the event listeners
+  registered with <code
   title="dom-EventTarget-addEventListener">addEventListener()</code>
   <em>after</em> the first time the <span title="event handlers">event
   handler</span> was set to a non-null value.</p>
@@ -85455,11 +85456,10 @@
    these steps.</p></li>
 
    <li><p>Let <var title="">callback</var> be <var title="">H</var>'s
-   value, the <code>Function</code> object that the <span title="event
-   handlers">event handler</span> was last set to.</p></li>
+   value, the callback that the <span title="event handlers">event
+   handler</span> was last set to.</p></li>
 
-   <li><p>Invoke <var title="">callback</var>'s <code
-   title="dom-function-call">call()</code> operation with one
+   <li><p>Invoke <var title="">callback</var> with one
    argument, the value of which is the <code>Event</code> object <var
    title="">E</var>, with the <i
    title="dfn-callback-this-value">callback this value</i> set to the
@@ -85507,21 +85507,17 @@
 
   <hr>
 
-  <p>The <code>Function</code> interface represents a function in the
-  scripting language being used. It is represented in Web IDL as
+  <p>The <code>EventHandler</code> interface represents a callback
+  used for event handlers. It is represented in Web IDL as
   follows:</p>
 
-  <pre class="idl">[Callback=FunctionOnly, NoInterfaceObject]
-interface <dfn>Function</dfn> {
-  any <span title="dom-function-call">call</span>(any... arguments);
-};</pre>
+  <pre class="idl">[TreatNonCallableAsNull]
+callback <dfn>EventHandlerNonNull</dfn> = any (<span>Event</span> event);
+typedef <span>EventHandlerNonNull</span>? <dfn>EventHandler</dfn>;</pre>
 
-  <p>The <dfn title="dom-function-call"><code>call(...)</code></dfn>
-  method is the object's callback.</p>
+  <p class="note">In JavaScript, any <code>Function</code> object
+  implements this interface.</p>
 
-  <p class="note">In JavaScript, any <code title="">Function</code>
-  object implements this interface.</p>
-
   <div class="example">
 
    <p>For example, the following document fragment:</p>
@@ -85544,7 +85540,17 @@
   <code title="event-beforeunload">beforeunload</code> events, the
   value is instead used to determine the message to show the user.</p>
 
+  <p>For historical reasons, the <code
+  title="handler-onerror">onerror</code> handler has different
+  arguments:</p>
 
+  <pre class="idl">[TreatNonCallableAsNull]
+callback <dfn>OnErrorEventHandlerNonNull</dfn> = any ((<span>Event</span> or DOMString) event, DOMString source, unsigned long lineno, unsigned long column);
+typedef <span>OnErrorEventHandlerNonNull</span>? <dfn>OnErrorEventHandler</dfn>;</pre>
+
+  <!-- onreadystatechange is also defined specially, using [LenientThis]; see IDL -->
+
+
   <h5>Event handlers on elements, <code>Document</code> objects, and <code>Window</code> objects</h5>
 
   <p>The following are the <span>event handlers</span> (and their
@@ -86049,15 +86055,17 @@
 
   <pre class="idl">[NoInterfaceObject]
 interface <dfn>WindowTimers</dfn> {
-  long <span title="dom-windowtimers-setTimeout">setTimeout</span>(Function handler, optional long timeout, any... args);
+  long <span title="dom-windowtimers-setTimeout">setTimeout</span>(<span>ArbitraryCallback</span> handler, optional long timeout, any... args);
   long <span title="dom-windowtimers-setTimeout">setTimeout</span>([AllowAny] DOMString handler, optional long timeout, any... args);
   void <span title="dom-windowtimers-clearTimeout">clearTimeout</span>(long handle);
-  long <span title="dom-windowtimers-setInterval">setInterval</span>(Function handler, optional long timeout, any... args);
+  long <span title="dom-windowtimers-setInterval">setInterval</span>(<span>ArbitraryCallback</span> handler, optional long timeout, any... args);
   long <span title="dom-windowtimers-setInterval">setInterval</span>([AllowAny] DOMString handler, optional long timeout, any... args);
   void <span title="dom-windowtimers-clearInterval">clearInterval</span>(long handle);
 };
-<span>Window</span> implements <span>WindowTimers</span>;</pre>
+<span>Window</span> implements <span>WindowTimers</span>;
 
+[TreatNonCallableAsNull] callback <dfn>ArbitraryCallback</dfn> = any (any... args);</pre>
+
   <!-- Demonstrating the need for wrapping of the timeout argument value treated as long rather than clamping or treating as double:
           http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1228
        Demonstrating the need for the timeout argument to be signed rather than unsigned:
@@ -86360,14 +86368,15 @@
 
    <li>
 
-    <p>If the first argument to the invoked method is a
-    <code>Function</code>, then return a <span
+    <p>If the first argument to the invoked method is an
+    <code>ArbitraryCallback</code>, then return a <span
     title="concept-task">task</span> that checks if the entry for <var
     title="">handle</var> in <var title="">list</var> has been
-    cleared, and if it has not, calls the <code>Function</code> with
-    as its arguments the third and subsequent arguments to the invoked
-    method (if any) and with an undefined <var title="">thisArg</var>,
-    and abort these steps. <a href="#refsECMA262">[ECMA262]</a></p>
+    cleared, and if it has not, calls the
+    <code>ArbitraryCallback</code> with as its arguments the third and
+    subsequent arguments to the invoked method (if any) and with an
+    undefined <var title="">thisArg</var>, and abort these steps. <a
+    href="#refsECMA262">[ECMA262]</a></p>
 
     <p class="note">Setting <var title="">thisArg</var> to undefined
     means that the function code will be executed with the <code
@@ -92940,10 +92949,10 @@
   readonly attribute <span>WorkerLocation</span> <span title="dom-WorkerGlobalScope-location">location</span>;
 
   void <span title="dom-WorkerGlobalScope-close">close</span>();
-<!-- v2-onclose  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
--->  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onerror">onerror</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onoffline">onoffline</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-ononline">ononline</span>;
+<!-- v2-onclose           attribute <span>EventHandler</span> <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
+-->           attribute <span>EventHandler</span> <span title="handler-WorkerGlobalScope-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-WorkerGlobalScope-onoffline">onoffline</span>;
+           attribute <span>EventHandler</span> <span title="handler-WorkerGlobalScope-ononline">ononline</span>;
 };
 <span>WorkerGlobalScope</span> implements <span>WorkerUtils</span>;</pre>
 
@@ -93007,7 +93016,7 @@
   <pre class="idl">interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
   void <span title="dom-DedicatedWorkerGlobalScope-postMessage">postMessage</span>(any message, optional sequence<<span>Transferable</span>> transfer);<!--
   <span>MessagePort</span> <span title="dom-DedicatedWorkerGlobalScope-startConversation">startConversation</span>(any message);-->
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-DedicatedWorkerGlobalScope-onmessage">onmessage</span>;
+           attribute <span>EventHandler</span> <span title="handler-DedicatedWorkerGlobalScope-onmessage">onmessage</span>;
 };</pre>
 
   <p>The <code>DedicatedWorkerGlobalScope</code> interface must not
@@ -93058,7 +93067,7 @@
   <pre class="idl">interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
   readonly attribute DOMString <span title="dom-SharedWorkerGlobalScope-name">name</span>;
   readonly attribute <span>ApplicationCache</span> <span title="dom-SharedWorkerGlobalScope-applicationCache">applicationCache</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-SharedWorkerGlobalScope-onconnect">onconnect</span>;
+           attribute <span>EventHandler</span> <span title="handler-SharedWorkerGlobalScope-onconnect">onconnect</span>;
 };</pre>
 
   <p>The <code>SharedWorkerGlobalScope</code> interface must not
@@ -93648,8 +93657,8 @@
 
   <pre class="idl">[NoInterfaceObject]
 interface <dfn>AbstractWorker</dfn> {
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-AbstractWorker-onerror">onerror</span>;
-<!-- v2-onclose  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-AbstractWorker-onclose">onclose</span>; -->
+           attribute <span>EventHandler</span> <span title="handler-AbstractWorker-onerror">onerror</span>;
+<!-- v2-onclose           attribute <span>EventHandler</span> <span title="handler-AbstractWorker-onclose">onclose</span>; -->
 };</pre>
 
   <p>The following are the <span>event handlers</span> (and their
@@ -93675,7 +93684,7 @@
 
   void <span title="dom-Worker-postMessage">postMessage</span>(any message, optional sequence<<span>Transferable</span>> transfer);<!--
   <span>MessagePort</span> <span title="dom-Worker-startConversation">startConversation</span>(any message);-->
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-Worker-onmessage">onmessage</span>;
+           attribute <span>EventHandler</span> <span title="handler-Worker-onmessage">onmessage</span>;
 };
 <span>Worker</span> implements <span>AbstractWorker</span>;</pre>
 
@@ -94632,9 +94641,9 @@
   readonly attribute unsigned short <span title="dom-EventSource-readyState">readyState</span>;
 
   // networking
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-EventSource-onopen">onopen</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-EventSource-onmessage">onmessage</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-EventSource-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-EventSource-onopen">onopen</span>;
+           attribute <span>EventHandler</span> <span title="handler-EventSource-onmessage">onmessage</span>;
+           attribute <span>EventHandler</span> <span title="handler-EventSource-onerror">onerror</span>;
   void <span title="dom-EventSource-close">close</span>();
 };
 
@@ -95653,15 +95662,15 @@
   readonly attribute unsigned long <span title="dom-WebSocket-bufferedAmount">bufferedAmount</span>;
 
   // networking
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WebSocket-onopen">onopen</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WebSocket-onerror">onerror</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WebSocket-onclose">onclose</span>;
+           attribute <span>EventHandler</span> <span title="handler-WebSocket-onopen">onopen</span>;
+           attribute <span>EventHandler</span> <span title="handler-WebSocket-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-WebSocket-onclose">onclose</span>;
   readonly attribute DOMString <span title="dom-WebSocket-extensions">extensions</span>;
   readonly attribute DOMString <span title="dom-WebSocket-protocol">protocol</span>;
   void <span title="dom-WebSocket-close">close</span>([Clamp] optional unsigned short code, optional DOMString reason);
 
   // messaging
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WebSocket-onmessage">onmessage</span>;
+           attribute <span>EventHandler</span> <span title="handler-WebSocket-onmessage">onmessage</span>;
            attribute DOMString <span title="dom-WebSocket-binaryType">binaryType</span>;
   void <span title="dom-WebSocket-send">send</span>(DOMString data);
   void <span title="dom-WebSocket-send">send</span>(<span>ArrayBufferView</span> data);
@@ -97215,7 +97224,7 @@
   void <span title="dom-MessagePort-close">close</span>();
 
   // event handlers
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-MessagePort-onmessage">onmessage</span>;
+           attribute <span>EventHandler</span> <span title="handler-MessagePort-onmessage">onmessage</span>;
 };
 <span>MessagePort</span> implements <span>Transferable</span>;</pre>
 
@@ -113818,9 +113827,9 @@
            attribute unsigned long <span title="dom-marquee-vspace">vspace</span>;
            attribute DOMString <span title="dom-marquee-width">width</span>;
 
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-marquee-onbounce">onbounce</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-marquee-onfinish">onfinish</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-marquee-onstart">onstart</span>;
+           attribute <span>EventHandler</span> <span title="handler-marquee-onbounce">onbounce</span>;
+           attribute <span>EventHandler</span> <span title="handler-marquee-onfinish">onfinish</span>;
+           attribute <span>EventHandler</span> <span title="handler-marquee-onstart">onstart</span>;
 
   void <span title="dom-marquee-start">start</span>();
   void <span title="dom-marquee-stop">stop</span>();
@@ -114063,24 +114072,24 @@
   <pre class="idl">interface <dfn>HTMLFrameSetElement</dfn> : <span>HTMLElement</span> {
            attribute DOMString <span title="dom-frameset-cols">cols</span>;
            attribute DOMString <span title="dom-frameset-rows">rows</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onafterprint">onafterprint</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onbeforeprint">onbeforeprint</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onbeforeunload">onbeforeunload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onblur">onblur</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onerror">onerror</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onfocus">onfocus</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onhashchange">onhashchange</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onload">onload</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onmessage">onmessage</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onoffline">onoffline</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-ononline">ononline</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpagehide">onpagehide</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpageshow">onpageshow</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onpopstate">onpopstate</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onresize">onresize</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onscroll">onscroll</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onstorage">onstorage</span>;
-  [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-window-onunload">onunload</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onafterprint">onafterprint</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onbeforeprint">onbeforeprint</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onbeforeunload">onbeforeunload</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onblur">onblur</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onerror">onerror</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onfocus">onfocus</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onhashchange">onhashchange</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onload">onload</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onmessage">onmessage</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onoffline">onoffline</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-ononline">ononline</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpagehide">onpagehide</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpageshow">onpageshow</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onpopstate">onpopstate</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onresize">onresize</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onscroll">onscroll</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onstorage">onstorage</span>;
+           attribute <span>EventHandler</span> <span title="handler-window-onunload">onunload</span>;
 };</pre>
 
   <p>The <dfn title="dom-frameset-cols"><code>cols</code></dfn> and




More information about the Commit-Watchers mailing list