hixie: sync with WebIDL for event handlers (whatwg r7146)

hixie: sync with WebIDL for event handlers (whatwg r7146)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.5696&r2=1.5697&f=h
http://html5.org/tools/web-apps-tracker?from=7145&to=7146

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.5696
retrieving revision 1.5697
diff -u -d -r1.5696 -r1.5697
--- Overview.html 26 Jun 2012 19:29:37 -0000 1.5696
+++ Overview.html 26 Jun 2012 19:58:48 -0000 1.5697
@@ -9132,7 +9132,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
@@ -9354,64 +9354,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>
 
 
@@ -10229,61 +10229,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>
@@ -16523,24 +16523,24 @@
    <dt><a href="#element-dfn-dom" title="element-dfn-dom">DOM interface</a>:</dt>
    <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><p>The <code><a href="#the-body-element">body</a></code> element <a href="#represents">represents</a> the main
@@ -29241,9 +29241,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> {
@@ -29260,9 +29260,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> {
@@ -29680,21 +29680,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>
@@ -31402,8 +31402,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>
@@ -31469,7 +31469,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>
@@ -31859,8 +31859,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>
@@ -53034,74 +53034,74 @@
   any <a href="#dom-showmodaldialog" title="dom-showModalDialog">showModalDialog</a>(DOMString url, optional any argument);
 
   // <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>
 
 
@@ -58856,14 +58856,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>
@@ -59254,7 +59254,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>
 
@@ -59266,9 +59266,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
@@ -59528,7 +59528,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>
 
@@ -59544,10 +59544,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
@@ -60058,8 +60058,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>
@@ -60265,9 +60265,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>
 
@@ -60316,10 +60316,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>
@@ -60352,20 +60352,16 @@
 
   </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>
-
-  <p>The <dfn id="dom-function-call" title="dom-function-call"><code>call(...)</code></dfn>
-  method is the object's callback.</p>
+  <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 class="note">In JavaScript, any <code title="">Function</code>
-  object implements this interface.</p>
+  <p class="note">In JavaScript, any <code>Function</code> object
+  implements this interface.</p>
 
   <div class="example">
 
@@ -60387,6 +60383,15 @@
   <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>
+
+  
+
 
   <h5 id="event-handlers-on-elements-document-objects-and-window-objects"><span class="secno">6.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>
 
@@ -60797,14 +60802,16 @@
 
   <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>
 
   
 
@@ -61062,12 +61069,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>
@@ -78228,9 +78235,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>();
@@ -78391,24 +78398,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

Received on Tuesday, 26 June 2012 19:59:18 UTC