[html5] r3556 - [] (0) Update to latest Web IDL.

whatwg at whatwg.org whatwg at whatwg.org
Fri Aug 7 17:20:48 PDT 2009


Author: ianh
Date: 2009-08-07 17:20:47 -0700 (Fri, 07 Aug 2009)
New Revision: 3556

Modified:
   index
   source
Log:
[] (0) Update to latest Web IDL.

Modified: index
===================================================================
--- index	2009-08-07 20:16:23 UTC (rev 3555)
+++ index	2009-08-08 00:20:47 UTC (rev 3556)
@@ -71,7 +71,7 @@
   <div class=head>
    <p><a class=logo href=http://www.whatwg.org/ rel=home><img alt=WHATWG src=/images/logo></a></p>
    <h1>HTML 5</h1>
-   <h2 class="no-num no-toc" id=draft-standard-—-date:-01-jan-1901>Draft Standard — 7 August 2009</h2>
+   <h2 class="no-num no-toc" id=draft-standard-—-date:-01-jan-1901>Draft Standard — 8 August 2009</h2>
    <p>You can take part in this work. <a href=http://www.whatwg.org/mailing-list>Join the working group's discussion list.</a></p>
    <p><strong>Web designers!</strong> We have a <a href=http://blog.whatwg.org/faq/>FAQ</a>, a <a href=http://forums.whatwg.org/>forum</a>, and a <a href=http://www.whatwg.org/mailing-list#help>help mailing list</a> for you!</p>
    <!--<p class="impl"><strong>Implementors!</strong> We have a <a href="http://www.whatwg.org/mailing-list#implementors">mailing list</a> for you too!</p>-->
@@ -5373,17 +5373,10 @@
   <p>The <code><a href=#htmlcollection-0>HTMLCollection</a></code> interface represents a generic
   <a href=#collections-0 title=collections>collection</a> of elements.</p>
 
-  <!-- IE does [Callable] with magic that calls item() or namedItem() as appropriate as if it were a regular [[Get]],
-       so we might need to change this for compat. However, Web IDL doesn't support that for now. -->
-  <!-- heycam says we could just say something like "In the ECMAScript binding, host objects that implement interface
-       <code>HTMLCollection</code> have a [[Call]] method that that behaves as follows: 1. If called with 0 or more than 1
-       argument, throw a TypeError. 2. Let arg be the single argument passed. 3. Invoke [[Get]] on the object with ToString(argument)
-       as the property name. 4. Return Result(3)." (but we'd have to verify that that's right for 0 and >1 args) -->
-  <pre class=idl>[Callable=<a href=#dom-htmlcollection-nameditem title=dom-HTMLCollection-namedItem>namedItem</a>]
-interface <dfn id=htmlcollection-0>HTMLCollection</dfn> {
+  <pre class=idl>interface <dfn id=htmlcollection-0>HTMLCollection</dfn> {
   readonly attribute unsigned long <a href=#dom-htmlcollection-length title=dom-HTMLCollection-length>length</a>;
-  [IndexGetter] Element <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>(in unsigned long index);
-  [NameGetter] Element <a href=#dom-htmlcollection-nameditem title=dom-HTMLCollection-namedItem>namedItem</a>(in DOMString name);
+  caller getter Element <a href=#dom-htmlcollection-item title=dom-HTMLCollection-item>item</a>(in unsigned long index);
+  caller getter Element <a href=#dom-htmlcollection-nameditem title=dom-HTMLCollection-namedItem>namedItem</a>(in DOMString name);
   <a href=#htmlallcollection-0>HTMLAllCollection</a> <a href=#dom-htmlcollection-tags title=dom-HTMLCollection-tags>tags</a>(in DOMString tagName);
 };</pre>
 
@@ -5394,6 +5387,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLCollection-item><a href=#dom-htmlcollection-item>item</a></code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5477,12 +5471,10 @@
   returns an <code><a href=#htmlcollection-0>HTMLCollection</a></code> object when there are
   multiple matching elements.</p>
 
-  <!-- see notes in previous section -->
-  <pre class=idl>[Callable=<a href=#dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem>namedItem</a>]
-interface <dfn id=htmlallcollection-0>HTMLAllCollection</dfn> {
+  <pre class=idl>interface <dfn id=htmlallcollection-0>HTMLAllCollection</dfn> {
   readonly attribute unsigned long <a href=#dom-htmlallcollection-length title=dom-HTMLAllCollection-length>length</a>;
-  [IndexGetter] Element <a href=#dom-htmlallcollection-item title=dom-HTMLAllCollection-item>item</a>(in unsigned long index);
-  [NameGetter] Object <a href=#dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem>namedItem</a>(in DOMString name);
+  caller getter Element <a href=#dom-htmlallcollection-item title=dom-HTMLAllCollection-item>item</a>(in unsigned long index);
+  caller getter Object <a href=#dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem>namedItem</a>(in DOMString name);
   <a href=#htmlallcollection-0>HTMLAllCollection</a> <a href=#dom-htmlallcollection-tags title=dom-HTMLAllCollection-tags>tags</a>(in DOMString tagName);
 };</pre>
 
@@ -5493,6 +5485,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLAllCollection-item><a href=#dom-htmlallcollection-item>item</a></code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5593,11 +5586,10 @@
   a <a href=#collections-0 title=collections>collection</a> of <a href=#category-listed title=category-listed>listed</a> elements in <code><a href=#the-form-element>form</a></code>
   and <code><a href=#the-fieldset-element>fieldset</a></code> elements.</p>
 
-  <pre class=idl>[Callable=<a href=#dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem>namedItem</a>]
-interface <dfn id=htmlformcontrolscollection-0>HTMLFormControlsCollection</dfn> {
+  <pre class=idl>interface <dfn id=htmlformcontrolscollection-0>HTMLFormControlsCollection</dfn> {
   readonly attribute unsigned long <a href=#dom-htmlformcontrolscollection-length title=dom-HTMLFormControlsCollection-length>length</a>;
-  [IndexGetter] <a href=#htmlelement>HTMLElement</a> <a href=#dom-htmlformcontrolscollection-item title=dom-HTMLFormControlsCollection-item>item</a>(in unsigned long index);
-  [NameGetter] Object <a href=#dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem>namedItem</a>(in DOMString name);
+  caller getter <a href=#htmlelement>HTMLElement</a> <a href=#dom-htmlformcontrolscollection-item title=dom-HTMLFormControlsCollection-item>item</a>(in unsigned long index);
+  caller getter Object <a href=#dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem>namedItem</a>(in DOMString name);
 };
 
 interface <dfn id=radionodelist>RadioNodeList</dfn> : <span>NodeList</span> {
@@ -5611,6 +5603,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLFormControlsCollection-item><a href=#dom-htmlformcontrolscollection-item>item</a></code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5727,12 +5720,11 @@
   <code><a href=#the-select-element>select</a></code> element and has attributes and methods that
   manipulate that element's descendants.</p>
 
-  <pre class=idl>[Callable=<a href=#dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem>namedItem</a>]
-interface <dfn id=htmloptionscollection-0>HTMLOptionsCollection</dfn> {
+  <pre class=idl>interface <dfn id=htmloptionscollection-0>HTMLOptionsCollection</dfn> {
            attribute unsigned long <a href=#dom-htmloptionscollection-length title=dom-HTMLOptionsCollection-length>length</a>;
-  [IndexGetter] <a href=#htmloptionelement>HTMLOptionElement</a> <a href=#dom-htmloptionscollection-item title=dom-HTMLOptionsCollection-item>item</a>(in unsigned long index);
-  [NameGetter] Object <a href=#dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem>namedItem</a>(in DOMString name);
-  void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, [Optional] in <a href=#htmlelement>HTMLElement</a> before);
+  caller getter <a href=#htmloptionelement>HTMLOptionElement</a> <a href=#dom-htmloptionscollection-item title=dom-HTMLOptionsCollection-item>item</a>(in unsigned long index);
+  caller getter Object <a href=#dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem>namedItem</a>(in DOMString name);
+  void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(in <a href=#htmlelement>HTMLElement</a> element, optional in <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);
 };</pre>
@@ -5746,6 +5738,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLOptionsCollection-item><a href=#dom-htmloptionscollection-item>item</a></code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5890,13 +5883,11 @@
   name-value pairs to a particular <a href=#concept-item title=concept-item>item</a> in the <a href=#microdata>microdata</a>
   model.</p>
 
-  <pre class=idl>[Callable=<a href=#dom-htmlpropertycollection-nameditem title=dom-HTMLPropertyCollection-namedItem>namedItem</a>]
-interface <dfn id=htmlpropertycollection-0>HTMLPropertyCollection</dfn> {
+  <pre class=idl>interface <dfn id=htmlpropertycollection-0>HTMLPropertyCollection</dfn> {
   readonly attribute unsigned long <a href=#dom-htmlpropertycollection-length title=dom-HTMLPropertyCollection-length>length</a>;
-  [IndexGetter] <a href=#htmlelement>HTMLElement</a> <a href=#dom-htmlpropertycollection-item title=dom-HTMLPropertyCollection-item>item</a>(in unsigned long index);
-
   readonly attribute <span>DOMStringList</span> <a href=#dom-htmlpropertycollection-names title=dom-HTMLPropertyCollection-names>names</a>;
-  [NameGetter] <a href=#propertynodelist>PropertyNodeList</a> <a href=#dom-htmlpropertycollection-nameditem title=dom-HTMLPropertyCollection-namedItem>namedItem</a>(in DOMString name);
+  caller getter <a href=#htmlelement>HTMLElement</a> <a href=#dom-htmlpropertycollection-item title=dom-HTMLPropertyCollection-item>item</a>(in unsigned long index);
+  caller getter <a href=#propertynodelist>PropertyNodeList</a> <a href=#dom-htmlpropertycollection-nameditem title=dom-HTMLPropertyCollection-namedItem>namedItem</a>(in DOMString name);
 };
 
 typedef sequence<any> <dfn id=propertyvaluearray>PropertyValueArray</dfn>;
@@ -5917,6 +5908,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLPropertyCollection-item><a href=#dom-htmlpropertycollection-item>item</a></code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the element with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5995,13 +5987,14 @@
   <a href=#case-sensitive>case-sensitive</a>, even when the underlying string might
   ordinarily be treated in a case-insensitive manner.</p>
 
-  <pre class=idl>[<a href=#dom-tokenlist-tostring title=dom-tokenlist-toString>Stringifies</a>] interface <dfn id=domtokenlist-0>DOMTokenList</dfn> {
+  <pre class=idl>interface <dfn id=domtokenlist-0>DOMTokenList</dfn> {
   readonly attribute unsigned long <a href=#dom-tokenlist-length title=dom-tokenlist-length>length</a>;
-  [IndexGetter] 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);
   boolean <a href=#dom-tokenlist-toggle title=dom-tokenlist-toggle>toggle</a>(in DOMString token);
+  <a href=#dom-tokenlist-tostring title=dom-tokenlist-toString>stringifier</a> DOMString ();
 };</pre>
 
   <dl class=domintro><dt><var title="">tokenlist</var> . <code title=dom-tokenlist-length><a href=#dom-tokenlist-length>length</a></code></dt>
@@ -6173,7 +6166,7 @@
   <code><a href=#domtokenlist-0>DOMTokenList</a></code> interface, except that it allows the
   underlying string to be directly changed.</p>
 
-  <pre class=idl>[<a href=#dom-tokenlist-tostring title=dom-tokenlist-toString>Stringifies</a>] interface <dfn id=domsettabletokenlist-0>DOMSettableTokenList</dfn> : <a href=#domtokenlist-0>DOMTokenList</a> {
+  <pre class=idl>interface <dfn id=domsettabletokenlist-0>DOMSettableTokenList</dfn> : <a href=#domtokenlist-0>DOMTokenList</a> {
             attribute DOMString <a href=#dom-domsettabletokenlist-value title=dom-DOMSettableTokenList-value>value</a>;
 };</pre>
 
@@ -6339,8 +6332,12 @@
   name-value pairs, one for setting names to certain values, and one
   for deleting names.</p>
 
-  <pre class=idl>[NameCreator, NameDeleter, NameGetter, NameSetter]
-interface <dfn id=domstringmap-0>DOMStringMap</dfn> {};</pre>
+  <pre class=idl>interface <dfn id=domstringmap-0>DOMStringMap</dfn> {
+  getter DOMString (in DOMString name);
+  setter void (in DOMString name, in DOMString value);
+  creator void (in DOMString name);
+  deleter void (in DOMString name);
+};</pre>
 
   <p>The <span>names of the supported named properties</span> on a
   <code><a href=#domstringmap-0>DOMStringMap</a></code> object at any instant are the names of
@@ -6544,7 +6541,7 @@
   simply being the primary interface of the document object, it is no
   longer defined as inheriting from <code>Document</code>.</p>
 
-  <pre class=idl>[<a href=#dom-document-nameditem title=dom-document-namedItem>NameGetter</a>=OverrideBuiltins, ImplementedOn=<span>Document</span>]
+  <pre class=idl>[OverrideBuiltins]
 interface <dfn id=htmldocument>HTMLDocument</dfn> {
   // <a href=#resource-metadata-management>resource metadata management</a>
   [PutForwards=href] readonly attribute <a href=#location>Location</a> <a href=#dom-document-location title=dom-document-location>location</a>;
@@ -6571,15 +6568,16 @@
   readonly attribute <a href=#htmlcollection-0>HTMLCollection</a> <a href=#dom-document-scripts title=dom-document-scripts>scripts</a>;
   NodeList <a href=#dom-document-getelementsbyname title=dom-document-getElementsByName>getElementsByName</a>(in DOMString elementName);
   NodeList <a href=#dom-document-getelementsbyclassname title=dom-document-getElementsByClassName>getElementsByClassName</a>(in DOMString classNames);
-  NodeList <a href=#dom-document-getitems title=dom-document-getItems>getItems</a>([Optional] in DOMString typeNames);
+  NodeList <a href=#dom-document-getitems title=dom-document-getItems>getItems</a>(optional in DOMString typeNames);
+  <a href=#dom-document-nameditem title=dom-document-namedItem>getter</a> any (in DOMString name);
 
   // <a href=#dynamic-markup-insertion>dynamic markup insertion</a>
            attribute DOMString <a href=#dom-innerhtml title=dom-innerHTML>innerHTML</a>;
-  <a href=#htmldocument>HTMLDocument</a> <a href=#dom-document-open title=dom-document-open>open</a>([Optional] in DOMString type, [Optional] in DOMString replace);
-  <a href=#windowproxy>WindowProxy</a> <a href=#dom-document-open title=dom-document-open>open</a>(in DOMString url, in DOMString name, in DOMString features, [Optional] in boolean replace);
+  <a href=#htmldocument>HTMLDocument</a> <a href=#dom-document-open title=dom-document-open>open</a>(optional in DOMString type, optional in DOMString replace);
+  <a href=#windowproxy>WindowProxy</a> <a href=#dom-document-open title=dom-document-open>open</a>(in DOMString url, in DOMString name, in DOMString features, optional in boolean replace);
   void <a href=#dom-document-close title=dom-document-close>close</a>();
-  void <a href=#dom-document-write title=dom-document-write>write</a>([Variadic] in DOMString text);
-  void <a href=#dom-document-writeln title=dom-document-writeln>writeln</a>([Variadic] in DOMString text);
+  void <a href=#dom-document-write title=dom-document-write>write</a>(in DOMString... text);
+  void <a href=#dom-document-writeln title=dom-document-writeln>writeln</a>(in DOMString... text);
 
   // <a href=#editing>user interaction</a>
   <a href=#selection-0>Selection</a> <a href=#dom-document-getselection title=dom-document-getSelection>getSelection</a>();
@@ -6651,7 +6649,9 @@
            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>;
-};</pre>
+};
+<span>Document</span> implements <a href=#htmldocument>HTMLDocument</a>;
+</pre>
 
   <p>Since the <code><a href=#htmldocument>HTMLDocument</a></code> interface holds methods and
   attributes related to a number of disparate features, the members of
@@ -10026,10 +10026,8 @@
            attribute DOMString <a href=#dom-link-hreflang title=dom-link-hreflang>hreflang</a>;
            attribute DOMString <a href=#dom-link-type title=dom-link-type>type</a>;
            attribute DOMString <a href=#dom-link-sizes title=dom-link-sizes>sizes</a>;
-};</pre>
-    <p>The <code>LinkStyle</code> interface must also be implemented
-    by this element; the <a href=#styling>styling processing model</a> defines
-    how. <a href=#refsCSSOM>[CSSOM]</a></p>
+};
+<a href=#htmllinkelement>HTMLLinkElement</a> implements <span>LinkStyle</span>;</pre>
    </dd>
   </dl><p>The <code><a href=#the-link-element>link</a></code> element allows authors to link their
   document to other resources.</p>
@@ -10305,9 +10303,13 @@
   always return false and does nothing on setting.</p> <!-- that is
   normatively required in the definition of dom-linkstyle-disabled -->
 
+  <p>The <code>LinkStyle</code> interface is also be implemented by
+  this element; the <a href=#styling>styling processing model</a> defines
+  how. <a href=#refsCSSOM>[CSSOM]</a></p>
 
 
 
+
   <h4 id=meta><span class=secno>4.2.5 </span>The <dfn><code>meta</code></dfn> element</h4>
 
   <dl class=element><dt>Categories</dt>
@@ -11028,10 +11030,8 @@
            attribute DOMString <a href=#dom-style-media title=dom-style-media>media</a>;
            attribute DOMString <a href=#dom-style-type title=dom-style-type>type</a>;
            attribute boolean <a href=#dom-style-scoped title=dom-style-scoped>scoped</a>;
-};</pre>
-    <p>The <code>LinkStyle</code> interface must also be implemented
-    by this element; the <a href=#styling>styling processing model</a> defines
-    how. <a href=#refsCSSOM>[CSSOM]</a></p>
+};
+<a href=#htmlstyleelement>HTMLStyleElement</a> implements <span>LinkStyle</span>;</pre>
    </dd>
   </dl><p>The <code><a href=#the-style-element>style</a></code> element allows authors to embed style
   information in their documents. The <code><a href=#the-style-element>style</a></code> element is
@@ -11155,8 +11155,12 @@
   behaves as defined <a href=#dom-linkstyle-disabled title=dom-linkstyle-disabled>for the
   alternative style sheets DOM</a>.</p>
 
+  <p>The <code>LinkStyle</code> interface is also be implemented by
+  this element; the <a href=#styling>styling processing model</a> defines
+  how. <a href=#refsCSSOM>[CSSOM]</a></p>
 
 
+
   <h4 id=styling><span class=secno>4.2.7 </span><dfn title="styling processing model">Styling</dfn></h4>
 
   <p>The <code><a href=#the-link-element>link</a></code> and <code><a href=#the-style-element>style</a></code> elements can provide
@@ -14304,8 +14308,8 @@
    <dd><code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code></dd>
    <dt>DOM interface:</dt>
    <dd>
-<pre class=idl>[Stringifies=href] interface <dfn id=htmlanchorelement>HTMLAnchorElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-           attribute DOMString <a href=#dom-a-href title=dom-a-href>href</a>;
+<pre class=idl>interface <dfn id=htmlanchorelement>HTMLAnchorElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+  stringifier attribute DOMString <a href=#dom-a-href title=dom-a-href>href</a>;
            attribute DOMString <a href=#dom-a-target title=dom-a-target>target</a>;
            attribute DOMString <a href=#dom-a-ping title=dom-a-ping>ping</a>;
            attribute DOMString <a href=#dom-a-rel title=dom-a-rel>rel</a>;
@@ -19327,7 +19331,7 @@
 };</pre>
     <div class=impl>
     <p>Depending on the type of content instantiated by the
-    <code><a href=#the-object-element>object</a></code> element, the node may also support other
+    <code><a href=#the-object-element>object</a></code> element, the node also supports other
     interfaces.</p>
     </div>
    </dd>
@@ -20069,9 +20073,7 @@
    <dd>
     <pre class=idl>[NamedConstructor=<a href=#dom-audio title=dom-Audio>Audio</a>(),
  NamedConstructor=<a href=#dom-audio-s title=dom-Audio-s>Audio</a>(in DOMString src)]
-interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediaelement>HTMLMediaElement</a> {
-  // no members
-};</pre>
+interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediaelement>HTMLMediaElement</a> {};</pre>
    </dd>
   </dl><p>An <code><a href=#audio>audio</a></code> element <a href=#represents>represents</a> a sound or
   audio stream.</p>
@@ -22785,7 +22787,7 @@
            attribute unsigned long <a href=#dom-canvas-width title=dom-canvas-width>width</a>;
            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>([Optional] in DOMString type, [Variadic] in any args);
+  DOMString <a href=#dom-canvas-todataurl title=dom-canvas-toDataURL>toDataURL</a>(optional in DOMString type, in any... args);
 
   Object <a href=#dom-canvas-getcontext title=dom-canvas-getContext>getContext</a>(in DOMString contextId);
 };</pre>
@@ -23108,25 +23110,25 @@
            attribute DOMString <a href=#dom-context-2d-font title=dom-context-2d-font>font</a>; // (default 10px sans-serif)
            attribute DOMString <a href=#dom-context-2d-textalign title=dom-context-2d-textAlign>textAlign</a>; // "start", "end", "left", "right", "center" (default: "start")
            attribute DOMString <a href=#dom-context-2d-textbaseline title=dom-context-2d-textBaseline>textBaseline</a>; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
-  void <a href=#dom-context-2d-filltext title=dom-context-2d-fillText>fillText</a>(in DOMString text, in float x, in float y, [Optional] in float maxWidth);
-  void <a href=#dom-context-2d-stroketext title=dom-context-2d-strokeText>strokeText</a>(in DOMString text, in float x, in float y, [Optional] in float maxWidth);<!-- v4DVT
-  void <span title="dom-context-2d-fillVerticalText">fillVerticalText</span>(in DOMString text, in float x, in float y, [Optional] in float maxHeight);
-  void <span title="dom-context-2d-strokeVerticalText">strokeVerticalText</span>(in DOMString text, in float x, in float y, [Optional] in float maxHeight); -->
+  void <a href=#dom-context-2d-filltext title=dom-context-2d-fillText>fillText</a>(in DOMString text, in float x, in float y, optional in float maxWidth);
+  void <a href=#dom-context-2d-stroketext title=dom-context-2d-strokeText>strokeText</a>(in DOMString text, in float x, in float y, optional in float maxWidth);<!-- v4DVT
+  void <span title="dom-context-2d-fillVerticalText">fillVerticalText</span>(in DOMString text, in float x, in float y, optional in float maxHeight);
+  void <span title="dom-context-2d-strokeVerticalText">strokeVerticalText</span>(in DOMString text, in float x, in float y, optional in float maxHeight); -->
   <a href=#textmetrics>TextMetrics</a> <a href=#dom-context-2d-measuretext title=dom-context-2d-measureText>measureText</a>(in DOMString text);
 
   // drawing images
-  void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlimageelement>HTMLImageElement</a> image, in float dx, in float dy, [Optional] in float dw, in float dh);
+  void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlimageelement>HTMLImageElement</a> image, in float dx, in float dy, optional in float dw, in float dh);
   void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlimageelement>HTMLImageElement</a> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
-  void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlcanvaselement>HTMLCanvasElement</a> image, in float dx, in float dy, [Optional] in float dw, in float dh);
+  void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlcanvaselement>HTMLCanvasElement</a> image, in float dx, in float dy, optional in float dw, in float dh);
   void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlcanvaselement>HTMLCanvasElement</a> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
-  void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlvideoelement>HTMLVideoElement</a> image, in float dx, in float dy, [Optional] in float dw, in float dh);
+  void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlvideoelement>HTMLVideoElement</a> image, in float dx, in float dy, optional in float dw, in float dh);
   void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlvideoelement>HTMLVideoElement</a> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
 
   // pixel manipulation
   <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-createimagedata title=dom-context-2d-createImageData>createImageData</a>(in float sw, in float sh);
   <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-createimagedata title=dom-context-2d-createImageData>createImageData</a>(in <a href=#imagedata>ImageData</a> imagedata);
   <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-getimagedata title=dom-context-2d-getImageData>getImageData</a>(in float sx, in float sy, in float sw, in float sh);
-  void <a href=#dom-context-2d-putimagedata title=dom-context-2d-putImageData>putImageData</a>(in <a href=#imagedata>ImageData</a> imagedata, in float dx, in float dy, [Optional] in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight);
+  void <a href=#dom-context-2d-putimagedata title=dom-context-2d-putImageData>putImageData</a>(in <a href=#imagedata>ImageData</a> imagedata, in float dx, in float dy, optional in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight);
 };
 
 interface <dfn id=canvasgradient>CanvasGradient</dfn> {
@@ -23148,9 +23150,10 @@
   readonly attribute <a href=#canvaspixelarray>CanvasPixelArray</a> <a href=#dom-imagedata-data title=dom-imagedata-data>data</a>;
 };
 
-[<a href=#dom-canvaspixelarray-get title=dom-CanvasPixelArray-get>IndexGetter</a>, <a href=#dom-canvaspixelarray-set title=dom-CanvasPixelArray-set>IndexSetter</a>]
 interface <dfn id=canvaspixelarray>CanvasPixelArray</dfn> {
   readonly attribute unsigned long <a href=#dom-canvaspixelarray-length title=dom-canvaspixelarray-length>length</a>;
+  <a href=#dom-canvaspixelarray-get title=dom-CanvasPixelArray-get>getter</a> unsigned short (in unsigned long index);
+  <a href=#dom-canvaspixelarray-set title=dom-CanvasPixelArray-set>setter</a> void (in unsigned long index, in unsigned short value);
 };</pre>
 
   <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-canvas><a href=#dom-context-2d-canvas>canvas</a></code></dt>
@@ -25857,11 +25860,11 @@
    <dd><code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code></dd>
    <dt>DOM interface:</dt>
    <dd>
-<pre class=idl>[Stringifies=href] interface <dfn id=htmlareaelement>HTMLAreaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+<pre class=idl>interface <dfn id=htmlareaelement>HTMLAreaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute DOMString <a href=#dom-area-alt title=dom-area-alt>alt</a>;
            attribute DOMString <a href=#dom-area-coords title=dom-area-coords>coords</a>;
            attribute DOMString <a href=#dom-area-shape title=dom-area-shape>shape</a>;
-           attribute DOMString <a href=#dom-area-href title=dom-area-href>href</a>;
+  stringifier attribute DOMString <a href=#dom-area-href title=dom-area-href>href</a>;
            attribute DOMString <a href=#dom-area-target title=dom-area-target>target</a>;
            attribute DOMString <a href=#dom-area-ping title=dom-area-ping>ping</a>;
            attribute DOMString <a href=#dom-area-rel title=dom-area-rel>rel</a>;
@@ -26463,7 +26466,7 @@
   readonly attribute <a href=#htmlcollection-0>HTMLCollection</a> <a href=#dom-table-tbodies title=dom-table-tBodies>tBodies</a>;
   <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createtbody title=dom-table-createTBody>createTBody</a>();
   readonly attribute <a href=#htmlcollection-0>HTMLCollection</a> <a href=#dom-table-rows title=dom-table-rows>rows</a>;
-  <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-insertrow title=dom-table-insertRow>insertRow</a>([Optional] in long index);
+  <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-insertrow title=dom-table-insertRow>insertRow</a>(optional in long index);
   void <a href=#dom-table-deleterow title=dom-table-deleteRow>deleteRow</a>(in long index);
 };</pre>
    </dd>
@@ -27161,7 +27164,7 @@
    <dd>
     <pre class=idl>interface <dfn id=htmltablesectionelement>HTMLTableSectionElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
   readonly attribute <a href=#htmlcollection-0>HTMLCollection</a> <a href=#dom-tbody-rows title=dom-tbody-rows>rows</a>;
-  <a href=#htmlelement>HTMLElement</a> <a href=#dom-tbody-insertrow title=dom-tbody-insertRow>insertRow</a>([Optional] in long index);
+  <a href=#htmlelement>HTMLElement</a> <a href=#dom-tbody-insertrow title=dom-tbody-insertRow>insertRow</a>(optional in long index);
   void <a href=#dom-tbody-deleterow title=dom-tbody-deleteRow>deleteRow</a>(in long index);
 };</pre>
     <p>The <code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code> interface is also
@@ -27320,7 +27323,7 @@
   readonly attribute long <a href=#dom-tr-rowindex title=dom-tr-rowIndex>rowIndex</a>;
   readonly attribute long <a href=#dom-tr-sectionrowindex title=dom-tr-sectionRowIndex>sectionRowIndex</a>;
   readonly attribute <a href=#htmlcollection-0>HTMLCollection</a> <a href=#dom-tr-cells title=dom-tr-cells>cells</a>;
-  <a href=#htmlelement>HTMLElement</a> <a href=#dom-tr-insertcell title=dom-tr-insertCell>insertCell</a>([Optional] in long index);
+  <a href=#htmlelement>HTMLElement</a> <a href=#dom-tr-insertcell title=dom-tr-insertCell>insertCell</a>(optional in long index);
   void <a href=#dom-tr-deletecell title=dom-tr-deleteCell>deleteCell</a>(in long index);
 };</pre>
    </dd>
@@ -28801,7 +28804,7 @@
    <dd><code title=attr-fs-target><a href=#attr-fs-target>target</a></code></dd>
    <dt>DOM interface:</dt>
    <dd>
-<pre class=idl>[Callable=<a href=#dom-form-nameditem title=dom-form-namedItem>namedItem</a>]
+<pre class=idl>[OverrideBuiltins]
 interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
            attribute DOMString <a href=#dom-form-acceptcharset title=dom-form-acceptCharset>acceptCharset</a>;
            attribute DOMString <a href=#dom-fs-action title=dom-fs-action>action</a>;
@@ -28814,8 +28817,8 @@
 
   readonly attribute <a href=#htmlformcontrolscollection-0>HTMLFormControlsCollection</a> <a href=#dom-form-elements title=dom-form-elements>elements</a>;
   readonly attribute long <a href=#dom-form-length title=dom-form-length>length</a>;
-  [IndexGetter] any <a href=#dom-form-item title=dom-form-item>item</a>(in unsigned long index);
-  [NameGetter=OverrideBuiltins] any <a href=#dom-form-nameditem title=dom-form-namedItem>namedItem</a>(in DOMString name);
+  caller getter any <a href=#dom-form-item title=dom-form-item>item</a>(in unsigned long index);
+  caller getter any <a href=#dom-form-nameditem title=dom-form-namedItem>namedItem</a>(in DOMString name);
 
   void <a href=#dom-form-submit title=dom-form-submit>submit</a>();
   void <a href=#dom-form-reset title=dom-form-reset>reset</a>();
@@ -28879,6 +28882,7 @@
 
    <dt><var title="">element</var> = <var title="">form</var> . <code title=dom-form-item><a href=#dom-form-item>item</a></code>(<var title="">index</var>)</dt>
    <dt><var title="">form</var>[<var title="">index</var>]</dt>
+   <dt><var title="">form</var>(<var title="">index</var>)</dt>
 
    <dd>
 
@@ -28889,6 +28893,7 @@
 
    <dt><var title="">element</var> = <var title="">form</var> . <code title=dom-form-namedItem><a href=#dom-form-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
    <dt><var title="">form</var>[<var title="">name</var>]</dt>
+   <dt><var title="">form</var>(<var title="">name</var>)</dt>
 
    <dd>
 
@@ -34241,8 +34246,7 @@
    <dd><code title=attr-select-size><a href=#attr-select-size>size</a></code></dd>
    <dt>DOM interface:</dt>
    <dd>
-<pre class=idl>[Callable=<a href=#dom-select-nameditem title=dom-select-namedItem>namedItem</a>]
-interface <dfn id=htmlselectelement>HTMLSelectElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+<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>;
@@ -34254,9 +34258,9 @@
 
   readonly attribute <a href=#htmloptionscollection-0>HTMLOptionsCollection</a> <a href=#dom-select-options title=dom-select-options>options</a>;
            attribute unsigned long <a href=#dom-select-length title=dom-select-length>length</a>;
-  [IndexGetter] any <a href=#dom-select-item title=dom-select-item>item</a>(in unsigned long index);
-  [NameGetter] 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, [Optional] in <a href=#htmlelement>HTMLElement</a> before);
+  caller getter any <a href=#dom-select-item title=dom-select-item>item</a>(in unsigned long index);
+  caller getter 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, optional in <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);
 
@@ -34412,6 +34416,7 @@
 
    <dt><var title="">element</var> = <var title="">select</var> . <code title=dom-select-item><a href=#dom-select-item>item</a></code>(<var title="">index</var>)</dt>
    <dt><var title="">select</var>[<var title="">index</var>]</dt>
+   <dt><var title="">select</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>. The items are sorted in <a href=#tree-order>tree order</a>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -34419,6 +34424,7 @@
 
    <dt><var title="">element</var> = <var title="">select</var> . <code title=dom-select-item><a href=#dom-select-item>namedItem</a></code>(<var title="">name</var>)</dt>
    <dt><var title="">select</var>[<var title="">name</var>]</dt>
+   <dt><var title="">select</var>(<var title="">name</var>)</dt>
    <dd>
     <p>Returns the item with ID or <code title=attr-option-name>name</code> <var title="">name</var> from the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>.</p>
     <p>If there are multiple matching items, then a <code>NodeList</code> object containing all those elements is returned.</p>
@@ -37309,7 +37315,7 @@
   readonly attribute <span>DataGridSelection</span> <span title="dom-datagrid-selection">selection</span>;
 - ->
   // columns
-  void <span title="dom-datagrid-addColumn">addColumn</span>(in <span>Column</span> id, in DOMString label, in DOMString type, [Optional] in HTMLImageElement icon, [Optional] in boolean sortable, [Optional] in boolean hidden);
+  void <span title="dom-datagrid-addColumn">addColumn</span>(in <span>Column</span> id, in DOMString label, in DOMString type, optional in HTMLImageElement icon, optional in boolean sortable, optional in boolean hidden);
            attribute DOMString <span title="dom-datagrid-sortColumn">sortColumn</span>;
            attribute boolean <span title="dom-datagrid-sortAscending">sortAscending</span>;
   void <span title="dom-datagrid-clearColumns">clearColumns</span>();
@@ -37332,9 +37338,9 @@
 
 typedef DOMString <dfn>Column</dfn>;
 typedef sequence<<span>Column</span>> <dfn>ColumnList</dfn>;
-typedef sequence<any> <dfn>Cell</dfn>; // <span>Column</span>, [Variadic] any (exact types expected depend on the column type)
+typedef sequence<any> <dfn>Cell</dfn>; // <span>Column</span>, any... (exact types expected depend on the column type)
 typedef sequence<<span>Cell</span>> <dfn>CellList</dfn>;
-typedef sequence<any> <dfn>Row</dfn>; // <span>RowID</span>, long, long, <span>CellList</span>, [Optional] boolean, [Optional] long
+typedef sequence<any> <dfn>Row</dfn>; // <span>RowID</span>, long, long, <span>CellList</span>, optional boolean, optional long
 typedef sequence<<span>Row</span>> <dfn>RowList</dfn>;
 typedef sequence<unsigned long> <dfn>RowID</dfn>;
 typedef sequence<<span>RowID</span>> <dfn>RowIDList</dfn>;
@@ -39597,7 +39603,8 @@
   implementation(s).</i></p>
 
   <pre class="idl">// To be implemented by Web authors as a JS object
-[NoInterfaceObject] interface <dfn>DataGridListener</dfn> {
+[NoInterfaceObject]
+interface <dfn>DataGridListener</dfn> {
   void <span title="dom-listener-initialize">initialize</span>(in <span>HTMLDataGridElement</span> datagrid);
 
   void <span title="dom-listener-getRows">getRows</span>(in unsigned long rowIndex, in unsigned long rowCount, in <span>RowID</span> parentRow, in unsigned long position, in <span>ColumnList</span> columns);
@@ -39764,7 +39771,7 @@
 
   <pre class="idl">interface <dfn>DataGridSelection</dfn> {
   readonly attribute unsigned long <span title="dom-DataGridSelection-length">length</span>;
-  [IndexGetter] <span>RowID</span> <span title="dom-DataGridSelection-item">item</span>(in unsigned long index);
+  getter <span>RowID</span> <span title="dom-DataGridSelection-item">item</span>(in unsigned long index);
   boolean <span title="dom-DataGridSelection-isSelected">isSelected</span>(in <span>RowID</span> row);
   void <span title="dom-DataGridSelection-setSelected">setSelected</span>(in <span>RowID</span> row, in boolean selected);
   void <span title="dom-DataGridSelection-selectAll">selectAll</span>();
@@ -46374,7 +46381,7 @@
 
   <h3 id=the-window-object><span class=secno>6.3 </span>The <code><a href=#window>Window</a></code> object</h3>
 
-  <pre class=idl>[<a href=#dom-window-item title=dom-window-item>IndexGetter</a>, <a href=#dom-window-nameditem title=dom-window-namedItem>NameGetter</a>=OverrideBuiltins]
+  <pre class=idl>[OverrideBuiltins]
 interface <dfn id=window>Window</dfn> {
   // the current browsing context
   readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-window title=dom-window>window</a>;
@@ -46402,7 +46409,9 @@
   [Replaceable] readonly 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 <span>Element</span> <a href=#dom-frameelement title=dom-frameElement>frameElement</a>;
-  <a href=#windowproxy>WindowProxy</a> <a href=#dom-open title=dom-open>open</a>([Optional] in DOMString url, [Optional] in DOMString target, [Optional] in DOMString features, [Optional] in DOMString replace);
+  <a href=#windowproxy>WindowProxy</a> <a href=#dom-open title=dom-open>open</a>(optional in DOMString url, optional in DOMString target, optional in DOMString features, optional in 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> <a href=#windowproxy>WindowProxy</a> (in DOMString name);
 
   // the user agent
   readonly attribute <a href=#navigator>Navigator</a> <a href=#dom-navigator title=dom-navigator>navigator</a>; <!-- IE also has window.clientInformation === window.navigator -->
@@ -46411,9 +46420,9 @@
   // 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, [Optional] in DOMString default);
+  DOMString <a href=#dom-prompt title=dom-prompt>prompt</a>(in DOMString message, optional in 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, [Optional] in any argument<!--, [Optional] in DOMString features-->);
+  any <a href=#dom-showmodaldialog title=dom-showModalDialog>showModalDialog</a>(in DOMString url, optional in any argument<!--, optional in DOMString features-->);
 
   // <a href=#crossDocumentMessages>cross-document messaging</a>
   void <a href=#dom-window-postmessage-2 title=dom-window-postMessage-2>postMessage</a>(in any message, in DOMString targetOrigin);
@@ -48312,7 +48321,7 @@
 
   <pre class=idl>[Callback=FunctionOnly, NoInterfaceObject]
 interface <dfn id=function>Function</dfn> {
-  any <a href=#dom-function-call title=dom-function-call>call</a>([Variadic] in any arguments);
+  any <a href=#dom-function-call title=dom-function-call>call</a>(in any... arguments);
 };</pre>
 
   <p>The <dfn id=dom-function-call title=dom-function-call><code>call(...)</code></dfn>
@@ -48552,13 +48561,14 @@
   and <code title=dom-windowtimers-setInterval><a href=#dom-windowtimers-setinterval>setInterval()</a></code>
   methods allow authors to schedule timer-based callbacks.</p>
 
-<!-- HereBeDragons is just meant to prevent this from compiling in random Web IDL implementations -->
-<pre class=idl>[HereBeDragons, NoInterfaceObject] interface <dfn id=windowtimers>WindowTimers</dfn> {
-  long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>(in any handler, [Optional] in any timeout, [Variadic] in any args);
+<pre class=idl>[Supplemental, NoInterfaceObject]
+interface <dfn id=windowtimers>WindowTimers</dfn> {
+  long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>(in any handler, optional in any timeout, in any... args);
   void <a href=#dom-windowtimers-cleartimeout title=dom-windowtimers-clearTimeout>clearTimeout</a>(in long handle);
-  long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>(in any handler, [Optional] in any timeout, [Variadic] in any args);
+  long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>(in any handler, optional in any timeout, in any... args);
   void <a href=#dom-windowtimers-clearinterval title=dom-windowtimers-clearInterval>clearInterval</a>(in long handle);
-};</pre>
+};
+<a href=#window>Window</a> implements <a href=#windowtimers>WindowTimers</a>;</pre>
 
   <dl class=domintro><dt><var title="">handle</var> = <var title="">window</var> . <code title=dom-windowtimers-setTimeout><a href=#dom-windowtimers-settimeout>setTimeout</a></code>( <var title="">handler</var> [, <var title="">timeout</var> [, <var title="">arguments</var> ] ] )</dt>
 
@@ -48602,10 +48612,9 @@
 
   <div class=impl>
 
-  <p>The <code><a href=#windowtimers>WindowTimers</a></code> interface must be implemented by
-  objects implementing the <code><a href=#window>Window</a></code> object. (It is also
-  implemented by objects implementing the <code>WorkerUtils</code>
-  interface as part of Web Workers.)</p>
+  <p class=note>The <code><a href=#windowtimers>WindowTimers</a></code> interfaceadds to the
+  <code><a href=#window>Window</a></code> interface and the <code>WorkerUtils</code>
+  interface (part of Web Workers).</p>
 
   <p>Each object that implements the <code><a href=#windowtimers>WindowTimers</a></code>
   interface has a <dfn id=list-of-active-timeouts>list of active timeouts</dfn> and a <dfn id=list-of-active-intervals>list
@@ -49128,15 +49137,16 @@
 
   </ol><p>The <code><a href=#window>Window</a></code> objects of <code>Document</code>s hosted
   by <a href=#browsing-context title="browsing context">browsing contexts</a> created
-  by the above algorithm must all implement the
-  <code><a href=#windowmodal>WindowModal</a></code> interface:</p>
+  by the above algorithm must all have the <code><a href=#windowmodal>WindowModal</a></code>
+  interface added to their <code><a href=#window>Window</a></code> interface:</p>
 
   </div>
 
-  <pre class=idl>[NoInterfaceObject, ImplementedOn=<a href=#window>Window</a>, Supplemental] interface <dfn id=windowmodal>WindowModal</dfn> {
+  <pre class=idl>[Supplemental, NoInterfaceObject] interface <dfn id=windowmodal>WindowModal</dfn> {
   readonly attribute any <a href=#dom-windowmodal-dialogarguments title=dom-WindowModal-dialogArguments>dialogArguments</a>;
            attribute DOMString <a href=#dom-windowmodal-returnvalue title=dom-WindowModal-returnValue>returnValue</a>;
-};</pre>
+};
+<a href=#window>Window</a> implements <a href=#windowmodal>WindowModal</a>; /* sometimes */</pre>
 
   <dl class=domintro><dt><var title="">window</var> . <code title=dom-WindowModal-dialogArguments><a href=#dom-windowmodal-dialogarguments>dialogArguments</a></code></dt>
 
@@ -49211,8 +49221,12 @@
   <pre class=idl>interface <dfn id=navigator>Navigator</dfn> {
   // objects implementing this interface also implement the interfaces given below
 };
+<a href=#navigator>Navigator</a> implements <a href=#navigatorid>NavigatorID</a>;
+<a href=#navigator>Navigator</a> implements <a href=#navigatoronline>NavigatorOnLine</a>;
+<a href=#navigator>Navigator</a> implements <a href=#navigatorabilities>NavigatorAbilities</a>;
 
-[NoInterfaceObject, ImplementedOn=<a href=#navigator>Navigator</a>] interface <dfn id=navigatorid>NavigatorID</dfn> {<!--
+[Supplemental, NoInterfaceObject]
+interface <dfn id=navigatorid>NavigatorID</dfn> {<!--
   readonly attribute DOMString <span title="dom-navigator-appCodeName">appCodeName</span>;-->
   readonly attribute DOMString <a href=#dom-navigator-appname title=dom-navigator-appName>appName</a>;
   readonly attribute DOMString <a href=#dom-navigator-appversion title=dom-navigator-appVersion>appVersion</a>;
@@ -49220,11 +49234,13 @@
   readonly attribute DOMString <a href=#dom-navigator-useragent title=dom-navigator-userAgent>userAgent</a>;
 };
 
-[NoInterfaceObject, ImplementedOn=<a href=#navigator>Navigator</a>] interface <dfn id=navigatoronline>NavigatorOnLine</dfn> {
+[Supplemental, NoInterfaceObject]
+interface <dfn id=navigatoronline>NavigatorOnLine</dfn> {
   readonly attribute boolean <a href=#dom-navigator-online title=dom-navigator-onLine>onLine</a>;
 };
 
-[NoInterfaceObject, ImplementedOn=<a href=#navigator>Navigator</a>] interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
+[Supplemental, NoInterfaceObject]
+interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
   // content handler registration
   void <a href=#dom-navigator-registerprotocolhandler title=dom-navigator-registerProtocolHandler>registerProtocolHandler</a>(in DOMString scheme, in DOMString url, in DOMString title);
   void <a href=#dom-navigator-registercontenthandler title=dom-navigator-registerContentHandler>registerContentHandler</a>(in DOMString mimeType, in DOMString url, in DOMString title);
@@ -51270,7 +51286,6 @@
            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>;
-
 };</pre>
 
   <dl class=domintro><dt><var title="">cache</var> = <var title="">window</var> . <code title=dom-applicationCache><a href=#dom-applicationcache>applicationCache</a></code></dt>
@@ -51588,10 +51603,10 @@
 
   <pre class=idl>interface <dfn id=history-1>History</dfn> {
   readonly attribute long <a href=#dom-history-length title=dom-history-length>length</a>;
-  void <a href=#dom-history-go title=dom-history-go>go</a>([Optional] in long delta);
+  void <a href=#dom-history-go title=dom-history-go>go</a>(optional in long delta);
   void <a href=#dom-history-back title=dom-history-back>back</a>();
   void <a href=#dom-history-forward title=dom-history-forward>forward</a>();
-  void <a href=#dom-history-pushstate title=dom-history-pushState>pushState</a>(in any data, in DOMString title, [Optional] in DOMString url);
+  void <a href=#dom-history-pushstate title=dom-history-pushState>pushState</a>(in any data, in DOMString title, optional in DOMString url);
   void <a href=#dom-history-clearstate title=dom-history-clearState>clearState</a>();
 };</pre>
 
@@ -55131,7 +55146,7 @@
 
   </div>
 
-  <pre class=idl>[<a href=#dom-selection-tostring title=dom-selection-toString>Stringifies</a>] interface <dfn id=selection-0>Selection</dfn> {
+  <pre class=idl>interface <dfn id=selection-0>Selection</dfn> {
   readonly attribute Node <a href=#dom-selection-anchornode title=dom-selection-anchorNode>anchorNode</a>;
   readonly attribute long <a href=#dom-selection-anchoroffset title=dom-selection-anchorOffset>anchorOffset</a>;
   readonly attribute Node <a href=#dom-selection-focusnode title=dom-selection-focusNode>focusNode</a>;
@@ -55147,6 +55162,7 @@
   void <a href=#dom-selection-addrange title=dom-selection-addRange>addRange</a>(in Range range);
   void <a href=#dom-selection-removerange title=dom-selection-removeRange>removeRange</a>(in Range range);
   void <a href=#dom-selection-removeallranges title=dom-selection-removeAllRanges>removeAllRanges</a>();
+  <a href=#dom-selection-tostring title=dom-selection-toString>stringifier</a> DOMString ();
 };</pre>
 <!--
   See also:
@@ -56199,7 +56215,7 @@
            attribute DOMString <a href=#dom-datatransfer-effectallowed title=dom-DataTransfer-effectAllowed>effectAllowed</a>;
 
   readonly attribute DOMStringList <a href=#dom-datatransfer-types title=dom-DataTransfer-types>types</a>;
-  void <a href=#dom-datatransfer-cleardata title=dom-DataTransfer-clearData>clearData</a>([Optional] in DOMString format);
+  void <a href=#dom-datatransfer-cleardata title=dom-DataTransfer-clearData>clearData</a>(optional in DOMString format);
   void <a href=#dom-datatransfer-setdata title=dom-DataTransfer-setData>setData</a>(in DOMString format, in DOMString data);
   DOMString <a href=#dom-datatransfer-getdata title=dom-DataTransfer-getData>getData</a>(in DOMString format);
   readonly attribute <span>FileList</span> <a href=#dom-datatransfer-files title=dom-DataTransfer-files>files</a>;
@@ -57269,7 +57285,7 @@
 
   <pre class=idl>interface <dfn id=undomanager>UndoManager</dfn> {
   readonly attribute unsigned long <a href=#dom-undomanager-length title=dom-UndoManager-length>length</a>;
-  [IndexGetter] any <a href=#dom-undomanager-item title=dom-UndoManager-item>item</a>(in unsigned long index);
+  getter any <a href=#dom-undomanager-item title=dom-UndoManager-item>item</a>(in unsigned long index);
   readonly attribute unsigned long <a href=#dom-undomanager-position title=dom-UndoManager-position>position</a>;
   unsigned long <a href=#dom-undomanager-add title=dom-UndoManager-add>add</a>(in any data, in DOMString title);
   void <a href=#dom-undomanager-remove title=dom-UndoManager-remove>remove</a>(in unsigned long index);
@@ -58556,7 +58572,7 @@
 
 interface <dfn id=messageport>MessagePort</dfn> {
 <!-- v2-onclose  readonly attribute boolean <span title="dom-MessagePort-active">active</span>;
--->  void <a href=#dom-messageport-postmessage title=dom-MessagePort-postMessage>postMessage</a>(in any message, [Optional] in <a href=#messageportarray>MessagePortArray</a> ports);<!--
+-->  void <a href=#dom-messageport-postmessage title=dom-MessagePort-postMessage>postMessage</a>(in any message, optional in <a href=#messageportarray>MessagePortArray</a> ports);<!--
   <span>MessagePort</span> <span title="dom-MessagePort-startConversation">startConversation</span>(in any message);-->
   void <a href=#dom-messageport-start title=dom-MessagePort-start>start</a>();
   void <a href=#dom-messageport-close title=dom-MessagePort-close>close</a>();
@@ -71838,7 +71854,8 @@
   <p>User agents must treat <code><a href=#acronym>acronym</a></code> elements in a manner
   equivalent to <code><a href=#the-abbr-element>abbr</a></code> elements.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlanchorelement>HTMLAnchorElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlanchorelement>HTMLAnchorElement</a> {
            attribute DOMString <a href=#dom-a-coords title=dom-a-coords>coords</a>;
            attribute DOMString <a href=#dom-a-charset title=dom-a-charset>charset</a>;
            attribute DOMString <a href=#dom-a-rev title=dom-a-rev>rev</a>;
@@ -71849,7 +71866,8 @@
   <code><a href=#the-a-element>a</a></code> element must <a href=#reflect>reflect</a> the respective
   content attributes of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlareaelement>HTMLAreaElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlareaelement>HTMLAreaElement</a> {
            attribute boolean <a href=#dom-area-nohref title=dom-area-noHref>noHref</a>;
 };</pre>
 
@@ -71872,7 +71890,8 @@
   the <code><a href=#basefont>basefont</a></code> element must <a href=#reflect>reflect</a> the
   respective content attributes of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlbodyelement>HTMLBodyElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlbodyelement>HTMLBodyElement</a> {
            attribute DOMString <a href=#dom-body-text title=dom-body-text>text</a>;
            attribute DOMString <a href=#dom-body-bgcolor title=dom-body-bgColor>bgColor</a>;
            attribute DOMString <a href=#dom-body-background title=dom-body-background>background</a>;
@@ -71913,7 +71932,8 @@
   the element's <code title=attr-body-vlink><a href=#attr-body-vlink>vlink</a></code> content
   attribute.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlbrelement>HTMLBRElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlbrelement>HTMLBRElement</a> {
            attribute DOMString <a href=#dom-br-clear title=dom-br-clear>clear</a>;
 };</pre>
 
@@ -71921,7 +71941,8 @@
   attribute of the <code><a href=#the-br-element>br</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmltablecaptionelement>HTMLTableCaptionElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmltablecaptionelement>HTMLTableCaptionElement</a> {
            attribute DOMString <a href=#dom-caption-align title=dom-caption-align>align</a>;
 };</pre>
 
@@ -71929,7 +71950,8 @@
   attribute of the <code><a href=#the-caption-element>caption</a></code> element must
   <a href=#reflect>reflect</a> the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmltablecolelement>HTMLTableColElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmltablecolelement>HTMLTableColElement</a> {
            attribute DOMString <a href=#dom-col-align title=dom-col-align>align</a>;
            attribute DOMString <a href=#dom-col-ch title=dom-col-ch>ch</a>;
            attribute DOMString <a href=#dom-col-choff title=dom-col-chOff>chOff</a>;
@@ -71970,7 +71992,8 @@
   attribute of the <code><a href=#dir>dir</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmldivelement>HTMLDivElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmldivelement>HTMLDivElement</a> {
            attribute DOMString <a href=#dom-div-align title=dom-div-align>align</a>;
 };</pre>
 
@@ -71978,7 +72001,8 @@
   attribute of the <code><a href=#the-div-element>div</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmldlistelement>HTMLDListElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmldlistelement>HTMLDListElement</a> {
            attribute DOMString <a href=#dom-dl-compact title=dom-dl-compact>compact</a>;
 };</pre>
 
@@ -72000,7 +72024,8 @@
   the <code><a href=#font>font</a></code> element must <a href=#reflect>reflect</a> the
   respective content attributes of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlheadingelement>HTMLHeadingElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlheadingelement>HTMLHeadingElement</a> {
            attribute DOMString <a href=#dom-hx-align title=dom-hx-align>align</a>;
 };</pre>
 
@@ -72008,7 +72033,8 @@
   attribute of the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>–<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements must
   <a href=#reflect>reflect</a> the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlheadelement>HTMLHeadElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlheadelement>HTMLHeadElement</a> {
            attribute DOMString <a href=#dom-head-profile title=dom-head-profile>profile</a>;
 };</pre>
 
@@ -72016,7 +72042,8 @@
   attribute of the <code><a href=#the-head-element>head</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlhrelement>HTMLHRElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlhrelement>HTMLHRElement</a> {
            attribute DOMString <a href=#dom-hr-align title=dom-hr-align>align</a>;
            attribute boolean <a href=#dom-hr-noshade title=dom-hr-noShade>noShade</a>;
            attribute DOMString <a href=#dom-hr-size title=dom-hr-size>size</a>;
@@ -72032,7 +72059,8 @@
   the element's <code title=attr-input-noshade>noshade</code>
   content attribute.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlhtmlelement>HTMLHtmlElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlhtmlelement>HTMLHtmlElement</a> {
            attribute DOMString <a href=#dom-html-version title=dom-html-version>version</a>;
 };</pre>
 
@@ -72040,7 +72068,8 @@
   attribute of the <code><a href=#the-html-element>html</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmliframeelement>HTMLIFrameElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmliframeelement>HTMLIFrameElement</a> {
            attribute DOMString <a href=#dom-iframe-align title=dom-iframe-align>align</a>;
            attribute DOMString <a href=#dom-iframe-frameborder title=dom-iframe-frameBorder>frameBorder</a>;
            attribute DOMString <a href=#dom-iframe-longdesc title=dom-iframe-longDesc>longDesc</a>;
@@ -72074,7 +72103,8 @@
   <a href=#reflect>reflect</a> the element's <code title=attr-iframe-marginwidth><a href=#attr-iframe-marginwidth>marginwidth</a></code> content
   attribute.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlimageelement>HTMLImageElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlimageelement>HTMLImageElement</a> {
            attribute DOMString <a href=#dom-img-name title=dom-img-name>name</a>;
            attribute DOMString <a href=#dom-img-align title=dom-img-align>align</a>;
            attribute DOMString <a href=#dom-img-border title=dom-img-border>border</a>;
@@ -72092,7 +72122,8 @@
   the element's <code title=attr-img-longdesc><a href=#attr-img-longdesc>longdesc</a></code> content
   attribute.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlinputelement>HTMLInputElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlinputelement>HTMLInputElement</a> {
            attribute DOMString <a href=#dom-input-align title=dom-input-align>align</a>;
            attribute DOMString <a href=#dom-input-usemap title=dom-input-useMap>useMap</a>;
 };</pre>
@@ -72105,7 +72136,8 @@
   attribute of the <code><a href=#the-input-element>input</a></code> element must
   <a href=#reflect>reflect</a> the element's <code title=attr-input-usemap><a href=#attr-input-usemap>usemap</a></code> content attribute.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmllegendelement>HTMLLegendElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmllegendelement>HTMLLegendElement</a> {
            attribute DOMString <a href=#dom-legend-align title=dom-legend-align>align</a>;
 };</pre>
 
@@ -72113,7 +72145,8 @@
   attribute of the <code><a href=#the-legend-element>legend</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmllielement>HTMLLIElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmllielement>HTMLLIElement</a> {
            attribute DOMString <a href=#dom-li-type title=dom-li-type>type</a>;
 };</pre>
 
@@ -72121,7 +72154,8 @@
   attribute of the <code><a href=#the-li-element>li</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmllinkelement>HTMLLinkElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmllinkelement>HTMLLinkElement</a> {
            attribute DOMString <a href=#dom-link-charset title=dom-link-charset>charset</a>;
            attribute DOMString <a href=#dom-link-rev title=dom-link-rev>rev</a>;
            attribute DOMString <a href=#dom-link-target title=dom-link-target>target</a>;
@@ -72135,7 +72169,8 @@
   <hr><p>User agents must treat <code><a href=#listing>listing</a></code> elements in a manner
   equivalent to <code><a href=#the-pre-element>pre</a></code> elements.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlmenuelement>HTMLMenuElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlmenuelement>HTMLMenuElement</a> {
            attribute DOMString <a href=#dom-menu-compact title=dom-menu-compact>compact</a>;
 };</pre>
 
@@ -72143,7 +72178,8 @@
   attribute of the <code><a href=#menus>menu</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlmetaelement>HTMLMetaElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlmetaelement>HTMLMetaElement</a> {
            attribute DOMString <a href=#dom-meta-scheme title=dom-meta-scheme>scheme</a>;
 };</pre>
 
@@ -72151,7 +72187,8 @@
   attribute of the <code><a href=#meta>meta</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlobjectelement>HTMLObjectElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlobjectelement>HTMLObjectElement</a> {
            attribute DOMString <a href=#dom-object-align title=dom-object-align>align</a>;
            attribute DOMString <a href=#dom-object-archive title=dom-object-archive>archive</a>;
            attribute DOMString <a href=#dom-object-border title=dom-object-border>border</a>;
@@ -72178,7 +72215,8 @@
   the element's <code title=attr-object-codetype><a href=#attr-object-codetype>codetype</a></code> content
   attribute.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlolistelement>HTMLOListElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlolistelement>HTMLOListElement</a> {
            attribute DOMString <a href=#dom-ol-compact title=dom-ol-compact>compact</a>;
            attribute DOMString <a href=#dom-ol-type title=dom-ol-type>type</a>;
 };</pre>
@@ -72188,7 +72226,8 @@
   the <code><a href=#the-ol-element>ol</a></code> element must <a href=#reflect>reflect</a> the respective
   content attributes of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlparagraphelement>HTMLParagraphElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlparagraphelement>HTMLParagraphElement</a> {
            attribute DOMString <a href=#dom-p-align title=dom-p-align>align</a>;
 };</pre>
 
@@ -72196,7 +72235,8 @@
   attribute of the <code><a href=#the-p-element>p</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlparamelement>HTMLParamElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlparamelement>HTMLParamElement</a> {
            attribute DOMString <a href=#dom-param-type title=dom-param-type>type</a>;
            attribute DOMString <a href=#dom-param-valuetype title=dom-param-valueType>valueType</a>;
 };</pre>
@@ -72212,7 +72252,8 @@
   <hr><p>User agents must treat <code><a href=#plaintext>plaintext</a></code> elements in a
   manner equivalent to <code><a href=#the-pre-element>pre</a></code> elements.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlpreelement>HTMLPreElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlpreelement>HTMLPreElement</a> {
            attribute unsigned long <a href=#dom-pre-width title=dom-pre-width>width</a>;
 };</pre>
 
@@ -72220,7 +72261,8 @@
   attribute of the <code><a href=#the-pre-element>pre</a></code> element must <a href=#reflect>reflect</a>
   the content attribute of the same name.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlscriptelement>HTMLScriptElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlscriptelement>HTMLScriptElement</a> {
            attribute DOMString <a href=#dom-script-event title=dom-script-event>event</a>;
            attribute DOMString <a href=#dom-script-htmlfor title=dom-script-htmlFor>htmlFor</a>;
 };</pre>
@@ -72230,7 +72272,8 @@
   attributes of the <code><a href=#script>script</a></code> element must return the empty
   string on getting, and do nothing on setting.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmltableelement>HTMLTableElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmltableelement>HTMLTableElement</a> {
            attribute DOMString <a href=#dom-table-align title=dom-table-align>align</a>;
            attribute DOMString <a href=#dom-table-bgcolor title=dom-table-bgColor>bgColor</a>;
            attribute DOMString <a href=#dom-table-border title=dom-table-border>border</a>;
@@ -72261,7 +72304,8 @@
   the element's <code title=attr-table-cellspacing><a href=#attr-table-cellspacing>cellspacing</a></code> content
   attribute.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmltablesectionelement>HTMLTableSectionElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmltablesectionelement>HTMLTableSectionElement</a> {
            attribute DOMString <a href=#dom-tbody-align title=dom-tbody-align>align</a>;
            attribute DOMString <a href=#dom-tbody-ch title=dom-tbody-ch>ch</a>;
            attribute DOMString <a href=#dom-tbody-choff title=dom-tbody-chOff>chOff</a>;
@@ -72289,7 +72333,8 @@
   <code title=attr-tbody-valign><a href=#attr-tbody-valign>valign</a></code> content
   attributes.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmltablecellelement>HTMLTableCellElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmltablecellelement>HTMLTableCellElement</a> {
            attribute DOMString <a href=#dom-td/th-abbr title=dom-td/th-abbr>abbr</a>;
            attribute DOMString <a href=#dom-td/th-align title=dom-td/th-align>align</a>;
            attribute DOMString <a href=#dom-td/th-axis title=dom-td/th-axis>axis</a>;
@@ -72327,7 +72372,8 @@
   attribute of the <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> element must
   <a href=#reflect>reflect</a> the elements' <code title=attr-td/th-valign><a href=#attr-td/th-valign>valign</a></code> content attributes.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmltablerowelement>HTMLTableRowElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmltablerowelement>HTMLTableRowElement</a> {
            attribute DOMString <a href=#dom-tr-align title=dom-tr-align>align</a>;
            attribute DOMString <a href=#dom-tr-bgcolor title=dom-tr-bgColor>bgColor</a>;
            attribute DOMString <a href=#dom-tr-ch title=dom-tr-ch>ch</a>;
@@ -72358,7 +72404,8 @@
   the element's <code title=attr-tr-valign><a href=#attr-tr-valign>valign</a></code> content
   attribute.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmlulistelement>HTMLUListElement</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmlulistelement>HTMLUListElement</a> {
            attribute DOMString <a href=#dom-ul-compact title=dom-ul-compact>compact</a>;
            attribute DOMString <a href=#dom-ul-type title=dom-ul-type>type</a>;
 };</pre>
@@ -72371,7 +72418,8 @@
   <hr><p>User agents must treat <code><a href=#xmp>xmp</a></code> elements in a manner
   equivalent to <code><a href=#the-pre-element>pre</a></code> elements.</p>
 
-  <hr><pre class=idl>[Supplemental] interface <a href=#htmldocument>HTMLDocument</a> {
+  <hr><pre class=idl>[Supplemental]
+interface <a href=#htmldocument>HTMLDocument</a> {
            attribute DOMString <a href=#dom-document-fgcolor title=dom-document-fgColor>fgColor</a>;
            attribute DOMString <a href=#dom-document-bgcolor title=dom-document-bgColor>bgColor</a>;
            attribute DOMString <a href=#dom-document-linkcolor title=dom-document-linkColor>linkColor</a>;
@@ -72521,9 +72569,11 @@
   <p>Any object implement the <code>AbstractView</code> interface must
   also implement the <code><a href=#mediamodeabstractview>MediaModeAbstractView</a></code> interface.</p>
 
-  <pre class=idl>[NoInterfaceObject, ImplementedOn=<span>AbstractView</span>] interface <dfn id=mediamodeabstractview>MediaModeAbstractView</dfn> {
+  <pre class=idl>[Supplemental, NoInterfaceObject]
+interface <dfn id=mediamodeabstractview>MediaModeAbstractView</dfn> {
   readonly attribute DOMString <a href=#mediamode>mediaMode</a>;
-};</pre>
+};
+<span>AbstractView</span> implements <a href=#mediamodeabstractview>MediaModeAbstractView</a>;</pre>
 
   <p>The <dfn id=mediamode><code>mediaMode</code></dfn> attribute on objects
   implementing the <code><a href=#mediamodeabstractview>MediaModeAbstractView</a></code> interface must

Modified: source
===================================================================
--- source	2009-08-07 20:16:23 UTC (rev 3555)
+++ source	2009-08-08 00:20:47 UTC (rev 3556)
@@ -5100,17 +5100,10 @@
   <p>The <code>HTMLCollection</code> interface represents a generic
   <span title="collections">collection</span> of elements.</p>
 
-  <!-- IE does [Callable] with magic that calls item() or namedItem() as appropriate as if it were a regular [[Get]],
-       so we might need to change this for compat. However, Web IDL doesn't support that for now. -->
-  <!-- heycam says we could just say something like "In the ECMAScript binding, host objects that implement interface
-       <code>HTMLCollection</code> have a [[Call]] method that that behaves as follows: 1. If called with 0 or more than 1
-       argument, throw a TypeError. 2. Let arg be the single argument passed. 3. Invoke [[Get]] on the object with ToString(argument)
-       as the property name. 4. Return Result(3)." (but we'd have to verify that that's right for 0 and >1 args) -->
-  <pre class="idl">[Callable=<span title="dom-HTMLCollection-namedItem">namedItem</span>]
-interface <dfn>HTMLCollection</dfn> {
+  <pre class="idl">interface <dfn>HTMLCollection</dfn> {
   readonly attribute unsigned long <span title="dom-HTMLCollection-length">length</span>;
-  [IndexGetter] Element <span title="dom-HTMLCollection-item">item</span>(in unsigned long index);
-  [NameGetter] Element <span title="dom-HTMLCollection-namedItem">namedItem</span>(in DOMString name);
+  caller getter Element <span title="dom-HTMLCollection-item">item</span>(in unsigned long index);
+  caller getter Element <span title="dom-HTMLCollection-namedItem">namedItem</span>(in DOMString name);
   <span>HTMLAllCollection</span> <span title="dom-HTMLCollection-tags">tags</span>(in DOMString tagName);
 };</pre>
 
@@ -5123,6 +5116,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title="dom-HTMLCollection-item">item</code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <span>tree order</span>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5224,12 +5218,10 @@
   returns an <code>HTMLCollection</code> object when there are
   multiple matching elements.</p>
 
-  <!-- see notes in previous section -->
-  <pre class="idl">[Callable=<span title="dom-HTMLAllCollection-namedItem">namedItem</span>]
-interface <dfn>HTMLAllCollection</dfn> {
+  <pre class="idl">interface <dfn>HTMLAllCollection</dfn> {
   readonly attribute unsigned long <span title="dom-HTMLAllCollection-length">length</span>;
-  [IndexGetter] Element <span title="dom-HTMLAllCollection-item">item</span>(in unsigned long index);
-  [NameGetter] Object <span title="dom-HTMLAllCollection-namedItem">namedItem</span>(in DOMString name);
+  caller getter Element <span title="dom-HTMLAllCollection-item">item</span>(in unsigned long index);
+  caller getter Object <span title="dom-HTMLAllCollection-namedItem">namedItem</span>(in DOMString name);
   <span>HTMLAllCollection</span> <span title="dom-HTMLAllCollection-tags">tags</span>(in DOMString tagName);
 };</pre>
 
@@ -5242,6 +5234,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title="dom-HTMLAllCollection-item">item</code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <span>tree order</span>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5364,11 +5357,10 @@
   title="category-listed">listed</span> elements in <code>form</code>
   and <code>fieldset</code> elements.</p>
 
-  <pre class="idl">[Callable=<span title="dom-HTMLFormControlsCollection-namedItem">namedItem</span>]
-interface <dfn>HTMLFormControlsCollection</dfn> {
+  <pre class="idl">interface <dfn>HTMLFormControlsCollection</dfn> {
   readonly attribute unsigned long <span title="dom-HTMLFormControlsCollection-length">length</span>;
-  [IndexGetter] <span>HTMLElement</span> <span title="dom-HTMLFormControlsCollection-item">item</span>(in unsigned long index);
-  [NameGetter] Object <span title="dom-HTMLFormControlsCollection-namedItem">namedItem</span>(in DOMString name);
+  caller getter <span>HTMLElement</span> <span title="dom-HTMLFormControlsCollection-item">item</span>(in unsigned long index);
+  caller getter Object <span title="dom-HTMLFormControlsCollection-namedItem">namedItem</span>(in DOMString name);
 };
 
 interface <dfn>RadioNodeList</dfn> : <span>NodeList</span> {
@@ -5384,6 +5376,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title="dom-HTMLFormControlsCollection-item">item</code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <span>tree order</span>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5535,12 +5528,11 @@
   <code>select</code> element and has attributes and methods that
   manipulate that element's descendants.</p>
 
-  <pre class="idl">[Callable=<span title="dom-HTMLOptionsCollection-namedItem">namedItem</span>]
-interface <dfn>HTMLOptionsCollection</dfn> {
+  <pre class="idl">interface <dfn>HTMLOptionsCollection</dfn> {
            attribute unsigned long <span title="dom-HTMLOptionsCollection-length">length</span>;
-  [IndexGetter] <span>HTMLOptionElement</span> <span title="dom-HTMLOptionsCollection-item">item</span>(in unsigned long index);
-  [NameGetter] Object <span title="dom-HTMLOptionsCollection-namedItem">namedItem</span>(in DOMString name);
-  void <span title="dom-HTMLOptionsCollection-add">add</span>(in <span>HTMLElement</span> element, [Optional] in <span>HTMLElement</span> before);
+  caller getter <span>HTMLOptionElement</span> <span title="dom-HTMLOptionsCollection-item">item</span>(in unsigned long index);
+  caller getter Object <span title="dom-HTMLOptionsCollection-namedItem">namedItem</span>(in DOMString name);
+  void <span title="dom-HTMLOptionsCollection-add">add</span>(in <span>HTMLElement</span> element, optional in <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);
 };</pre>
@@ -5556,6 +5548,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title="dom-HTMLOptionsCollection-item">item</code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <span>tree order</span>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5747,13 +5740,11 @@
   title="concept-item">item</span> in the <span>microdata</span>
   model.</p>
 
-  <pre class="idl">[Callable=<span title="dom-HTMLPropertyCollection-namedItem">namedItem</span>]
-interface <dfn>HTMLPropertyCollection</dfn> {
+  <pre class="idl">interface <dfn>HTMLPropertyCollection</dfn> {
   readonly attribute unsigned long <span title="dom-HTMLPropertyCollection-length">length</span>;
-  [IndexGetter] <span>HTMLElement</span> <span title="dom-HTMLPropertyCollection-item">item</span>(in unsigned long index);
-
   readonly attribute <span>DOMStringList</span> <span title="dom-HTMLPropertyCollection-names">names</span>;
-  [NameGetter] <span>PropertyNodeList</span> <span title="dom-HTMLPropertyCollection-namedItem">namedItem</span>(in DOMString name);
+  caller getter <span>HTMLElement</span> <span title="dom-HTMLPropertyCollection-item">item</span>(in unsigned long index);
+  caller getter <span>PropertyNodeList</span> <span title="dom-HTMLPropertyCollection-namedItem">namedItem</span>(in DOMString name);
 };
 
 typedef sequence<any> <dfn>PropertyValueArray</dfn>;
@@ -5776,6 +5767,7 @@
 
    <dt><var title="">element</var> = <var title="">collection</var> . <code title="dom-HTMLPropertyCollection-item">item</code>(<var title="">index</var>)</dt>
    <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+   <dt><var title="">collection</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the element with index <var title="">index</var> from the collection. The items are sorted in <span>tree order</span>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -5869,13 +5861,14 @@
   <span>case-sensitive</span>, even when the underlying string might
   ordinarily be treated in a case-insensitive manner.</p>
 
-  <pre class="idl">[<span title="dom-tokenlist-toString">Stringifies</span>] interface <dfn>DOMTokenList</dfn> {
+  <pre class="idl">interface <dfn>DOMTokenList</dfn> {
   readonly attribute unsigned long <span title="dom-tokenlist-length">length</span>;
-  [IndexGetter] 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);
   boolean <span title="dom-tokenlist-toggle">toggle</span>(in DOMString token);
+  <span title="dom-tokenlist-toString">stringifier</span> DOMString ();
 };</pre>
 
   <dl class="domintro">
@@ -6085,7 +6078,7 @@
   <code>DOMTokenList</code> interface, except that it allows the
   underlying string to be directly changed.</p>
 
-  <pre class="idl">[<span title="dom-tokenlist-toString">Stringifies</span>] interface <dfn>DOMSettableTokenList</dfn> : <span>DOMTokenList</span> {
+  <pre class="idl">interface <dfn>DOMSettableTokenList</dfn> : <span>DOMTokenList</span> {
             attribute DOMString <span title="dom-DOMSettableTokenList-value">value</span>;
 };</pre>
 
@@ -6275,8 +6268,12 @@
   name-value pairs, one for setting names to certain values, and one
   for deleting names.</p>
 
-  <pre class="idl">[NameCreator, NameDeleter, NameGetter, NameSetter]
-interface <dfn>DOMStringMap</dfn> {};</pre>
+  <pre class="idl">interface <dfn>DOMStringMap</dfn> {
+  getter DOMString (in DOMString name);
+  setter void (in DOMString name, in DOMString value);
+  creator void (in DOMString name);
+  deleter void (in DOMString name);
+};</pre>
 
   <p>The <span>names of the supported named properties</span> on a
   <code>DOMStringMap</code> object at any instant are the names of
@@ -6499,7 +6496,7 @@
   simply being the primary interface of the document object, it is no
   longer defined as inheriting from <code>Document</code>.</p>
 
-  <pre class="idl">[<span title="dom-document-namedItem">NameGetter</span>=OverrideBuiltins, ImplementedOn=<span>Document</span>]
+  <pre class="idl">[OverrideBuiltins]
 interface <dfn>HTMLDocument</dfn> {
   // <span>resource metadata management</span>
   [PutForwards=href] readonly attribute <span>Location</span> <span title="dom-document-location">location</span>;
@@ -6526,15 +6523,16 @@
   readonly attribute <span>HTMLCollection</span> <span title="dom-document-scripts">scripts</span>;
   NodeList <span title="dom-document-getElementsByName">getElementsByName</span>(in DOMString elementName);
   NodeList <span title="dom-document-getElementsByClassName">getElementsByClassName</span>(in DOMString classNames);
-  NodeList <span title="dom-document-getItems">getItems</span>([Optional] in DOMString typeNames);
+  NodeList <span title="dom-document-getItems">getItems</span>(optional in DOMString typeNames);
+  <span title="dom-document-namedItem">getter</span> any (in DOMString name);
 
   // <span>dynamic markup insertion</span>
            attribute DOMString <span title="dom-innerHTML">innerHTML</span>;
-  <span>HTMLDocument</span> <span title="dom-document-open">open</span>([Optional] in DOMString type, [Optional] in DOMString replace);
-  <span>WindowProxy</span> <span title="dom-document-open">open</span>(in DOMString url, in DOMString name, in DOMString features, [Optional] in boolean replace);
+  <span>HTMLDocument</span> <span title="dom-document-open">open</span>(optional in DOMString type, optional in DOMString replace);
+  <span>WindowProxy</span> <span title="dom-document-open">open</span>(in DOMString url, in DOMString name, in DOMString features, optional in boolean replace);
   void <span title="dom-document-close">close</span>();
-  void <span title="dom-document-write">write</span>([Variadic] in DOMString text);
-  void <span title="dom-document-writeln">writeln</span>([Variadic] in DOMString text);
+  void <span title="dom-document-write">write</span>(in DOMString... text);
+  void <span title="dom-document-writeln">writeln</span>(in DOMString... text);
 
   // <span>user interaction</span>
   <span>Selection</span> <span title="dom-document-getSelection">getSelection</span>();
@@ -6606,7 +6604,9 @@
            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>;
-};</pre>
+};
+<span>Document</span> implements <span>HTMLDocument</span>;
+</pre>
 
   <p>Since the <code>HTMLDocument</code> interface holds methods and
   attributes related to a number of disparate features, the members of
@@ -10415,10 +10415,8 @@
            attribute DOMString <span title="dom-link-hreflang">hreflang</span>;
            attribute DOMString <span title="dom-link-type">type</span>;
            attribute DOMString <span title="dom-link-sizes">sizes</span>;
-};</pre>
-    <p>The <code>LinkStyle</code> interface must also be implemented
-    by this element; the <span>styling processing model</span> defines
-    how. <a href="#refsCSSOM">[CSSOM]</a></p>
+};
+<span>HTMLLinkElement</span> implements <span>LinkStyle</span>;</pre>
    </dd>
   </dl>
 
@@ -10740,9 +10738,13 @@
   always return false and does nothing on setting.</p> <!-- that is
   normatively required in the definition of dom-linkstyle-disabled -->
 
+  <p>The <code>LinkStyle</code> interface is also be implemented by
+  this element; the <span>styling processing model</span> defines
+  how. <a href="#refsCSSOM">[CSSOM]</a></p>
 
 
 
+
   <h4 id="meta">The <dfn><code>meta</code></dfn> element</h4>
 
   <dl class="element">
@@ -11580,10 +11582,8 @@
            attribute DOMString <span title="dom-style-media">media</span>;
            attribute DOMString <span title="dom-style-type">type</span>;
            attribute boolean <span title="dom-style-scoped">scoped</span>;
-};</pre>
-    <p>The <code>LinkStyle</code> interface must also be implemented
-    by this element; the <span>styling processing model</span> defines
-    how. <a href="#refsCSSOM">[CSSOM]</a></p>
+};
+<span>HTMLStyleElement</span> implements <span>LinkStyle</span>;</pre>
    </dd>
   </dl>
 
@@ -11726,8 +11726,12 @@
   behaves as defined <span title="dom-linkstyle-disabled">for the
   alternative style sheets DOM</span>.</p>
 
+  <p>The <code>LinkStyle</code> interface is also be implemented by
+  this element; the <span>styling processing model</span> defines
+  how. <a href="#refsCSSOM">[CSSOM]</a></p>
 
 
+
   <h4 id="styling"><dfn title="styling processing model">Styling</dfn></h4>
 
   <p>The <code>link</code> and <code>style</code> elements can provide
@@ -15200,8 +15204,8 @@
    <dd><code title="attr-hyperlink-type">type</code></dd>
    <dt>DOM interface:</dt>
    <dd>
-<pre class="idl">[Stringifies=href] interface <dfn>HTMLAnchorElement</dfn> : <span>HTMLElement</span> {
-           attribute DOMString <span title="dom-a-href">href</span>;
+<pre class="idl">interface <dfn>HTMLAnchorElement</dfn> : <span>HTMLElement</span> {
+  stringifier attribute DOMString <span title="dom-a-href">href</span>;
            attribute DOMString <span title="dom-a-target">target</span>;
            attribute DOMString <span title="dom-a-ping">ping</span>;
            attribute DOMString <span title="dom-a-rel">rel</span>;
@@ -20669,7 +20673,7 @@
 };</pre>
     <div class="impl">
     <p>Depending on the type of content instantiated by the
-    <code>object</code> element, the node may also support other
+    <code>object</code> element, the node also supports other
     interfaces.</p>
     </div>
    </dd>
@@ -21498,9 +21502,7 @@
    <dd>
     <pre class="idl">[NamedConstructor=<span title="dom-Audio">Audio</span>(),
  NamedConstructor=<span title="dom-Audio-s">Audio</span>(in DOMString src)]
-interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {
-  // no members
-};</pre>
+interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
    </dd>
   </dl>
 
@@ -24723,7 +24725,7 @@
            attribute unsigned long <span title="dom-canvas-width">width</span>;
            attribute unsigned long <span title="dom-canvas-height">height</span>;
 
-  DOMString <span title="dom-canvas-toDataURL">toDataURL</span>([Optional] in DOMString type, [Variadic] in any args);
+  DOMString <span title="dom-canvas-toDataURL">toDataURL</span>(optional in DOMString type, in any... args);
 
   Object <span title="dom-canvas-getContext">getContext</span>(in DOMString contextId);
 };</pre>
@@ -25088,25 +25090,25 @@
            attribute DOMString <span title="dom-context-2d-font">font</span>; // (default 10px sans-serif)
            attribute DOMString <span title="dom-context-2d-textAlign">textAlign</span>; // "start", "end", "left", "right", "center" (default: "start")
            attribute DOMString <span title="dom-context-2d-textBaseline">textBaseline</span>; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
-  void <span title="dom-context-2d-fillText">fillText</span>(in DOMString text, in float x, in float y, [Optional] in float maxWidth);
-  void <span title="dom-context-2d-strokeText">strokeText</span>(in DOMString text, in float x, in float y, [Optional] in float maxWidth);<!-- v4DVT
-  void <span title="dom-context-2d-fillVerticalText">fillVerticalText</span>(in DOMString text, in float x, in float y, [Optional] in float maxHeight);
-  void <span title="dom-context-2d-strokeVerticalText">strokeVerticalText</span>(in DOMString text, in float x, in float y, [Optional] in float maxHeight); -->
+  void <span title="dom-context-2d-fillText">fillText</span>(in DOMString text, in float x, in float y, optional in float maxWidth);
+  void <span title="dom-context-2d-strokeText">strokeText</span>(in DOMString text, in float x, in float y, optional in float maxWidth);<!-- v4DVT
+  void <span title="dom-context-2d-fillVerticalText">fillVerticalText</span>(in DOMString text, in float x, in float y, optional in float maxHeight);
+  void <span title="dom-context-2d-strokeVerticalText">strokeVerticalText</span>(in DOMString text, in float x, in float y, optional in float maxHeight); -->
   <span>TextMetrics</span> <span title="dom-context-2d-measureText">measureText</span>(in DOMString text);
 
   // drawing images
-  void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLImageElement</span> image, in float dx, in float dy, [Optional] in float dw, in float dh);
+  void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLImageElement</span> image, in float dx, in float dy, optional in float dw, in float dh);
   void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLImageElement</span> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
-  void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLCanvasElement</span> image, in float dx, in float dy, [Optional] in float dw, in float dh);
+  void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLCanvasElement</span> image, in float dx, in float dy, optional in float dw, in float dh);
   void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLCanvasElement</span> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
-  void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLVideoElement</span> image, in float dx, in float dy, [Optional] in float dw, in float dh);
+  void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLVideoElement</span> image, in float dx, in float dy, optional in float dw, in float dh);
   void <span title="dom-context-2d-drawImage">drawImage</span>(in <span>HTMLVideoElement</span> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
 
   // pixel manipulation
   <span>ImageData</span> <span title="dom-context-2d-createImageData">createImageData</span>(in float sw, in float sh);
   <span>ImageData</span> <span title="dom-context-2d-createImageData">createImageData</span>(in <span>ImageData</span> imagedata);
   <span>ImageData</span> <span title="dom-context-2d-getImageData">getImageData</span>(in float sx, in float sy, in float sw, in float sh);
-  void <span title="dom-context-2d-putImageData">putImageData</span>(in <span>ImageData</span> imagedata, in float dx, in float dy, [Optional] in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight);
+  void <span title="dom-context-2d-putImageData">putImageData</span>(in <span>ImageData</span> imagedata, in float dx, in float dy, optional in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight);
 };
 
 interface <dfn>CanvasGradient</dfn> {
@@ -25128,9 +25130,10 @@
   readonly attribute <span>CanvasPixelArray</span> <span title="dom-imagedata-data">data</span>;
 };
 
-[<span title="dom-CanvasPixelArray-get">IndexGetter</span>, <span title="dom-CanvasPixelArray-set">IndexSetter</span>]
 interface <dfn>CanvasPixelArray</dfn> {
   readonly attribute unsigned long <span title="dom-canvaspixelarray-length">length</span>;
+  <span title="dom-CanvasPixelArray-get">getter</span> unsigned short (in unsigned long index);
+  <span title="dom-CanvasPixelArray-set">setter</span> void (in unsigned long index, in unsigned short value);
 };</pre>
 
   <dl class="domintro">
@@ -28387,11 +28390,11 @@
    <dd><code title="attr-hyperlink-type">type</code></dd>
    <dt>DOM interface:</dt>
    <dd>
-<pre class="idl">[Stringifies=href] interface <dfn>HTMLAreaElement</dfn> : <span>HTMLElement</span> {
+<pre class="idl">interface <dfn>HTMLAreaElement</dfn> : <span>HTMLElement</span> {
            attribute DOMString <span title="dom-area-alt">alt</span>;
            attribute DOMString <span title="dom-area-coords">coords</span>;
            attribute DOMString <span title="dom-area-shape">shape</span>;
-           attribute DOMString <span title="dom-area-href">href</span>;
+  stringifier attribute DOMString <span title="dom-area-href">href</span>;
            attribute DOMString <span title="dom-area-target">target</span>;
            attribute DOMString <span title="dom-area-ping">ping</span>;
            attribute DOMString <span title="dom-area-rel">rel</span>;
@@ -29125,7 +29128,7 @@
   readonly attribute <span>HTMLCollection</span> <span title="dom-table-tBodies">tBodies</span>;
   <span>HTMLElement</span> <span title="dom-table-createTBody">createTBody</span>();
   readonly attribute <span>HTMLCollection</span> <span title="dom-table-rows">rows</span>;
-  <span>HTMLElement</span> <span title="dom-table-insertRow">insertRow</span>([Optional] in long index);
+  <span>HTMLElement</span> <span title="dom-table-insertRow">insertRow</span>(optional in long index);
   void <span title="dom-table-deleteRow">deleteRow</span>(in long index);
 };</pre>
    </dd>
@@ -29892,7 +29895,7 @@
    <dd>
     <pre class="idl">interface <dfn>HTMLTableSectionElement</dfn> : <span>HTMLElement</span> {
   readonly attribute <span>HTMLCollection</span> <span title="dom-tbody-rows">rows</span>;
-  <span>HTMLElement</span> <span title="dom-tbody-insertRow">insertRow</span>([Optional] in long index);
+  <span>HTMLElement</span> <span title="dom-tbody-insertRow">insertRow</span>(optional in long index);
   void <span title="dom-tbody-deleteRow">deleteRow</span>(in long index);
 };</pre>
     <p>The <code>HTMLTableSectionElement</code> interface is also
@@ -30078,7 +30081,7 @@
   readonly attribute long <span title="dom-tr-rowIndex">rowIndex</span>;
   readonly attribute long <span title="dom-tr-sectionRowIndex">sectionRowIndex</span>;
   readonly attribute <span>HTMLCollection</span> <span title="dom-tr-cells">cells</span>;
-  <span>HTMLElement</span> <span title="dom-tr-insertCell">insertCell</span>([Optional] in long index);
+  <span>HTMLElement</span> <span title="dom-tr-insertCell">insertCell</span>(optional in long index);
   void <span title="dom-tr-deleteCell">deleteCell</span>(in long index);
 };</pre>
    </dd>
@@ -31919,7 +31922,7 @@
    <dd><code title="attr-fs-target">target</code></dd>
    <dt>DOM interface:</dt>
    <dd>
-<pre class="idl">[Callable=<span title="dom-form-namedItem">namedItem</span>]
+<pre class="idl">[OverrideBuiltins]
 interface <dfn>HTMLFormElement</dfn> : <span>HTMLElement</span> {
            attribute DOMString <span title="dom-form-acceptCharset">acceptCharset</span>;
            attribute DOMString <span title="dom-fs-action">action</span>;
@@ -31932,8 +31935,8 @@
 
   readonly attribute <span>HTMLFormControlsCollection</span> <span title="dom-form-elements">elements</span>;
   readonly attribute long <span title="dom-form-length">length</span>;
-  [IndexGetter] any <span title="dom-form-item">item</span>(in unsigned long index);
-  [NameGetter=OverrideBuiltins] any <span title="dom-form-namedItem">namedItem</span>(in DOMString name);
+  caller getter any <span title="dom-form-item">item</span>(in unsigned long index);
+  caller getter any <span title="dom-form-namedItem">namedItem</span>(in DOMString name);
 
   void <span title="dom-form-submit">submit</span>();
   void <span title="dom-form-reset">reset</span>();
@@ -32015,6 +32018,7 @@
 
    <dt><var title="">element</var> = <var title="">form</var> . <code title="dom-form-item">item</code>(<var title="">index</var>)</dt>
    <dt><var title="">form</var>[<var title="">index</var>]</dt>
+   <dt><var title="">form</var>(<var title="">index</var>)</dt>
 
    <dd>
 
@@ -32025,6 +32029,7 @@
 
    <dt><var title="">element</var> = <var title="">form</var> . <code title="dom-form-namedItem">namedItem</code>(<var title="">name</var>)</dt>
    <dt><var title="">form</var>[<var title="">name</var>]</dt>
+   <dt><var title="">form</var>(<var title="">name</var>)</dt>
 
    <dd>
 
@@ -38182,8 +38187,7 @@
    <dd><code title="attr-select-size">size</code></dd>
    <dt>DOM interface:</dt>
    <dd>
-<pre class="idl">[Callable=<span title="dom-select-namedItem">namedItem</span>]
-interface <dfn>HTMLSelectElement</dfn> : <span>HTMLElement</span> {
+<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>;
@@ -38195,9 +38199,9 @@
 
   readonly attribute <span>HTMLOptionsCollection</span> <span title="dom-select-options">options</span>;
            attribute unsigned long <span title="dom-select-length">length</span>;
-  [IndexGetter] any <span title="dom-select-item">item</span>(in unsigned long index);
-  [NameGetter] any <span title="dom-select-namedItem">namedItem</span>(in DOMString name);
-  void <span title="dom-select-add">add</span>(in <span>HTMLElement</span> element, [Optional] in <span>HTMLElement</span> before);
+  caller getter any <span title="dom-select-item">item</span>(in unsigned long index);
+  caller getter any <span title="dom-select-namedItem">namedItem</span>(in DOMString name);
+  void <span title="dom-select-add">add</span>(in <span>HTMLElement</span> element, optional in <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);
 
@@ -38389,6 +38393,7 @@
 
    <dt><var title="">element</var> = <var title="">select</var> . <code title="dom-select-item">item</code>(<var title="">index</var>)</dt>
    <dt><var title="">select</var>[<var title="">index</var>]</dt>
+   <dt><var title="">select</var>(<var title="">index</var>)</dt>
    <dd>
     <p>Returns the item with index <var title="">index</var> from the <span title="concept-select-option-list">list of options</span>. The items are sorted in <span>tree order</span>.</p>
     <p>Returns null if <var title="">index</var> is out of range.</p>
@@ -38396,6 +38401,7 @@
 
    <dt><var title="">element</var> = <var title="">select</var> . <code title="dom-select-item">namedItem</code>(<var title="">name</var>)</dt>
    <dt><var title="">select</var>[<var title="">name</var>]</dt>
+   <dt><var title="">select</var>(<var title="">name</var>)</dt>
    <dd>
     <p>Returns the item with ID or <code title="attr-option-name">name</code> <var title="">name</var> from the <span title="concept-select-option-list">list of options</span>.</p>
     <p>If there are multiple matching items, then a <code>NodeList</code> object containing all those elements is returned.</p>
@@ -41893,7 +41899,7 @@
   readonly attribute <span>DataGridSelection</span> <span title="dom-datagrid-selection">selection</span>;
 - ->
   // columns
-  void <span title="dom-datagrid-addColumn">addColumn</span>(in <span>Column</span> id, in DOMString label, in DOMString type, [Optional] in HTMLImageElement icon, [Optional] in boolean sortable, [Optional] in boolean hidden);
+  void <span title="dom-datagrid-addColumn">addColumn</span>(in <span>Column</span> id, in DOMString label, in DOMString type, optional in HTMLImageElement icon, optional in boolean sortable, optional in boolean hidden);
            attribute DOMString <span title="dom-datagrid-sortColumn">sortColumn</span>;
            attribute boolean <span title="dom-datagrid-sortAscending">sortAscending</span>;
   void <span title="dom-datagrid-clearColumns">clearColumns</span>();
@@ -41916,9 +41922,9 @@
 
 typedef DOMString <dfn>Column</dfn>;
 typedef sequence<<span>Column</span>> <dfn>ColumnList</dfn>;
-typedef sequence<any> <dfn>Cell</dfn>; // <span>Column</span>, [Variadic] any (exact types expected depend on the column type)
+typedef sequence<any> <dfn>Cell</dfn>; // <span>Column</span>, any... (exact types expected depend on the column type)
 typedef sequence<<span>Cell</span>> <dfn>CellList</dfn>;
-typedef sequence<any> <dfn>Row</dfn>; // <span>RowID</span>, long, long, <span>CellList</span>, [Optional] boolean, [Optional] long
+typedef sequence<any> <dfn>Row</dfn>; // <span>RowID</span>, long, long, <span>CellList</span>, optional boolean, optional long
 typedef sequence<<span>Row</span>> <dfn>RowList</dfn>;
 typedef sequence<unsigned long> <dfn>RowID</dfn>;
 typedef sequence<<span>RowID</span>> <dfn>RowIDList</dfn>;
@@ -44181,7 +44187,8 @@
   implementation(s).</i></p>
 
   <pre class="idl">// To be implemented by Web authors as a JS object
-[NoInterfaceObject] interface <dfn>DataGridListener</dfn> {
+[NoInterfaceObject]
+interface <dfn>DataGridListener</dfn> {
   void <span title="dom-listener-initialize">initialize</span>(in <span>HTMLDataGridElement</span> datagrid);
 
   void <span title="dom-listener-getRows">getRows</span>(in unsigned long rowIndex, in unsigned long rowCount, in <span>RowID</span> parentRow, in unsigned long position, in <span>ColumnList</span> columns);
@@ -44348,7 +44355,7 @@
 
   <pre class="idl">interface <dfn>DataGridSelection</dfn> {
   readonly attribute unsigned long <span title="dom-DataGridSelection-length">length</span>;
-  [IndexGetter] <span>RowID</span> <span title="dom-DataGridSelection-item">item</span>(in unsigned long index);
+  getter <span>RowID</span> <span title="dom-DataGridSelection-item">item</span>(in unsigned long index);
   boolean <span title="dom-DataGridSelection-isSelected">isSelected</span>(in <span>RowID</span> row);
   void <span title="dom-DataGridSelection-setSelected">setSelected</span>(in <span>RowID</span> row, in boolean selected);
   void <span title="dom-DataGridSelection-selectAll">selectAll</span>();
@@ -52365,7 +52372,7 @@
 
   <h3>The <code>Window</code> object</h3>
 
-  <pre class="idl">[<span title="dom-window-item">IndexGetter</span>, <span title="dom-window-namedItem">NameGetter</span>=OverrideBuiltins]
+  <pre class="idl">[OverrideBuiltins]
 interface <dfn>Window</dfn> {
   // the current browsing context
   readonly attribute <span>WindowProxy</span> <span title="dom-window">window</span>;
@@ -52393,7 +52400,9 @@
   [Replaceable] readonly 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>;
-  <span>WindowProxy</span> <span title="dom-open">open</span>([Optional] in DOMString url, [Optional] in DOMString target, [Optional] in DOMString features, [Optional] in DOMString replace);
+  <span>WindowProxy</span> <span title="dom-open">open</span>(optional in DOMString url, optional in DOMString target, optional in DOMString features, optional in DOMString replace);
+  <span title="dom-window-item">getter</span> <span>WindowProxy</span> (in unsigned long index);
+  <span title="dom-window-namedItem">getter</span> <span>WindowProxy</span> (in DOMString name);
 
   // the user agent
   readonly attribute <span>Navigator</span> <span title="dom-navigator">navigator</span>; <!-- IE also has window.clientInformation === window.navigator -->
@@ -52402,9 +52411,9 @@
   // 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, [Optional] in DOMString default);
+  DOMString <span title="dom-prompt">prompt</span>(in DOMString message, optional in DOMString default);
   void <span title="dom-print">print</span>();
-  any <span title="dom-showModalDialog">showModalDialog</span>(in DOMString url, [Optional] in any argument<!--, [Optional] in DOMString features-->);
+  any <span title="dom-showModalDialog">showModalDialog</span>(in DOMString url, optional in any argument<!--, optional in DOMString features-->);
 
   // <span>cross-document messaging</span>
   void <span title="dom-window-postMessage-2">postMessage</span>(in any message, in DOMString targetOrigin);
@@ -54605,7 +54614,7 @@
 
   <pre class="idl">[Callback=FunctionOnly, NoInterfaceObject]
 interface <dfn>Function</dfn> {
-  any <span title="dom-function-call">call</span>([Variadic] in any arguments);
+  any <span title="dom-function-call">call</span>(in any... arguments);
 };</pre>
 
   <p>The <dfn title="dom-function-call"><code>call(...)</code></dfn>
@@ -54893,13 +54902,14 @@
   and <code title="dom-windowtimers-setInterval">setInterval()</code>
   methods allow authors to schedule timer-based callbacks.</p>
 
-<!-- HereBeDragons is just meant to prevent this from compiling in random Web IDL implementations -->
-<pre class="idl">[HereBeDragons, NoInterfaceObject] interface <dfn>WindowTimers</dfn> {
-  long <span title="dom-windowtimers-setTimeout">setTimeout</span>(in any handler, [Optional] in any timeout, [Variadic] in any args);
+<pre class="idl">[Supplemental, NoInterfaceObject]
+interface <dfn>WindowTimers</dfn> {
+  long <span title="dom-windowtimers-setTimeout">setTimeout</span>(in any handler, optional in any timeout, in any... args);
   void <span title="dom-windowtimers-clearTimeout">clearTimeout</span>(in long handle);
-  long <span title="dom-windowtimers-setInterval">setInterval</span>(in any handler, [Optional] in any timeout, [Variadic] in any args);
+  long <span title="dom-windowtimers-setInterval">setInterval</span>(in any handler, optional in any timeout, in any... args);
   void <span title="dom-windowtimers-clearInterval">clearInterval</span>(in long handle);
-};</pre>
+};
+<span>Window</span> implements <span>WindowTimers</span>;</pre>
 
   <dl class="domintro">
 
@@ -54951,10 +54961,9 @@
 
   <div class="impl">
 
-  <p>The <code>WindowTimers</code> interface must be implemented by
-  objects implementing the <code>Window</code> object. (It is also
-  implemented by objects implementing the <code>WorkerUtils</code>
-  interface as part of Web Workers.)</p>
+  <p class="note">The <code>WindowTimers</code> interfaceadds to the
+  <code>Window</code> interface and the <code>WorkerUtils</code>
+  interface (part of Web Workers).</p>
 
   <p>Each object that implements the <code>WindowTimers</code>
   interface has a <dfn>list of active timeouts</dfn> and a <dfn>list
@@ -55581,15 +55590,16 @@
 
   <p>The <code>Window</code> objects of <code>Document</code>s hosted
   by <span title="browsing context">browsing contexts</span> created
-  by the above algorithm must all implement the
-  <code>WindowModal</code> interface:</p>
+  by the above algorithm must all have the <code>WindowModal</code>
+  interface added to their <code>Window</code> interface:</p>
 
   </div>
 
-  <pre class="idl">[NoInterfaceObject, ImplementedOn=<span>Window</span>, Supplemental] interface <dfn>WindowModal</dfn> {
+  <pre class="idl">[Supplemental, NoInterfaceObject] interface <dfn>WindowModal</dfn> {
   readonly attribute any <span title="dom-WindowModal-dialogArguments">dialogArguments</span>;
            attribute DOMString <span title="dom-WindowModal-returnValue">returnValue</span>;
-};</pre>
+};
+<span>Window</span> implements <span>WindowModal</span>; /* sometimes */</pre>
 
   <dl class="domintro">
 
@@ -55674,8 +55684,12 @@
   <pre class="idl">interface <dfn>Navigator</dfn> {
   // objects implementing this interface also implement the interfaces given below
 };
+<span>Navigator</span> implements <span>NavigatorID</span>;
+<span>Navigator</span> implements <span>NavigatorOnLine</span>;
+<span>Navigator</span> implements <span>NavigatorAbilities</span>;
 
-[NoInterfaceObject, ImplementedOn=<span>Navigator</span>] interface <dfn>NavigatorID</dfn> {<!--
+[Supplemental, NoInterfaceObject]
+interface <dfn>NavigatorID</dfn> {<!--
   readonly attribute DOMString <span title="dom-navigator-appCodeName">appCodeName</span>;-->
   readonly attribute DOMString <span title="dom-navigator-appName">appName</span>;
   readonly attribute DOMString <span title="dom-navigator-appVersion">appVersion</span>;
@@ -55683,11 +55697,13 @@
   readonly attribute DOMString <span title="dom-navigator-userAgent">userAgent</span>;
 };
 
-[NoInterfaceObject, ImplementedOn=<span>Navigator</span>] interface <dfn>NavigatorOnLine</dfn> {
+[Supplemental, NoInterfaceObject]
+interface <dfn>NavigatorOnLine</dfn> {
   readonly attribute boolean <span title="dom-navigator-onLine">onLine</span>;
 };
 
-[NoInterfaceObject, ImplementedOn=<span>Navigator</span>] interface <dfn>NavigatorAbilities</dfn> {
+[Supplemental, NoInterfaceObject]
+interface <dfn>NavigatorAbilities</dfn> {
   // content handler registration
   void <span title="dom-navigator-registerProtocolHandler">registerProtocolHandler</span>(in DOMString scheme, in DOMString url, in DOMString title);
   void <span title="dom-navigator-registerContentHandler">registerContentHandler</span>(in DOMString mimeType, in DOMString url, in DOMString title);
@@ -58027,7 +58043,6 @@
            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>;
-
 };</pre>
 
   <dl class="domintro">
@@ -58394,10 +58409,10 @@
 
   <pre class="idl">interface <dfn>History</dfn> {
   readonly attribute long <span title="dom-history-length">length</span>;
-  void <span title="dom-history-go">go</span>([Optional] in long delta);
+  void <span title="dom-history-go">go</span>(optional in long delta);
   void <span title="dom-history-back">back</span>();
   void <span title="dom-history-forward">forward</span>();
-  void <span title="dom-history-pushState">pushState</span>(in any data, in DOMString title, [Optional] in DOMString url);
+  void <span title="dom-history-pushState">pushState</span>(in any data, in DOMString title, optional in DOMString url);
   void <span title="dom-history-clearState">clearState</span>();
 };</pre>
 
@@ -60206,10 +60221,10 @@
 
   <pre class="idl">interface <dfn>Storage</dfn> {
   readonly attribute unsigned long <span title="dom-Storage-length">length</span>;
-  [IndexGetter] any <span title="dom-Storage-key">key</span>(in unsigned long index);
-  [NameGetter] any <span title="dom-Storage-getItem">getItem</span>(in DOMString key);
-  [NameSetter, NameCreator] void <span title="dom-Storage-setItem">setItem</span>(in DOMString key, in any data);
-  [NameDeleter] void <span title="dom-Storage-removeItem">removeItem</span>(in DOMString key);
+  getter any <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 data);
+  deleter void <span title="dom-Storage-removeItem">removeItem</span>(in DOMString key);
   void <span title="dom-Storage-clear">clear</span>();
 };</pre>
 
@@ -60340,9 +60355,11 @@
 
   <h5>The <code title="dom-sessionStorage">sessionStorage</code> attribute</h5>
 
-  <pre class="idl">[Supplemental] interface <span>Window</span> {
+  <pre class="idl">[Supplemental, NoInterfaceObject]
+interface <span>WindowSessionStorage</span> {
   readonly attribute <span>Storage</span> <span title="dom-sessionStorage">sessionStorage</span>;
-};</pre>
+};
+<span>Window</span> implements <span>WindowSessionStorage</span>;</pre>
 
   <p>The <dfn
   title="dom-sessionStorage"><code>sessionStorage</code></dfn>
@@ -60411,9 +60428,11 @@
 
   <h5>The <code title="dom-localStorage">localStorage</code> attribute</h5>
 
-  <pre class="idl">[Supplemental] interface <span>Window</span> {
+  <pre class="idl">[Supplemental, NoInterfaceObject]
+interface <span>WindowLocalStorage</span> {
   readonly attribute <span>Storage</span> <span title="dom-localStorage">localStorage</span>;
-};</pre>
+};
+<span>Window</span> implements <span>WindowLocalStorage</span>;</pre>
 
   <p>The <dfn title="dom-localStorage"><code>localStorage</code></dfn>
   object provides a <code>Storage</code> object for an
@@ -60634,14 +60653,18 @@
   another browser window) trying to write to a database with incorrect
   assumptions.</p>
 
-  <pre class="idl">[Supplemental] interface <span>Window</span> {
+  <pre class="idl">[Supplemental, NoInterfaceObject]
+interface <span>WindowDatabase</span> {
   <span>Database</span> <span title="dom-opendatabase">openDatabase</span>(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize);
 };
+<span>Window</span> implements <span>WindowDatabase</span>;
 
-[Supplemental] interface <span>WorkerUtils</span> {
+[Supplemental, NoInterfaceObject]
+interface <span>WorkerUtilsDatabase</span> {
   <span>Database</span> <span title="dom-opendatabase">openDatabase</span>(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize);
   <span>DatabaseSync</span> <span title="dom-opendatabase-sync">openDatabaseSync</span>(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize);
-};</pre>
+};
+<span>WorkerUtils</span> implements <span>WorkerUtilsDatabase</span>;</pre>
 
   <p>The <dfn
   title="dom-opendatabase"><code>openDatabase()</code></dfn> method on
@@ -60822,8 +60845,8 @@
   <h5>Asynchronous database API</h5>
 
   <pre class="idl">interface <dfn>Database</dfn> {
-  void <span title="dom-database-transaction">transaction</span>(in <span>SQLTransactionCallback</span> callback, [Optional] in <span>SQLTransactionErrorCallback</span> errorCallback, [Optional] in <span>SQLVoidCallback</span> successCallback);
-  void <span title="dom-database-readTransaction">readTransaction</span>(in <span>SQLTransactionCallback</span> callback, [Optional] in <span>SQLTransactionErrorCallback</span> errorCallback, [Optional] in <span>SQLVoidCallback</span> successCallback);
+  void <span title="dom-database-transaction">transaction</span>(in <span>SQLTransactionCallback</span> callback, optional in <span>SQLTransactionErrorCallback</span> errorCallback, optional in <span>SQLVoidCallback</span> successCallback);
+  void <span title="dom-database-readTransaction">readTransaction</span>(in <span>SQLTransactionCallback</span> callback, optional in <span>SQLTransactionErrorCallback</span> errorCallback, optional in <span>SQLVoidCallback</span> successCallback);
 
   readonly attribute DOMString <span title="dom-database-version">version</span>;
   void <span title="dom-database-changeVersion">changeVersion</span>(in DOMString oldVersion, in DOMString newVersion, in <span>SQLTransactionCallback</span> callback, in <span>SQLTransactionErrorCallback</span> errorCallback, in <span>SQLVoidCallback</span> successCallback);
@@ -60918,7 +60941,7 @@
   <pre class="idl">typedef sequence<any> <dfn>ObjectArray</dfn>;
 
 interface <dfn>SQLTransaction</dfn> {
-  void <span title="dom-sqltransaction-executeSql">executeSql</span>(in DOMString sqlStatement, [Optional] in <span>ObjectArray</span> arguments, [Optional] in <span>SQLStatementCallback</span> callback, [Optional] in <span>SQLStatementErrorCallback</span> errorCallback);
+  void <span title="dom-sqltransaction-executeSql">executeSql</span>(in DOMString sqlStatement, optional in <span>ObjectArray</span> arguments, optional in <span>SQLStatementCallback</span> callback, optional in <span>SQLStatementErrorCallback</span> errorCallback);
 };
 
 [Callback=FunctionOnly, NoInterfaceObject]
@@ -61219,7 +61242,7 @@
   <pre class="idl">// typedef sequence<any> <span>ObjectArray</span>;
 
 interface <dfn>SQLTransactionSync</dfn> {
-  <span>SQLResultSet</span> <span title="dom-sqltransaction-sync-executeSql">executeSql</span>(in DOMString sqlStatement, [Optional] in <span>ObjectArray</span> arguments);
+  <span>SQLResultSet</span> <span title="dom-sqltransaction-sync-executeSql">executeSql</span>(in DOMString sqlStatement, optional in <span>ObjectArray</span> arguments);
   void <span title="dom-sqltransaction-sync-commit">commit</span>();
   void <span title="dom-sqltransaction-sync-rollback">rollback</span>();
 };</pre>
@@ -61353,7 +61376,7 @@
 
   <pre class="idl">interface <dfn>SQLResultSetRowList</dfn> {
   readonly attribute unsigned long <span title="dom-SQLResultSetRowList-length">length</span>;
-  [IndexGetter] <span>any</span> <span title="dom-SQLResultSetRowList-item">item</span>(in unsigned long index);
+  getter <span>any</span> <span title="dom-SQLResultSetRowList-item">item</span>(in unsigned long index);
 };</pre>
 
   <p class="note">Implementors are encouraged to implement
@@ -64209,7 +64232,7 @@
 
   </div>
 
-  <pre class="idl">[<span title="dom-selection-toString">Stringifies</span>] interface <dfn>Selection</dfn> {
+  <pre class="idl">interface <dfn>Selection</dfn> {
   readonly attribute Node <span title="dom-selection-anchorNode">anchorNode</span>;
   readonly attribute long <span title="dom-selection-anchorOffset">anchorOffset</span>;
   readonly attribute Node <span title="dom-selection-focusNode">focusNode</span>;
@@ -64225,6 +64248,7 @@
   void <span title="dom-selection-addRange">addRange</span>(in Range range);
   void <span title="dom-selection-removeRange">removeRange</span>(in Range range);
   void <span title="dom-selection-removeAllRanges">removeAllRanges</span>();
+  <span title="dom-selection-toString">stringifier</span> DOMString ();
 };</pre>
 <!--
   See also:
@@ -65439,7 +65463,7 @@
            attribute DOMString <span title="dom-DataTransfer-effectAllowed">effectAllowed</span>;
 
   readonly attribute DOMStringList <span title="dom-DataTransfer-types">types</span>;
-  void <span title="dom-DataTransfer-clearData">clearData</span>([Optional] in DOMString format);
+  void <span title="dom-DataTransfer-clearData">clearData</span>(optional in DOMString format);
   void <span title="dom-DataTransfer-setData">setData</span>(in DOMString format, in DOMString data);
   DOMString <span title="dom-DataTransfer-getData">getData</span>(in DOMString format);
   readonly attribute <span>FileList</span> <span title="dom-DataTransfer-files">files</span>;
@@ -66768,7 +66792,7 @@
 
   <pre class="idl">interface <dfn>UndoManager</dfn> {
   readonly attribute unsigned long <span title="dom-UndoManager-length">length</span>;
-  [IndexGetter] any <span title="dom-UndoManager-item">item</span>(in unsigned long index);
+  getter any <span title="dom-UndoManager-item">item</span>(in unsigned long index);
   readonly attribute unsigned long <span title="dom-UndoManager-position">position</span>;
   unsigned long <span title="dom-UndoManager-add">add</span>(in any data, in DOMString title);
   void <span title="dom-UndoManager-remove">remove</span>(in unsigned long index);
@@ -67924,12 +67948,12 @@
   <pre class="idl">interface <dfn>WorkerGlobalScope</dfn> {
   readonly attribute <span>WorkerGlobalScope</span> <span title="dom-WorkerGlobalScope-self">self</span>;
   readonly attribute <span>WorkerLocation</span> <span title="dom-WorkerGlobalScope-location">location</span>;
-  // also implements everything on <span>WorkerUtils</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>;
-};</pre>
+};
+<span>WorkerGlobalScope</span> implements <span>WorkerUtils</span>;</pre>
 
   <p>Objects implementing the <code>WorkerGlobalScope</code> interface
   must also implement the <code>EventTarget</code> interface.</p>
@@ -67989,8 +68013,9 @@
 
   <h5>Dedicated workers and the <code>DedicatedWorkerGlobalScope</code> interface</h5>
 
-  <pre class="idl">[NoInterfaceObject, Supplemental] interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
-  void <span title="dom-DedicatedWorkerGlobalScope-postMessage">postMessage</span>(in any message, [Optional] in <span>MessagePortArray</span> ports);<!--
+  <pre class="idl">[Supplemental, NoInterfaceObject]
+interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
+  void <span title="dom-DedicatedWorkerGlobalScope-postMessage">postMessage</span>(in any message, optional in <span>MessagePortArray</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>;
 };</pre>
@@ -68035,7 +68060,8 @@
 
   <h5>Shared workers and the <code>SharedWorkerGlobalScope</code> inteface</h5>
 
-  <pre class="idl">[NoInterfaceObject, Supplemental] interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
+  <pre class="idl">[Supplemental, NoInterfaceObject]
+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>;
@@ -68703,7 +68729,7 @@
 interface <dfn>Worker</dfn> : <span>AbstractWorker</span> {
   void <span title="dom-Worker-terminate">terminate</span>();
 
-  void <span title="dom-Worker-postMessage">postMessage</span>(in any message, [Optional] in <span>MessagePortArray</span> ports);<!--
+  void <span title="dom-Worker-postMessage">postMessage</span>(in any message, optional in <span>MessagePortArray</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>;
 };</pre>
@@ -69072,10 +69098,12 @@
 
   <h3>APIs available to workers</h3>
 
-  <pre class="idl">[NoInterfaceObject, ImplementedOn=WorkerGlobalScope, Supplemental] interface <dfn>WorkerUtils</dfn> {
-  void <span title="dom-WorkerGlobalScope-importScripts">importScripts</span>([Variadic] in DOMString urls);
+  <pre class="idl">[Supplemental, NoInterfaceObject]
+interface <dfn>WorkerUtils</dfn> {
+  void <span title="dom-WorkerGlobalScope-importScripts">importScripts</span>(in DOMString... urls);
   readonly attribute <span title="worker-Navigator">Navigator</span> <span title="dom-worker-navigator">navigator</span>;
-};</pre>
+};
+// implemented by <span>WorkerGlobalScope</span></pre>
 
   <p>Objects that implement the <code>WorkerGlobalScope</code>
   interface must also implement the <code>WorkerUtils</code>
@@ -69208,15 +69236,14 @@
   represents the identity and state of the user agent (the
   client):</p>
 
-  <pre class="idl">interface <dfn title="worker-Navigator">Navigator</dfn> {
-  // objects implementing this interface also implement the interfaces listed below
-};</pre>
+  <pre class="idl">interface <dfn title="worker-Navigator">Navigator</dfn> {};
+<span title="worker-Navigator">Navigator</span> implements <span>NavigatorID</span>;
+<span title="worker-Navigator">Navigator</span> implements <span>NavigatorOnLine</span>;</pre>
 
   <p>Objects implementing the <code
-  title="worker-Navigator">Navigator</code> interface must also
-  implement the <span>NavigatorID</span> and
-  <span>NavigatorOnLine</span> interfaces. <a
-  href="#refsHTML5">[HTML5]</a></p>
+  title="worker-Navigator">Navigator</code> interface also implement
+  the <code>NavigatorID</code> and <code>NavigatorOnLine</code>
+  interfaces. <a href="#refsHTML5">[HTML5]</a></p>
 
   <p class="note">The <code title="worker-Navigator">Navigator</code>
   interface defined in this specification is different than the one
@@ -70201,7 +70228,7 @@
 
   <h4>The <code>WebSocket</code> interface</h4>
 
-  <pre class="idl">[<span title="dom-WebSocket">Constructor</span>(in DOMString url, [Optional] in DOMString protocol)]
+  <pre class="idl">[<span title="dom-WebSocket">Constructor</span>(in DOMString url, optional in DOMString protocol)]
 interface <dfn>WebSocket</dfn> {
   readonly attribute DOMString <span title="dom-WebSocket-URL">URL</span>;
 
@@ -72306,7 +72333,7 @@
 
 interface <dfn>MessagePort</dfn> {
 <!-- v2-onclose  readonly attribute boolean <span title="dom-MessagePort-active">active</span>;
--->  void <span title="dom-MessagePort-postMessage">postMessage</span>(in any message, [Optional] in <span>MessagePortArray</span> ports);<!--
+-->  void <span title="dom-MessagePort-postMessage">postMessage</span>(in any message, optional in <span>MessagePortArray</span> ports);<!--
   <span>MessagePort</span> <span title="dom-MessagePort-startConversation">startConversation</span>(in any message);-->
   void <span title="dom-MessagePort-start">start</span>();
   void <span title="dom-MessagePort-close">close</span>();
@@ -84965,7 +84992,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLAnchorElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLAnchorElement</span> {
            attribute DOMString <span title="dom-a-coords">coords</span>;
            attribute DOMString <span title="dom-a-charset">charset</span>;
            attribute DOMString <span title="dom-a-rev">rev</span>;
@@ -84981,7 +85009,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLAreaElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLAreaElement</span> {
            attribute boolean <span title="dom-area-noHref">noHref</span>;
 };</pre>
 
@@ -85009,7 +85038,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLBodyElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLBodyElement</span> {
            attribute DOMString <span title="dom-body-text">text</span>;
            attribute DOMString <span title="dom-body-bgColor">bgColor</span>;
            attribute DOMString <span title="dom-body-background">background</span>;
@@ -85054,7 +85084,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLBRElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLBRElement</span> {
            attribute DOMString <span title="dom-br-clear">clear</span>;
 };</pre>
 
@@ -85064,7 +85095,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLTableCaptionElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLTableCaptionElement</span> {
            attribute DOMString <span title="dom-caption-align">align</span>;
 };</pre>
 
@@ -85074,7 +85106,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLTableColElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLTableColElement</span> {
            attribute DOMString <span title="dom-col-align">align</span>;
            attribute DOMString <span title="dom-col-ch">ch</span>;
            attribute DOMString <span title="dom-col-chOff">chOff</span>;
@@ -85120,7 +85153,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLDivElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLDivElement</span> {
            attribute DOMString <span title="dom-div-align">align</span>;
 };</pre>
 
@@ -85130,7 +85164,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLDListElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLDListElement</span> {
            attribute DOMString <span title="dom-dl-compact">compact</span>;
 };</pre>
 
@@ -85157,7 +85192,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLHeadingElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLHeadingElement</span> {
            attribute DOMString <span title="dom-hx-align">align</span>;
 };</pre>
 
@@ -85167,7 +85203,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLHeadElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLHeadElement</span> {
            attribute DOMString <span title="dom-head-profile">profile</span>;
 };</pre>
 
@@ -85177,7 +85214,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLHRElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLHRElement</span> {
            attribute DOMString <span title="dom-hr-align">align</span>;
            attribute boolean <span title="dom-hr-noShade">noShade</span>;
            attribute DOMString <span title="dom-hr-size">size</span>;
@@ -85197,7 +85235,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLHtmlElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLHtmlElement</span> {
            attribute DOMString <span title="dom-html-version">version</span>;
 };</pre>
 
@@ -85207,7 +85246,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLIFrameElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLIFrameElement</span> {
            attribute DOMString <span title="dom-iframe-align">align</span>;
            attribute DOMString <span title="dom-iframe-frameBorder">frameBorder</span>;
            attribute DOMString <span title="dom-iframe-longDesc">longDesc</span>;
@@ -85250,7 +85290,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLImageElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLImageElement</span> {
            attribute DOMString <span title="dom-img-name">name</span>;
            attribute DOMString <span title="dom-img-align">align</span>;
            attribute DOMString <span title="dom-img-border">border</span>;
@@ -85274,7 +85315,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLInputElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLInputElement</span> {
            attribute DOMString <span title="dom-input-align">align</span>;
            attribute DOMString <span title="dom-input-useMap">useMap</span>;
 };</pre>
@@ -85290,7 +85332,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLLegendElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLLegendElement</span> {
            attribute DOMString <span title="dom-legend-align">align</span>;
 };</pre>
 
@@ -85300,7 +85343,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLLIElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLLIElement</span> {
            attribute DOMString <span title="dom-li-type">type</span>;
 };</pre>
 
@@ -85310,7 +85354,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLLinkElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLLinkElement</span> {
            attribute DOMString <span title="dom-link-charset">charset</span>;
            attribute DOMString <span title="dom-link-rev">rev</span>;
            attribute DOMString <span title="dom-link-target">target</span>;
@@ -85329,7 +85374,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLMenuElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLMenuElement</span> {
            attribute DOMString <span title="dom-menu-compact">compact</span>;
 };</pre>
 
@@ -85339,7 +85385,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLMetaElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLMetaElement</span> {
            attribute DOMString <span title="dom-meta-scheme">scheme</span>;
 };</pre>
 
@@ -85349,7 +85396,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLObjectElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLObjectElement</span> {
            attribute DOMString <span title="dom-object-align">align</span>;
            attribute DOMString <span title="dom-object-archive">archive</span>;
            attribute DOMString <span title="dom-object-border">border</span>;
@@ -85385,7 +85433,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLOListElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLOListElement</span> {
            attribute DOMString <span title="dom-ol-compact">compact</span>;
            attribute DOMString <span title="dom-ol-type">type</span>;
 };</pre>
@@ -85397,7 +85446,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLParagraphElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLParagraphElement</span> {
            attribute DOMString <span title="dom-p-align">align</span>;
 };</pre>
 
@@ -85407,7 +85457,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLParamElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLParamElement</span> {
            attribute DOMString <span title="dom-param-type">type</span>;
            attribute DOMString <span title="dom-param-valueType">valueType</span>;
 };</pre>
@@ -85428,7 +85479,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLPreElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLPreElement</span> {
            attribute unsigned long <span title="dom-pre-width">width</span>;
 };</pre>
 
@@ -85438,7 +85490,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLScriptElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLScriptElement</span> {
            attribute DOMString <span title="dom-script-event">event</span>;
            attribute DOMString <span title="dom-script-htmlFor">htmlFor</span>;
 };</pre>
@@ -85450,7 +85503,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLTableElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLTableElement</span> {
            attribute DOMString <span title="dom-table-align">align</span>;
            attribute DOMString <span title="dom-table-bgColor">bgColor</span>;
            attribute DOMString <span title="dom-table-border">border</span>;
@@ -85488,7 +85542,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLTableSectionElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLTableSectionElement</span> {
            attribute DOMString <span title="dom-tbody-align">align</span>;
            attribute DOMString <span title="dom-tbody-ch">ch</span>;
            attribute DOMString <span title="dom-tbody-chOff">chOff</span>;
@@ -85518,7 +85573,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLTableCellElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLTableCellElement</span> {
            attribute DOMString <span title="dom-td/th-abbr">abbr</span>;
            attribute DOMString <span title="dom-td/th-align">align</span>;
            attribute DOMString <span title="dom-td/th-axis">axis</span>;
@@ -85567,7 +85623,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLTableRowElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLTableRowElement</span> {
            attribute DOMString <span title="dom-tr-align">align</span>;
            attribute DOMString <span title="dom-tr-bgColor">bgColor</span>;
            attribute DOMString <span title="dom-tr-ch">ch</span>;
@@ -85600,7 +85657,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLUListElement</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLUListElement</span> {
            attribute DOMString <span title="dom-ul-compact">compact</span>;
            attribute DOMString <span title="dom-ul-type">type</span>;
 };</pre>
@@ -85617,7 +85675,8 @@
 
   <hr>
 
-  <pre class="idl">[Supplemental] interface <span>HTMLDocument</span> {
+  <pre class="idl">[Supplemental]
+interface <span>HTMLDocument</span> {
            attribute DOMString <span title="dom-document-fgColor">fgColor</span>;
            attribute DOMString <span title="dom-document-bgColor">bgColor</span>;
            attribute DOMString <span title="dom-document-linkColor">linkColor</span>;
@@ -85793,9 +85852,11 @@
   <p>Any object implement the <code>AbstractView</code> interface must
   also implement the <code>MediaModeAbstractView</code> interface.</p>
 
-  <pre class="idl">[NoInterfaceObject, ImplementedOn=<span>AbstractView</span>] interface <dfn>MediaModeAbstractView</dfn> {
+  <pre class="idl">[Supplemental, NoInterfaceObject]
+interface <dfn>MediaModeAbstractView</dfn> {
   readonly attribute DOMString <span>mediaMode</span>;
-};</pre>
+};
+<span>AbstractView</span> implements <span>MediaModeAbstractView</span>;</pre>
 
   <p>The <dfn><code>mediaMode</code></dfn> attribute on objects
   implementing the <code>MediaModeAbstractView</code> interface must




More information about the Commit-Watchers mailing list