[html5] r6220 - [] (0) Update IDL to recent WebIDL changes, thanks to heycam. Fixing http://www. [...]

whatwg at whatwg.org whatwg at whatwg.org
Mon Jun 13 16:39:03 PDT 2011


Author: ianh
Date: 2011-06-13 16:39:01 -0700 (Mon, 13 Jun 2011)
New Revision: 6220

Modified:
   complete.html
   index
   source
Log:
[] (0) Update IDL to recent WebIDL changes, thanks to heycam.
Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=10640

Modified: complete.html
===================================================================
--- complete.html	2011-06-13 23:11:07 UTC (rev 6219)
+++ complete.html	2011-06-13 23:39:01 UTC (rev 6220)
@@ -7677,8 +7677,8 @@
 
   <pre class=idl>interface <dfn id=htmlcollection>HTMLCollection</dfn> {
   readonly attribute unsigned long <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a>;
-  caller getter <a href=#element>Element</a> <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>(in unsigned long index);
-  caller getter object <a href=#dom-htmlcollection-nameditem title=dom-HTMLCollection-namedItem>namedItem</a>(in DOMString name); // only returns Element
+  caller getter <a href=#element>Element</a>? <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>(in unsigned long index);
+  caller getter object? <a href=#dom-htmlcollection-nameditem title=dom-HTMLCollection-namedItem>namedItem</a>(in DOMString name); // only returns Element
 };</pre>
 
   <dl class=domintro><dt><var title="">collection</var> . <code title=dom-HTMLCollection-length><a href=#dom-htmlcollection-length>length</a></code></dt>
@@ -7761,7 +7761,7 @@
 
   <pre class=idl>interface <dfn id=htmlallcollection>HTMLAllCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
   // inherits <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a> and <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>()
-  caller getter object <a href=#dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
+  caller getter object? <a href=#dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
   <a href=#htmlallcollection>HTMLAllCollection</a> <a href=#dom-htmlallcollection-tags title=dom-HTMLAllCollection-tags>tags</a>(in DOMString tagName);
 };</pre>
 
@@ -7857,7 +7857,7 @@
 
   <pre class=idl>interface <dfn id=htmlformcontrolscollection>HTMLFormControlsCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
   // inherits <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a> and <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>()
-  caller getter object <a href=#dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
+  caller getter object? <a href=#dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
 };
 
 interface <dfn id=radionodelist>RadioNodeList</dfn> : <a href=#nodelist>NodeList</a> {
@@ -7975,8 +7975,8 @@
   <pre class=idl>interface <dfn id=htmloptionscollection>HTMLOptionsCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
   // inherits <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>()
            attribute unsigned long <a href=#dom-htmloptionscollection-length title=dom-HTMLOptionsCollection-length>length</a>; // overrides inherited length
-  caller getter object <a href=#dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
-  void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in optional <a href=#htmlelement>HTMLElement</a> before);
+  caller getter object? <a href=#dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
+  void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in optional <a href=#htmlelement>HTMLElement</a>? before);
   void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in long before);
   void <a href=#dom-htmloptionscollection-remove title=dom-HTMLOptionsCollection-remove>remove</a>(in long index);
            attribute long <a href=#dom-htmloptionscollection-selectedindex title=dom-HTMLOptionsCollection-selectedIndex>selectedIndex</a>;
@@ -8152,7 +8152,7 @@
 
   <pre class=idl>interface <dfn id=htmlpropertiescollection>HTMLPropertiesCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
   // inherits <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a> and <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>()
-  caller getter <a href=#propertynodelist>PropertyNodeList</a> <a href=#dom-htmlpropertiescollection-nameditem title=dom-HTMLPropertiesCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
+  caller getter <a href=#propertynodelist>PropertyNodeList</a>? <a href=#dom-htmlpropertiescollection-nameditem title=dom-HTMLPropertiesCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
   readonly attribute <span>DOMStringList</span> <a href=#dom-htmlpropertiescollection-names title=dom-HTMLPropertiesCollection-names>names</a>;
 };
 
@@ -8246,7 +8246,7 @@
 
   <pre class=idl>interface <dfn id=domtokenlist>DOMTokenList</dfn> {
   readonly attribute unsigned long <a href=#dom-tokenlist-length title=dom-tokenlist-length>length</a>;
-  getter DOMString <a href=#dom-tokenlist-item title=dom-tokenlist-item>item</a>(in unsigned long index);
+  getter DOMString? <a href=#dom-tokenlist-item title=dom-tokenlist-item>item</a>(in unsigned long index);
   boolean <a href=#dom-tokenlist-contains title=dom-tokenlist-contains>contains</a>(in DOMString token);
   void <a href=#dom-tokenlist-add title=dom-tokenlist-add>add</a>(in DOMString token);
   void <a href=#dom-tokenlist-remove title=dom-tokenlist-remove>remove</a>(in DOMString token);
@@ -8917,7 +8917,7 @@
   <pre class=idl>[OverrideBuiltins]
 interface <dfn id=htmldocument>HTMLDocument</dfn> {
   // <a href=#resource-metadata-management>resource metadata management</a>
-  [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>] readonly attribute <a href=#location>Location</a> <a href=#dom-document-location title=dom-document-location>location</a>;
+  [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>] readonly attribute <a href=#location>Location</a>? <a href=#dom-document-location title=dom-document-location>location</a>;
   readonly attribute DOMString <a href=#dom-document-url title=dom-document-URL>URL</a>;
            attribute DOMString <a href=#dom-document-domain title=dom-document-domain>domain</a>;
   readonly attribute DOMString <a href=#dom-document-referrer title=dom-document-referrer>referrer</a>;
@@ -8933,8 +8933,8 @@
   <a href=#dom-document-nameditem title=dom-document-namedItem>getter</a> any (in DOMString name);
            attribute DOMString <a href=#document.title title=dom-document-title>title</a>;
            attribute DOMString <a href=#dom-document-dir title=dom-document-dir>dir</a>;
-           attribute <a href=#htmlelement>HTMLElement</a> <a href=#dom-document-body title=dom-document-body>body</a>;
-  readonly attribute <a href=#htmlheadelement>HTMLHeadElement</a> <a href=#dom-document-head title=dom-document-head>head</a>;
+           attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-document-body title=dom-document-body>body</a>;
+  readonly attribute <a href=#htmlheadelement>HTMLHeadElement</a>? <a href=#dom-document-head title=dom-document-head>head</a>;
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-images title=dom-document-images>images</a>;
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-embeds title=dom-document-embeds>embeds</a>;
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-plugins title=dom-document-plugins>plugins</a>;
@@ -8955,8 +8955,8 @@
   void <a href=#dom-document-writeln title=dom-document-writeln>writeln</a>(in DOMString... text);
 
   // <a href=#editing>user interaction</a>
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-document-defaultview title=dom-document-defaultView>defaultView</a>;
-  readonly attribute <a href=#element>Element</a> <a href=#dom-document-activeelement title=dom-document-activeElement>activeElement</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-document-defaultview title=dom-document-defaultView>defaultView</a>;
+  readonly attribute <a href=#element>Element</a>? <a href=#dom-document-activeelement title=dom-document-activeElement>activeElement</a>;
   boolean <a href=#dom-document-hasfocus title=dom-document-hasFocus>hasFocus</a>();
            attribute DOMString <a href=#designMode title=dom-document-designMode>designMode</a>;
   boolean <a href=#execCommand title=dom-document-execCommand>execCommand</a>(in DOMString commandId);
@@ -8970,60 +8970,60 @@
   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>
-           attribute <a href=#function>Function</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onblur title=handler-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onended title=handler-onended>onended</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onerror title=handler-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onload title=handler-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };
 <a href=#document>Document</a> implements <a href=#htmldocument>HTMLDocument</a>;</pre>
 
@@ -10140,13 +10140,13 @@
   [PutForwards=<a href=#dom-domsettabletokenlist-value title=dom-DOMSettableTokenList-value>value</a>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-dropzone title=dom-dropzone>dropzone</a>;
            attribute DOMString <a href=#dom-contenteditable title=dom-contentEditable>contentEditable</a>;
   readonly attribute boolean <a href=#dom-iscontenteditable title=dom-isContentEditable>isContentEditable</a>;
-           attribute <a href=#htmlmenuelement>HTMLMenuElement</a> <a href=#dom-contextmenu title=dom-contextMenu>contextMenu</a>;
+           attribute <a href=#htmlmenuelement>HTMLMenuElement</a>? <a href=#dom-contextmenu title=dom-contextMenu>contextMenu</a>;
            attribute boolean <a href=#dom-spellcheck title=dom-spellcheck>spellcheck</a>;
 
   // <a href=#command-api>command API</a>
-  readonly attribute DOMString <a href=#dom-command-ro-commandtype title=dom-command-ro-commandType>commandType</a>;
-  readonly attribute DOMString <a href=#dom-command-ro-label title=dom-command-ro-label>label</a>;
-  readonly attribute DOMString <a href=#dom-command-ro-icon title=dom-command-ro-icon>icon</a>;
+  readonly attribute DOMString? <a href=#dom-command-ro-commandtype title=dom-command-ro-commandType>commandType</a>;
+  readonly attribute DOMString? <a href=#dom-command-ro-label title=dom-command-ro-label>label</a>;
+  readonly attribute DOMString? <a href=#dom-command-ro-icon title=dom-command-ro-icon>icon</a>;
   readonly attribute boolean <a href=#dom-command-ro-disabled title=dom-command-ro-disabled>disabled</a>;
   readonly attribute boolean <a href=#dom-command-ro-checked title=dom-command-ro-checked>checked</a>;<!-- v2COMMAND
   readonly attribute <span>HTMLCollection</span> <span title="dom-command-ro-triggers">triggers</span>;-->
@@ -10155,60 +10155,60 @@
   readonly attribute <span>CSSStyleDeclaration</span> <a href=#dom-style title=dom-style>style</a>;
 
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-           attribute <a href=#function>Function</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onblur title=handler-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onended title=handler-onended>onended</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onerror title=handler-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onload title=handler-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };
 
 interface <dfn id=htmlunknownelement>HTMLUnknownElement</dfn> : <a href=#htmlelement>HTMLElement</a> { };</pre>
@@ -16825,26 +16825,26 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class=idl>interface <dfn id=htmlbodyelement>HTMLBodyElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-           attribute <a href=#function>Function</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
+           attribute <a href=#function>Function</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
@@ -20525,7 +20525,7 @@
 <pre class=idl>interface <dfn id=htmltimeelement>HTMLTimeElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute DOMString <a href=#dom-time-datetime title=dom-time-datetime>dateTime</a>;
            attribute boolean <a href=#dom-time-pubdate title=dom-time-pubDate>pubDate</a>;
-  readonly attribute <span>Date</span> <a href=#dom-time-valueasdate title=dom-time-valueAsDate>valueAsDate</a>;
+  readonly attribute <span>Date</span>? <a href=#dom-time-valueasdate title=dom-time-valueAsDate>valueAsDate</a>;
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-time-element>time</a></code> element <a href=#represents>represents</a> either a
@@ -23783,8 +23783,8 @@
            attribute boolean <a href=#dom-iframe-seamless title=dom-iframe-seamless>seamless</a>;
            attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
            attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
-  readonly attribute Document <a href=#dom-iframe-contentdocument title=dom-iframe-contentDocument>contentDocument</a>;
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-iframe-contentwindow title=dom-iframe-contentWindow>contentWindow</a>;
+  readonly attribute Document? <a href=#dom-iframe-contentdocument title=dom-iframe-contentDocument>contentDocument</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-iframe-contentwindow title=dom-iframe-contentWindow>contentWindow</a>;
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-iframe-element>iframe</a></code> element <a href=#represents>represents</a> a
@@ -24904,11 +24904,11 @@
            attribute DOMString <a href=#dom-object-type title=dom-object-type>type</a>;
            attribute DOMString <a href=#dom-object-name title=dom-object-name>name</a>;
            attribute DOMString <a href=#dom-object-usemap title=dom-object-useMap>useMap</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
            attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
-  readonly attribute Document <a href=#dom-object-contentdocument title=dom-object-contentDocument>contentDocument</a>;
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-object-contentwindow title=dom-object-contentWindow>contentWindow</a>;
+  readonly attribute Document? <a href=#dom-object-contentdocument title=dom-object-contentDocument>contentDocument</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-object-contentwindow title=dom-object-contentWindow>contentWindow</a>;
 
   readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
   readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
@@ -26553,7 +26553,7 @@
   <pre class=idl>interface <dfn id=htmlmediaelement>HTMLMediaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
 
   // error state
-  readonly attribute <a href=#mediaerror>MediaError</a> <a href=#dom-media-error title=dom-media-error>error</a>;
+  readonly attribute <a href=#mediaerror>MediaError</a>? <a href=#dom-media-error title=dom-media-error>error</a>;
 
   // network state
            attribute DOMString <a href=#dom-media-src title=dom-media-src>src</a>;
@@ -26598,7 +26598,7 @@
 
   // media controller
            attribute <span>DOMString</span> <a href=#dom-media-mediagroup title=dom-media-mediaGroup>mediaGroup</a>;
-           attribute <a href=#mediacontroller>MediaController</a> <a href=#dom-media-controller title=dom-media-controller>controller</a>;
+           attribute <a href=#mediacontroller>MediaController</a>? <a href=#dom-media-controller title=dom-media-controller>controller</a>;
 
   // controls
            attribute boolean <a href=#dom-media-controls title=dom-media-controls>controls</a>;
@@ -29275,7 +29275,7 @@
   DOMString <a href=#dom-tracklist-getlabel title=dom-TrackList-getLabel>getLabel</a>(in unsigned long index);
   DOMString <a href=#dom-tracklist-getlanguage title=dom-TrackList-getLanguage>getLanguage</a>(in unsigned long index);
 
-           attribute <a href=#function>Function</a> <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
 };
 
 interface <dfn id=multipletracklist>MultipleTrackList</dfn> : <a href=#tracklist>TrackList</a> {
@@ -29639,20 +29639,20 @@
            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>;
 
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
 
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onvolumechange title=handler-MediaController-onvolumechange>onvolumechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
+           attribute <a href=#function>Function</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>
@@ -31199,18 +31199,18 @@
   const unsigned short <a href=#dom-texttrack-loaded title=dom-TextTrack-LOADED>LOADED</a> = 2;
   const unsigned short <a href=#dom-texttrack-error title=dom-TextTrack-ERROR>ERROR</a> = 3;
   readonly attribute unsigned short <a href=#dom-texttrack-readystate title=dom-TextTrack-readyState>readyState</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-texttrack-onload title=handler-TextTrack-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-texttrack-onerror title=handler-TextTrack-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrack-onload title=handler-TextTrack-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrack-onerror title=handler-TextTrack-onerror>onerror</a>;
 
   const unsigned short <a href=#dom-texttrack-off title=dom-TextTrack-OFF>OFF</a> = 0;
   const unsigned short <a href=#dom-texttrack-hidden title=dom-TextTrack-HIDDEN>HIDDEN</a> = 1;
   const unsigned short <a href=#dom-texttrack-showing title=dom-TextTrack-SHOWING>SHOWING</a> = 2;
            attribute unsigned short <a href=#dom-texttrack-mode title=dom-TextTrack-mode>mode</a>;
 
-  readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a> <a href=#dom-texttrack-cues title=dom-TextTrack-cues>cues</a>;
-  readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a> <a href=#dom-texttrack-activecues title=dom-TextTrack-activeCues>activeCues</a>;
+  readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a>? <a href=#dom-texttrack-cues title=dom-TextTrack-cues>cues</a>;
+  readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a>? <a href=#dom-texttrack-activecues title=dom-TextTrack-activeCues>activeCues</a>;
 
-           attribute <a href=#function>Function</a> <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
 };
 <a href=#texttrack>TextTrack</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -31415,13 +31415,13 @@
    <dt><var title="">mutableTextTrack</var> . <code title=dom-MutableTextTrack-addCue><a href=#dom-mutabletexttrack-addcue>addCue</a></code>( <var title="">cue</var> )</dt>
    <dd>
     <p>Adds the given cue to <var title="">mutableTextTrack</var>'s <a href=#text-track-list-of-cues>text track list of cues</a>.</p>
-    <p>Raises an exception if the argument is null, associated with another <a href=#text-track>text track</a>, or already in the list of cues.</p>
+    <p>Raises an exception if the argument is associated with another <a href=#text-track>text track</a> or already in the list of cues.</p>
    </dd>
 
    <dt><var title="">mutableTextTrack</var> . <code title=dom-MutableTextTrack-removeCue><a href=#dom-mutabletexttrack-removecue>removeCue</a></code>( <var title="">cue</var> )</dt>
    <dd>
     <p>Removes the given cue from <var title="">mutableTextTrack</var>'s <a href=#text-track-list-of-cues>text track list of cues</a>.</p>
-    <p>Raises an exception if the argument is null, associated with another <a href=#text-track>text track</a>, or not in the list of cues.</p>
+    <p>Raises an exception if the argument is associated with another <a href=#text-track>text track</a> or not in the list of cues.</p>
    </dd>
 
   </dl><div class=impl>
@@ -31484,11 +31484,7 @@
   <code><a href=#mutabletexttrack>MutableTextTrack</a></code> objects, when invoked, must run the
   following steps:</p>
 
-  <ol><li><p>If <var title="">cue</var> is null, then throw an
-   <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code> exception and abort these
-   steps.</li>
-
-   <li><p>If the given <var title="">cue</var> is already associated
+  <ol><li><p>If the given <var title="">cue</var> is already associated
    with a <a href=#text-track>text track</a> other than the method's
    <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text track</a>,
    then throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception and abort
@@ -31512,11 +31508,7 @@
   <code><a href=#mutabletexttrack>MutableTextTrack</a></code> objects, when invoked, must run the
   following steps:</p>
 
-  <ol><li><p>If <var title="">cue</var> is null, then throw an
-   <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code> exception and abort these
-   steps.</li>
-
-   <li><p>If the given <var title="">cue</var> is not associated with
+  <ol><li><p>If the given <var title="">cue</var> is not associated with
    the method's <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text
    track</a>, then throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code>
    exception.</li>
@@ -31567,7 +31559,7 @@
   <hr><pre class=idl>interface <dfn id=texttrackcuelist>TextTrackCueList</dfn> {
   readonly attribute unsigned long <a href=#dom-texttrackcuelist-length title=dom-TextTrackCueList-length>length</a>;
   getter <a href=#texttrackcue>TextTrackCue</a> (in unsigned long index);
-  <a href=#texttrackcue>TextTrackCue</a> <a href=#dom-texttrackcuelist-getcuebyid title=dom-TextTrackCueList-getCueById>getCueById</a>(in DOMString id);
+  <a href=#texttrackcue>TextTrackCue</a>? <a href=#dom-texttrackcuelist-getcuebyid title=dom-TextTrackCueList-getCueById>getCueById</a>(in DOMString id);
 };</pre>
 
   <dl class=domintro><dt><var title="">cuelist</var> . <code title=dom-TextTrackCueList-length><a href=#dom-texttrackcuelist-length>length</a></code></dt>
@@ -31625,7 +31617,7 @@
 [<a href=#dom-texttrackcue title=dom-TextTrackCue>Constructor</a>(in DOMString id, in double startTime, in double endTime, in DOMString text, in optional DOMString settings, in optional boolean pauseOnExit)]
 <!--TTVTT-->
 interface <dfn id=texttrackcue>TextTrackCue</dfn> {
-  readonly attribute <a href=#texttrack>TextTrack</a> <a href=#dom-texttrackcue-track title=dom-TextTrackCue-track>track</a>;
+  readonly attribute <a href=#texttrack>TextTrack</a>? <a href=#dom-texttrackcue-track title=dom-TextTrackCue-track>track</a>;
   readonly attribute DOMString <a href=#dom-texttrackcue-id title=dom-TextTrackCue-id>id</a>;
 
   readonly attribute double <a href=#dom-texttrackcue-starttime title=dom-TextTrackCue-startTime>startTime</a>;
@@ -31644,8 +31636,8 @@
   DOMString <a href=#dom-texttrackcue-getcueassource title=dom-TextTrackCue-getCueAsSource>getCueAsSource</a>();
   <a href=#documentfragment>DocumentFragment</a> <a href=#dom-texttrackcue-getcueashtml title=dom-TextTrackCue-getCueAsHTML>getCueAsHTML</a>();
 
-           attribute <a href=#function>Function</a> <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
 };
 <a href=#texttrackcue>TextTrackCue</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -34293,9 +34285,9 @@
            attribute unsigned long <a href=#dom-canvas-height title=dom-canvas-height>height</a>;
 
   DOMString <a href=#dom-canvas-todataurl title=dom-canvas-toDataURL>toDataURL</a>(in optional DOMString type, in any... args);
-  void <a href=#dom-canvas-toblob title=dom-canvas-toBlob>toBlob</a>(in <span>FileCallback</span> callback, in optional DOMString type, in any... args);
+  void <a href=#dom-canvas-toblob title=dom-canvas-toBlob>toBlob</a>(in <span>FileCallback</span>? callback, in optional DOMString type, in any... args);
 
-  object <a href=#dom-canvas-getcontext title=dom-canvas-getContext>getContext</a>(in DOMString contextId, in any... args);
+  object? <a href=#dom-canvas-getcontext title=dom-canvas-getContext>getContext</a>(in DOMString contextId, in any... args);
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-canvas-element>canvas</a></code> element provides scripts with a
@@ -35493,16 +35485,13 @@
     <p>Returns a <code><a href=#canvaspattern>CanvasPattern</a></code> object that uses the given image
     and repeats in the direction(s) given by the <var title="">repetition</var> argument.</p>
 
-    <p>The allowed values for <var title="">repetition</var> are <code title="">repeat</code> (both directions), <code title="">repeat-x</code> (horizontal only), <code title="">repeat-y</code> (vertical only), and <code title="">no-repeat</code> (neither). If the <var title="">repetition</var> argument is empty or null, the value
-    <code title="">repeat</code> is used.</p>
+    <p>The allowed values for <var title="">repetition</var> are <code title="">repeat</code> (both directions), <code title="">repeat-x</code> (horizontal only), <code title="">repeat-y</code> (vertical only), and <code title="">no-repeat</code> (neither). If the <var title="">repetition</var> argument is empty, the value <code title="">repeat</code> is used.</p>
 
-    <p>If the first argument isn't an <code><a href=#the-img-element>img</a></code>,
-    <code><a href=#the-canvas-element>canvas</a></code>, or <code><a href=#the-video-element>video</a></code> element, throws a
-    <code><a href=#type_mismatch_err>TYPE_MISMATCH_ERR</a></code> exception. If the image has no
-    image data, throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception. If
-    the second argument isn't one of the allowed values, throws a
-    <code><a href=#syntax_err>SYNTAX_ERR</a></code> exception. If the image isn't yet fully
-    decoded, then the method returns null.</p>
+    <p>If the image has no image data, throws an
+    <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception. If the second argument
+    isn't one of the allowed values, throws a <code><a href=#syntax_err>SYNTAX_ERR</a></code>
+    exception. If the image isn't yet fully decoded, then the method
+    returns null.</p>
 
    </dd>
 
@@ -35516,19 +35505,18 @@
   must not affect the pattern. The second argument must be a string
   with one of the following values: <code title="">repeat</code>,
   <code title="">repeat-x</code>, <code title="">repeat-y</code>,
-  <code title="">no-repeat</code>. If the empty string or null is
-  specified, <code title="">repeat</code> must be assumed. If an
-  unrecognized value is given, then the user agent must raise a
-  <code><a href=#syntax_err>SYNTAX_ERR</a></code> exception. User agents must recognize the
-  four values described above exactly (e.g. they must not do case
-  folding). Except as specified below, the method must return a
-  <code><a href=#canvaspattern>CanvasPattern</a></code> object suitably initialized.</p>
+  <code title="">no-repeat</code>. If the empty string is specified,
+  <code title="">repeat</code> must be assumed. If an unrecognized value
+  is given, then the user agent must raise a <code><a href=#syntax_err>SYNTAX_ERR</a></code>
+  exception. User agents must recognize the four values described above
+  exactly (e.g. they must not do case folding). Except as specified
+  below, the method must return a <code><a href=#canvaspattern>CanvasPattern</a></code> object
+  suitably initialized.</p>
 
   <p>The <var title="">image</var> argument is an instance of either
   <code><a href=#htmlimageelement>HTMLImageElement</a></code>, <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code>, or
-  <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>. If the <var title="">image</var> is
-  null, the implementation must raise a <code><a href=#type_mismatch_err>TYPE_MISMATCH_ERR</a></code>
-  exception.</p> <!-- drawImage() has an equivalent paragraph -->
+  <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>.</p> <!-- drawImage() has an equivalent
+  paragraph -->
 
   <p>If the <var title="">image</var> argument is an
   <code><a href=#htmlimageelement>HTMLImageElement</a></code> object that is not <a href=#img-good title=img-good>fully decodable</a>, or if the <var title="">image</var> argument is an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
@@ -37099,9 +37087,8 @@
 
   <p>The <var title="">image</var> argument is an instance of either
   <code><a href=#htmlimageelement>HTMLImageElement</a></code>, <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code>, or
-  <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>. If the <var title="">image</var> is
-  null, the implementation must raise a <code><a href=#type_mismatch_err>TYPE_MISMATCH_ERR</a></code>
-  exception.</p> <!-- createPattern() has an equivalent paragraph -->
+  <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>.</p> <!-- createPattern() has an
+  equivalent paragraph -->
 
   <p>If the <var title="">image</var> argument is an
   <code><a href=#htmlimageelement>HTMLImageElement</a></code> object that is not <a href=#img-good title=img-good>fully decodable</a>, or if the <var title="">image</var> argument is an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
@@ -37208,9 +37195,6 @@
     dimensions as the argument. All the pixels in the returned object
     are transparent black.</p>
 
-    <p>Throws a <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code> exception if the
-    argument is null.</p>
-
    </dd>
 
    <dt><var title="">imagedata</var> = <var title="">context</var> . <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData</a></code>(<var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>)</dt>
@@ -37290,12 +37274,11 @@
   alpha values.</p>
 
   <p>If any of the arguments to <code title=dom-context-2d-createImageData><a href=#dom-context-2d-createimagedata>createImageData()</a></code> or
-  <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code> are
-  infinite or NaN, or if the <code title=dom-context-2d-createImageData><a href=#dom-context-2d-createimagedata>createImageData()</a></code>
-  method is invoked with only one argument but that argument is null,
-  the method must instead raise a <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code>
-  exception. If either the <var title="">sw</var> or <var title="">sh</var> arguments are zero, the method must instead raise
-  an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception.</p>
+  <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code>
+  are infinite or NaN, the method must instead raise a
+  <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code> exception. If either the <var title="">sw</var> or <var title="">sh</var> arguments are zero,
+  the method must instead raise an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code>
+  exception.</p>
 
   <p><code><a href=#imagedata>ImageData</a></code> objects must be initialized so that their
   <dfn id=dom-imagedata-width title=dom-imagedata-width><code>width</code></dfn> attribute
@@ -37345,9 +37328,6 @@
   <p>If any of the arguments to the method are infinite or NaN, the
   method must raise a <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code> exception.</p>
 
-  <p>If the first argument to the method is null, then the <code title=dom-context-2d-putImageData><a href=#dom-context-2d-putimagedata>putImageData()</a></code> method
-  must raise a <code><a href=#type_mismatch_err>TYPE_MISMATCH_ERR</a></code> exception.</p>
-
   <p>When the last four arguments are omitted, they must be assumed to
   have the values 0, 0, the <code title=dom-imagedata-width><a href=#dom-imagedata-width>width</a></code> member of the <var title="">imagedata</var> structure, and the <code title=dom-imagedata-height><a href=#dom-imagedata-height>height</a></code> member of the <var title="">imagedata</var> structure, respectively.</p>
 
@@ -38615,13 +38595,13 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class=idl>interface <dfn id=htmltableelement>HTMLTableElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-           attribute <a href=#htmltablecaptionelement>HTMLTableCaptionElement</a> <a href=#dom-table-caption title=dom-table-caption>caption</a>;
+           attribute <a href=#htmltablecaptionelement>HTMLTableCaptionElement</a>? <a href=#dom-table-caption title=dom-table-caption>caption</a>;
   <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createcaption title=dom-table-createCaption>createCaption</a>();
   void <a href=#dom-table-deletecaption title=dom-table-deleteCaption>deleteCaption</a>();
-           attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a> <a href=#dom-table-thead title=dom-table-tHead>tHead</a>;
+           attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a>? <a href=#dom-table-thead title=dom-table-tHead>tHead</a>;
   <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createthead title=dom-table-createTHead>createTHead</a>();
   void <a href=#dom-table-deletethead title=dom-table-deleteTHead>deleteTHead</a>();
-           attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a> <a href=#dom-table-tfoot title=dom-table-tFoot>tFoot</a>;
+           attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a>? <a href=#dom-table-tfoot title=dom-table-tFoot>tFoot</a>;
   <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createtfoot title=dom-table-createTFoot>createTFoot</a>();
   void <a href=#dom-table-deletetfoot title=dom-table-deleteTFoot>deleteTFoot</a>();
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-table-tbodies title=dom-table-tBodies>tBodies</a>;
@@ -42004,7 +41984,7 @@
    <dd>
 <pre class=idl>interface <dfn id=htmlfieldsetelement>HTMLFieldSetElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute boolean <a href=#dom-fieldset-disabled title=dom-fieldset-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
 
   readonly attribute DOMString <a href=#dom-fieldset-type title=dom-fieldset-type>type</a>;
@@ -42149,7 +42129,7 @@
    <dt>DOM interface:</dt>
    <dd>
     <pre class=idl>interface <dfn id=htmllegendelement>HTMLLegendElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-legend-form title=dom-legend-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-legend-form title=dom-legend-form>form</a>;
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-legend-element>legend</a></code> element <a href=#represents>represents</a> a caption
@@ -42198,9 +42178,9 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class=idl>interface <dfn id=htmllabelelement>HTMLLabelElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-label-htmlfor title=dom-label-htmlFor>htmlFor</a>;
-  readonly attribute <a href=#htmlelement>HTMLElement</a> <a href=#dom-label-control title=dom-label-control>control</a>;
+  readonly attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-label-control title=dom-label-control>control</a>;
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-label-element>label</a></code> <a href=#represents>represents</a> a caption in a
@@ -42383,8 +42363,8 @@
            attribute boolean <a href=#dom-input-checked title=dom-input-checked>checked</a>;
            attribute DOMString <a href=#dom-input-dirname title=dom-input-dirName>dirName</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
-  readonly attribute <a href=#filelist>FileList</a> <a href=#dom-input-files title=dom-input-files>files</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#filelist>FileList</a>? <a href=#dom-input-files title=dom-input-files>files</a>;
            attribute DOMString <a href=#dom-fs-formaction title=dom-fs-formAction>formAction</a>;
            attribute DOMString <a href=#dom-fs-formenctype title=dom-fs-formEnctype>formEnctype</a>;
            attribute DOMString <a href=#dom-fs-formmethod title=dom-fs-formMethod>formMethod</a>;
@@ -42392,7 +42372,7 @@
            attribute DOMString <a href=#dom-fs-formtarget title=dom-fs-formTarget>formTarget</a>;
            attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
            attribute boolean <a href=#dom-input-indeterminate title=dom-input-indeterminate>indeterminate</a>;
-  readonly attribute <a href=#htmlelement>HTMLElement</a> <a href=#dom-input-list title=dom-input-list>list</a>;
+  readonly attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-input-list title=dom-input-list>list</a>;
            attribute DOMString <a href=#dom-input-max title=dom-input-max>max</a>;
            attribute long <a href=#dom-input-maxlength title=dom-input-maxLength>maxLength</a>;
            attribute DOMString <a href=#dom-input-min title=dom-input-min>min</a>;
@@ -42410,7 +42390,7 @@
            attribute DOMString <a href=#dom-input-value title=dom-input-value>value</a>;
            attribute <span>Date</span> <a href=#dom-input-valueasdate title=dom-input-valueAsDate>valueAsDate</a>;
            attribute double <a href=#dom-input-valueasnumber title=dom-input-valueAsNumber>valueAsNumber</a>;
-  readonly attribute <a href=#htmloptionelement>HTMLOptionElement</a> <a href=#dom-input-selectedoption title=dom-input-selectedOption>selectedOption</a>;
+  readonly attribute <a href=#htmloptionelement>HTMLOptionElement</a>? <a href=#dom-input-selectedoption title=dom-input-selectedOption>selectedOption</a>;
            attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
 
   void <a href=#dom-input-stepup title=dom-input-stepUp>stepUp</a>(in optional long n);
@@ -48047,7 +48027,7 @@
 <pre class=idl>interface <dfn id=htmlbuttonelement>HTMLButtonElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-fs-formaction title=dom-fs-formAction>formAction</a>;
            attribute DOMString <a href=#dom-fs-formenctype title=dom-fs-formEnctype>formEnctype</a>;
            attribute DOMString <a href=#dom-fs-formmethod title=dom-fs-formMethod>formMethod</a>;
@@ -48214,7 +48194,7 @@
 <pre class=idl>interface <dfn id=htmlselectelement>HTMLSelectElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute boolean <a href=#dom-select-multiple title=dom-select-multiple>multiple</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
            attribute boolean <a href=#dom-select-required title=dom-select-required>required</a>;
@@ -48226,7 +48206,7 @@
            attribute unsigned long <a href=#dom-select-length title=dom-select-length>length</a>;
   getter any <a href=#dom-select-item title=dom-select-item>item</a>(in unsigned long index);
   any <a href=#dom-select-nameditem title=dom-select-namedItem>namedItem</a>(in DOMString name);
-  void <a href=#dom-select-add title=dom-select-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in optional <a href=#htmlelement>HTMLElement</a> before);
+  void <a href=#dom-select-add title=dom-select-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in optional <a href=#htmlelement>HTMLElement</a>? before);
   void <a href=#dom-select-add title=dom-select-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in long before);
   void <a href=#dom-select-remove title=dom-select-remove>remove</a>(in long index);
 
@@ -48798,7 +48778,7 @@
  NamedConstructor=<a href=#dom-option-tvds title=dom-option-tvds>Option</a>(in DOMString text, in DOMString value, in boolean defaultSelected, in boolean selected)]
 interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute boolean <a href=#dom-option-disabled title=dom-option-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-option-form title=dom-option-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-option-form title=dom-option-form>form</a>;
            attribute DOMString <a href=#dom-option-label title=dom-option-label>label</a>;
            attribute boolean <a href=#dom-option-defaultselected title=dom-option-defaultSelected>defaultSelected</a>;
            attribute boolean <a href=#dom-option-selected title=dom-option-selected>selected</a>;
@@ -49037,7 +49017,7 @@
            attribute unsigned long <a href=#dom-textarea-cols title=dom-textarea-cols>cols</a>;
            attribute DOMString <a href=#dom-textarea-dirname title=dom-textarea-dirName>dirName</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute long <a href=#dom-textarea-maxlength title=dom-textarea-maxLength>maxLength</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
            attribute DOMString <a href=#dom-textarea-placeholder title=dom-textarea-placeholder>placeholder</a>;
@@ -49418,7 +49398,7 @@
            attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
            attribute DOMString <a href=#dom-keygen-challenge title=dom-keygen-challenge>challenge</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-keygen-keytype title=dom-keygen-keytype>keytype</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
 
@@ -49703,7 +49683,7 @@
    <dd>
 <pre class=idl>interface <dfn id=htmloutputelement>HTMLOutputElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
   [PutForwards=<a href=#dom-domsettabletokenlist-value title=dom-DOMSettableTokenList-value>value</a>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-output-htmlfor title=dom-output-htmlFor>htmlFor</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
 
   readonly attribute DOMString <a href=#dom-output-type title=dom-output-type>type</a>;
@@ -49873,7 +49853,7 @@
            attribute double <a href=#dom-progress-value title=dom-progress-value>value</a>;
            attribute double <a href=#dom-progress-max title=dom-progress-max>max</a>;
   readonly attribute double <a href=#dom-progress-position title=dom-progress-position>position</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
   readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
 };</pre>
    </dd>
@@ -50051,7 +50031,7 @@
            attribute double <a href=#dom-meter-low title=dom-meter-low>low</a>;
            attribute double <a href=#dom-meter-high title=dom-meter-high>high</a>;
            attribute double <a href=#dom-meter-optimum title=dom-meter-optimum>optimum</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
   readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
 };</pre>
    </dd>
@@ -61379,7 +61359,7 @@
   readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-top title=dom-top>top</a>;
            attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-opener title=dom-opener>opener</a>;
   readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-parent title=dom-parent>parent</a>;
-  readonly attribute <a href=#element>Element</a> <a href=#dom-frameelement title=dom-frameElement>frameElement</a>;
+  readonly attribute <a href=#element>Element</a>? <a href=#dom-frameelement title=dom-frameElement>frameElement</a>;
   <a href=#windowproxy>WindowProxy</a> <a href=#dom-open title=dom-open>open</a>(in optional DOMString url, in optional DOMString target, in optional DOMString features, in optional DOMString replace);
   <a href=#dom-window-item title=dom-window-item>getter</a> <a href=#windowproxy>WindowProxy</a> (in unsigned long index);
   <a href=#dom-window-nameditem title=dom-window-namedItem>getter</a> any (in DOMString name);
@@ -61392,7 +61372,7 @@
   // user prompts
   void <a href=#dom-alert title=dom-alert>alert</a>(in DOMString message);
   boolean <a href=#dom-confirm title=dom-confirm>confirm</a>(in DOMString message);
-  DOMString <a href=#dom-prompt title=dom-prompt>prompt</a>(in DOMString message, in optional DOMString default);
+  DOMString? <a href=#dom-prompt title=dom-prompt>prompt</a>(in DOMString message, in optional DOMString default);
   void <a href=#dom-print title=dom-print>print</a>();
   any <a href=#dom-showmodaldialog title=dom-showModalDialog>showModalDialog</a>(in DOMString url, in optional any argument<!--, in optional DOMString features-->);
 
@@ -61400,75 +61380,75 @@
   void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(in any message, in DOMString targetOrigin, in optional sequence<<a href=#messageport>MessagePort</a>> ports);
 <!--POSTMSG-->
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-           attribute <a href=#function>Function</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onended title=handler-onended>onended</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };
 <a href=#window>Window</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -66797,14 +66777,14 @@
   void <a href=#dom-appcache-swapcache title=dom-appcache-swapCache>swapCache</a>();
 
   // events
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
 };
 <a href=#applicationcache>ApplicationCache</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -71941,11 +71921,11 @@
   <a href=#dom-datatransferitemlist-removeitem title=dom-DataTransferItemList-removeItem>deleter</a> void (in unsigned long index);
   void <a href=#dom-datatransferitemlist-clear title=dom-DataTransferItemList-clear>clear</a>();
 
-  <a href=#datatransferitem>DataTransferItem</a> <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(in DOMString data, in DOMString type);<!--
-DND-v3:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in <span>Blob</span> data);-->
-  <a href=#datatransferitem>DataTransferItem</a> <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(in <a href=#file>File</a> data);<!--
-DND-v4:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in any data, in DOMString type);--><!--
-DND-v5:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in <span>DataTransferPromise</span> data);-->
+  <a href=#datatransferitem>DataTransferItem</a>? <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(in DOMString data, in DOMString type);<!--
+DND-v3:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in <span>Blob</span> data);-->
+  <a href=#datatransferitem>DataTransferItem</a>? <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(in <a href=#file>File</a> data);<!--
+DND-v4:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in any data, in DOMString type);--><!--
+DND-v5:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in <span>DataTransferPromise</span> data);-->
 };</pre>
 
   <dl class=domintro><dt><var title="">items</var> . <code title=dom-DataTransferItemList-length><a href=#dom-datatransferitemlist-length>length</a></code></dt>
@@ -72147,9 +72127,9 @@
   <pre class=idl>interface <dfn id=datatransferitem>DataTransferItem</dfn> {
     readonly attribute DOMString <a href=#dom-datatransferitem-kind title=dom-DataTransferItem-kind>kind</a>;
     readonly attribute DOMString <a href=#dom-datatransferitem-type title=dom-DataTransferItem-type>type</a>;
-    void <a href=#dom-datatransferitem-getasstring title=dom-DataTransferItem-getAsString>getAsString</a>(in <a href=#functionstringcallback>FunctionStringCallback</a> callback);<!--
+    void <a href=#dom-datatransferitem-getasstring title=dom-DataTransferItem-getAsString>getAsString</a>(in <a href=#functionstringcallback>FunctionStringCallback</a>? callback);<!--
 DND-v3:    <span>Blob</span> <span title="dom-DataTransferItem-getAsBlob">getAsBlob</span>();-->
-    <a href=#file>File</a> <a href=#dom-datatransferitem-getasfile title=dom-DataTransferItem-getAsFile>getAsFile</a>();<!--
+    <a href=#file>File</a>? <a href=#dom-datatransferitem-getasfile title=dom-DataTransferItem-getAsFile>getAsFile</a>();<!--
 DND-v4:    void <span title="dom-DataTransferItem-getAsObject">getAsObject</span>(in <span>FunctionObjectCallback</span> callback);-->
 };
 
@@ -72373,9 +72353,9 @@
   all use the <code><a href=#dragevent>DragEvent</a></code> interface.</p>
 
   <pre class=idl>interface <dfn id=dragevent>DragEvent</dfn> : <a href=#mouseevent>MouseEvent</a> {
-  readonly attribute <a href=#datatransfer>DataTransfer</a> <a href=#dom-dragevent-datatransfer title=dom-DragEvent-dataTransfer>dataTransfer</a>;
+  readonly attribute <a href=#datatransfer>DataTransfer</a>? <a href=#dom-dragevent-datatransfer title=dom-DragEvent-dataTransfer>dataTransfer</a>;
 
-  void <a href=#dom-dragevent-initdragevent title=dom-DragEvent-initDragEvent>initDragEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dummyArg<!-- used to be viewArg, back when we had views -->, in long detailArg, in long screenXArg, in long screenYArg, in long clientXArg, in long clientYArg, in boolean ctrlKeyArg, in boolean altKeyArg, in boolean shiftKeyArg, in boolean metaKeyArg, in unsigned short buttonArg, in EventTarget relatedTargetArg, in <a href=#datatransfer>DataTransfer</a> dataTransferArg);
+  void <a href=#dom-dragevent-initdragevent title=dom-DragEvent-initDragEvent>initDragEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dummyArg<!-- used to be viewArg, back when we had views -->, in long detailArg, in long screenXArg, in long screenYArg, in long clientXArg, in long clientYArg, in boolean ctrlKeyArg, in boolean altKeyArg, in boolean shiftKeyArg, in boolean metaKeyArg, in unsigned short buttonArg, in EventTarget relatedTargetArg, in <a href=#datatransfer>DataTransfer</a>? dataTransferArg);
 };</pre>
 
   <dl class=domintro><dt><var title="">event</var> . <code title=dom-DragEvent-dataTransfer><a href=#dom-dragevent-datatransfer>dataTransfer</a></code></dt>
@@ -74462,7 +74442,7 @@
 
   <pre class=idl>[Supplemental, NoInterfaceObject]
 interface <dfn id=navigatorusermedia>NavigatorUserMedia</dfn> {
-  void <a href=#dom-navigator-getusermedia title=dom-navigator-getUserMedia>getUserMedia</a>(in DOMString options, in <a href=#navigatorusermediasuccesscallback>NavigatorUserMediaSuccessCallback</a> successCallback, in optional <a href=#navigatorusermediaerrorcallback>NavigatorUserMediaErrorCallback</a> errorCallback);
+  void <a href=#dom-navigator-getusermedia title=dom-navigator-getUserMedia>getUserMedia</a>(in DOMString options, in <a href=#navigatorusermediasuccesscallback>NavigatorUserMediaSuccessCallback</a>? successCallback, in optional <a href=#navigatorusermediaerrorcallback>NavigatorUserMediaErrorCallback</a>? errorCallback);
 };
 <a href=#navigator>Navigator</a> implements <a href=#navigatorusermedia>NavigatorUserMedia</a>;
 
@@ -74736,7 +74716,7 @@
   const unsigned short <a href=#dom-stream-live title=dom-stream-LIVE>LIVE</a> = 1;
   const unsigned short <a href=#dom-stream-ended title=dom-stream-ENDED>ENDED</a> = 2;
   readonly attribute unsigned short <a href=#dom-stream-readystate title=dom-stream-readyState>readyState</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-stream-onended title=handler-stream-onended>onended</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-stream-onended title=handler-stream-onended>onended</a>;
 };
 <a href=#stream>Stream</a> implements <a href=#eventtarget>EventTarget</a>;
 
@@ -74964,7 +74944,7 @@
   </div>
 
   <pre class=idl>interface <dfn id=streamrecorder>StreamRecorder</dfn> {
-  void <a href=#dom-streamrecorder-getrecordeddata title=dom-StreamRecorder-getRecordedData>getRecordedData</a>(in <a href=#blobcallback>BlobCallback</a> callback);
+  void <a href=#dom-streamrecorder-getrecordeddata title=dom-StreamRecorder-getRecordedData>getRecordedData</a>(in <a href=#blobcallback>BlobCallback</a>? callback);
 };
 
 [Callback=FunctionOnly, NoInterfaceObject]
@@ -75181,13 +75161,13 @@
   void <a href=#dom-peerconnection-close title=dom-PeerConnection-close>close</a>();
 
   // <span class=XXX>connection quality information</span>
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting>onconnecting</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onopen title=handler-PeerConnection-onopen>onopen</a>;<!--
-           attribute <span>Function</span> <span title="handler-PeerConnection-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-PeerConnection-onclose">onclose</span>;-->
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onmessage title=handler-PeerConnection-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream>onaddstream</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream>onremovestream</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting>onconnecting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onopen title=handler-PeerConnection-onopen>onopen</a>;<!--
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onclose">onclose</span>;-->
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onmessage title=handler-PeerConnection-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream>onaddstream</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream>onremovestream</a>;
 };
 <a href=#peerconnection>PeerConnection</a> implements <a href=#eventtarget>EventTarget</a>;
 
@@ -75770,9 +75750,6 @@
    <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
    <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception.</li>
 
-   <li><p>If <var title="">stream</var> is null, throw a
-   <code>TypeError</code> exception and abort these steps.</li>
-
    <li><p>If <var title="">stream</var> is already in the
    <code><a href=#peerconnection>PeerConnection</a></code> object's <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> object,
    then abort these steps.</li>
@@ -75798,9 +75775,6 @@
    <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
    <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception.</li>
 
-   <li><p>If <var title="">stream</var> is null, throw a
-   <code>TypeError</code> exception and abort these steps.</li>
-
    <li><p>If <var title="">stream</var> is not in the
    <code><a href=#peerconnection>PeerConnection</a></code> object's <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> object,
    then abort these steps.</li>
@@ -76179,8 +76153,8 @@
   use the <code><a href=#streamevent>StreamEvent</a></code> interface:</p>
 
   <pre class=idl>interface <dfn id=streamevent>StreamEvent</dfn> : <a href=#event>Event</a> {
-  readonly attribute <a href=#stream>Stream</a> <a href=#dom-streamevent-stream title=dom-StreamEvent-stream>stream</a>;
-  void <a href=#dom-streamevent-initstreamevent title=dom-StreamEvent-initStreamEvent>initStreamEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <a href=#stream>Stream</a> streamArg);
+  readonly attribute <a href=#stream>Stream</a>? <a href=#dom-streamevent-stream title=dom-StreamEvent-stream>stream</a>;
+  void <a href=#dom-streamevent-initstreamevent title=dom-StreamEvent-initStreamEvent>initStreamEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <a href=#stream>Stream</a>? streamArg);
 };</pre>
 
   <div class=impl>
@@ -77274,10 +77248,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           attribute <span>Function</span> <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
--->           attribute <a href=#function>Function</a> <a href=#handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline>onoffline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline>ononline</a>;
+<!-- v2-onclose           attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
+-->           attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline>onoffline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline>ononline</a>;
 };
 <a href=#workerglobalscope>WorkerGlobalScope</a> implements <a href=#workerutils>WorkerUtils</a>;
 <a href=#workerglobalscope>WorkerGlobalScope</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
@@ -77331,7 +77305,7 @@
 interface <dfn id=dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
   void <a href=#dom-dedicatedworkerglobalscope-postmessage title=dom-DedicatedWorkerGlobalScope-postMessage>postMessage</a>(in any message, in optional sequence<<a href=#messageport>MessagePort</a>> ports);<!--
   <span>MessagePort</span> <span title="dom-DedicatedWorkerGlobalScope-startConversation">startConversation</span>(in any message);-->
-           attribute <a href=#function>Function</a> <a href=#handler-dedicatedworkerglobalscope-onmessage title=handler-DedicatedWorkerGlobalScope-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-dedicatedworkerglobalscope-onmessage title=handler-DedicatedWorkerGlobalScope-onmessage>onmessage</a>;
 };</pre>
 
   <p><code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> objects act as if they
@@ -77372,7 +77346,7 @@
 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>;
-           attribute <a href=#function>Function</a> <a href=#handler-sharedworkerglobalscope-onconnect title=handler-SharedWorkerGlobalScope-onconnect>onconnect</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-sharedworkerglobalscope-onconnect title=handler-SharedWorkerGlobalScope-onconnect>onconnect</a>;
 };</pre>
 
   <p>Shared workers receive message ports through <code title=event-WorkerGlobalScope-connect>connect</code> events on
@@ -77855,8 +77829,8 @@
 
   <pre class=idl>[Supplemental, NoInterfaceObject]
 interface <dfn id=abstractworker>AbstractWorker</dfn> {
-           attribute <a href=#function>Function</a> <a href=#handler-abstractworker-onerror title=handler-AbstractWorker-onerror>onerror</a>;
-<!-- v2-onclose           attribute <span>Function</span> <span title="handler-AbstractWorker-onclose">onclose</span>; -->
+           attribute <a href=#function>Function</a>? <a href=#handler-abstractworker-onerror title=handler-AbstractWorker-onerror>onerror</a>;
+<!-- v2-onclose           attribute <span>Function</span>? <span title="handler-AbstractWorker-onclose">onclose</span>; -->
 };
 <a href=#abstractworker>AbstractWorker</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -77876,7 +77850,7 @@
 
   void <a href=#dom-worker-postmessage title=dom-Worker-postMessage>postMessage</a>(in any message, in optional sequence<<a href=#messageport>MessagePort</a>> ports);<!--
   <span>MessagePort</span> <span title="dom-Worker-startConversation">startConversation</span>(in any message);-->
-           attribute <a href=#function>Function</a> <a href=#handler-worker-onmessage title=handler-Worker-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-worker-onmessage title=handler-Worker-onmessage>onmessage</a>;
 };</pre>
 
   <p>The <dfn id=dom-worker-terminate title=dom-Worker-terminate><code>terminate()</code></dfn> method,
@@ -78461,9 +78435,9 @@
   readonly attribute any <a href=#dom-messageevent-data title=dom-MessageEvent-data>data</a>;
   readonly attribute DOMString <a href=#dom-messageevent-origin title=dom-MessageEvent-origin>origin</a>;
   readonly attribute DOMString <a href=#dom-messageevent-lasteventid title=dom-MessageEvent-lastEventId>lastEventId</a>;
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-messageevent-source title=dom-MessageEvent-source>source</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-messageevent-source title=dom-MessageEvent-source>source</a>;
   readonly attribute <a href=#messageport>MessagePort</a>[] <a href=#dom-messageevent-ports title=dom-MessageEvent-ports>ports</a>;
-  void <a href=#dom-messageevent-initmessageevent title=dom-MessageEvent-initMessageEvent>initMessageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg, in DOMString originArg, in DOMString lastEventIdArg, in <a href=#windowproxy>WindowProxy</a> sourceArg, in sequence<<a href=#messageport>MessagePort</a>> portsArg);
+  void <a href=#dom-messageevent-initmessageevent title=dom-MessageEvent-initMessageEvent>initMessageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg, in DOMString originArg, in DOMString lastEventIdArg, in <a href=#windowproxy>WindowProxy</a>? sourceArg, in sequence<<a href=#messageport>MessagePort</a>> portsArg);
 };</pre>
 
   <dl class=domintro><dt><var title="">event</var> . <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code></dt>
@@ -78614,9 +78588,9 @@
   readonly attribute unsigned short <a href=#dom-eventsource-readystate title=dom-EventSource-readyState>readyState</a>;
 
   // networking
-           attribute <a href=#function>Function</a> <a href=#handler-eventsource-onopen title=handler-EventSource-onopen>onopen</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-eventsource-onmessage title=handler-EventSource-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-eventsource-onerror title=handler-EventSource-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onopen title=handler-EventSource-onopen>onopen</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onmessage title=handler-EventSource-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onerror title=handler-EventSource-onerror>onerror</a>;
   void <a href=#dom-eventsource-close title=dom-EventSource-close>close</a>();
 };
 <a href=#eventsource>EventSource</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
@@ -79392,15 +79366,15 @@
   readonly attribute unsigned long <a href=#dom-websocket-bufferedamount title=dom-WebSocket-bufferedAmount>bufferedAmount</a>;
 
   // networking
-           attribute <a href=#function>Function</a> <a href=#handler-websocket-onopen title=handler-WebSocket-onopen>onopen</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-websocket-onerror title=handler-WebSocket-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-websocket-onclose title=handler-WebSocket-onclose>onclose</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-websocket-onopen title=handler-WebSocket-onopen>onopen</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-websocket-onerror title=handler-WebSocket-onerror>onerror</a>;
+           attribute <a href=#function>Function</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>(in optional unsigned long code, in optional DOMString reason);
 
   // messaging
-           attribute <a href=#function>Function</a> <a href=#handler-websocket-onmessage title=handler-WebSocket-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</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>(in DOMString data);
   void <a href=#dom-websocket-send title=dom-WebSocket-send>send</a>(in <span>ArrayBuffer</span> data);
@@ -80115,8 +80089,7 @@
     message to same-origin targets only, without needing to explicitly
     state the origin, set the target origin to "<code title="">/</code>".</p>
 
-    <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array is not null and it contains either null
-    entries or duplicate ports.</p>
+    <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array contains duplicate ports.</p>
 
    </dd>
 
@@ -80158,8 +80131,7 @@
 
    <li>
 
-    <p>If the <var title="">ports</var> argument is present but either
-    any of the entries in <var title="">ports</var> are null, or any
+    <p>If the <var title="">ports</var> argument is present but any
     <code><a href=#messageport>MessagePort</a></code> object is listed in <var title="">ports</var> more than once, or any of the
     <code><a href=#messageport>MessagePort</a></code> objects listed in <var title="">ports</var> have already been cloned once before, then
     throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception and abort these
@@ -80368,7 +80340,7 @@
   void <a href=#dom-messageport-close title=dom-MessagePort-close>close</a>();
 
   // event handlers
-           attribute <a href=#function>Function</a> <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
 };
 <a href=#messageport>MessagePort</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -80387,8 +80359,8 @@
     <p>Posts a message through the channel, optionally with the given
     ports.</p>
 
-    <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array is not null and it contains either null
-    entries, duplicate ports, or the source or target port.</p>
+    <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array contains either duplicate ports, or the
+    source or target port.</p>
 
    </dd>
 
@@ -80490,13 +80462,13 @@
   <ol><li><p>Let <var title="">target port</var> be the port with which
    <var title="">source port</var> is entangled, if any.</li>
 
-   <li><p>If the method was called with a second argument <var title="">ports</var> and that argument isn't null, then, if any of
-   the entries in <var title="">ports</var> are null, if any
-   <code><a href=#messageport>MessagePort</a></code> object is listed in <var title="">ports</var> more than once, if any of the
-   <code><a href=#messageport>MessagePort</a></code> objects listed in <var title="">ports</var> have already been cloned once before, or if
-   any of the entries in <var title="">ports</var> are either the <var title="">source port</var> or the <var title="">target port</var>
-   (if any), then throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code>
-   exception.</li>
+   <li><p>If the method was called with a second argument <var title="">ports</var>, then, if any <code><a href=#messageport>MessagePort</a></code> object
+   is listed in <var title="">ports</var> more than once, if any of the
+   <code><a href=#messageport>MessagePort</a></code> objects listed in <var title="">ports</var>
+   have already been cloned once before, or if any of the entries
+   in <var title="">ports</var> are either the <var title="">source
+   port</var> or the <var title="">target port</var> (if any), then
+   throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception.</li>
 
    <li><p>Create an event that uses the <code><a href=#messageevent>MessageEvent</a></code>
    interface, with the name <code title=event-message><a href=#event-message>message</a></code>, which does not bubble, is not
@@ -80513,8 +80485,7 @@
    attribute of the event have the value of <var title="">message
    clone</var>.</li>
 
-   <li><p>If the method was called with a second argument <var title="">ports</var> and that argument isn't null, then run the
-   following substeps:</p>
+   <li><p>If the method was called with a second argument <var title="">ports</var>, then run the following substeps:</p>
 
     <ol><li>
 
@@ -80810,7 +80781,7 @@
 
   <pre class=idl>interface <dfn id=storage-0>Storage</dfn> {
   readonly attribute unsigned long <a href=#dom-storage-length title=dom-Storage-length>length</a>;
-  DOMString <a href=#dom-storage-key title=dom-Storage-key>key</a>(in unsigned long index);
+  DOMString? <a href=#dom-storage-key title=dom-Storage-key>key</a>(in unsigned long index);
   getter any <a href=#dom-storage-getitem title=dom-Storage-getItem>getItem</a>(in DOMString key);
   setter creator void <a href=#dom-storage-setitem title=dom-Storage-setItem>setItem</a>(in DOMString key, in any value);
   deleter void <a href=#dom-storage-removeitem title=dom-Storage-removeItem>removeItem</a>(in DOMString key);
@@ -81132,8 +81103,8 @@
   readonly attribute any <a href=#dom-storageevent-oldvalue title=dom-StorageEvent-oldValue>oldValue</a>;
   readonly attribute any <a href=#dom-storageevent-newvalue title=dom-StorageEvent-newValue>newValue</a>;
   readonly attribute DOMString <a href=#dom-storageevent-url title=dom-StorageEvent-url>url</a>;
-  readonly attribute <a href=#storage-0>Storage</a> <a href=#dom-storageevent-storagearea title=dom-StorageEvent-storageArea>storageArea</a>;
-  void <a href=#dom-storageevent-initstorageevent title=dom-StorageEvent-initStorageEvent>initStorageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in any oldValueArg, in any newValueArg, in DOMString urlArg, in <a href=#storage-0>Storage</a> storageAreaArg);
+  readonly attribute <a href=#storage-0>Storage</a>? <a href=#dom-storageevent-storagearea title=dom-StorageEvent-storageArea>storageArea</a>;
+  void <a href=#dom-storageevent-initstorageevent title=dom-StorageEvent-initStorageEvent>initStorageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in any oldValueArg, in any newValueArg, in DOMString urlArg, in <a href=#storage-0>Storage</a>? storageAreaArg);
 };</pre>
 
   <p>The <dfn id=dom-storageevent-initstorageevent title=dom-StorageEvent-initStorageEvent><code>initStorageEvent()</code></dfn>
@@ -94677,9 +94648,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>;
 
-           attribute <a href=#function>Function</a> <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-marquee-onstart title=handler-marquee-onstart>onstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
+           attribute <a href=#function>Function</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>();
@@ -94840,26 +94811,26 @@
   <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>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
+           attribute <a href=#function>Function</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
@@ -94962,8 +94933,8 @@
            attribute boolean <a href=#dom-frame-noresize title=dom-frame-noResize>noResize</a>;
            attribute DOMString <a href=#dom-frame-scrolling title=dom-frame-scrolling>scrolling</a>;
            attribute DOMString <a href=#dom-frame-src title=dom-frame-src>src</a>;
-  readonly attribute Document <a href=#dom-frame-contentdocument title=dom-frame-contentDocument>contentDocument</a>;
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-frame-contentwindow title=dom-frame-contentWindow>contentWindow</a>;
+  readonly attribute Document? <a href=#dom-frame-contentdocument title=dom-frame-contentDocument>contentDocument</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-frame-contentwindow title=dom-frame-contentWindow>contentWindow</a>;
 };</pre>
 
   <p>The <dfn id=dom-frame-name title=dom-frame-name><code>name</code></dfn>, <dfn id=dom-frame-scrolling title=dom-frame-scrolling><code>scrolling</code></dfn>, and <dfn id=dom-frame-src title=dom-frame-src><code>src</code></dfn> IDL attributes of the

Modified: index
===================================================================
--- index	2011-06-13 23:11:07 UTC (rev 6219)
+++ index	2011-06-13 23:39:01 UTC (rev 6220)
@@ -7667,8 +7667,8 @@
 
   <pre class=idl>interface <dfn id=htmlcollection>HTMLCollection</dfn> {
   readonly attribute unsigned long <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a>;
-  caller getter <a href=#element>Element</a> <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>(in unsigned long index);
-  caller getter object <a href=#dom-htmlcollection-nameditem title=dom-HTMLCollection-namedItem>namedItem</a>(in DOMString name); // only returns Element
+  caller getter <a href=#element>Element</a>? <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>(in unsigned long index);
+  caller getter object? <a href=#dom-htmlcollection-nameditem title=dom-HTMLCollection-namedItem>namedItem</a>(in DOMString name); // only returns Element
 };</pre>
 
   <dl class=domintro><dt><var title="">collection</var> . <code title=dom-HTMLCollection-length><a href=#dom-htmlcollection-length>length</a></code></dt>
@@ -7751,7 +7751,7 @@
 
   <pre class=idl>interface <dfn id=htmlallcollection>HTMLAllCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
   // inherits <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a> and <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>()
-  caller getter object <a href=#dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
+  caller getter object? <a href=#dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
   <a href=#htmlallcollection>HTMLAllCollection</a> <a href=#dom-htmlallcollection-tags title=dom-HTMLAllCollection-tags>tags</a>(in DOMString tagName);
 };</pre>
 
@@ -7847,7 +7847,7 @@
 
   <pre class=idl>interface <dfn id=htmlformcontrolscollection>HTMLFormControlsCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
   // inherits <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a> and <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>()
-  caller getter object <a href=#dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
+  caller getter object? <a href=#dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
 };
 
 interface <dfn id=radionodelist>RadioNodeList</dfn> : <a href=#nodelist>NodeList</a> {
@@ -7965,8 +7965,8 @@
   <pre class=idl>interface <dfn id=htmloptionscollection>HTMLOptionsCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
   // inherits <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>()
            attribute unsigned long <a href=#dom-htmloptionscollection-length title=dom-HTMLOptionsCollection-length>length</a>; // overrides inherited length
-  caller getter object <a href=#dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
-  void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in optional <a href=#htmlelement>HTMLElement</a> before);
+  caller getter object? <a href=#dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
+  void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in optional <a href=#htmlelement>HTMLElement</a>? before);
   void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in long before);
   void <a href=#dom-htmloptionscollection-remove title=dom-HTMLOptionsCollection-remove>remove</a>(in long index);
            attribute long <a href=#dom-htmloptionscollection-selectedindex title=dom-HTMLOptionsCollection-selectedIndex>selectedIndex</a>;
@@ -8142,7 +8142,7 @@
 
   <pre class=idl>interface <dfn id=htmlpropertiescollection>HTMLPropertiesCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
   // inherits <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a> and <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>()
-  caller getter <a href=#propertynodelist>PropertyNodeList</a> <a href=#dom-htmlpropertiescollection-nameditem title=dom-HTMLPropertiesCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
+  caller getter <a href=#propertynodelist>PropertyNodeList</a>? <a href=#dom-htmlpropertiescollection-nameditem title=dom-HTMLPropertiesCollection-namedItem>namedItem</a>(in DOMString name); // overrides inherited namedItem()
   readonly attribute <span>DOMStringList</span> <a href=#dom-htmlpropertiescollection-names title=dom-HTMLPropertiesCollection-names>names</a>;
 };
 
@@ -8236,7 +8236,7 @@
 
   <pre class=idl>interface <dfn id=domtokenlist>DOMTokenList</dfn> {
   readonly attribute unsigned long <a href=#dom-tokenlist-length title=dom-tokenlist-length>length</a>;
-  getter DOMString <a href=#dom-tokenlist-item title=dom-tokenlist-item>item</a>(in unsigned long index);
+  getter DOMString? <a href=#dom-tokenlist-item title=dom-tokenlist-item>item</a>(in unsigned long index);
   boolean <a href=#dom-tokenlist-contains title=dom-tokenlist-contains>contains</a>(in DOMString token);
   void <a href=#dom-tokenlist-add title=dom-tokenlist-add>add</a>(in DOMString token);
   void <a href=#dom-tokenlist-remove title=dom-tokenlist-remove>remove</a>(in DOMString token);
@@ -8907,7 +8907,7 @@
   <pre class=idl>[OverrideBuiltins]
 interface <dfn id=htmldocument>HTMLDocument</dfn> {
   // <a href=#resource-metadata-management>resource metadata management</a>
-  [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>] readonly attribute <a href=#location>Location</a> <a href=#dom-document-location title=dom-document-location>location</a>;
+  [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>] readonly attribute <a href=#location>Location</a>? <a href=#dom-document-location title=dom-document-location>location</a>;
   readonly attribute DOMString <a href=#dom-document-url title=dom-document-URL>URL</a>;
            attribute DOMString <a href=#dom-document-domain title=dom-document-domain>domain</a>;
   readonly attribute DOMString <a href=#dom-document-referrer title=dom-document-referrer>referrer</a>;
@@ -8923,8 +8923,8 @@
   <a href=#dom-document-nameditem title=dom-document-namedItem>getter</a> any (in DOMString name);
            attribute DOMString <a href=#document.title title=dom-document-title>title</a>;
            attribute DOMString <a href=#dom-document-dir title=dom-document-dir>dir</a>;
-           attribute <a href=#htmlelement>HTMLElement</a> <a href=#dom-document-body title=dom-document-body>body</a>;
-  readonly attribute <a href=#htmlheadelement>HTMLHeadElement</a> <a href=#dom-document-head title=dom-document-head>head</a>;
+           attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-document-body title=dom-document-body>body</a>;
+  readonly attribute <a href=#htmlheadelement>HTMLHeadElement</a>? <a href=#dom-document-head title=dom-document-head>head</a>;
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-images title=dom-document-images>images</a>;
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-embeds title=dom-document-embeds>embeds</a>;
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-plugins title=dom-document-plugins>plugins</a>;
@@ -8945,8 +8945,8 @@
   void <a href=#dom-document-writeln title=dom-document-writeln>writeln</a>(in DOMString... text);
 
   // <a href=#editing>user interaction</a>
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-document-defaultview title=dom-document-defaultView>defaultView</a>;
-  readonly attribute <a href=#element>Element</a> <a href=#dom-document-activeelement title=dom-document-activeElement>activeElement</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-document-defaultview title=dom-document-defaultView>defaultView</a>;
+  readonly attribute <a href=#element>Element</a>? <a href=#dom-document-activeelement title=dom-document-activeElement>activeElement</a>;
   boolean <a href=#dom-document-hasfocus title=dom-document-hasFocus>hasFocus</a>();
            attribute DOMString <a href=#designMode title=dom-document-designMode>designMode</a>;
   boolean <a href=#execCommand title=dom-document-execCommand>execCommand</a>(in DOMString commandId);
@@ -8960,60 +8960,60 @@
   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>
-           attribute <a href=#function>Function</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onblur title=handler-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onended title=handler-onended>onended</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onerror title=handler-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onload title=handler-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };
 <a href=#document>Document</a> implements <a href=#htmldocument>HTMLDocument</a>;</pre>
 
@@ -10130,13 +10130,13 @@
   [PutForwards=<a href=#dom-domsettabletokenlist-value title=dom-DOMSettableTokenList-value>value</a>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-dropzone title=dom-dropzone>dropzone</a>;
            attribute DOMString <a href=#dom-contenteditable title=dom-contentEditable>contentEditable</a>;
   readonly attribute boolean <a href=#dom-iscontenteditable title=dom-isContentEditable>isContentEditable</a>;
-           attribute <a href=#htmlmenuelement>HTMLMenuElement</a> <a href=#dom-contextmenu title=dom-contextMenu>contextMenu</a>;
+           attribute <a href=#htmlmenuelement>HTMLMenuElement</a>? <a href=#dom-contextmenu title=dom-contextMenu>contextMenu</a>;
            attribute boolean <a href=#dom-spellcheck title=dom-spellcheck>spellcheck</a>;
 
   // <a href=#command-api>command API</a>
-  readonly attribute DOMString <a href=#dom-command-ro-commandtype title=dom-command-ro-commandType>commandType</a>;
-  readonly attribute DOMString <a href=#dom-command-ro-label title=dom-command-ro-label>label</a>;
-  readonly attribute DOMString <a href=#dom-command-ro-icon title=dom-command-ro-icon>icon</a>;
+  readonly attribute DOMString? <a href=#dom-command-ro-commandtype title=dom-command-ro-commandType>commandType</a>;
+  readonly attribute DOMString? <a href=#dom-command-ro-label title=dom-command-ro-label>label</a>;
+  readonly attribute DOMString? <a href=#dom-command-ro-icon title=dom-command-ro-icon>icon</a>;
   readonly attribute boolean <a href=#dom-command-ro-disabled title=dom-command-ro-disabled>disabled</a>;
   readonly attribute boolean <a href=#dom-command-ro-checked title=dom-command-ro-checked>checked</a>;<!-- v2COMMAND
   readonly attribute <span>HTMLCollection</span> <span title="dom-command-ro-triggers">triggers</span>;-->
@@ -10145,60 +10145,60 @@
   readonly attribute <span>CSSStyleDeclaration</span> <a href=#dom-style title=dom-style>style</a>;
 
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-           attribute <a href=#function>Function</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onblur title=handler-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onended title=handler-onended>onended</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onerror title=handler-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onload title=handler-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };
 
 interface <dfn id=htmlunknownelement>HTMLUnknownElement</dfn> : <a href=#htmlelement>HTMLElement</a> { };</pre>
@@ -16815,26 +16815,26 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class=idl>interface <dfn id=htmlbodyelement>HTMLBodyElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-           attribute <a href=#function>Function</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
+           attribute <a href=#function>Function</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
@@ -20515,7 +20515,7 @@
 <pre class=idl>interface <dfn id=htmltimeelement>HTMLTimeElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute DOMString <a href=#dom-time-datetime title=dom-time-datetime>dateTime</a>;
            attribute boolean <a href=#dom-time-pubdate title=dom-time-pubDate>pubDate</a>;
-  readonly attribute <span>Date</span> <a href=#dom-time-valueasdate title=dom-time-valueAsDate>valueAsDate</a>;
+  readonly attribute <span>Date</span>? <a href=#dom-time-valueasdate title=dom-time-valueAsDate>valueAsDate</a>;
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-time-element>time</a></code> element <a href=#represents>represents</a> either a
@@ -23773,8 +23773,8 @@
            attribute boolean <a href=#dom-iframe-seamless title=dom-iframe-seamless>seamless</a>;
            attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
            attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
-  readonly attribute Document <a href=#dom-iframe-contentdocument title=dom-iframe-contentDocument>contentDocument</a>;
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-iframe-contentwindow title=dom-iframe-contentWindow>contentWindow</a>;
+  readonly attribute Document? <a href=#dom-iframe-contentdocument title=dom-iframe-contentDocument>contentDocument</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-iframe-contentwindow title=dom-iframe-contentWindow>contentWindow</a>;
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-iframe-element>iframe</a></code> element <a href=#represents>represents</a> a
@@ -24897,11 +24897,11 @@
            attribute DOMString <a href=#dom-object-type title=dom-object-type>type</a>;
            attribute DOMString <a href=#dom-object-name title=dom-object-name>name</a>;
            attribute DOMString <a href=#dom-object-usemap title=dom-object-useMap>useMap</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
            attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
-  readonly attribute Document <a href=#dom-object-contentdocument title=dom-object-contentDocument>contentDocument</a>;
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-object-contentwindow title=dom-object-contentWindow>contentWindow</a>;
+  readonly attribute Document? <a href=#dom-object-contentdocument title=dom-object-contentDocument>contentDocument</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-object-contentwindow title=dom-object-contentWindow>contentWindow</a>;
 
   readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
   readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
@@ -26546,7 +26546,7 @@
   <pre class=idl>interface <dfn id=htmlmediaelement>HTMLMediaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
 
   // error state
-  readonly attribute <a href=#mediaerror>MediaError</a> <a href=#dom-media-error title=dom-media-error>error</a>;
+  readonly attribute <a href=#mediaerror>MediaError</a>? <a href=#dom-media-error title=dom-media-error>error</a>;
 
   // network state
            attribute DOMString <a href=#dom-media-src title=dom-media-src>src</a>;
@@ -26591,7 +26591,7 @@
 
   // media controller
            attribute <span>DOMString</span> <a href=#dom-media-mediagroup title=dom-media-mediaGroup>mediaGroup</a>;
-           attribute <a href=#mediacontroller>MediaController</a> <a href=#dom-media-controller title=dom-media-controller>controller</a>;
+           attribute <a href=#mediacontroller>MediaController</a>? <a href=#dom-media-controller title=dom-media-controller>controller</a>;
 
   // controls
            attribute boolean <a href=#dom-media-controls title=dom-media-controls>controls</a>;
@@ -29268,7 +29268,7 @@
   DOMString <a href=#dom-tracklist-getlabel title=dom-TrackList-getLabel>getLabel</a>(in unsigned long index);
   DOMString <a href=#dom-tracklist-getlanguage title=dom-TrackList-getLanguage>getLanguage</a>(in unsigned long index);
 
-           attribute <a href=#function>Function</a> <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
 };
 
 interface <dfn id=multipletracklist>MultipleTrackList</dfn> : <a href=#tracklist>TrackList</a> {
@@ -29632,20 +29632,20 @@
            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>;
 
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
 
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-mediacontroller-onvolumechange title=handler-MediaController-onvolumechange>onvolumechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
+           attribute <a href=#function>Function</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>
@@ -31192,18 +31192,18 @@
   const unsigned short <a href=#dom-texttrack-loaded title=dom-TextTrack-LOADED>LOADED</a> = 2;
   const unsigned short <a href=#dom-texttrack-error title=dom-TextTrack-ERROR>ERROR</a> = 3;
   readonly attribute unsigned short <a href=#dom-texttrack-readystate title=dom-TextTrack-readyState>readyState</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-texttrack-onload title=handler-TextTrack-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-texttrack-onerror title=handler-TextTrack-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrack-onload title=handler-TextTrack-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrack-onerror title=handler-TextTrack-onerror>onerror</a>;
 
   const unsigned short <a href=#dom-texttrack-off title=dom-TextTrack-OFF>OFF</a> = 0;
   const unsigned short <a href=#dom-texttrack-hidden title=dom-TextTrack-HIDDEN>HIDDEN</a> = 1;
   const unsigned short <a href=#dom-texttrack-showing title=dom-TextTrack-SHOWING>SHOWING</a> = 2;
            attribute unsigned short <a href=#dom-texttrack-mode title=dom-TextTrack-mode>mode</a>;
 
-  readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a> <a href=#dom-texttrack-cues title=dom-TextTrack-cues>cues</a>;
-  readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a> <a href=#dom-texttrack-activecues title=dom-TextTrack-activeCues>activeCues</a>;
+  readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a>? <a href=#dom-texttrack-cues title=dom-TextTrack-cues>cues</a>;
+  readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a>? <a href=#dom-texttrack-activecues title=dom-TextTrack-activeCues>activeCues</a>;
 
-           attribute <a href=#function>Function</a> <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
 };
 <a href=#texttrack>TextTrack</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -31408,13 +31408,13 @@
    <dt><var title="">mutableTextTrack</var> . <code title=dom-MutableTextTrack-addCue><a href=#dom-mutabletexttrack-addcue>addCue</a></code>( <var title="">cue</var> )</dt>
    <dd>
     <p>Adds the given cue to <var title="">mutableTextTrack</var>'s <a href=#text-track-list-of-cues>text track list of cues</a>.</p>
-    <p>Raises an exception if the argument is null, associated with another <a href=#text-track>text track</a>, or already in the list of cues.</p>
+    <p>Raises an exception if the argument is associated with another <a href=#text-track>text track</a> or already in the list of cues.</p>
    </dd>
 
    <dt><var title="">mutableTextTrack</var> . <code title=dom-MutableTextTrack-removeCue><a href=#dom-mutabletexttrack-removecue>removeCue</a></code>( <var title="">cue</var> )</dt>
    <dd>
     <p>Removes the given cue from <var title="">mutableTextTrack</var>'s <a href=#text-track-list-of-cues>text track list of cues</a>.</p>
-    <p>Raises an exception if the argument is null, associated with another <a href=#text-track>text track</a>, or not in the list of cues.</p>
+    <p>Raises an exception if the argument is associated with another <a href=#text-track>text track</a> or not in the list of cues.</p>
    </dd>
 
   </dl><div class=impl>
@@ -31477,11 +31477,7 @@
   <code><a href=#mutabletexttrack>MutableTextTrack</a></code> objects, when invoked, must run the
   following steps:</p>
 
-  <ol><li><p>If <var title="">cue</var> is null, then throw an
-   <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code> exception and abort these
-   steps.</li>
-
-   <li><p>If the given <var title="">cue</var> is already associated
+  <ol><li><p>If the given <var title="">cue</var> is already associated
    with a <a href=#text-track>text track</a> other than the method's
    <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text track</a>,
    then throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception and abort
@@ -31505,11 +31501,7 @@
   <code><a href=#mutabletexttrack>MutableTextTrack</a></code> objects, when invoked, must run the
   following steps:</p>
 
-  <ol><li><p>If <var title="">cue</var> is null, then throw an
-   <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code> exception and abort these
-   steps.</li>
-
-   <li><p>If the given <var title="">cue</var> is not associated with
+  <ol><li><p>If the given <var title="">cue</var> is not associated with
    the method's <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text
    track</a>, then throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code>
    exception.</li>
@@ -31560,7 +31552,7 @@
   <hr><pre class=idl>interface <dfn id=texttrackcuelist>TextTrackCueList</dfn> {
   readonly attribute unsigned long <a href=#dom-texttrackcuelist-length title=dom-TextTrackCueList-length>length</a>;
   getter <a href=#texttrackcue>TextTrackCue</a> (in unsigned long index);
-  <a href=#texttrackcue>TextTrackCue</a> <a href=#dom-texttrackcuelist-getcuebyid title=dom-TextTrackCueList-getCueById>getCueById</a>(in DOMString id);
+  <a href=#texttrackcue>TextTrackCue</a>? <a href=#dom-texttrackcuelist-getcuebyid title=dom-TextTrackCueList-getCueById>getCueById</a>(in DOMString id);
 };</pre>
 
   <dl class=domintro><dt><var title="">cuelist</var> . <code title=dom-TextTrackCueList-length><a href=#dom-texttrackcuelist-length>length</a></code></dt>
@@ -31618,7 +31610,7 @@
 [<a href=#dom-texttrackcue title=dom-TextTrackCue>Constructor</a>(in DOMString id, in double startTime, in double endTime, in DOMString text, in optional DOMString settings, in optional boolean pauseOnExit)]
 <!--TTVTT-->
 interface <dfn id=texttrackcue>TextTrackCue</dfn> {
-  readonly attribute <a href=#texttrack>TextTrack</a> <a href=#dom-texttrackcue-track title=dom-TextTrackCue-track>track</a>;
+  readonly attribute <a href=#texttrack>TextTrack</a>? <a href=#dom-texttrackcue-track title=dom-TextTrackCue-track>track</a>;
   readonly attribute DOMString <a href=#dom-texttrackcue-id title=dom-TextTrackCue-id>id</a>;
 
   readonly attribute double <a href=#dom-texttrackcue-starttime title=dom-TextTrackCue-startTime>startTime</a>;
@@ -31637,8 +31629,8 @@
   DOMString <a href=#dom-texttrackcue-getcueassource title=dom-TextTrackCue-getCueAsSource>getCueAsSource</a>();
   <a href=#documentfragment>DocumentFragment</a> <a href=#dom-texttrackcue-getcueashtml title=dom-TextTrackCue-getCueAsHTML>getCueAsHTML</a>();
 
-           attribute <a href=#function>Function</a> <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
 };
 <a href=#texttrackcue>TextTrackCue</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -34286,9 +34278,9 @@
            attribute unsigned long <a href=#dom-canvas-height title=dom-canvas-height>height</a>;
 
   DOMString <a href=#dom-canvas-todataurl title=dom-canvas-toDataURL>toDataURL</a>(in optional DOMString type, in any... args);
-  void <a href=#dom-canvas-toblob title=dom-canvas-toBlob>toBlob</a>(in <span>FileCallback</span> callback, in optional DOMString type, in any... args);
+  void <a href=#dom-canvas-toblob title=dom-canvas-toBlob>toBlob</a>(in <span>FileCallback</span>? callback, in optional DOMString type, in any... args);
 
-  object <a href=#dom-canvas-getcontext title=dom-canvas-getContext>getContext</a>(in DOMString contextId, in any... args);
+  object? <a href=#dom-canvas-getcontext title=dom-canvas-getContext>getContext</a>(in DOMString contextId, in any... args);
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-canvas-element>canvas</a></code> element provides scripts with a
@@ -35486,16 +35478,13 @@
     <p>Returns a <code><a href=#canvaspattern>CanvasPattern</a></code> object that uses the given image
     and repeats in the direction(s) given by the <var title="">repetition</var> argument.</p>
 
-    <p>The allowed values for <var title="">repetition</var> are <code title="">repeat</code> (both directions), <code title="">repeat-x</code> (horizontal only), <code title="">repeat-y</code> (vertical only), and <code title="">no-repeat</code> (neither). If the <var title="">repetition</var> argument is empty or null, the value
-    <code title="">repeat</code> is used.</p>
+    <p>The allowed values for <var title="">repetition</var> are <code title="">repeat</code> (both directions), <code title="">repeat-x</code> (horizontal only), <code title="">repeat-y</code> (vertical only), and <code title="">no-repeat</code> (neither). If the <var title="">repetition</var> argument is empty, the value <code title="">repeat</code> is used.</p>
 
-    <p>If the first argument isn't an <code><a href=#the-img-element>img</a></code>,
-    <code><a href=#the-canvas-element>canvas</a></code>, or <code><a href=#the-video-element>video</a></code> element, throws a
-    <code><a href=#type_mismatch_err>TYPE_MISMATCH_ERR</a></code> exception. If the image has no
-    image data, throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception. If
-    the second argument isn't one of the allowed values, throws a
-    <code><a href=#syntax_err>SYNTAX_ERR</a></code> exception. If the image isn't yet fully
-    decoded, then the method returns null.</p>
+    <p>If the image has no image data, throws an
+    <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception. If the second argument
+    isn't one of the allowed values, throws a <code><a href=#syntax_err>SYNTAX_ERR</a></code>
+    exception. If the image isn't yet fully decoded, then the method
+    returns null.</p>
 
    </dd>
 
@@ -35509,19 +35498,18 @@
   must not affect the pattern. The second argument must be a string
   with one of the following values: <code title="">repeat</code>,
   <code title="">repeat-x</code>, <code title="">repeat-y</code>,
-  <code title="">no-repeat</code>. If the empty string or null is
-  specified, <code title="">repeat</code> must be assumed. If an
-  unrecognized value is given, then the user agent must raise a
-  <code><a href=#syntax_err>SYNTAX_ERR</a></code> exception. User agents must recognize the
-  four values described above exactly (e.g. they must not do case
-  folding). Except as specified below, the method must return a
-  <code><a href=#canvaspattern>CanvasPattern</a></code> object suitably initialized.</p>
+  <code title="">no-repeat</code>. If the empty string is specified,
+  <code title="">repeat</code> must be assumed. If an unrecognized value
+  is given, then the user agent must raise a <code><a href=#syntax_err>SYNTAX_ERR</a></code>
+  exception. User agents must recognize the four values described above
+  exactly (e.g. they must not do case folding). Except as specified
+  below, the method must return a <code><a href=#canvaspattern>CanvasPattern</a></code> object
+  suitably initialized.</p>
 
   <p>The <var title="">image</var> argument is an instance of either
   <code><a href=#htmlimageelement>HTMLImageElement</a></code>, <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code>, or
-  <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>. If the <var title="">image</var> is
-  null, the implementation must raise a <code><a href=#type_mismatch_err>TYPE_MISMATCH_ERR</a></code>
-  exception.</p> <!-- drawImage() has an equivalent paragraph -->
+  <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>.</p> <!-- drawImage() has an equivalent
+  paragraph -->
 
   <p>If the <var title="">image</var> argument is an
   <code><a href=#htmlimageelement>HTMLImageElement</a></code> object that is not <a href=#img-good title=img-good>fully decodable</a>, or if the <var title="">image</var> argument is an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
@@ -37092,9 +37080,8 @@
 
   <p>The <var title="">image</var> argument is an instance of either
   <code><a href=#htmlimageelement>HTMLImageElement</a></code>, <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code>, or
-  <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>. If the <var title="">image</var> is
-  null, the implementation must raise a <code><a href=#type_mismatch_err>TYPE_MISMATCH_ERR</a></code>
-  exception.</p> <!-- createPattern() has an equivalent paragraph -->
+  <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>.</p> <!-- createPattern() has an
+  equivalent paragraph -->
 
   <p>If the <var title="">image</var> argument is an
   <code><a href=#htmlimageelement>HTMLImageElement</a></code> object that is not <a href=#img-good title=img-good>fully decodable</a>, or if the <var title="">image</var> argument is an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
@@ -37201,9 +37188,6 @@
     dimensions as the argument. All the pixels in the returned object
     are transparent black.</p>
 
-    <p>Throws a <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code> exception if the
-    argument is null.</p>
-
    </dd>
 
    <dt><var title="">imagedata</var> = <var title="">context</var> . <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData</a></code>(<var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>)</dt>
@@ -37283,12 +37267,11 @@
   alpha values.</p>
 
   <p>If any of the arguments to <code title=dom-context-2d-createImageData><a href=#dom-context-2d-createimagedata>createImageData()</a></code> or
-  <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code> are
-  infinite or NaN, or if the <code title=dom-context-2d-createImageData><a href=#dom-context-2d-createimagedata>createImageData()</a></code>
-  method is invoked with only one argument but that argument is null,
-  the method must instead raise a <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code>
-  exception. If either the <var title="">sw</var> or <var title="">sh</var> arguments are zero, the method must instead raise
-  an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception.</p>
+  <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code>
+  are infinite or NaN, the method must instead raise a
+  <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code> exception. If either the <var title="">sw</var> or <var title="">sh</var> arguments are zero,
+  the method must instead raise an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code>
+  exception.</p>
 
   <p><code><a href=#imagedata>ImageData</a></code> objects must be initialized so that their
   <dfn id=dom-imagedata-width title=dom-imagedata-width><code>width</code></dfn> attribute
@@ -37338,9 +37321,6 @@
   <p>If any of the arguments to the method are infinite or NaN, the
   method must raise a <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code> exception.</p>
 
-  <p>If the first argument to the method is null, then the <code title=dom-context-2d-putImageData><a href=#dom-context-2d-putimagedata>putImageData()</a></code> method
-  must raise a <code><a href=#type_mismatch_err>TYPE_MISMATCH_ERR</a></code> exception.</p>
-
   <p>When the last four arguments are omitted, they must be assumed to
   have the values 0, 0, the <code title=dom-imagedata-width><a href=#dom-imagedata-width>width</a></code> member of the <var title="">imagedata</var> structure, and the <code title=dom-imagedata-height><a href=#dom-imagedata-height>height</a></code> member of the <var title="">imagedata</var> structure, respectively.</p>
 
@@ -38608,13 +38588,13 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class=idl>interface <dfn id=htmltableelement>HTMLTableElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-           attribute <a href=#htmltablecaptionelement>HTMLTableCaptionElement</a> <a href=#dom-table-caption title=dom-table-caption>caption</a>;
+           attribute <a href=#htmltablecaptionelement>HTMLTableCaptionElement</a>? <a href=#dom-table-caption title=dom-table-caption>caption</a>;
   <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createcaption title=dom-table-createCaption>createCaption</a>();
   void <a href=#dom-table-deletecaption title=dom-table-deleteCaption>deleteCaption</a>();
-           attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a> <a href=#dom-table-thead title=dom-table-tHead>tHead</a>;
+           attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a>? <a href=#dom-table-thead title=dom-table-tHead>tHead</a>;
   <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createthead title=dom-table-createTHead>createTHead</a>();
   void <a href=#dom-table-deletethead title=dom-table-deleteTHead>deleteTHead</a>();
-           attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a> <a href=#dom-table-tfoot title=dom-table-tFoot>tFoot</a>;
+           attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a>? <a href=#dom-table-tfoot title=dom-table-tFoot>tFoot</a>;
   <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createtfoot title=dom-table-createTFoot>createTFoot</a>();
   void <a href=#dom-table-deletetfoot title=dom-table-deleteTFoot>deleteTFoot</a>();
   readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-table-tbodies title=dom-table-tBodies>tBodies</a>;
@@ -41997,7 +41977,7 @@
    <dd>
 <pre class=idl>interface <dfn id=htmlfieldsetelement>HTMLFieldSetElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute boolean <a href=#dom-fieldset-disabled title=dom-fieldset-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
 
   readonly attribute DOMString <a href=#dom-fieldset-type title=dom-fieldset-type>type</a>;
@@ -42142,7 +42122,7 @@
    <dt>DOM interface:</dt>
    <dd>
     <pre class=idl>interface <dfn id=htmllegendelement>HTMLLegendElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-legend-form title=dom-legend-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-legend-form title=dom-legend-form>form</a>;
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-legend-element>legend</a></code> element <a href=#represents>represents</a> a caption
@@ -42191,9 +42171,9 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class=idl>interface <dfn id=htmllabelelement>HTMLLabelElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-label-htmlfor title=dom-label-htmlFor>htmlFor</a>;
-  readonly attribute <a href=#htmlelement>HTMLElement</a> <a href=#dom-label-control title=dom-label-control>control</a>;
+  readonly attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-label-control title=dom-label-control>control</a>;
 };</pre>
    </dd>
   </dl><p>The <code><a href=#the-label-element>label</a></code> <a href=#represents>represents</a> a caption in a
@@ -42376,8 +42356,8 @@
            attribute boolean <a href=#dom-input-checked title=dom-input-checked>checked</a>;
            attribute DOMString <a href=#dom-input-dirname title=dom-input-dirName>dirName</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
-  readonly attribute <a href=#filelist>FileList</a> <a href=#dom-input-files title=dom-input-files>files</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#filelist>FileList</a>? <a href=#dom-input-files title=dom-input-files>files</a>;
            attribute DOMString <a href=#dom-fs-formaction title=dom-fs-formAction>formAction</a>;
            attribute DOMString <a href=#dom-fs-formenctype title=dom-fs-formEnctype>formEnctype</a>;
            attribute DOMString <a href=#dom-fs-formmethod title=dom-fs-formMethod>formMethod</a>;
@@ -42385,7 +42365,7 @@
            attribute DOMString <a href=#dom-fs-formtarget title=dom-fs-formTarget>formTarget</a>;
            attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
            attribute boolean <a href=#dom-input-indeterminate title=dom-input-indeterminate>indeterminate</a>;
-  readonly attribute <a href=#htmlelement>HTMLElement</a> <a href=#dom-input-list title=dom-input-list>list</a>;
+  readonly attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-input-list title=dom-input-list>list</a>;
            attribute DOMString <a href=#dom-input-max title=dom-input-max>max</a>;
            attribute long <a href=#dom-input-maxlength title=dom-input-maxLength>maxLength</a>;
            attribute DOMString <a href=#dom-input-min title=dom-input-min>min</a>;
@@ -42403,7 +42383,7 @@
            attribute DOMString <a href=#dom-input-value title=dom-input-value>value</a>;
            attribute <span>Date</span> <a href=#dom-input-valueasdate title=dom-input-valueAsDate>valueAsDate</a>;
            attribute double <a href=#dom-input-valueasnumber title=dom-input-valueAsNumber>valueAsNumber</a>;
-  readonly attribute <a href=#htmloptionelement>HTMLOptionElement</a> <a href=#dom-input-selectedoption title=dom-input-selectedOption>selectedOption</a>;
+  readonly attribute <a href=#htmloptionelement>HTMLOptionElement</a>? <a href=#dom-input-selectedoption title=dom-input-selectedOption>selectedOption</a>;
            attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
 
   void <a href=#dom-input-stepup title=dom-input-stepUp>stepUp</a>(in optional long n);
@@ -48040,7 +48020,7 @@
 <pre class=idl>interface <dfn id=htmlbuttonelement>HTMLButtonElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-fs-formaction title=dom-fs-formAction>formAction</a>;
            attribute DOMString <a href=#dom-fs-formenctype title=dom-fs-formEnctype>formEnctype</a>;
            attribute DOMString <a href=#dom-fs-formmethod title=dom-fs-formMethod>formMethod</a>;
@@ -48207,7 +48187,7 @@
 <pre class=idl>interface <dfn id=htmlselectelement>HTMLSelectElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute boolean <a href=#dom-select-multiple title=dom-select-multiple>multiple</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
            attribute boolean <a href=#dom-select-required title=dom-select-required>required</a>;
@@ -48219,7 +48199,7 @@
            attribute unsigned long <a href=#dom-select-length title=dom-select-length>length</a>;
   getter any <a href=#dom-select-item title=dom-select-item>item</a>(in unsigned long index);
   any <a href=#dom-select-nameditem title=dom-select-namedItem>namedItem</a>(in DOMString name);
-  void <a href=#dom-select-add title=dom-select-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in optional <a href=#htmlelement>HTMLElement</a> before);
+  void <a href=#dom-select-add title=dom-select-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in optional <a href=#htmlelement>HTMLElement</a>? before);
   void <a href=#dom-select-add title=dom-select-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, in long before);
   void <a href=#dom-select-remove title=dom-select-remove>remove</a>(in long index);
 
@@ -48791,7 +48771,7 @@
  NamedConstructor=<a href=#dom-option-tvds title=dom-option-tvds>Option</a>(in DOMString text, in DOMString value, in boolean defaultSelected, in boolean selected)]
 interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute boolean <a href=#dom-option-disabled title=dom-option-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-option-form title=dom-option-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-option-form title=dom-option-form>form</a>;
            attribute DOMString <a href=#dom-option-label title=dom-option-label>label</a>;
            attribute boolean <a href=#dom-option-defaultselected title=dom-option-defaultSelected>defaultSelected</a>;
            attribute boolean <a href=#dom-option-selected title=dom-option-selected>selected</a>;
@@ -49030,7 +49010,7 @@
            attribute unsigned long <a href=#dom-textarea-cols title=dom-textarea-cols>cols</a>;
            attribute DOMString <a href=#dom-textarea-dirname title=dom-textarea-dirName>dirName</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute long <a href=#dom-textarea-maxlength title=dom-textarea-maxLength>maxLength</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
            attribute DOMString <a href=#dom-textarea-placeholder title=dom-textarea-placeholder>placeholder</a>;
@@ -49411,7 +49391,7 @@
            attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
            attribute DOMString <a href=#dom-keygen-challenge title=dom-keygen-challenge>challenge</a>;
            attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-keygen-keytype title=dom-keygen-keytype>keytype</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
 
@@ -49696,7 +49676,7 @@
    <dd>
 <pre class=idl>interface <dfn id=htmloutputelement>HTMLOutputElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
   [PutForwards=<a href=#dom-domsettabletokenlist-value title=dom-DOMSettableTokenList-value>value</a>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-output-htmlfor title=dom-output-htmlFor>htmlFor</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
 
   readonly attribute DOMString <a href=#dom-output-type title=dom-output-type>type</a>;
@@ -49866,7 +49846,7 @@
            attribute double <a href=#dom-progress-value title=dom-progress-value>value</a>;
            attribute double <a href=#dom-progress-max title=dom-progress-max>max</a>;
   readonly attribute double <a href=#dom-progress-position title=dom-progress-position>position</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
   readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
 };</pre>
    </dd>
@@ -50044,7 +50024,7 @@
            attribute double <a href=#dom-meter-low title=dom-meter-low>low</a>;
            attribute double <a href=#dom-meter-high title=dom-meter-high>high</a>;
            attribute double <a href=#dom-meter-optimum title=dom-meter-optimum>optimum</a>;
-  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
+  readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
   readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
 };</pre>
    </dd>
@@ -61372,7 +61352,7 @@
   readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-top title=dom-top>top</a>;
            attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-opener title=dom-opener>opener</a>;
   readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-parent title=dom-parent>parent</a>;
-  readonly attribute <a href=#element>Element</a> <a href=#dom-frameelement title=dom-frameElement>frameElement</a>;
+  readonly attribute <a href=#element>Element</a>? <a href=#dom-frameelement title=dom-frameElement>frameElement</a>;
   <a href=#windowproxy>WindowProxy</a> <a href=#dom-open title=dom-open>open</a>(in optional DOMString url, in optional DOMString target, in optional DOMString features, in optional DOMString replace);
   <a href=#dom-window-item title=dom-window-item>getter</a> <a href=#windowproxy>WindowProxy</a> (in unsigned long index);
   <a href=#dom-window-nameditem title=dom-window-namedItem>getter</a> any (in DOMString name);
@@ -61385,7 +61365,7 @@
   // user prompts
   void <a href=#dom-alert title=dom-alert>alert</a>(in DOMString message);
   boolean <a href=#dom-confirm title=dom-confirm>confirm</a>(in DOMString message);
-  DOMString <a href=#dom-prompt title=dom-prompt>prompt</a>(in DOMString message, in optional DOMString default);
+  DOMString? <a href=#dom-prompt title=dom-prompt>prompt</a>(in DOMString message, in optional DOMString default);
   void <a href=#dom-print title=dom-print>print</a>();
   any <a href=#dom-showmodaldialog title=dom-showModalDialog>showModalDialog</a>(in DOMString url, in optional any argument<!--, in optional DOMString features-->);
 
@@ -61393,75 +61373,75 @@
   void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(in any message, in DOMString targetOrigin, in optional sequence<<a href=#messageport>MessagePort</a>> ports);
 <!--POSTMSG-->
   // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
-           attribute <a href=#function>Function</a> <a href=#handler-onabort title=handler-onabort>onabort</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onchange title=handler-onchange>onchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onclick title=handler-onclick>onclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onended title=handler-onended>onended</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninput title=handler-oninput>oninput</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onpause title=handler-onpause>onpause</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplay title=handler-onplay>onplay</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onreset title=handler-onreset>onreset</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onselect title=handler-onselect>onselect</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onshow title=handler-onshow>onshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
 };
 <a href=#window>Window</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -66799,14 +66779,14 @@
   void <a href=#dom-appcache-swapcache title=dom-appcache-swapCache>swapCache</a>();
 
   // events
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
 };
 <a href=#applicationcache>ApplicationCache</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -71960,11 +71940,11 @@
   <a href=#dom-datatransferitemlist-removeitem title=dom-DataTransferItemList-removeItem>deleter</a> void (in unsigned long index);
   void <a href=#dom-datatransferitemlist-clear title=dom-DataTransferItemList-clear>clear</a>();
 
-  <a href=#datatransferitem>DataTransferItem</a> <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(in DOMString data, in DOMString type);<!--
-DND-v3:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in <span>Blob</span> data);-->
-  <a href=#datatransferitem>DataTransferItem</a> <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(in <a href=#file>File</a> data);<!--
-DND-v4:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in any data, in DOMString type);--><!--
-DND-v5:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in <span>DataTransferPromise</span> data);-->
+  <a href=#datatransferitem>DataTransferItem</a>? <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(in DOMString data, in DOMString type);<!--
+DND-v3:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in <span>Blob</span> data);-->
+  <a href=#datatransferitem>DataTransferItem</a>? <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(in <a href=#file>File</a> data);<!--
+DND-v4:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in any data, in DOMString type);--><!--
+DND-v5:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in <span>DataTransferPromise</span> data);-->
 };</pre>
 
   <dl class=domintro><dt><var title="">items</var> . <code title=dom-DataTransferItemList-length><a href=#dom-datatransferitemlist-length>length</a></code></dt>
@@ -72166,9 +72146,9 @@
   <pre class=idl>interface <dfn id=datatransferitem>DataTransferItem</dfn> {
     readonly attribute DOMString <a href=#dom-datatransferitem-kind title=dom-DataTransferItem-kind>kind</a>;
     readonly attribute DOMString <a href=#dom-datatransferitem-type title=dom-DataTransferItem-type>type</a>;
-    void <a href=#dom-datatransferitem-getasstring title=dom-DataTransferItem-getAsString>getAsString</a>(in <a href=#functionstringcallback>FunctionStringCallback</a> callback);<!--
+    void <a href=#dom-datatransferitem-getasstring title=dom-DataTransferItem-getAsString>getAsString</a>(in <a href=#functionstringcallback>FunctionStringCallback</a>? callback);<!--
 DND-v3:    <span>Blob</span> <span title="dom-DataTransferItem-getAsBlob">getAsBlob</span>();-->
-    <a href=#file>File</a> <a href=#dom-datatransferitem-getasfile title=dom-DataTransferItem-getAsFile>getAsFile</a>();<!--
+    <a href=#file>File</a>? <a href=#dom-datatransferitem-getasfile title=dom-DataTransferItem-getAsFile>getAsFile</a>();<!--
 DND-v4:    void <span title="dom-DataTransferItem-getAsObject">getAsObject</span>(in <span>FunctionObjectCallback</span> callback);-->
 };
 
@@ -72392,9 +72372,9 @@
   all use the <code><a href=#dragevent>DragEvent</a></code> interface.</p>
 
   <pre class=idl>interface <dfn id=dragevent>DragEvent</dfn> : <a href=#mouseevent>MouseEvent</a> {
-  readonly attribute <a href=#datatransfer>DataTransfer</a> <a href=#dom-dragevent-datatransfer title=dom-DragEvent-dataTransfer>dataTransfer</a>;
+  readonly attribute <a href=#datatransfer>DataTransfer</a>? <a href=#dom-dragevent-datatransfer title=dom-DragEvent-dataTransfer>dataTransfer</a>;
 
-  void <a href=#dom-dragevent-initdragevent title=dom-DragEvent-initDragEvent>initDragEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dummyArg<!-- used to be viewArg, back when we had views -->, in long detailArg, in long screenXArg, in long screenYArg, in long clientXArg, in long clientYArg, in boolean ctrlKeyArg, in boolean altKeyArg, in boolean shiftKeyArg, in boolean metaKeyArg, in unsigned short buttonArg, in EventTarget relatedTargetArg, in <a href=#datatransfer>DataTransfer</a> dataTransferArg);
+  void <a href=#dom-dragevent-initdragevent title=dom-DragEvent-initDragEvent>initDragEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dummyArg<!-- used to be viewArg, back when we had views -->, in long detailArg, in long screenXArg, in long screenYArg, in long clientXArg, in long clientYArg, in boolean ctrlKeyArg, in boolean altKeyArg, in boolean shiftKeyArg, in boolean metaKeyArg, in unsigned short buttonArg, in EventTarget relatedTargetArg, in <a href=#datatransfer>DataTransfer</a>? dataTransferArg);
 };</pre>
 
   <dl class=domintro><dt><var title="">event</var> . <code title=dom-DragEvent-dataTransfer><a href=#dom-dragevent-datatransfer>dataTransfer</a></code></dt>
@@ -74481,7 +74461,7 @@
 
   <pre class=idl>[Supplemental, NoInterfaceObject]
 interface <dfn id=navigatorusermedia>NavigatorUserMedia</dfn> {
-  void <a href=#dom-navigator-getusermedia title=dom-navigator-getUserMedia>getUserMedia</a>(in DOMString options, in <a href=#navigatorusermediasuccesscallback>NavigatorUserMediaSuccessCallback</a> successCallback, in optional <a href=#navigatorusermediaerrorcallback>NavigatorUserMediaErrorCallback</a> errorCallback);
+  void <a href=#dom-navigator-getusermedia title=dom-navigator-getUserMedia>getUserMedia</a>(in DOMString options, in <a href=#navigatorusermediasuccesscallback>NavigatorUserMediaSuccessCallback</a>? successCallback, in optional <a href=#navigatorusermediaerrorcallback>NavigatorUserMediaErrorCallback</a>? errorCallback);
 };
 <a href=#navigator>Navigator</a> implements <a href=#navigatorusermedia>NavigatorUserMedia</a>;
 
@@ -74755,7 +74735,7 @@
   const unsigned short <a href=#dom-stream-live title=dom-stream-LIVE>LIVE</a> = 1;
   const unsigned short <a href=#dom-stream-ended title=dom-stream-ENDED>ENDED</a> = 2;
   readonly attribute unsigned short <a href=#dom-stream-readystate title=dom-stream-readyState>readyState</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-stream-onended title=handler-stream-onended>onended</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-stream-onended title=handler-stream-onended>onended</a>;
 };
 <a href=#stream>Stream</a> implements <a href=#eventtarget>EventTarget</a>;
 
@@ -74983,7 +74963,7 @@
   </div>
 
   <pre class=idl>interface <dfn id=streamrecorder>StreamRecorder</dfn> {
-  void <a href=#dom-streamrecorder-getrecordeddata title=dom-StreamRecorder-getRecordedData>getRecordedData</a>(in <a href=#blobcallback>BlobCallback</a> callback);
+  void <a href=#dom-streamrecorder-getrecordeddata title=dom-StreamRecorder-getRecordedData>getRecordedData</a>(in <a href=#blobcallback>BlobCallback</a>? callback);
 };
 
 [Callback=FunctionOnly, NoInterfaceObject]
@@ -75200,13 +75180,13 @@
   void <a href=#dom-peerconnection-close title=dom-PeerConnection-close>close</a>();
 
   // <span class=XXX>connection quality information</span>
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting>onconnecting</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onopen title=handler-PeerConnection-onopen>onopen</a>;<!--
-           attribute <span>Function</span> <span title="handler-PeerConnection-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-PeerConnection-onclose">onclose</span>;-->
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onmessage title=handler-PeerConnection-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream>onaddstream</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream>onremovestream</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting>onconnecting</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onopen title=handler-PeerConnection-onopen>onopen</a>;<!--
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onclose">onclose</span>;-->
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onmessage title=handler-PeerConnection-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream>onaddstream</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream>onremovestream</a>;
 };
 <a href=#peerconnection>PeerConnection</a> implements <a href=#eventtarget>EventTarget</a>;
 
@@ -75789,9 +75769,6 @@
    <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
    <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception.</li>
 
-   <li><p>If <var title="">stream</var> is null, throw a
-   <code>TypeError</code> exception and abort these steps.</li>
-
    <li><p>If <var title="">stream</var> is already in the
    <code><a href=#peerconnection>PeerConnection</a></code> object's <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> object,
    then abort these steps.</li>
@@ -75817,9 +75794,6 @@
    <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
    <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception.</li>
 
-   <li><p>If <var title="">stream</var> is null, throw a
-   <code>TypeError</code> exception and abort these steps.</li>
-
    <li><p>If <var title="">stream</var> is not in the
    <code><a href=#peerconnection>PeerConnection</a></code> object's <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> object,
    then abort these steps.</li>
@@ -76198,8 +76172,8 @@
   use the <code><a href=#streamevent>StreamEvent</a></code> interface:</p>
 
   <pre class=idl>interface <dfn id=streamevent>StreamEvent</dfn> : <a href=#event>Event</a> {
-  readonly attribute <a href=#stream>Stream</a> <a href=#dom-streamevent-stream title=dom-StreamEvent-stream>stream</a>;
-  void <a href=#dom-streamevent-initstreamevent title=dom-StreamEvent-initStreamEvent>initStreamEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <a href=#stream>Stream</a> streamArg);
+  readonly attribute <a href=#stream>Stream</a>? <a href=#dom-streamevent-stream title=dom-StreamEvent-stream>stream</a>;
+  void <a href=#dom-streamevent-initstreamevent title=dom-StreamEvent-initStreamEvent>initStreamEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <a href=#stream>Stream</a>? streamArg);
 };</pre>
 
   <div class=impl>
@@ -76300,9 +76274,9 @@
   readonly attribute any <a href=#dom-messageevent-data title=dom-MessageEvent-data>data</a>;
   readonly attribute DOMString <a href=#dom-messageevent-origin title=dom-MessageEvent-origin>origin</a>;
   readonly attribute DOMString <a href=#dom-messageevent-lasteventid title=dom-MessageEvent-lastEventId>lastEventId</a>;
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-messageevent-source title=dom-MessageEvent-source>source</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-messageevent-source title=dom-MessageEvent-source>source</a>;
   readonly attribute <a href=#messageport>MessagePort</a>[] <a href=#dom-messageevent-ports title=dom-MessageEvent-ports>ports</a>;
-  void <a href=#dom-messageevent-initmessageevent title=dom-MessageEvent-initMessageEvent>initMessageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg, in DOMString originArg, in DOMString lastEventIdArg, in <a href=#windowproxy>WindowProxy</a> sourceArg, in sequence<<a href=#messageport>MessagePort</a>> portsArg);
+  void <a href=#dom-messageevent-initmessageevent title=dom-MessageEvent-initMessageEvent>initMessageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg, in DOMString originArg, in DOMString lastEventIdArg, in <a href=#windowproxy>WindowProxy</a>? sourceArg, in sequence<<a href=#messageport>MessagePort</a>> portsArg);
 };</pre>
 
   <dl class=domintro><dt><var title="">event</var> . <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code></dt>
@@ -76529,8 +76503,7 @@
     message to same-origin targets only, without needing to explicitly
     state the origin, set the target origin to "<code title="">/</code>".</p>
 
-    <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array is not null and it contains either null
-    entries or duplicate ports.</p>
+    <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array contains duplicate ports.</p>
 
    </dd>
 
@@ -76572,8 +76545,7 @@
 
    <li>
 
-    <p>If the <var title="">ports</var> argument is present but either
-    any of the entries in <var title="">ports</var> are null, or any
+    <p>If the <var title="">ports</var> argument is present but any
     <code><a href=#messageport>MessagePort</a></code> object is listed in <var title="">ports</var> more than once, or any of the
     <code><a href=#messageport>MessagePort</a></code> objects listed in <var title="">ports</var> have already been cloned once before, then
     throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception and abort these
@@ -76782,7 +76754,7 @@
   void <a href=#dom-messageport-close title=dom-MessagePort-close>close</a>();
 
   // event handlers
-           attribute <a href=#function>Function</a> <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
 };
 <a href=#messageport>MessagePort</a> implements <a href=#eventtarget>EventTarget</a>;</pre>
 
@@ -76801,8 +76773,8 @@
     <p>Posts a message through the channel, optionally with the given
     ports.</p>
 
-    <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array is not null and it contains either null
-    entries, duplicate ports, or the source or target port.</p>
+    <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array contains either duplicate ports, or the
+    source or target port.</p>
 
    </dd>
 
@@ -76904,13 +76876,13 @@
   <ol><li><p>Let <var title="">target port</var> be the port with which
    <var title="">source port</var> is entangled, if any.</li>
 
-   <li><p>If the method was called with a second argument <var title="">ports</var> and that argument isn't null, then, if any of
-   the entries in <var title="">ports</var> are null, if any
-   <code><a href=#messageport>MessagePort</a></code> object is listed in <var title="">ports</var> more than once, if any of the
-   <code><a href=#messageport>MessagePort</a></code> objects listed in <var title="">ports</var> have already been cloned once before, or if
-   any of the entries in <var title="">ports</var> are either the <var title="">source port</var> or the <var title="">target port</var>
-   (if any), then throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code>
-   exception.</li>
+   <li><p>If the method was called with a second argument <var title="">ports</var>, then, if any <code><a href=#messageport>MessagePort</a></code> object
+   is listed in <var title="">ports</var> more than once, if any of the
+   <code><a href=#messageport>MessagePort</a></code> objects listed in <var title="">ports</var>
+   have already been cloned once before, or if any of the entries
+   in <var title="">ports</var> are either the <var title="">source
+   port</var> or the <var title="">target port</var> (if any), then
+   throw an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> exception.</li>
 
    <li><p>Create an event that uses the <code><a href=#messageevent>MessageEvent</a></code>
    interface, with the name <code title=event-message><a href=#event-message>message</a></code>, which does not bubble, is not
@@ -76927,8 +76899,7 @@
    attribute of the event have the value of <var title="">message
    clone</var>.</li>
 
-   <li><p>If the method was called with a second argument <var title="">ports</var> and that argument isn't null, then run the
-   following substeps:</p>
+   <li><p>If the method was called with a second argument <var title="">ports</var>, then run the following substeps:</p>
 
     <ol><li>
 
@@ -90394,9 +90365,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>;
 
-           attribute <a href=#function>Function</a> <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-marquee-onstart title=handler-marquee-onstart>onstart</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
+           attribute <a href=#function>Function</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>();
@@ -90557,26 +90528,26 @@
   <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>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onload title=handler-window-onload>onload</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
-           attribute <a href=#function>Function</a> <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onredo title=handler-window-onredo>onredo</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-window-onundo title=handler-window-onundo>onundo</a>;
+           attribute <a href=#function>Function</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
@@ -90679,8 +90650,8 @@
            attribute boolean <a href=#dom-frame-noresize title=dom-frame-noResize>noResize</a>;
            attribute DOMString <a href=#dom-frame-scrolling title=dom-frame-scrolling>scrolling</a>;
            attribute DOMString <a href=#dom-frame-src title=dom-frame-src>src</a>;
-  readonly attribute Document <a href=#dom-frame-contentdocument title=dom-frame-contentDocument>contentDocument</a>;
-  readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-frame-contentwindow title=dom-frame-contentWindow>contentWindow</a>;
+  readonly attribute Document? <a href=#dom-frame-contentdocument title=dom-frame-contentDocument>contentDocument</a>;
+  readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-frame-contentwindow title=dom-frame-contentWindow>contentWindow</a>;
 };</pre>
 
   <p>The <dfn id=dom-frame-name title=dom-frame-name><code>name</code></dfn>, <dfn id=dom-frame-scrolling title=dom-frame-scrolling><code>scrolling</code></dfn>, and <dfn id=dom-frame-src title=dom-frame-src><code>src</code></dfn> IDL attributes of the

Modified: source
===================================================================
--- source	2011-06-13 23:11:07 UTC (rev 6219)
+++ source	2011-06-13 23:39:01 UTC (rev 6220)
@@ -7602,8 +7602,8 @@
 
   <pre class="idl">interface <dfn>HTMLCollection</dfn> {
   readonly attribute unsigned long <span title="dom-HTMLCollection-length">length</span>;
-  caller getter <span>Element</span> <span title="dom-HTMLCollection-item">item</span>(in unsigned long index);
-  caller getter object <span title="dom-HTMLCollection-namedItem">namedItem</span>(in DOMString name); // only returns Element
+  caller getter <span>Element</span>? <span title="dom-HTMLCollection-item">item</span>(in unsigned long index);
+  caller getter object? <span title="dom-HTMLCollection-namedItem">namedItem</span>(in DOMString name); // only returns Element
 };</pre>
 
   <dl class="domintro">
@@ -7703,7 +7703,7 @@
 
   <pre class="idl">interface <dfn>HTMLAllCollection</dfn> : <span>HTMLCollection</span> {
   // inherits <span title="dom-HTMLCollection-length">length</span> and <span title="dom-HTMLCollection-item">item</span>()
-  caller getter object <span title="dom-HTMLAllCollection-namedItem">namedItem</span>(in DOMString name); // overrides inherited namedItem()
+  caller getter object? <span title="dom-HTMLAllCollection-namedItem">namedItem</span>(in DOMString name); // overrides inherited namedItem()
   <span>HTMLAllCollection</span> <span title="dom-HTMLAllCollection-tags">tags</span>(in DOMString tagName);
 };</pre>
 
@@ -7817,7 +7817,7 @@
 
   <pre class="idl">interface <dfn>HTMLFormControlsCollection</dfn> : <span>HTMLCollection</span> {
   // inherits <span title="dom-HTMLCollection-length">length</span> and <span title="dom-HTMLCollection-item">item</span>()
-  caller getter object <span title="dom-HTMLFormControlsCollection-namedItem">namedItem</span>(in DOMString name); // overrides inherited namedItem()
+  caller getter object? <span title="dom-HTMLFormControlsCollection-namedItem">namedItem</span>(in DOMString name); // overrides inherited namedItem()
 };
 
 interface <dfn>RadioNodeList</dfn> : <span>NodeList</span> {
@@ -7965,8 +7965,8 @@
   <pre class="idl">interface <dfn>HTMLOptionsCollection</dfn> : <span>HTMLCollection</span> {
   // inherits <span title="dom-HTMLCollection-item">item</span>()
            attribute unsigned long <span title="dom-HTMLOptionsCollection-length">length</span>; // overrides inherited length
-  caller getter object <span title="dom-HTMLOptionsCollection-namedItem">namedItem</span>(in DOMString name); // overrides inherited namedItem()
-  void <span title="dom-HTMLOptionsCollection-add">add</span>(in <span>HTMLElement</span> element, in optional <span>HTMLElement</span> before);
+  caller getter object? <span title="dom-HTMLOptionsCollection-namedItem">namedItem</span>(in DOMString name); // overrides inherited namedItem()
+  void <span title="dom-HTMLOptionsCollection-add">add</span>(in <span>HTMLElement</span> element, in optional <span>HTMLElement</span>? before);
   void <span title="dom-HTMLOptionsCollection-add">add</span>(in <span>HTMLElement</span> element, in long before);
   void <span title="dom-HTMLOptionsCollection-remove">remove</span>(in long index);
            attribute long <span title="dom-HTMLOptionsCollection-selectedIndex">selectedIndex</span>;
@@ -8191,7 +8191,7 @@
 
   <pre class="idl">interface <dfn>HTMLPropertiesCollection</dfn> : <span>HTMLCollection</span> {
   // inherits <span title="dom-HTMLCollection-length">length</span> and <span title="dom-HTMLCollection-item">item</span>()
-  caller getter <span>PropertyNodeList</span> <span title="dom-HTMLPropertiesCollection-namedItem">namedItem</span>(in DOMString name); // overrides inherited namedItem()
+  caller getter <span>PropertyNodeList</span>? <span title="dom-HTMLPropertiesCollection-namedItem">namedItem</span>(in DOMString name); // overrides inherited namedItem()
   readonly attribute <span>DOMStringList</span> <span title="dom-HTMLPropertiesCollection-names">names</span>;
 };
 
@@ -8298,7 +8298,7 @@
 
   <pre class="idl">interface <dfn>DOMTokenList</dfn> {
   readonly attribute unsigned long <span title="dom-tokenlist-length">length</span>;
-  getter DOMString <span title="dom-tokenlist-item">item</span>(in unsigned long index);
+  getter DOMString? <span title="dom-tokenlist-item">item</span>(in unsigned long index);
   boolean <span title="dom-tokenlist-contains">contains</span>(in DOMString token);
   void <span title="dom-tokenlist-add">add</span>(in DOMString token);
   void <span title="dom-tokenlist-remove">remove</span>(in DOMString token);
@@ -9074,7 +9074,7 @@
   <pre class="idl">[OverrideBuiltins]
 interface <dfn>HTMLDocument</dfn> {
   // <span>resource metadata management</span>
-  [PutForwards=<span title="dom-location-href">href</span>] readonly attribute <span>Location</span> <span title="dom-document-location">location</span>;
+  [PutForwards=<span title="dom-location-href">href</span>] readonly attribute <span>Location</span>? <span title="dom-document-location">location</span>;
   readonly attribute DOMString <span title="dom-document-URL">URL</span>;
            attribute DOMString <span title="dom-document-domain">domain</span>;
   readonly attribute DOMString <span title="dom-document-referrer">referrer</span>;
@@ -9090,8 +9090,8 @@
   <span title="dom-document-namedItem">getter</span> any (in DOMString name);
            attribute DOMString <span title="dom-document-title">title</span>;
            attribute DOMString <span title="dom-document-dir">dir</span>;
-           attribute <span>HTMLElement</span> <span title="dom-document-body">body</span>;
-  readonly attribute <span>HTMLHeadElement</span> <span title="dom-document-head">head</span>;
+           attribute <span>HTMLElement</span>? <span title="dom-document-body">body</span>;
+  readonly attribute <span>HTMLHeadElement</span>? <span title="dom-document-head">head</span>;
   readonly attribute <span>HTMLCollection</span> <span title="dom-document-images">images</span>;
   readonly attribute <span>HTMLCollection</span> <span title="dom-document-embeds">embeds</span>;
   readonly attribute <span>HTMLCollection</span> <span title="dom-document-plugins">plugins</span>;
@@ -9112,8 +9112,8 @@
   void <span title="dom-document-writeln">writeln</span>(in DOMString... text);
 
   // <span>user interaction</span>
-  readonly attribute <span>WindowProxy</span> <span title="dom-document-defaultView">defaultView</span>;
-  readonly attribute <span>Element</span> <span title="dom-document-activeElement">activeElement</span>;
+  readonly attribute <span>WindowProxy</span>? <span title="dom-document-defaultView">defaultView</span>;
+  readonly attribute <span>Element</span>? <span title="dom-document-activeElement">activeElement</span>;
   boolean <span title="dom-document-hasFocus">hasFocus</span>();
            attribute DOMString <span title="dom-document-designMode">designMode</span>;
   boolean <span title="dom-document-execCommand">execCommand</span>(in DOMString commandId);
@@ -9127,60 +9127,60 @@
   readonly attribute <span>HTMLCollection</span> <span title="dom-document-commands">commands</span>;
 
   // <span>event handler IDL attributes</span>
-           attribute <span>Function</span> <span title="handler-onabort">onabort</span>;
-           attribute <span>Function</span> <span title="handler-onblur">onblur</span>;
-           attribute <span>Function</span> <span title="handler-oncanplay">oncanplay</span>;
-           attribute <span>Function</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
-           attribute <span>Function</span> <span title="handler-onchange">onchange</span>;
-           attribute <span>Function</span> <span title="handler-onclick">onclick</span>;
-           attribute <span>Function</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
-           attribute <span>Function</span> <span title="handler-oncuechange">oncuechange</span>;
-           attribute <span>Function</span> <span title="handler-ondblclick">ondblclick</span>;
-           attribute <span>Function</span> <span title="handler-ondrag">ondrag</span>;
-           attribute <span>Function</span> <span title="handler-ondragend">ondragend</span>;
-           attribute <span>Function</span> <span title="handler-ondragenter">ondragenter</span>;
-           attribute <span>Function</span> <span title="handler-ondragleave">ondragleave</span>;
-           attribute <span>Function</span> <span title="handler-ondragover">ondragover</span>;
-           attribute <span>Function</span> <span title="handler-ondragstart">ondragstart</span>;
-           attribute <span>Function</span> <span title="handler-ondrop">ondrop</span>;
-           attribute <span>Function</span> <span title="handler-ondurationchange">ondurationchange</span>;
-           attribute <span>Function</span> <span title="handler-onemptied">onemptied</span>;
-           attribute <span>Function</span> <span title="handler-onended">onended</span>;
-           attribute <span>Function</span> <span title="handler-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-onfocus">onfocus</span>;
-           attribute <span>Function</span> <span title="handler-oninput">oninput</span>;
-           attribute <span>Function</span> <span title="handler-oninvalid">oninvalid</span>;
-           attribute <span>Function</span> <span title="handler-onkeydown">onkeydown</span>;
-           attribute <span>Function</span> <span title="handler-onkeypress">onkeypress</span>;
-           attribute <span>Function</span> <span title="handler-onkeyup">onkeyup</span>;
-           attribute <span>Function</span> <span title="handler-onload">onload</span>;
-           attribute <span>Function</span> <span title="handler-onloadeddata">onloadeddata</span>;
-           attribute <span>Function</span> <span title="handler-onloadedmetadata">onloadedmetadata</span>;
-           attribute <span>Function</span> <span title="handler-onloadstart">onloadstart</span>;
-           attribute <span>Function</span> <span title="handler-onmousedown">onmousedown</span>;
-           attribute <span>Function</span> <span title="handler-onmousemove">onmousemove</span>;
-           attribute <span>Function</span> <span title="handler-onmouseout">onmouseout</span>;
-           attribute <span>Function</span> <span title="handler-onmouseover">onmouseover</span>;
-           attribute <span>Function</span> <span title="handler-onmouseup">onmouseup</span>;
-           attribute <span>Function</span> <span title="handler-onmousewheel">onmousewheel</span>;
-           attribute <span>Function</span> <span title="handler-onpause">onpause</span>;
-           attribute <span>Function</span> <span title="handler-onplay">onplay</span>;
-           attribute <span>Function</span> <span title="handler-onplaying">onplaying</span>;
-           attribute <span>Function</span> <span title="handler-onprogress">onprogress</span>;
-           attribute <span>Function</span> <span title="handler-onratechange">onratechange</span>;
-           attribute <span>Function</span> <span title="handler-onreadystatechange">onreadystatechange</span>;
-           attribute <span>Function</span> <span title="handler-onreset">onreset</span>;
-           attribute <span>Function</span> <span title="handler-onscroll">onscroll</span>;
-           attribute <span>Function</span> <span title="handler-onseeked">onseeked</span>;
-           attribute <span>Function</span> <span title="handler-onseeking">onseeking</span>;
-           attribute <span>Function</span> <span title="handler-onselect">onselect</span>;
-           attribute <span>Function</span> <span title="handler-onshow">onshow</span>;
-           attribute <span>Function</span> <span title="handler-onstalled">onstalled</span>;
-           attribute <span>Function</span> <span title="handler-onsubmit">onsubmit</span>;
-           attribute <span>Function</span> <span title="handler-onsuspend">onsuspend</span>;
-           attribute <span>Function</span> <span title="handler-ontimeupdate">ontimeupdate</span>;
-           attribute <span>Function</span> <span title="handler-onvolumechange">onvolumechange</span>;
-           attribute <span>Function</span> <span title="handler-onwaiting">onwaiting</span>;
+           attribute <span>Function</span>? <span title="handler-onabort">onabort</span>;
+           attribute <span>Function</span>? <span title="handler-onblur">onblur</span>;
+           attribute <span>Function</span>? <span title="handler-oncanplay">oncanplay</span>;
+           attribute <span>Function</span>? <span title="handler-oncanplaythrough">oncanplaythrough</span>;
+           attribute <span>Function</span>? <span title="handler-onchange">onchange</span>;
+           attribute <span>Function</span>? <span title="handler-onclick">onclick</span>;
+           attribute <span>Function</span>? <span title="handler-oncontextmenu">oncontextmenu</span>;
+           attribute <span>Function</span>? <span title="handler-oncuechange">oncuechange</span>;
+           attribute <span>Function</span>? <span title="handler-ondblclick">ondblclick</span>;
+           attribute <span>Function</span>? <span title="handler-ondrag">ondrag</span>;
+           attribute <span>Function</span>? <span title="handler-ondragend">ondragend</span>;
+           attribute <span>Function</span>? <span title="handler-ondragenter">ondragenter</span>;
+           attribute <span>Function</span>? <span title="handler-ondragleave">ondragleave</span>;
+           attribute <span>Function</span>? <span title="handler-ondragover">ondragover</span>;
+           attribute <span>Function</span>? <span title="handler-ondragstart">ondragstart</span>;
+           attribute <span>Function</span>? <span title="handler-ondrop">ondrop</span>;
+           attribute <span>Function</span>? <span title="handler-ondurationchange">ondurationchange</span>;
+           attribute <span>Function</span>? <span title="handler-onemptied">onemptied</span>;
+           attribute <span>Function</span>? <span title="handler-onended">onended</span>;
+           attribute <span>Function</span>? <span title="handler-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-onfocus">onfocus</span>;
+           attribute <span>Function</span>? <span title="handler-oninput">oninput</span>;
+           attribute <span>Function</span>? <span title="handler-oninvalid">oninvalid</span>;
+           attribute <span>Function</span>? <span title="handler-onkeydown">onkeydown</span>;
+           attribute <span>Function</span>? <span title="handler-onkeypress">onkeypress</span>;
+           attribute <span>Function</span>? <span title="handler-onkeyup">onkeyup</span>;
+           attribute <span>Function</span>? <span title="handler-onload">onload</span>;
+           attribute <span>Function</span>? <span title="handler-onloadeddata">onloadeddata</span>;
+           attribute <span>Function</span>? <span title="handler-onloadedmetadata">onloadedmetadata</span>;
+           attribute <span>Function</span>? <span title="handler-onloadstart">onloadstart</span>;
+           attribute <span>Function</span>? <span title="handler-onmousedown">onmousedown</span>;
+           attribute <span>Function</span>? <span title="handler-onmousemove">onmousemove</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseout">onmouseout</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseover">onmouseover</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseup">onmouseup</span>;
+           attribute <span>Function</span>? <span title="handler-onmousewheel">onmousewheel</span>;
+           attribute <span>Function</span>? <span title="handler-onpause">onpause</span>;
+           attribute <span>Function</span>? <span title="handler-onplay">onplay</span>;
+           attribute <span>Function</span>? <span title="handler-onplaying">onplaying</span>;
+           attribute <span>Function</span>? <span title="handler-onprogress">onprogress</span>;
+           attribute <span>Function</span>? <span title="handler-onratechange">onratechange</span>;
+           attribute <span>Function</span>? <span title="handler-onreadystatechange">onreadystatechange</span>;
+           attribute <span>Function</span>? <span title="handler-onreset">onreset</span>;
+           attribute <span>Function</span>? <span title="handler-onscroll">onscroll</span>;
+           attribute <span>Function</span>? <span title="handler-onseeked">onseeked</span>;
+           attribute <span>Function</span>? <span title="handler-onseeking">onseeking</span>;
+           attribute <span>Function</span>? <span title="handler-onselect">onselect</span>;
+           attribute <span>Function</span>? <span title="handler-onshow">onshow</span>;
+           attribute <span>Function</span>? <span title="handler-onstalled">onstalled</span>;
+           attribute <span>Function</span>? <span title="handler-onsubmit">onsubmit</span>;
+           attribute <span>Function</span>? <span title="handler-onsuspend">onsuspend</span>;
+           attribute <span>Function</span>? <span title="handler-ontimeupdate">ontimeupdate</span>;
+           attribute <span>Function</span>? <span title="handler-onvolumechange">onvolumechange</span>;
+           attribute <span>Function</span>? <span title="handler-onwaiting">onwaiting</span>;
 };
 <span>Document</span> implements <span>HTMLDocument</span>;</pre>
 
@@ -10518,13 +10518,13 @@
   [PutForwards=<span title="dom-DOMSettableTokenList-value">value</span>] readonly attribute <span>DOMSettableTokenList</span> <span title="dom-dropzone">dropzone</span>;
            attribute DOMString <span title="dom-contentEditable">contentEditable</span>;
   readonly attribute boolean <span title="dom-isContentEditable">isContentEditable</span>;
-           attribute <span>HTMLMenuElement</span> <span title="dom-contextMenu">contextMenu</span>;
+           attribute <span>HTMLMenuElement</span>? <span title="dom-contextMenu">contextMenu</span>;
            attribute boolean <span title="dom-spellcheck">spellcheck</span>;
 
   // <span>command API</span>
-  readonly attribute DOMString <span title="dom-command-ro-commandType">commandType</span>;
-  readonly attribute DOMString <span title="dom-command-ro-label">label</span>;
-  readonly attribute DOMString <span title="dom-command-ro-icon">icon</span>;
+  readonly attribute DOMString? <span title="dom-command-ro-commandType">commandType</span>;
+  readonly attribute DOMString? <span title="dom-command-ro-label">label</span>;
+  readonly attribute DOMString? <span title="dom-command-ro-icon">icon</span>;
   readonly attribute boolean <span title="dom-command-ro-disabled">disabled</span>;
   readonly attribute boolean <span title="dom-command-ro-checked">checked</span>;<!-- v2COMMAND
   readonly attribute <span>HTMLCollection</span> <span title="dom-command-ro-triggers">triggers</span>;-->
@@ -10533,60 +10533,60 @@
   readonly attribute <span>CSSStyleDeclaration</span> <span title="dom-style">style</span>;
 
   // <span>event handler IDL attributes</span>
-           attribute <span>Function</span> <span title="handler-onabort">onabort</span>;
-           attribute <span>Function</span> <span title="handler-onblur">onblur</span>;
-           attribute <span>Function</span> <span title="handler-oncanplay">oncanplay</span>;
-           attribute <span>Function</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
-           attribute <span>Function</span> <span title="handler-onchange">onchange</span>;
-           attribute <span>Function</span> <span title="handler-onclick">onclick</span>;
-           attribute <span>Function</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
-           attribute <span>Function</span> <span title="handler-oncuechange">oncuechange</span>;
-           attribute <span>Function</span> <span title="handler-ondblclick">ondblclick</span>;
-           attribute <span>Function</span> <span title="handler-ondrag">ondrag</span>;
-           attribute <span>Function</span> <span title="handler-ondragend">ondragend</span>;
-           attribute <span>Function</span> <span title="handler-ondragenter">ondragenter</span>;
-           attribute <span>Function</span> <span title="handler-ondragleave">ondragleave</span>;
-           attribute <span>Function</span> <span title="handler-ondragover">ondragover</span>;
-           attribute <span>Function</span> <span title="handler-ondragstart">ondragstart</span>;
-           attribute <span>Function</span> <span title="handler-ondrop">ondrop</span>;
-           attribute <span>Function</span> <span title="handler-ondurationchange">ondurationchange</span>;
-           attribute <span>Function</span> <span title="handler-onemptied">onemptied</span>;
-           attribute <span>Function</span> <span title="handler-onended">onended</span>;
-           attribute <span>Function</span> <span title="handler-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-onfocus">onfocus</span>;
-           attribute <span>Function</span> <span title="handler-oninput">oninput</span>;
-           attribute <span>Function</span> <span title="handler-oninvalid">oninvalid</span>;
-           attribute <span>Function</span> <span title="handler-onkeydown">onkeydown</span>;
-           attribute <span>Function</span> <span title="handler-onkeypress">onkeypress</span>;
-           attribute <span>Function</span> <span title="handler-onkeyup">onkeyup</span>;
-           attribute <span>Function</span> <span title="handler-onload">onload</span>;
-           attribute <span>Function</span> <span title="handler-onloadeddata">onloadeddata</span>;
-           attribute <span>Function</span> <span title="handler-onloadedmetadata">onloadedmetadata</span>;
-           attribute <span>Function</span> <span title="handler-onloadstart">onloadstart</span>;
-           attribute <span>Function</span> <span title="handler-onmousedown">onmousedown</span>;
-           attribute <span>Function</span> <span title="handler-onmousemove">onmousemove</span>;
-           attribute <span>Function</span> <span title="handler-onmouseout">onmouseout</span>;
-           attribute <span>Function</span> <span title="handler-onmouseover">onmouseover</span>;
-           attribute <span>Function</span> <span title="handler-onmouseup">onmouseup</span>;
-           attribute <span>Function</span> <span title="handler-onmousewheel">onmousewheel</span>;
-           attribute <span>Function</span> <span title="handler-onpause">onpause</span>;
-           attribute <span>Function</span> <span title="handler-onplay">onplay</span>;
-           attribute <span>Function</span> <span title="handler-onplaying">onplaying</span>;
-           attribute <span>Function</span> <span title="handler-onprogress">onprogress</span>;
-           attribute <span>Function</span> <span title="handler-onratechange">onratechange</span>;
-           attribute <span>Function</span> <span title="handler-onreadystatechange">onreadystatechange</span>;
-           attribute <span>Function</span> <span title="handler-onreset">onreset</span>;
-           attribute <span>Function</span> <span title="handler-onscroll">onscroll</span>;
-           attribute <span>Function</span> <span title="handler-onseeked">onseeked</span>;
-           attribute <span>Function</span> <span title="handler-onseeking">onseeking</span>;
-           attribute <span>Function</span> <span title="handler-onselect">onselect</span>;
-           attribute <span>Function</span> <span title="handler-onshow">onshow</span>;
-           attribute <span>Function</span> <span title="handler-onstalled">onstalled</span>;
-           attribute <span>Function</span> <span title="handler-onsubmit">onsubmit</span>;
-           attribute <span>Function</span> <span title="handler-onsuspend">onsuspend</span>;
-           attribute <span>Function</span> <span title="handler-ontimeupdate">ontimeupdate</span>;
-           attribute <span>Function</span> <span title="handler-onvolumechange">onvolumechange</span>;
-           attribute <span>Function</span> <span title="handler-onwaiting">onwaiting</span>;
+           attribute <span>Function</span>? <span title="handler-onabort">onabort</span>;
+           attribute <span>Function</span>? <span title="handler-onblur">onblur</span>;
+           attribute <span>Function</span>? <span title="handler-oncanplay">oncanplay</span>;
+           attribute <span>Function</span>? <span title="handler-oncanplaythrough">oncanplaythrough</span>;
+           attribute <span>Function</span>? <span title="handler-onchange">onchange</span>;
+           attribute <span>Function</span>? <span title="handler-onclick">onclick</span>;
+           attribute <span>Function</span>? <span title="handler-oncontextmenu">oncontextmenu</span>;
+           attribute <span>Function</span>? <span title="handler-oncuechange">oncuechange</span>;
+           attribute <span>Function</span>? <span title="handler-ondblclick">ondblclick</span>;
+           attribute <span>Function</span>? <span title="handler-ondrag">ondrag</span>;
+           attribute <span>Function</span>? <span title="handler-ondragend">ondragend</span>;
+           attribute <span>Function</span>? <span title="handler-ondragenter">ondragenter</span>;
+           attribute <span>Function</span>? <span title="handler-ondragleave">ondragleave</span>;
+           attribute <span>Function</span>? <span title="handler-ondragover">ondragover</span>;
+           attribute <span>Function</span>? <span title="handler-ondragstart">ondragstart</span>;
+           attribute <span>Function</span>? <span title="handler-ondrop">ondrop</span>;
+           attribute <span>Function</span>? <span title="handler-ondurationchange">ondurationchange</span>;
+           attribute <span>Function</span>? <span title="handler-onemptied">onemptied</span>;
+           attribute <span>Function</span>? <span title="handler-onended">onended</span>;
+           attribute <span>Function</span>? <span title="handler-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-onfocus">onfocus</span>;
+           attribute <span>Function</span>? <span title="handler-oninput">oninput</span>;
+           attribute <span>Function</span>? <span title="handler-oninvalid">oninvalid</span>;
+           attribute <span>Function</span>? <span title="handler-onkeydown">onkeydown</span>;
+           attribute <span>Function</span>? <span title="handler-onkeypress">onkeypress</span>;
+           attribute <span>Function</span>? <span title="handler-onkeyup">onkeyup</span>;
+           attribute <span>Function</span>? <span title="handler-onload">onload</span>;
+           attribute <span>Function</span>? <span title="handler-onloadeddata">onloadeddata</span>;
+           attribute <span>Function</span>? <span title="handler-onloadedmetadata">onloadedmetadata</span>;
+           attribute <span>Function</span>? <span title="handler-onloadstart">onloadstart</span>;
+           attribute <span>Function</span>? <span title="handler-onmousedown">onmousedown</span>;
+           attribute <span>Function</span>? <span title="handler-onmousemove">onmousemove</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseout">onmouseout</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseover">onmouseover</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseup">onmouseup</span>;
+           attribute <span>Function</span>? <span title="handler-onmousewheel">onmousewheel</span>;
+           attribute <span>Function</span>? <span title="handler-onpause">onpause</span>;
+           attribute <span>Function</span>? <span title="handler-onplay">onplay</span>;
+           attribute <span>Function</span>? <span title="handler-onplaying">onplaying</span>;
+           attribute <span>Function</span>? <span title="handler-onprogress">onprogress</span>;
+           attribute <span>Function</span>? <span title="handler-onratechange">onratechange</span>;
+           attribute <span>Function</span>? <span title="handler-onreadystatechange">onreadystatechange</span>;
+           attribute <span>Function</span>? <span title="handler-onreset">onreset</span>;
+           attribute <span>Function</span>? <span title="handler-onscroll">onscroll</span>;
+           attribute <span>Function</span>? <span title="handler-onseeked">onseeked</span>;
+           attribute <span>Function</span>? <span title="handler-onseeking">onseeking</span>;
+           attribute <span>Function</span>? <span title="handler-onselect">onselect</span>;
+           attribute <span>Function</span>? <span title="handler-onshow">onshow</span>;
+           attribute <span>Function</span>? <span title="handler-onstalled">onstalled</span>;
+           attribute <span>Function</span>? <span title="handler-onsubmit">onsubmit</span>;
+           attribute <span>Function</span>? <span title="handler-onsuspend">onsuspend</span>;
+           attribute <span>Function</span>? <span title="handler-ontimeupdate">ontimeupdate</span>;
+           attribute <span>Function</span>? <span title="handler-onvolumechange">onvolumechange</span>;
+           attribute <span>Function</span>? <span title="handler-onwaiting">onwaiting</span>;
 };
 
 interface <dfn>HTMLUnknownElement</dfn> : <span>HTMLElement</span> { };</pre>
@@ -18150,26 +18150,26 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class="idl">interface <dfn>HTMLBodyElement</dfn> : <span>HTMLElement</span> {
-           attribute <span>Function</span> <span title="handler-window-onafterprint">onafterprint</span>;
-           attribute <span>Function</span> <span title="handler-window-onbeforeprint">onbeforeprint</span>;
-           attribute <span>Function</span> <span title="handler-window-onbeforeunload">onbeforeunload</span>;
-           attribute <span>Function</span> <span title="handler-window-onblur">onblur</span>;
-           attribute <span>Function</span> <span title="handler-window-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-window-onfocus">onfocus</span>;
-           attribute <span>Function</span> <span title="handler-window-onhashchange">onhashchange</span>;
-           attribute <span>Function</span> <span title="handler-window-onload">onload</span>;
-           attribute <span>Function</span> <span title="handler-window-onmessage">onmessage</span>;
-           attribute <span>Function</span> <span title="handler-window-onoffline">onoffline</span>;
-           attribute <span>Function</span> <span title="handler-window-ononline">ononline</span>;
-           attribute <span>Function</span> <span title="handler-window-onpopstate">onpopstate</span>;
-           attribute <span>Function</span> <span title="handler-window-onpagehide">onpagehide</span>;
-           attribute <span>Function</span> <span title="handler-window-onpageshow">onpageshow</span>;
-           attribute <span>Function</span> <span title="handler-window-onredo">onredo</span>;
-           attribute <span>Function</span> <span title="handler-window-onresize">onresize</span>;
-           attribute <span>Function</span> <span title="handler-window-onscroll">onscroll</span>;
-           attribute <span>Function</span> <span title="handler-window-onstorage">onstorage</span>;
-           attribute <span>Function</span> <span title="handler-window-onundo">onundo</span>;
-           attribute <span>Function</span> <span title="handler-window-onunload">onunload</span>;
+           attribute <span>Function</span>? <span title="handler-window-onafterprint">onafterprint</span>;
+           attribute <span>Function</span>? <span title="handler-window-onbeforeprint">onbeforeprint</span>;
+           attribute <span>Function</span>? <span title="handler-window-onbeforeunload">onbeforeunload</span>;
+           attribute <span>Function</span>? <span title="handler-window-onblur">onblur</span>;
+           attribute <span>Function</span>? <span title="handler-window-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-window-onfocus">onfocus</span>;
+           attribute <span>Function</span>? <span title="handler-window-onhashchange">onhashchange</span>;
+           attribute <span>Function</span>? <span title="handler-window-onload">onload</span>;
+           attribute <span>Function</span>? <span title="handler-window-onmessage">onmessage</span>;
+           attribute <span>Function</span>? <span title="handler-window-onoffline">onoffline</span>;
+           attribute <span>Function</span>? <span title="handler-window-ononline">ononline</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpopstate">onpopstate</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpagehide">onpagehide</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpageshow">onpageshow</span>;
+           attribute <span>Function</span>? <span title="handler-window-onredo">onredo</span>;
+           attribute <span>Function</span>? <span title="handler-window-onresize">onresize</span>;
+           attribute <span>Function</span>? <span title="handler-window-onscroll">onscroll</span>;
+           attribute <span>Function</span>? <span title="handler-window-onstorage">onstorage</span>;
+           attribute <span>Function</span>? <span title="handler-window-onundo">onundo</span>;
+           attribute <span>Function</span>? <span title="handler-window-onunload">onunload</span>;
 };</pre>
 </dd>
   </dl>
@@ -22123,7 +22123,7 @@
 <pre class="idl">interface <dfn>HTMLTimeElement</dfn> : <span>HTMLElement</span> {
            attribute DOMString <span title="dom-time-datetime">dateTime</span>;
            attribute boolean <span title="dom-time-pubDate">pubDate</span>;
-  readonly attribute <span>Date</span> <span title="dom-time-valueAsDate">valueAsDate</span>;
+  readonly attribute <span>Date</span>? <span title="dom-time-valueAsDate">valueAsDate</span>;
 };</pre>
    </dd>
   </dl>
@@ -25676,8 +25676,8 @@
            attribute boolean <span title="dom-iframe-seamless">seamless</span>;
            attribute DOMString <span title="dom-dim-width">width</span>;
            attribute DOMString <span title="dom-dim-height">height</span>;
-  readonly attribute Document <span title="dom-iframe-contentDocument">contentDocument</span>;
-  readonly attribute <span>WindowProxy</span> <span title="dom-iframe-contentWindow">contentWindow</span>;
+  readonly attribute Document? <span title="dom-iframe-contentDocument">contentDocument</span>;
+  readonly attribute <span>WindowProxy</span>? <span title="dom-iframe-contentWindow">contentWindow</span>;
 };</pre>
    </dd>
   </dl>
@@ -26950,11 +26950,11 @@
            attribute DOMString <span title="dom-object-type">type</span>;
            attribute DOMString <span title="dom-object-name">name</span>;
            attribute DOMString <span title="dom-object-useMap">useMap</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
            attribute DOMString <span title="dom-dim-width">width</span>;
            attribute DOMString <span title="dom-dim-height">height</span>;
-  readonly attribute Document <span title="dom-object-contentDocument">contentDocument</span>;
-  readonly attribute <span>WindowProxy</span> <span title="dom-object-contentWindow">contentWindow</span>;
+  readonly attribute Document? <span title="dom-object-contentDocument">contentDocument</span>;
+  readonly attribute <span>WindowProxy</span>? <span title="dom-object-contentWindow">contentWindow</span>;
 
   readonly attribute boolean <span title="dom-cva-willValidate">willValidate</span>;
   readonly attribute <span>ValidityState</span> <span title="dom-cva-validity">validity</span>;
@@ -28798,7 +28798,7 @@
   <pre class="idl">interface <dfn>HTMLMediaElement</dfn> : <span>HTMLElement</span> {
 
   // error state
-  readonly attribute <span>MediaError</span> <span title="dom-media-error">error</span>;
+  readonly attribute <span>MediaError</span>? <span title="dom-media-error">error</span>;
 
   // network state
            attribute DOMString <span title="dom-media-src">src</span>;
@@ -28843,7 +28843,7 @@
 
   // media controller
            attribute <span>DOMString</span> <span title="dom-media-mediaGroup">mediaGroup</span>;
-           attribute <span>MediaController</span> <span title="dom-media-controller">controller</span>;
+           attribute <span>MediaController</span>? <span title="dom-media-controller">controller</span>;
 
   // controls
            attribute boolean <span title="dom-media-controls">controls</span>;
@@ -32023,7 +32023,7 @@
   DOMString <span title="dom-TrackList-getLabel">getLabel</span>(in unsigned long index);
   DOMString <span title="dom-TrackList-getLanguage">getLanguage</span>(in unsigned long index);
 
-           attribute <span>Function</span> <span title="handler-TrackList-onchange">onchange</span>;
+           attribute <span>Function</span>? <span title="handler-TrackList-onchange">onchange</span>;
 };
 
 interface <dfn>MultipleTrackList</dfn> : <span>TrackList</span> {
@@ -32434,20 +32434,20 @@
            attribute double <span title="dom-MediaController-volume">volume</span>;
            attribute boolean <span title="dom-MediaController-muted">muted</span>;
 
-           attribute <span>Function</span> <span title="handler-MediaController-onemptied">onemptied</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-onloadedmetadata">onloadedmetadata</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-onloadeddata">onloadeddata</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-oncanplay">oncanplay</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-oncanplaythrough">oncanplaythrough</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-onplaying">onplaying</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-onwaiting">onwaiting</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onemptied">onemptied</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onloadedmetadata">onloadedmetadata</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onloadeddata">onloadeddata</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-oncanplay">oncanplay</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-oncanplaythrough">oncanplaythrough</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onplaying">onplaying</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onwaiting">onwaiting</span>;
 
-           attribute <span>Function</span> <span title="handler-MediaController-ondurationchange">ondurationchange</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-ontimeupdate">ontimeupdate</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-onplay">onplay</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-onpause">onpause</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-onratechange">onratechange</span>;
-           attribute <span>Function</span> <span title="handler-MediaController-onvolumechange">onvolumechange</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-ondurationchange">ondurationchange</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-ontimeupdate">ontimeupdate</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onplay">onplay</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onpause">onpause</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onratechange">onratechange</span>;
+           attribute <span>Function</span>? <span title="handler-MediaController-onvolumechange">onvolumechange</span>;
 };</pre>
 
   <dl class="domintro">
@@ -34216,18 +34216,18 @@
   const unsigned short <span title="dom-TextTrack-LOADED">LOADED</span> = 2;
   const unsigned short <span title="dom-TextTrack-ERROR">ERROR</span> = 3;
   readonly attribute unsigned short <span title="dom-TextTrack-readyState">readyState</span>;
-           attribute <span>Function</span> <span title="handler-TextTrack-onload">onload</span>;
-           attribute <span>Function</span> <span title="handler-TextTrack-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-TextTrack-onload">onload</span>;
+           attribute <span>Function</span>? <span title="handler-TextTrack-onerror">onerror</span>;
 
   const unsigned short <span title="dom-TextTrack-OFF">OFF</span> = 0;
   const unsigned short <span title="dom-TextTrack-HIDDEN">HIDDEN</span> = 1;
   const unsigned short <span title="dom-TextTrack-SHOWING">SHOWING</span> = 2;
            attribute unsigned short <span title="dom-TextTrack-mode">mode</span>;
 
-  readonly attribute <span>TextTrackCueList</span> <span title="dom-TextTrack-cues">cues</span>;
-  readonly attribute <span>TextTrackCueList</span> <span title="dom-TextTrack-activeCues">activeCues</span>;
+  readonly attribute <span>TextTrackCueList</span>? <span title="dom-TextTrack-cues">cues</span>;
+  readonly attribute <span>TextTrackCueList</span>? <span title="dom-TextTrack-activeCues">activeCues</span>;
 
-           attribute <span>Function</span> <span title="handler-TextTrack-oncuechange">oncuechange</span>;
+           attribute <span>Function</span>? <span title="handler-TextTrack-oncuechange">oncuechange</span>;
 };
 <span>TextTrack</span> implements <span>EventTarget</span>;</pre>
 
@@ -34458,13 +34458,13 @@
    <dt><var title="">mutableTextTrack</var> . <code title="dom-MutableTextTrack-addCue">addCue</code>( <var title="">cue</var> )</dt>
    <dd>
     <p>Adds the given cue to <var title="">mutableTextTrack</var>'s <span>text track list of cues</span>.</p>
-    <p>Raises an exception if the argument is null, associated with another <span>text track</span>, or already in the list of cues.</p>
+    <p>Raises an exception if the argument is associated with another <span>text track</span> or already in the list of cues.</p>
    </dd>
 
    <dt><var title="">mutableTextTrack</var> . <code title="dom-MutableTextTrack-removeCue">removeCue</code>( <var title="">cue</var> )</dt>
    <dd>
     <p>Removes the given cue from <var title="">mutableTextTrack</var>'s <span>text track list of cues</span>.</p>
-    <p>Raises an exception if the argument is null, associated with another <span>text track</span>, or not in the list of cues.</p>
+    <p>Raises an exception if the argument is associated with another <span>text track</span> or not in the list of cues.</p>
    </dd>
 
   </dl>
@@ -34542,10 +34542,6 @@
 
   <ol>
 
-   <li><p>If <var title="">cue</var> is null, then throw an
-   <code>INVALID_ACCESS_ERR</code> exception and abort these
-   steps.</p></li>
-
    <li><p>If the given <var title="">cue</var> is already associated
    with a <span>text track</span> other than the method's
    <code>MutableTextTrack</code> object's <span>text track</span>,
@@ -34576,10 +34572,6 @@
 
   <ol>
 
-   <li><p>If <var title="">cue</var> is null, then throw an
-   <code>INVALID_ACCESS_ERR</code> exception and abort these
-   steps.</p></li>
-
    <li><p>If the given <var title="">cue</var> is not associated with
    the method's <code>MutableTextTrack</code> object's <span>text
    track</span>, then throw an <code>INVALID_STATE_ERR</code>
@@ -34635,7 +34627,7 @@
   <pre class="idl">interface <dfn>TextTrackCueList</dfn> {
   readonly attribute unsigned long <span title="dom-TextTrackCueList-length">length</span>;
   getter <span>TextTrackCue</span> (in unsigned long index);
-  <span>TextTrackCue</span> <span title="dom-TextTrackCueList-getCueById">getCueById</span>(in DOMString id);
+  <span>TextTrackCue</span>? <span title="dom-TextTrackCueList-getCueById">getCueById</span>(in DOMString id);
 };</pre>
 
   <dl class="domintro">
@@ -34702,7 +34694,7 @@
 [<span title="dom-TextTrackCue">Constructor</span>(in DOMString id, in double startTime, in double endTime, in DOMString text, in optional DOMString settings, in optional boolean pauseOnExit)]
 <!--START w3c-html--><!--TTVTT-->
 interface <dfn>TextTrackCue</dfn> {
-  readonly attribute <span>TextTrack</span> <span title="dom-TextTrackCue-track">track</span>;
+  readonly attribute <span>TextTrack</span>? <span title="dom-TextTrackCue-track">track</span>;
   readonly attribute DOMString <span title="dom-TextTrackCue-id">id</span>;
 
   readonly attribute double <span title="dom-TextTrackCue-startTime">startTime</span>;
@@ -34721,8 +34713,8 @@
   DOMString <span title="dom-TextTrackCue-getCueAsSource">getCueAsSource</span>();
   <span>DocumentFragment</span> <span title="dom-TextTrackCue-getCueAsHTML">getCueAsHTML</span>();
 
-           attribute <span>Function</span> <span title="handler-TextTrackCue-onenter">onenter</span>;
-           attribute <span>Function</span> <span title="handler-TextTrackCue-onexit">onexit</span>;
+           attribute <span>Function</span>? <span title="handler-TextTrackCue-onenter">onenter</span>;
+           attribute <span>Function</span>? <span title="handler-TextTrackCue-onexit">onexit</span>;
 };
 <span>TextTrackCue</span> implements <span>EventTarget</span>;</pre>
 
@@ -37881,9 +37873,9 @@
            attribute unsigned long <span title="dom-canvas-height">height</span>;
 
   DOMString <span title="dom-canvas-toDataURL">toDataURL</span>(in optional DOMString type, in any... args);
-  void <span title="dom-canvas-toBlob">toBlob</span>(in <span>FileCallback</span> callback, in optional DOMString type, in any... args);
+  void <span title="dom-canvas-toBlob">toBlob</span>(in <span>FileCallback</span>? callback, in optional DOMString type, in any... args);
 
-  object <span title="dom-canvas-getContext">getContext</span>(in DOMString contextId, in any... args);
+  object? <span title="dom-canvas-getContext">getContext</span>(in DOMString contextId, in any... args);
 };</pre>
    </dd>
   </dl>
@@ -39331,16 +39323,14 @@
     title="">repeat-x</code> (horizontal only), <code
     title="">repeat-y</code> (vertical only), and <code
     title="">no-repeat</code> (neither). If the <var
-    title="">repetition</var> argument is empty or null, the value
-    <code title="">repeat</code> is used.</p>
+    title="">repetition</var> argument is empty, the value <code
+    title="">repeat</code> is used.</p>
 
-    <p>If the first argument isn't an <code>img</code>,
-    <code>canvas</code>, or <code>video</code> element, throws a
-    <code>TYPE_MISMATCH_ERR</code> exception. If the image has no
-    image data, throws an <code>INVALID_STATE_ERR</code> exception. If
-    the second argument isn't one of the allowed values, throws a
-    <code>SYNTAX_ERR</code> exception. If the image isn't yet fully
-    decoded, then the method returns null.</p>
+    <p>If the image has no image data, throws an
+    <code>INVALID_STATE_ERR</code> exception. If the second argument
+    isn't one of the allowed values, throws a <code>SYNTAX_ERR</code>
+    exception. If the image isn't yet fully decoded, then the method
+    returns null.</p>
 
    </dd>
 
@@ -39359,19 +39349,18 @@
   must not affect the pattern. The second argument must be a string
   with one of the following values: <code title="">repeat</code>,
   <code title="">repeat-x</code>, <code title="">repeat-y</code>,
-  <code title="">no-repeat</code>. If the empty string or null is
-  specified, <code title="">repeat</code> must be assumed. If an
-  unrecognized value is given, then the user agent must raise a
-  <code>SYNTAX_ERR</code> exception. User agents must recognize the
-  four values described above exactly (e.g. they must not do case
-  folding). Except as specified below, the method must return a
-  <code>CanvasPattern</code> object suitably initialized.</p>
+  <code title="">no-repeat</code>. If the empty string is specified,
+  <code title="">repeat</code> must be assumed. If an unrecognized value
+  is given, then the user agent must raise a <code>SYNTAX_ERR</code>
+  exception. User agents must recognize the four values described above
+  exactly (e.g. they must not do case folding). Except as specified
+  below, the method must return a <code>CanvasPattern</code> object
+  suitably initialized.</p>
 
   <p>The <var title="">image</var> argument is an instance of either
   <code>HTMLImageElement</code>, <code>HTMLCanvasElement</code>, or
-  <code>HTMLVideoElement</code>. If the <var title="">image</var> is
-  null, the implementation must raise a <code>TYPE_MISMATCH_ERR</code>
-  exception.</p> <!-- drawImage() has an equivalent paragraph -->
+  <code>HTMLVideoElement</code>.</p> <!-- drawImage() has an equivalent
+  paragraph -->
 
   <p>If the <var title="">image</var> argument is an
   <code>HTMLImageElement</code> object that is not <span
@@ -41234,9 +41223,8 @@
 
   <p>The <var title="">image</var> argument is an instance of either
   <code>HTMLImageElement</code>, <code>HTMLCanvasElement</code>, or
-  <code>HTMLVideoElement</code>. If the <var title="">image</var> is
-  null, the implementation must raise a <code>TYPE_MISMATCH_ERR</code>
-  exception.</p> <!-- createPattern() has an equivalent paragraph -->
+  <code>HTMLVideoElement</code>.</p> <!-- createPattern() has an
+  equivalent paragraph -->
 
   <p>If the <var title="">image</var> argument is an
   <code>HTMLImageElement</code> object that is not <span
@@ -41366,9 +41354,6 @@
     dimensions as the argument. All the pixels in the returned object
     are transparent black.</p>
 
-    <p>Throws a <code>NOT_SUPPORTED_ERR</code> exception if the
-    argument is null.</p>
-
    </dd>
 
    <dt><var title="">imagedata</var> = <var title="">context</var> . <code title="dom-context-2d-getImageData">getImageData</code>(<var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>)</dt>
@@ -41462,14 +41447,12 @@
 
   <p>If any of the arguments to <code
   title="dom-context-2d-createImageData">createImageData()</code> or
-  <code title="dom-context-2d-getImageData">getImageData()</code> are
-  infinite or NaN, or if the <code
-  title="dom-context-2d-createImageData">createImageData()</code>
-  method is invoked with only one argument but that argument is null,
-  the method must instead raise a <code>NOT_SUPPORTED_ERR</code>
-  exception. If either the <var title="">sw</var> or <var
-  title="">sh</var> arguments are zero, the method must instead raise
-  an <code>INDEX_SIZE_ERR</code> exception.</p>
+  <code title="dom-context-2d-getImageData">getImageData()</code>
+  are infinite or NaN, the method must instead raise a
+  <code>NOT_SUPPORTED_ERR</code> exception. If either the <var
+  title="">sw</var> or <var title="">sh</var> arguments are zero,
+  the method must instead raise an <code>INDEX_SIZE_ERR</code>
+  exception.</p>
 
   <p><code>ImageData</code> objects must be initialized so that their
   <dfn title="dom-imagedata-width"><code>width</code></dfn> attribute
@@ -41531,10 +41514,6 @@
   <p>If any of the arguments to the method are infinite or NaN, the
   method must raise a <code>NOT_SUPPORTED_ERR</code> exception.</p>
 
-  <p>If the first argument to the method is null, then the <code
-  title="dom-context-2d-putImageData">putImageData()</code> method
-  must raise a <code>TYPE_MISMATCH_ERR</code> exception.</p>
-
   <p>When the last four arguments are omitted, they must be assumed to
   have the values 0, 0, the <code
   title="dom-imagedata-width">width</code> member of the <var
@@ -43029,13 +43008,13 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class="idl">interface <dfn>HTMLTableElement</dfn> : <span>HTMLElement</span> {
-           attribute <span>HTMLTableCaptionElement</span> <span title="dom-table-caption">caption</span>;
+           attribute <span>HTMLTableCaptionElement</span>? <span title="dom-table-caption">caption</span>;
   <span>HTMLElement</span> <span title="dom-table-createCaption">createCaption</span>();
   void <span title="dom-table-deleteCaption">deleteCaption</span>();
-           attribute <span>HTMLTableSectionElement</span> <span title="dom-table-tHead">tHead</span>;
+           attribute <span>HTMLTableSectionElement</span>? <span title="dom-table-tHead">tHead</span>;
   <span>HTMLElement</span> <span title="dom-table-createTHead">createTHead</span>();
   void <span title="dom-table-deleteTHead">deleteTHead</span>();
-           attribute <span>HTMLTableSectionElement</span> <span title="dom-table-tFoot">tFoot</span>;
+           attribute <span>HTMLTableSectionElement</span>? <span title="dom-table-tFoot">tFoot</span>;
   <span>HTMLElement</span> <span title="dom-table-createTFoot">createTFoot</span>();
   void <span title="dom-table-deleteTFoot">deleteTFoot</span>();
   readonly attribute <span>HTMLCollection</span> <span title="dom-table-tBodies">tBodies</span>;
@@ -47044,7 +47023,7 @@
    <dd>
 <pre class="idl">interface <dfn>HTMLFieldSetElement</dfn> : <span>HTMLElement</span> {
            attribute boolean <span title="dom-fieldset-disabled">disabled</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
            attribute DOMString <span title="dom-fe-name">name</span>;
 
   readonly attribute DOMString <span title="dom-fieldset-type">type</span>;
@@ -47206,7 +47185,7 @@
    <dt>DOM interface:</dt>
    <dd>
     <pre class="idl">interface <dfn>HTMLLegendElement</dfn> : <span>HTMLElement</span> {
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-legend-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-legend-form">form</span>;
 };</pre>
    </dd>
   </dl>
@@ -47263,9 +47242,9 @@
    <dt>DOM interface:</dt>
    <dd>
 <pre class="idl">interface <dfn>HTMLLabelElement</dfn> : <span>HTMLElement</span> {
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
            attribute DOMString <span title="dom-label-htmlFor">htmlFor</span>;
-  readonly attribute <span>HTMLElement</span> <span title="dom-label-control">control</span>;
+  readonly attribute <span>HTMLElement</span>? <span title="dom-label-control">control</span>;
 };</pre>
    </dd>
   </dl>
@@ -47466,8 +47445,8 @@
            attribute boolean <span title="dom-input-checked">checked</span>;
            attribute DOMString <span title="dom-input-dirName">dirName</span>;
            attribute boolean <span title="dom-fe-disabled">disabled</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
-  readonly attribute <span>FileList</span> <span title="dom-input-files">files</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
+  readonly attribute <span>FileList</span>? <span title="dom-input-files">files</span>;
            attribute DOMString <span title="dom-fs-formAction">formAction</span>;
            attribute DOMString <span title="dom-fs-formEnctype">formEnctype</span>;
            attribute DOMString <span title="dom-fs-formMethod">formMethod</span>;
@@ -47475,7 +47454,7 @@
            attribute DOMString <span title="dom-fs-formTarget">formTarget</span>;
            attribute DOMString <span title="dom-dim-height">height</span>;
            attribute boolean <span title="dom-input-indeterminate">indeterminate</span>;
-  readonly attribute <span>HTMLElement</span> <span title="dom-input-list">list</span>;
+  readonly attribute <span>HTMLElement</span>? <span title="dom-input-list">list</span>;
            attribute DOMString <span title="dom-input-max">max</span>;
            attribute long <span title="dom-input-maxLength">maxLength</span>;
            attribute DOMString <span title="dom-input-min">min</span>;
@@ -47493,7 +47472,7 @@
            attribute DOMString <span title="dom-input-value">value</span>;
            attribute <span>Date</span> <span title="dom-input-valueAsDate">valueAsDate</span>;
            attribute double <span title="dom-input-valueAsNumber">valueAsNumber</span>;
-  readonly attribute <span>HTMLOptionElement</span> <span title="dom-input-selectedOption">selectedOption</span>;
+  readonly attribute <span>HTMLOptionElement</span>? <span title="dom-input-selectedOption">selectedOption</span>;
            attribute DOMString <span title="dom-dim-width">width</span>;
 
   void <span title="dom-input-stepUp">stepUp</span>(in optional long n);
@@ -53970,7 +53949,7 @@
 <pre class="idl">interface <dfn>HTMLButtonElement</dfn> : <span>HTMLElement</span> {
            attribute boolean <span title="dom-fe-autofocus">autofocus</span>;
            attribute boolean <span title="dom-fe-disabled">disabled</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
            attribute DOMString <span title="dom-fs-formAction">formAction</span>;
            attribute DOMString <span title="dom-fs-formEnctype">formEnctype</span>;
            attribute DOMString <span title="dom-fs-formMethod">formMethod</span>;
@@ -54180,7 +54159,7 @@
 <pre class="idl">interface <dfn>HTMLSelectElement</dfn> : <span>HTMLElement</span> {
            attribute boolean <span title="dom-fe-autofocus">autofocus</span>;
            attribute boolean <span title="dom-fe-disabled">disabled</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
            attribute boolean <span title="dom-select-multiple">multiple</span>;
            attribute DOMString <span title="dom-fe-name">name</span>;
            attribute boolean <span title="dom-select-required">required</span>;
@@ -54192,7 +54171,7 @@
            attribute unsigned long <span title="dom-select-length">length</span>;
   getter any <span title="dom-select-item">item</span>(in unsigned long index);
   any <span title="dom-select-namedItem">namedItem</span>(in DOMString name);
-  void <span title="dom-select-add">add</span>(in <span>HTMLElement</span> element, in optional <span>HTMLElement</span> before);
+  void <span title="dom-select-add">add</span>(in <span>HTMLElement</span> element, in optional <span>HTMLElement</span>? before);
   void <span title="dom-select-add">add</span>(in <span>HTMLElement</span> element, in long before);
   void <span title="dom-select-remove">remove</span>(in long index);
 
@@ -54876,7 +54855,7 @@
  NamedConstructor=<span title="dom-option-tvds">Option</span>(in DOMString text, in DOMString value, in boolean defaultSelected, in boolean selected)]
 interface <dfn>HTMLOptionElement</dfn> : <span>HTMLElement</span> {
            attribute boolean <span title="dom-option-disabled">disabled</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-option-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-option-form">form</span>;
            attribute DOMString <span title="dom-option-label">label</span>;
            attribute boolean <span title="dom-option-defaultSelected">defaultSelected</span>;
            attribute boolean <span title="dom-option-selected">selected</span>;
@@ -55167,7 +55146,7 @@
            attribute unsigned long <span title="dom-textarea-cols">cols</span>;
            attribute DOMString <span title="dom-textarea-dirName">dirName</span>;
            attribute boolean <span title="dom-fe-disabled">disabled</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
            attribute long <span title="dom-textarea-maxLength">maxLength</span>;
            attribute DOMString <span title="dom-fe-name">name</span>;
            attribute DOMString <span title="dom-textarea-placeholder">placeholder</span>;
@@ -55622,7 +55601,7 @@
            attribute boolean <span title="dom-fe-autofocus">autofocus</span>;
            attribute DOMString <span title="dom-keygen-challenge">challenge</span>;
            attribute boolean <span title="dom-fe-disabled">disabled</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
            attribute DOMString <span title="dom-keygen-keytype">keytype</span>;
            attribute DOMString <span title="dom-fe-name">name</span>;
 
@@ -55968,7 +55947,7 @@
    <dd>
 <pre class="idl">interface <dfn>HTMLOutputElement</dfn> : <span>HTMLElement</span> {
   [PutForwards=<span title="dom-DOMSettableTokenList-value">value</span>] readonly attribute <span>DOMSettableTokenList</span> <span title="dom-output-htmlFor">htmlFor</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
            attribute DOMString <span title="dom-fe-name">name</span>;
 
   readonly attribute DOMString <span title="dom-output-type">type</span>;
@@ -56165,7 +56144,7 @@
            attribute double <span title="dom-progress-value">value</span>;
            attribute double <span title="dom-progress-max">max</span>;
   readonly attribute double <span title="dom-progress-position">position</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
   readonly attribute <span>NodeList</span> <span title="dom-lfe-labels">labels</span>;
 };</pre>
    </dd>
@@ -56373,7 +56352,7 @@
            attribute double <span title="dom-meter-low">low</span>;
            attribute double <span title="dom-meter-high">high</span>;
            attribute double <span title="dom-meter-optimum">optimum</span>;
-  readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
+  readonly attribute <span>HTMLFormElement</span>? <span title="dom-fae-form">form</span>;
   readonly attribute <span>NodeList</span> <span title="dom-lfe-labels">labels</span>;
 };</pre>
    </dd>
@@ -69942,7 +69921,7 @@
   readonly attribute <span>WindowProxy</span> <span title="dom-top">top</span>;
            attribute <span>WindowProxy</span> <span title="dom-opener">opener</span>;
   readonly attribute <span>WindowProxy</span> <span title="dom-parent">parent</span>;
-  readonly attribute <span>Element</span> <span title="dom-frameElement">frameElement</span>;
+  readonly attribute <span>Element</span>? <span title="dom-frameElement">frameElement</span>;
   <span>WindowProxy</span> <span title="dom-open">open</span>(in optional DOMString url, in optional DOMString target, in optional DOMString features, in optional DOMString replace);
   <span title="dom-window-item">getter</span> <span>WindowProxy</span> (in unsigned long index);
   <span title="dom-window-namedItem">getter</span> any (in DOMString name);
@@ -69955,7 +69934,7 @@
   // user prompts
   void <span title="dom-alert">alert</span>(in DOMString message);
   boolean <span title="dom-confirm">confirm</span>(in DOMString message);
-  DOMString <span title="dom-prompt">prompt</span>(in DOMString message, in optional DOMString default);
+  DOMString? <span title="dom-prompt">prompt</span>(in DOMString message, in optional DOMString default);
   void <span title="dom-print">print</span>();
   any <span title="dom-showModalDialog">showModalDialog</span>(in DOMString url, in optional any argument<!--, in optional DOMString features-->);
 
@@ -69963,75 +69942,75 @@
   void <span title="dom-window-postMessage">postMessage</span>(in any message, in DOMString targetOrigin, in optional sequence<<span>MessagePort</span>> ports);
 <!--START w3c-html--><!--POSTMSG-->
   // <span>event handler IDL attributes</span>
-           attribute <span>Function</span> <span title="handler-onabort">onabort</span>;
-           attribute <span>Function</span> <span title="handler-window-onafterprint">onafterprint</span>;
-           attribute <span>Function</span> <span title="handler-window-onbeforeprint">onbeforeprint</span>;
-           attribute <span>Function</span> <span title="handler-window-onbeforeunload">onbeforeunload</span>;
-           attribute <span>Function</span> <span title="handler-window-onblur">onblur</span>;
-           attribute <span>Function</span> <span title="handler-oncanplay">oncanplay</span>;
-           attribute <span>Function</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
-           attribute <span>Function</span> <span title="handler-onchange">onchange</span>;
-           attribute <span>Function</span> <span title="handler-onclick">onclick</span>;
-           attribute <span>Function</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
-           attribute <span>Function</span> <span title="handler-oncuechange">oncuechange</span>;
-           attribute <span>Function</span> <span title="handler-ondblclick">ondblclick</span>;
-           attribute <span>Function</span> <span title="handler-ondrag">ondrag</span>;
-           attribute <span>Function</span> <span title="handler-ondragend">ondragend</span>;
-           attribute <span>Function</span> <span title="handler-ondragenter">ondragenter</span>;
-           attribute <span>Function</span> <span title="handler-ondragleave">ondragleave</span>;
-           attribute <span>Function</span> <span title="handler-ondragover">ondragover</span>;
-           attribute <span>Function</span> <span title="handler-ondragstart">ondragstart</span>;
-           attribute <span>Function</span> <span title="handler-ondrop">ondrop</span>;
-           attribute <span>Function</span> <span title="handler-ondurationchange">ondurationchange</span>;
-           attribute <span>Function</span> <span title="handler-onemptied">onemptied</span>;
-           attribute <span>Function</span> <span title="handler-onended">onended</span>;
-           attribute <span>Function</span> <span title="handler-window-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-window-onfocus">onfocus</span>;
-           attribute <span>Function</span> <span title="handler-window-onhashchange">onhashchange</span>;
-           attribute <span>Function</span> <span title="handler-oninput">oninput</span>;
-           attribute <span>Function</span> <span title="handler-oninvalid">oninvalid</span>;
-           attribute <span>Function</span> <span title="handler-onkeydown">onkeydown</span>;
-           attribute <span>Function</span> <span title="handler-onkeypress">onkeypress</span>;
-           attribute <span>Function</span> <span title="handler-onkeyup">onkeyup</span>;
-           attribute <span>Function</span> <span title="handler-window-onload">onload</span>;
-           attribute <span>Function</span> <span title="handler-onloadeddata">onloadeddata</span>;
-           attribute <span>Function</span> <span title="handler-onloadedmetadata">onloadedmetadata</span>;
-           attribute <span>Function</span> <span title="handler-onloadstart">onloadstart</span>;
-           attribute <span>Function</span> <span title="handler-window-onmessage">onmessage</span>;
-           attribute <span>Function</span> <span title="handler-onmousedown">onmousedown</span>;
-           attribute <span>Function</span> <span title="handler-onmousemove">onmousemove</span>;
-           attribute <span>Function</span> <span title="handler-onmouseout">onmouseout</span>;
-           attribute <span>Function</span> <span title="handler-onmouseover">onmouseover</span>;
-           attribute <span>Function</span> <span title="handler-onmouseup">onmouseup</span>;
-           attribute <span>Function</span> <span title="handler-onmousewheel">onmousewheel</span>;
-           attribute <span>Function</span> <span title="handler-window-onoffline">onoffline</span>;
-           attribute <span>Function</span> <span title="handler-window-ononline">ononline</span>;
-           attribute <span>Function</span> <span title="handler-onpause">onpause</span>;
-           attribute <span>Function</span> <span title="handler-onplay">onplay</span>;
-           attribute <span>Function</span> <span title="handler-onplaying">onplaying</span>;
-           attribute <span>Function</span> <span title="handler-window-onpagehide">onpagehide</span>;
-           attribute <span>Function</span> <span title="handler-window-onpageshow">onpageshow</span>;
-           attribute <span>Function</span> <span title="handler-window-onpopstate">onpopstate</span>;
-           attribute <span>Function</span> <span title="handler-onprogress">onprogress</span>;
-           attribute <span>Function</span> <span title="handler-onratechange">onratechange</span>;
-           attribute <span>Function</span> <span title="handler-onreadystatechange">onreadystatechange</span>;
-           attribute <span>Function</span> <span title="handler-window-onredo">onredo</span>;
-           attribute <span>Function</span> <span title="handler-onreset">onreset</span>;
-           attribute <span>Function</span> <span title="handler-window-onresize">onresize</span>;
-           attribute <span>Function</span> <span title="handler-onscroll">onscroll</span>;
-           attribute <span>Function</span> <span title="handler-onseeked">onseeked</span>;
-           attribute <span>Function</span> <span title="handler-onseeking">onseeking</span>;
-           attribute <span>Function</span> <span title="handler-onselect">onselect</span>;
-           attribute <span>Function</span> <span title="handler-onshow">onshow</span>;
-           attribute <span>Function</span> <span title="handler-onstalled">onstalled</span>;
-           attribute <span>Function</span> <span title="handler-window-onstorage">onstorage</span>;
-           attribute <span>Function</span> <span title="handler-onsubmit">onsubmit</span>;
-           attribute <span>Function</span> <span title="handler-onsuspend">onsuspend</span>;
-           attribute <span>Function</span> <span title="handler-ontimeupdate">ontimeupdate</span>;
-           attribute <span>Function</span> <span title="handler-window-onundo">onundo</span>;
-           attribute <span>Function</span> <span title="handler-window-onunload">onunload</span>;
-           attribute <span>Function</span> <span title="handler-onvolumechange">onvolumechange</span>;
-           attribute <span>Function</span> <span title="handler-onwaiting">onwaiting</span>;
+           attribute <span>Function</span>? <span title="handler-onabort">onabort</span>;
+           attribute <span>Function</span>? <span title="handler-window-onafterprint">onafterprint</span>;
+           attribute <span>Function</span>? <span title="handler-window-onbeforeprint">onbeforeprint</span>;
+           attribute <span>Function</span>? <span title="handler-window-onbeforeunload">onbeforeunload</span>;
+           attribute <span>Function</span>? <span title="handler-window-onblur">onblur</span>;
+           attribute <span>Function</span>? <span title="handler-oncanplay">oncanplay</span>;
+           attribute <span>Function</span>? <span title="handler-oncanplaythrough">oncanplaythrough</span>;
+           attribute <span>Function</span>? <span title="handler-onchange">onchange</span>;
+           attribute <span>Function</span>? <span title="handler-onclick">onclick</span>;
+           attribute <span>Function</span>? <span title="handler-oncontextmenu">oncontextmenu</span>;
+           attribute <span>Function</span>? <span title="handler-oncuechange">oncuechange</span>;
+           attribute <span>Function</span>? <span title="handler-ondblclick">ondblclick</span>;
+           attribute <span>Function</span>? <span title="handler-ondrag">ondrag</span>;
+           attribute <span>Function</span>? <span title="handler-ondragend">ondragend</span>;
+           attribute <span>Function</span>? <span title="handler-ondragenter">ondragenter</span>;
+           attribute <span>Function</span>? <span title="handler-ondragleave">ondragleave</span>;
+           attribute <span>Function</span>? <span title="handler-ondragover">ondragover</span>;
+           attribute <span>Function</span>? <span title="handler-ondragstart">ondragstart</span>;
+           attribute <span>Function</span>? <span title="handler-ondrop">ondrop</span>;
+           attribute <span>Function</span>? <span title="handler-ondurationchange">ondurationchange</span>;
+           attribute <span>Function</span>? <span title="handler-onemptied">onemptied</span>;
+           attribute <span>Function</span>? <span title="handler-onended">onended</span>;
+           attribute <span>Function</span>? <span title="handler-window-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-window-onfocus">onfocus</span>;
+           attribute <span>Function</span>? <span title="handler-window-onhashchange">onhashchange</span>;
+           attribute <span>Function</span>? <span title="handler-oninput">oninput</span>;
+           attribute <span>Function</span>? <span title="handler-oninvalid">oninvalid</span>;
+           attribute <span>Function</span>? <span title="handler-onkeydown">onkeydown</span>;
+           attribute <span>Function</span>? <span title="handler-onkeypress">onkeypress</span>;
+           attribute <span>Function</span>? <span title="handler-onkeyup">onkeyup</span>;
+           attribute <span>Function</span>? <span title="handler-window-onload">onload</span>;
+           attribute <span>Function</span>? <span title="handler-onloadeddata">onloadeddata</span>;
+           attribute <span>Function</span>? <span title="handler-onloadedmetadata">onloadedmetadata</span>;
+           attribute <span>Function</span>? <span title="handler-onloadstart">onloadstart</span>;
+           attribute <span>Function</span>? <span title="handler-window-onmessage">onmessage</span>;
+           attribute <span>Function</span>? <span title="handler-onmousedown">onmousedown</span>;
+           attribute <span>Function</span>? <span title="handler-onmousemove">onmousemove</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseout">onmouseout</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseover">onmouseover</span>;
+           attribute <span>Function</span>? <span title="handler-onmouseup">onmouseup</span>;
+           attribute <span>Function</span>? <span title="handler-onmousewheel">onmousewheel</span>;
+           attribute <span>Function</span>? <span title="handler-window-onoffline">onoffline</span>;
+           attribute <span>Function</span>? <span title="handler-window-ononline">ononline</span>;
+           attribute <span>Function</span>? <span title="handler-onpause">onpause</span>;
+           attribute <span>Function</span>? <span title="handler-onplay">onplay</span>;
+           attribute <span>Function</span>? <span title="handler-onplaying">onplaying</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpagehide">onpagehide</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpageshow">onpageshow</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpopstate">onpopstate</span>;
+           attribute <span>Function</span>? <span title="handler-onprogress">onprogress</span>;
+           attribute <span>Function</span>? <span title="handler-onratechange">onratechange</span>;
+           attribute <span>Function</span>? <span title="handler-onreadystatechange">onreadystatechange</span>;
+           attribute <span>Function</span>? <span title="handler-window-onredo">onredo</span>;
+           attribute <span>Function</span>? <span title="handler-onreset">onreset</span>;
+           attribute <span>Function</span>? <span title="handler-window-onresize">onresize</span>;
+           attribute <span>Function</span>? <span title="handler-onscroll">onscroll</span>;
+           attribute <span>Function</span>? <span title="handler-onseeked">onseeked</span>;
+           attribute <span>Function</span>? <span title="handler-onseeking">onseeking</span>;
+           attribute <span>Function</span>? <span title="handler-onselect">onselect</span>;
+           attribute <span>Function</span>? <span title="handler-onshow">onshow</span>;
+           attribute <span>Function</span>? <span title="handler-onstalled">onstalled</span>;
+           attribute <span>Function</span>? <span title="handler-window-onstorage">onstorage</span>;
+           attribute <span>Function</span>? <span title="handler-onsubmit">onsubmit</span>;
+           attribute <span>Function</span>? <span title="handler-onsuspend">onsuspend</span>;
+           attribute <span>Function</span>? <span title="handler-ontimeupdate">ontimeupdate</span>;
+           attribute <span>Function</span>? <span title="handler-window-onundo">onundo</span>;
+           attribute <span>Function</span>? <span title="handler-window-onunload">onunload</span>;
+           attribute <span>Function</span>? <span title="handler-onvolumechange">onvolumechange</span>;
+           attribute <span>Function</span>? <span title="handler-onwaiting">onwaiting</span>;
 };
 <span>Window</span> implements <span>EventTarget</span>;</pre>
 
@@ -76182,14 +76161,14 @@
   void <span title="dom-appcache-swapCache">swapCache</span>();
 
   // events
-           attribute <span>Function</span> <span title="handler-appcache-onchecking">onchecking</span>;
-           attribute <span>Function</span> <span title="handler-appcache-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-appcache-onnoupdate">onnoupdate</span>;
-           attribute <span>Function</span> <span title="handler-appcache-ondownloading">ondownloading</span>;
-           attribute <span>Function</span> <span title="handler-appcache-onprogress">onprogress</span>;
-           attribute <span>Function</span> <span title="handler-appcache-onupdateready">onupdateready</span>;
-           attribute <span>Function</span> <span title="handler-appcache-oncached">oncached</span>;
-           attribute <span>Function</span> <span title="handler-appcache-onobsolete">onobsolete</span>;
+           attribute <span>Function</span>? <span title="handler-appcache-onchecking">onchecking</span>;
+           attribute <span>Function</span>? <span title="handler-appcache-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-appcache-onnoupdate">onnoupdate</span>;
+           attribute <span>Function</span>? <span title="handler-appcache-ondownloading">ondownloading</span>;
+           attribute <span>Function</span>? <span title="handler-appcache-onprogress">onprogress</span>;
+           attribute <span>Function</span>? <span title="handler-appcache-onupdateready">onupdateready</span>;
+           attribute <span>Function</span>? <span title="handler-appcache-oncached">oncached</span>;
+           attribute <span>Function</span>? <span title="handler-appcache-onobsolete">onobsolete</span>;
 };
 <span>ApplicationCache</span> implements <span>EventTarget</span>;</pre>
 
@@ -82176,11 +82155,11 @@
   <span title="dom-DataTransferItemList-removeItem">deleter</span> void (in unsigned long index);
   void <span title="dom-DataTransferItemList-clear">clear</span>();
 
-  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in DOMString data, in DOMString type);<!--
-DND-v3:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in <span>Blob</span> data);-->
-  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in <span>File</span> data);<!--
-DND-v4:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in any data, in DOMString type);--><!--
-DND-v5:  <span>DataTransferItem</span> <span title="dom-DataTransferItemList-add">add</span>(in <span>DataTransferPromise</span> data);-->
+  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in DOMString data, in DOMString type);<!--
+DND-v3:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in <span>Blob</span> data);-->
+  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in <span>File</span> data);<!--
+DND-v4:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in any data, in DOMString type);--><!--
+DND-v5:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(in <span>DataTransferPromise</span> data);-->
 };</pre>
 
   <dl class="domintro">
@@ -82406,9 +82385,9 @@
   <pre class="idl">interface <dfn>DataTransferItem</dfn> {
     readonly attribute DOMString <span title="dom-DataTransferItem-kind">kind</span>;
     readonly attribute DOMString <span title="dom-DataTransferItem-type">type</span>;
-    void <span title="dom-DataTransferItem-getAsString">getAsString</span>(in <span>FunctionStringCallback</span> callback);<!--
+    void <span title="dom-DataTransferItem-getAsString">getAsString</span>(in <span>FunctionStringCallback</span>? callback);<!--
 DND-v3:    <span>Blob</span> <span title="dom-DataTransferItem-getAsBlob">getAsBlob</span>();-->
-    <span>File</span> <span title="dom-DataTransferItem-getAsFile">getAsFile</span>();<!--
+    <span>File</span>? <span title="dom-DataTransferItem-getAsFile">getAsFile</span>();<!--
 DND-v4:    void <span title="dom-DataTransferItem-getAsObject">getAsObject</span>(in <span>FunctionObjectCallback</span> callback);-->
 };
 
@@ -82663,9 +82642,9 @@
   all use the <code>DragEvent</code> interface.</p>
 
   <pre class="idl">interface <dfn>DragEvent</dfn> : <span>MouseEvent</span> {
-  readonly attribute <span>DataTransfer</span> <span title="dom-DragEvent-dataTransfer">dataTransfer</span>;
+  readonly attribute <span>DataTransfer</span>? <span title="dom-DragEvent-dataTransfer">dataTransfer</span>;
 
-  void <span title="dom-DragEvent-initDragEvent">initDragEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dummyArg<!-- used to be viewArg, back when we had views -->, in long detailArg, in long screenXArg, in long screenYArg, in long clientXArg, in long clientYArg, in boolean ctrlKeyArg, in boolean altKeyArg, in boolean shiftKeyArg, in boolean metaKeyArg, in unsigned short buttonArg, in EventTarget relatedTargetArg, in <span>DataTransfer</span> dataTransferArg);
+  void <span title="dom-DragEvent-initDragEvent">initDragEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dummyArg<!-- used to be viewArg, back when we had views -->, in long detailArg, in long screenXArg, in long screenYArg, in long clientXArg, in long clientYArg, in boolean ctrlKeyArg, in boolean altKeyArg, in boolean shiftKeyArg, in boolean metaKeyArg, in unsigned short buttonArg, in EventTarget relatedTargetArg, in <span>DataTransfer</span>? dataTransferArg);
 };</pre>
 
   <dl class="domintro">
@@ -85137,7 +85116,7 @@
 
   <pre class="idl">[Supplemental, NoInterfaceObject]
 interface <dfn>NavigatorUserMedia</dfn> {
-  void <span title="dom-navigator-getUserMedia">getUserMedia</span>(in DOMString options, in <span>NavigatorUserMediaSuccessCallback</span> successCallback, in optional <span>NavigatorUserMediaErrorCallback</span> errorCallback);
+  void <span title="dom-navigator-getUserMedia">getUserMedia</span>(in DOMString options, in <span>NavigatorUserMediaSuccessCallback</span>? successCallback, in optional <span>NavigatorUserMediaErrorCallback</span>? errorCallback);
 };
 <span>Navigator</span> implements <span>NavigatorUserMedia</span>;
 
@@ -85453,7 +85432,7 @@
   const unsigned short <span title="dom-stream-LIVE">LIVE</span> = 1;
   const unsigned short <span title="dom-stream-ENDED">ENDED</span> = 2;
   readonly attribute unsigned short <span title="dom-stream-readyState">readyState</span>;
-           attribute <span>Function</span> <span title="handler-stream-onended">onended</span>;
+           attribute <span>Function</span>? <span title="handler-stream-onended">onended</span>;
 };
 <span>Stream</span> implements <span>EventTarget</span>;
 
@@ -85734,7 +85713,7 @@
   </div>
 
   <pre class="idl">interface <dfn>StreamRecorder</dfn> {
-  void <span title="dom-StreamRecorder-getRecordedData">getRecordedData</span>(in <span>BlobCallback</span> callback);
+  void <span title="dom-StreamRecorder-getRecordedData">getRecordedData</span>(in <span>BlobCallback</span>? callback);
 };
 
 [Callback=FunctionOnly, NoInterfaceObject]
@@ -85967,13 +85946,13 @@
   void <span title="dom-PeerConnection-close">close</span>();
 
   // <span class="XXX">connection quality information</span>
-           attribute <span>Function</span> <span title="handler-PeerConnection-onconnecting">onconnecting</span>;
-           attribute <span>Function</span> <span title="handler-PeerConnection-onopen">onopen</span>;<!--
-           attribute <span>Function</span> <span title="handler-PeerConnection-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-PeerConnection-onclose">onclose</span>;-->
-           attribute <span>Function</span> <span title="handler-PeerConnection-onmessage">onmessage</span>;
-           attribute <span>Function</span> <span title="handler-PeerConnection-onaddstream">onaddstream</span>;
-           attribute <span>Function</span> <span title="handler-PeerConnection-onremovestream">onremovestream</span>;
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onconnecting">onconnecting</span>;
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onopen">onopen</span>;<!--
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onclose">onclose</span>;-->
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onmessage">onmessage</span>;
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onaddstream">onaddstream</span>;
+           attribute <span>Function</span>? <span title="handler-PeerConnection-onremovestream">onremovestream</span>;
 };
 <span>PeerConnection</span> implements <span>EventTarget</span>;
 
@@ -86670,9 +86649,6 @@
    title="dom-PeerConnection-CLOSED">CLOSED</code> (3), throw an
    <code>INVALID_STATE_ERR</code> exception.</p></li>
 
-   <li><p>If <var title="">stream</var> is null, throw a
-   <code>TypeError</code> exception and abort these steps.</p></li>
-
    <li><p>If <var title="">stream</var> is already in the
    <code>PeerConnection</code> object's <code
    title="dom-PeerConnection-localStreams">localStreams</code> object,
@@ -86707,9 +86683,6 @@
    title="dom-PeerConnection-CLOSED">CLOSED</code> (3), throw an
    <code>INVALID_STATE_ERR</code> exception.</p></li>
 
-   <li><p>If <var title="">stream</var> is null, throw a
-   <code>TypeError</code> exception and abort these steps.</p></li>
-
    <li><p>If <var title="">stream</var> is not in the
    <code>PeerConnection</code> object's <code
    title="dom-PeerConnection-localStreams">localStreams</code> object,
@@ -87145,8 +87118,8 @@
   use the <code>StreamEvent</code> interface:</p>
 
   <pre class="idl">interface <dfn>StreamEvent</dfn> : <span>Event</span> {
-  readonly attribute <span>Stream</span> <span title="dom-StreamEvent-stream">stream</span>;
-  void <span title="dom-StreamEvent-initStreamEvent">initStreamEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <span>Stream</span> streamArg);
+  readonly attribute <span>Stream</span>? <span title="dom-StreamEvent-stream">stream</span>;
+  void <span title="dom-StreamEvent-initStreamEvent">initStreamEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <span>Stream</span>? streamArg);
 };</pre>
 
   <div class="impl">
@@ -87645,10 +87618,10 @@
   readonly attribute <span>WorkerLocation</span> <span title="dom-WorkerGlobalScope-location">location</span>;
 
   void <span title="dom-WorkerGlobalScope-close">close</span>();
-<!-- v2-onclose           attribute <span>Function</span> <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
--->           attribute <span>Function</span> <span title="handler-WorkerGlobalScope-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-WorkerGlobalScope-onoffline">onoffline</span>;
-           attribute <span>Function</span> <span title="handler-WorkerGlobalScope-ononline">ononline</span>;
+<!-- v2-onclose           attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
+-->           attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onoffline">onoffline</span>;
+           attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-ononline">ononline</span>;
 };
 <span>WorkerGlobalScope</span> implements <span>WorkerUtils</span>;
 <span>WorkerGlobalScope</span> implements <span>EventTarget</span>;</pre>
@@ -87719,7 +87692,7 @@
 interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
   void <span title="dom-DedicatedWorkerGlobalScope-postMessage">postMessage</span>(in any message, in optional sequence<<span>MessagePort</span>> ports);<!--
   <span>MessagePort</span> <span title="dom-DedicatedWorkerGlobalScope-startConversation">startConversation</span>(in any message);-->
-           attribute <span>Function</span> <span title="handler-DedicatedWorkerGlobalScope-onmessage">onmessage</span>;
+           attribute <span>Function</span>? <span title="handler-DedicatedWorkerGlobalScope-onmessage">onmessage</span>;
 };</pre>
 
   <p><code>DedicatedWorkerGlobalScope</code> objects act as if they
@@ -87766,7 +87739,7 @@
 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>;
-           attribute <span>Function</span> <span title="handler-SharedWorkerGlobalScope-onconnect">onconnect</span>;
+           attribute <span>Function</span>? <span title="handler-SharedWorkerGlobalScope-onconnect">onconnect</span>;
 };</pre>
 
   <p>Shared workers receive message ports through <code
@@ -88333,8 +88306,8 @@
 
   <pre class="idl">[Supplemental, NoInterfaceObject]
 interface <dfn>AbstractWorker</dfn> {
-           attribute <span>Function</span> <span title="handler-AbstractWorker-onerror">onerror</span>;
-<!-- v2-onclose           attribute <span>Function</span> <span title="handler-AbstractWorker-onclose">onclose</span>; -->
+           attribute <span>Function</span>? <span title="handler-AbstractWorker-onerror">onerror</span>;
+<!-- v2-onclose           attribute <span>Function</span>? <span title="handler-AbstractWorker-onclose">onclose</span>; -->
 };
 <span>AbstractWorker</span> implements <span>EventTarget</span>;</pre>
 
@@ -88361,7 +88334,7 @@
 
   void <span title="dom-Worker-postMessage">postMessage</span>(in any message, in optional sequence<<span>MessagePort</span>> ports);<!--
   <span>MessagePort</span> <span title="dom-Worker-startConversation">startConversation</span>(in any message);-->
-           attribute <span>Function</span> <span title="handler-Worker-onmessage">onmessage</span>;
+           attribute <span>Function</span>? <span title="handler-Worker-onmessage">onmessage</span>;
 };</pre>
 
   <p>The <dfn
@@ -89057,9 +89030,9 @@
   readonly attribute any <span title="dom-MessageEvent-data">data</span>;
   readonly attribute DOMString <span title="dom-MessageEvent-origin">origin</span>;
   readonly attribute DOMString <span title="dom-MessageEvent-lastEventId">lastEventId</span>;
-  readonly attribute <span>WindowProxy</span> <span title="dom-MessageEvent-source">source</span>;
+  readonly attribute <span>WindowProxy</span>? <span title="dom-MessageEvent-source">source</span>;
   readonly attribute <span>MessagePort</span>[] <span title="dom-MessageEvent-ports">ports</span>;
-  void <span title="dom-MessageEvent-initMessageEvent">initMessageEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg, in DOMString originArg, in DOMString lastEventIdArg, in <span>WindowProxy</span> sourceArg, in sequence<<span>MessagePort</span>> portsArg);
+  void <span title="dom-MessageEvent-initMessageEvent">initMessageEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg, in DOMString originArg, in DOMString lastEventIdArg, in <span>WindowProxy</span>? sourceArg, in sequence<<span>MessagePort</span>> portsArg);
 };</pre>
 
   <dl class="domintro">
@@ -89231,9 +89204,9 @@
   readonly attribute unsigned short <span title="dom-EventSource-readyState">readyState</span>;
 
   // networking
-           attribute <span>Function</span> <span title="handler-EventSource-onopen">onopen</span>;
-           attribute <span>Function</span> <span title="handler-EventSource-onmessage">onmessage</span>;
-           attribute <span>Function</span> <span title="handler-EventSource-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-EventSource-onopen">onopen</span>;
+           attribute <span>Function</span>? <span title="handler-EventSource-onmessage">onmessage</span>;
+           attribute <span>Function</span>? <span title="handler-EventSource-onerror">onerror</span>;
   void <span title="dom-EventSource-close">close</span>();
 };
 <span>EventSource</span> implements <span>EventTarget</span>;</pre>
@@ -90116,15 +90089,15 @@
   readonly attribute unsigned long <span title="dom-WebSocket-bufferedAmount">bufferedAmount</span>;
 
   // networking
-           attribute <span>Function</span> <span title="handler-WebSocket-onopen">onopen</span>;
-           attribute <span>Function</span> <span title="handler-WebSocket-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-WebSocket-onclose">onclose</span>;
+           attribute <span>Function</span>? <span title="handler-WebSocket-onopen">onopen</span>;
+           attribute <span>Function</span>? <span title="handler-WebSocket-onerror">onerror</span>;
+           attribute <span>Function</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>(in optional unsigned long code, in optional DOMString reason);
 
   // messaging
-           attribute <span>Function</span> <span title="handler-WebSocket-onmessage">onmessage</span>;
+           attribute <span>Function</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>(in DOMString data);
   void <span title="dom-WebSocket-send">send</span>(in <span>ArrayBuffer</span> data);
@@ -91016,8 +90989,7 @@
     title="">/</code>".</p>
 
     <p>Throws an <code>INVALID_STATE_ERR</code> if the <var
-    title="">ports</var> array is not null and it contains either null
-    entries or duplicate ports.</p>
+    title="">ports</var> array contains duplicate ports.</p>
 
    </dd>
 
@@ -91067,8 +91039,7 @@
 
    <li>
 
-    <p>If the <var title="">ports</var> argument is present but either
-    any of the entries in <var title="">ports</var> are null, or any
+    <p>If the <var title="">ports</var> argument is present but any
     <code>MessagePort</code> object is listed in <var
     title="">ports</var> more than once, or any of the
     <code>MessagePort</code> objects listed in <var
@@ -91308,7 +91279,7 @@
   void <span title="dom-MessagePort-close">close</span>();
 
   // event handlers
-           attribute <span>Function</span> <span title="handler-MessagePort-onmessage">onmessage</span>;
+           attribute <span>Function</span>? <span title="handler-MessagePort-onmessage">onmessage</span>;
 };
 <span>MessagePort</span> implements <span>EventTarget</span>;</pre>
 
@@ -91330,8 +91301,8 @@
     ports.</p>
 
     <p>Throws an <code>INVALID_STATE_ERR</code> if the <var
-    title="">ports</var> array is not null and it contains either null
-    entries, duplicate ports, or the source or target port.</p>
+    title="">ports</var> array contains either duplicate ports, or the
+    source or target port.</p>
 
    </dd>
 
@@ -91460,16 +91431,13 @@
    <var title="">source port</var> is entangled, if any.</p></li>
 
    <li><p>If the method was called with a second argument <var
-   title="">ports</var> and that argument isn't null, then, if any of
-   the entries in <var title="">ports</var> are null, if any
-   <code>MessagePort</code> object is listed in <var
-   title="">ports</var> more than once, if any of the
-   <code>MessagePort</code> objects listed in <var
-   title="">ports</var> have already been cloned once before, or if
-   any of the entries in <var title="">ports</var> are either the <var
-   title="">source port</var> or the <var title="">target port</var>
-   (if any), then throw an <code>INVALID_STATE_ERR</code>
-   exception.</p></li>
+   title="">ports</var>, then, if any <code>MessagePort</code> object
+   is listed in <var title="">ports</var> more than once, if any of the
+   <code>MessagePort</code> objects listed in <var title="">ports</var>
+   have already been cloned once before, or if any of the entries
+   in <var title="">ports</var> are either the <var title="">source
+   port</var> or the <var title="">target port</var> (if any), then
+   throw an <code>INVALID_STATE_ERR</code> exception.</p></li>
 
    <li><p>Create an event that uses the <code>MessageEvent</code>
    interface, with the name <code
@@ -91489,8 +91457,7 @@
    clone</var>.</p></li>
 
    <li><p>If the method was called with a second argument <var
-   title="">ports</var> and that argument isn't null, then run the
-   following substeps:</p>
+   title="">ports</var>, then run the following substeps:</p>
 
     <ol>
 
@@ -91816,7 +91783,7 @@
 
   <pre class="idl">interface <dfn>Storage</dfn> {
   readonly attribute unsigned long <span title="dom-Storage-length">length</span>;
-  DOMString <span title="dom-Storage-key">key</span>(in unsigned long index);
+  DOMString? <span title="dom-Storage-key">key</span>(in unsigned long index);
   getter any <span title="dom-Storage-getItem">getItem</span>(in DOMString key);
   setter creator void <span title="dom-Storage-setItem">setItem</span>(in DOMString key, in any value);
   deleter void <span title="dom-Storage-removeItem">removeItem</span>(in DOMString key);
@@ -92192,8 +92159,8 @@
   readonly attribute any <span title="dom-StorageEvent-oldValue">oldValue</span>;
   readonly attribute any <span title="dom-StorageEvent-newValue">newValue</span>;
   readonly attribute DOMString <span title="dom-StorageEvent-url">url</span>;
-  readonly attribute <span>Storage</span> <span title="dom-StorageEvent-storageArea">storageArea</span>;
-  void <span title="dom-StorageEvent-initStorageEvent">initStorageEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in any oldValueArg, in any newValueArg, in DOMString urlArg, in <span>Storage</span> storageAreaArg);
+  readonly attribute <span>Storage</span>? <span title="dom-StorageEvent-storageArea">storageArea</span>;
+  void <span title="dom-StorageEvent-initStorageEvent">initStorageEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in any oldValueArg, in any newValueArg, in DOMString urlArg, in <span>Storage</span>? storageAreaArg);
 };</pre>
 
   <p>The <dfn
@@ -107577,9 +107544,9 @@
            attribute unsigned long <span title="dom-marquee-vspace">vspace</span>;
            attribute DOMString <span title="dom-marquee-width">width</span>;
 
-           attribute <span>Function</span> <span title="handler-marquee-onbounce">onbounce</span>;
-           attribute <span>Function</span> <span title="handler-marquee-onfinish">onfinish</span>;
-           attribute <span>Function</span> <span title="handler-marquee-onstart">onstart</span>;
+           attribute <span>Function</span>? <span title="handler-marquee-onbounce">onbounce</span>;
+           attribute <span>Function</span>? <span title="handler-marquee-onfinish">onfinish</span>;
+           attribute <span>Function</span>? <span title="handler-marquee-onstart">onstart</span>;
 
   void <span title="dom-marquee-start">start</span>();
   void <span title="dom-marquee-stop">stop</span>();
@@ -107822,26 +107789,26 @@
   <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>;
-           attribute <span>Function</span> <span title="handler-window-onafterprint">onafterprint</span>;
-           attribute <span>Function</span> <span title="handler-window-onbeforeprint">onbeforeprint</span>;
-           attribute <span>Function</span> <span title="handler-window-onbeforeunload">onbeforeunload</span>;
-           attribute <span>Function</span> <span title="handler-window-onblur">onblur</span>;
-           attribute <span>Function</span> <span title="handler-window-onerror">onerror</span>;
-           attribute <span>Function</span> <span title="handler-window-onfocus">onfocus</span>;
-           attribute <span>Function</span> <span title="handler-window-onhashchange">onhashchange</span>;
-           attribute <span>Function</span> <span title="handler-window-onload">onload</span>;
-           attribute <span>Function</span> <span title="handler-window-onmessage">onmessage</span>;
-           attribute <span>Function</span> <span title="handler-window-onoffline">onoffline</span>;
-           attribute <span>Function</span> <span title="handler-window-ononline">ononline</span>;
-           attribute <span>Function</span> <span title="handler-window-onpagehide">onpagehide</span>;
-           attribute <span>Function</span> <span title="handler-window-onpageshow">onpageshow</span>;
-           attribute <span>Function</span> <span title="handler-window-onpopstate">onpopstate</span>;
-           attribute <span>Function</span> <span title="handler-window-onredo">onredo</span>;
-           attribute <span>Function</span> <span title="handler-window-onresize">onresize</span>;
-           attribute <span>Function</span> <span title="handler-window-onscroll">onscroll</span>;
-           attribute <span>Function</span> <span title="handler-window-onstorage">onstorage</span>;
-           attribute <span>Function</span> <span title="handler-window-onundo">onundo</span>;
-           attribute <span>Function</span> <span title="handler-window-onunload">onunload</span>;
+           attribute <span>Function</span>? <span title="handler-window-onafterprint">onafterprint</span>;
+           attribute <span>Function</span>? <span title="handler-window-onbeforeprint">onbeforeprint</span>;
+           attribute <span>Function</span>? <span title="handler-window-onbeforeunload">onbeforeunload</span>;
+           attribute <span>Function</span>? <span title="handler-window-onblur">onblur</span>;
+           attribute <span>Function</span>? <span title="handler-window-onerror">onerror</span>;
+           attribute <span>Function</span>? <span title="handler-window-onfocus">onfocus</span>;
+           attribute <span>Function</span>? <span title="handler-window-onhashchange">onhashchange</span>;
+           attribute <span>Function</span>? <span title="handler-window-onload">onload</span>;
+           attribute <span>Function</span>? <span title="handler-window-onmessage">onmessage</span>;
+           attribute <span>Function</span>? <span title="handler-window-onoffline">onoffline</span>;
+           attribute <span>Function</span>? <span title="handler-window-ononline">ononline</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpagehide">onpagehide</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpageshow">onpageshow</span>;
+           attribute <span>Function</span>? <span title="handler-window-onpopstate">onpopstate</span>;
+           attribute <span>Function</span>? <span title="handler-window-onredo">onredo</span>;
+           attribute <span>Function</span>? <span title="handler-window-onresize">onresize</span>;
+           attribute <span>Function</span>? <span title="handler-window-onscroll">onscroll</span>;
+           attribute <span>Function</span>? <span title="handler-window-onstorage">onstorage</span>;
+           attribute <span>Function</span>? <span title="handler-window-onundo">onundo</span>;
+           attribute <span>Function</span>? <span title="handler-window-onunload">onunload</span>;
 };</pre>
 
   <p>The <dfn title="dom-frameset-cols"><code>cols</code></dfn> and
@@ -107960,8 +107927,8 @@
            attribute boolean <span title="dom-frame-noResize">noResize</span>;
            attribute DOMString <span title="dom-frame-scrolling">scrolling</span>;
            attribute DOMString <span title="dom-frame-src">src</span>;
-  readonly attribute Document <span title="dom-frame-contentDocument">contentDocument</span>;
-  readonly attribute <span>WindowProxy</span> <span title="dom-frame-contentWindow">contentWindow</span>;
+  readonly attribute Document? <span title="dom-frame-contentDocument">contentDocument</span>;
+  readonly attribute <span>WindowProxy</span>? <span title="dom-frame-contentWindow">contentWindow</span>;
 };</pre>
 
   <p>The <dfn title="dom-frame-name"><code>name</code></dfn>, <dfn




More information about the Commit-Watchers mailing list