<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[203539] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/203539">203539</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-07-21 16:52:35 -0700 (Thu, 21 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Make parameters to Document.getElementsBy*() operations mandatory
https://bugs.webkit.org/show_bug.cgi?id=160050

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/dom/interfaces-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Make parameters to Document.getElementsBy*() operations mandatory to
match the specification:
- https://dom.spec.whatwg.org/#interface-document

Firefox and Chrome agree with the specification so the compatibility
risk should be low.

It makes very little sense to call these operations without parameter,
especially considering WebKit uses the string &quot;undefined&quot; if the
parameter is omitted.

No new tests, rebaselined existing tests.

* dom/Document.idl:

LayoutTests:

Drop cases that were calling the operation without parameter.

* fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt:
* fast/dom/getElementsByClassName/dumpHTMLCollection.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomgetElementsByClassNamedumpHTMLCollectionexpectedtxt">trunk/LayoutTests/fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomgetElementsByClassNamedumpHTMLCollectionhtml">trunk/LayoutTests/fast/dom/getElementsByClassName/dumpHTMLCollection.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdominterfacesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomDocumentidl">trunk/Source/WebCore/dom/Document.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (203538 => 203539)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-07-21 23:47:53 UTC (rev 203538)
+++ trunk/LayoutTests/ChangeLog        2016-07-21 23:52:35 UTC (rev 203539)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Make parameters to Document.getElementsBy*() operations mandatory
+        https://bugs.webkit.org/show_bug.cgi?id=160050
+
+        Reviewed by Daniel Bates.
+
+        Drop cases that were calling the operation without parameter.
+
+        * fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt:
+        * fast/dom/getElementsByClassName/dumpHTMLCollection.html:
+
</ins><span class="cx"> 2016-07-21  Nan Wang  &lt;n_wang@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         AX: aria-label not being used correctly in accessible name calculation of heading
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomgetElementsByClassNamedumpHTMLCollectionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt (203538 => 203539)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt        2016-07-21 23:47:53 UTC (rev 203538)
+++ trunk/LayoutTests/fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt        2016-07-21 23:52:35 UTC (rev 203539)
</span><span class="lines">@@ -13,7 +13,6 @@
</span><span class="cx"> length: 0
</span><span class="cx"> length: 0
</span><span class="cx"> length: 0
</span><del>-length: 0
</del><span class="cx"> [object HTMLDivElement], length: 1
</span><span class="cx"> [object HTMLDivElement], [object HTMLParagraphElement], length: 2
</span><span class="cx"> [object HTMLDivElement], length: 1
</span><span class="lines">@@ -22,5 +21,4 @@
</span><span class="cx"> length: 0
</span><span class="cx"> length: 0
</span><span class="cx"> length: 0
</span><del>-length: 0
</del><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomgetElementsByClassNamedumpHTMLCollectionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/getElementsByClassName/dumpHTMLCollection.html (203538 => 203539)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/getElementsByClassName/dumpHTMLCollection.html        2016-07-21 23:47:53 UTC (rev 203538)
+++ trunk/LayoutTests/fast/dom/getElementsByClassName/dumpHTMLCollection.html        2016-07-21 23:52:35 UTC (rev 203539)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx">         log(document.getElementsByClassName(&quot;one\t\t\n \ftwo&quot;).dump());
</span><span class="cx">         log(document.getElementsByClassName(&quot;&quot;).dump());
</span><span class="cx">         log(document.getElementsByClassName(&quot;onetwo&quot;).dump());
</span><del>-        log(document.getElementsByClassName().dump());
</del><span class="cx">         log(document.getElementsByClassName(null).dump());
</span><span class="cx">         log(document.getElementsByClassName(undefined).dump());
</span><span class="cx"> 
</span><span class="lines">@@ -43,7 +42,6 @@
</span><span class="cx">         log(elm.getElementsByClassName(&quot;one\t\t\n \ftwo&quot;).dump());
</span><span class="cx">         log(elm.getElementsByClassName(&quot;&quot;).dump());
</span><span class="cx">         log(elm.getElementsByClassName(&quot;onetwo&quot;).dump());
</span><del>-        log(elm.getElementsByClassName().dump());
</del><span class="cx">         log(elm.getElementsByClassName(null).dump());
</span><span class="cx">         log(elm.getElementsByClassName(undefined).dump());
</span><span class="cx">     } catch (ex) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (203538 => 203539)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-07-21 23:47:53 UTC (rev 203538)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-07-21 23:52:35 UTC (rev 203539)
</span><span class="lines">@@ -1,5 +1,17 @@
</span><span class="cx"> 2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Make parameters to Document.getElementsBy*() operations mandatory
+        https://bugs.webkit.org/show_bug.cgi?id=160050
+
+        Reviewed by Daniel Bates.
+
+        Rebaseline several W3C tests now that more checks are passing.
+
+        * web-platform-tests/dom/interfaces-expected.txt:
+        * web-platform-tests/html/dom/interfaces-expected.txt:
+
+2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Make parameters mandatory for Document.create*() operations
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=160047
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdominterfacesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt (203538 => 203539)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt        2016-07-21 23:47:53 UTC (rev 203538)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt        2016-07-21 23:52:35 UTC (rev 203539)
</span><span class="lines">@@ -255,9 +255,9 @@
</span><span class="cx"> PASS Document interface: attribute contentType 
</span><span class="cx"> PASS Document interface: attribute doctype 
</span><span class="cx"> PASS Document interface: attribute documentElement 
</span><del>-FAIL Document interface: operation getElementsByTagName(DOMString) assert_equals: property has wrong .length expected 1 but got 0
-FAIL Document interface: operation getElementsByTagNameNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
-FAIL Document interface: operation getElementsByClassName(DOMString) assert_equals: property has wrong .length expected 1 but got 0
</del><ins>+PASS Document interface: operation getElementsByTagName(DOMString) 
+PASS Document interface: operation getElementsByTagNameNS(DOMString,DOMString) 
+PASS Document interface: operation getElementsByClassName(DOMString) 
</ins><span class="cx"> PASS Document interface: operation createElement(DOMString,ElementCreationOptions) 
</span><span class="cx"> PASS Document interface: operation createElementNS(DOMString,DOMString,ElementCreationOptions) 
</span><span class="cx"> PASS Document interface: operation createDocumentFragment() 
</span><span class="lines">@@ -295,17 +295,11 @@
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;doctype&quot; with the proper type (9) 
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;documentElement&quot; with the proper type (10) 
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;getElementsByTagName&quot; with the proper type (11) 
</span><del>-FAIL Document interface: calling getElementsByTagName(DOMString) on new Document() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagName(DOMString) on new Document() with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: new Document() must inherit property &quot;getElementsByTagNameNS&quot; with the proper type (12) 
</span><del>-FAIL Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on new Document() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on new Document() with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: new Document() must inherit property &quot;getElementsByClassName&quot; with the proper type (13) 
</span><del>-FAIL Document interface: calling getElementsByClassName(DOMString) on new Document() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByClassName(DOMString) on new Document() with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: new Document() must inherit property &quot;createElement&quot; with the proper type (14) 
</span><span class="cx"> PASS Document interface: calling createElement(DOMString,ElementCreationOptions) on new Document() with too few arguments must throw TypeError 
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;createElementNS&quot; with the proper type (15) 
</span><span class="lines">@@ -449,17 +443,11 @@
</span><span class="cx"> PASS Document interface: xmlDoc must inherit property &quot;doctype&quot; with the proper type (9) 
</span><span class="cx"> PASS Document interface: xmlDoc must inherit property &quot;documentElement&quot; with the proper type (10) 
</span><span class="cx"> PASS Document interface: xmlDoc must inherit property &quot;getElementsByTagName&quot; with the proper type (11) 
</span><del>-FAIL Document interface: calling getElementsByTagName(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagName(DOMString) on xmlDoc with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: xmlDoc must inherit property &quot;getElementsByTagNameNS&quot; with the proper type (12) 
</span><del>-FAIL Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on xmlDoc with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: xmlDoc must inherit property &quot;getElementsByClassName&quot; with the proper type (13) 
</span><del>-FAIL Document interface: calling getElementsByClassName(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByClassName(DOMString) on xmlDoc with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: xmlDoc must inherit property &quot;createElement&quot; with the proper type (14) 
</span><span class="cx"> PASS Document interface: calling createElement(DOMString,ElementCreationOptions) on xmlDoc with too few arguments must throw TypeError 
</span><span class="cx"> PASS Document interface: xmlDoc must inherit property &quot;createElementNS&quot; with the proper type (15) 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt (203538 => 203539)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt        2016-07-21 23:47:53 UTC (rev 203538)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt        2016-07-21 23:52:35 UTC (rev 203539)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> PASS Document interface: attribute links 
</span><span class="cx"> PASS Document interface: attribute forms 
</span><span class="cx"> FAIL Document interface: attribute scripts assert_true: The prototype object must have a property &quot;scripts&quot; expected true got false
</span><del>-FAIL Document interface: operation getElementsByName(DOMString) assert_equals: property has wrong .length expected 1 but got 0
</del><ins>+PASS Document interface: operation getElementsByName(DOMString) 
</ins><span class="cx"> FAIL Document interface: attribute cssElementMap assert_true: The prototype object must have a property &quot;cssElementMap&quot; expected true got false
</span><span class="cx"> PASS Document interface: attribute currentScript 
</span><span class="cx"> FAIL Document interface: operation open(DOMString,DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;open&quot; missing
</span><span class="lines">@@ -135,17 +135,11 @@
</span><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;doctype&quot; with the proper type (9) 
</span><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;documentElement&quot; with the proper type (10) 
</span><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;getElementsByTagName&quot; with the proper type (11) 
</span><del>-FAIL Document interface: calling getElementsByTagName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;getElementsByTagNameNS&quot; with the proper type (12) 
</span><del>-FAIL Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on iframe.contentDocument with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on iframe.contentDocument with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;getElementsByClassName&quot; with the proper type (13) 
</span><del>-FAIL Document interface: calling getElementsByClassName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByClassName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;createElement&quot; with the proper type (14) 
</span><span class="cx"> PASS Document interface: calling createElement(DOMString) on iframe.contentDocument with too few arguments must throw TypeError 
</span><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;createElementNS&quot; with the proper type (15) 
</span><span class="lines">@@ -198,9 +192,7 @@
</span><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;forms&quot; with the proper type (49) 
</span><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;scripts&quot; with the proper type (50) 
</span><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;getElementsByName&quot; with the proper type (51) 
</span><del>-FAIL Document interface: calling getElementsByName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError 
</ins><span class="cx"> FAIL Document interface: iframe.contentDocument must inherit property &quot;cssElementMap&quot; with the proper type (52) assert_inherits: property &quot;cssElementMap&quot; not found in prototype chain
</span><span class="cx"> PASS Document interface: iframe.contentDocument must inherit property &quot;currentScript&quot; with the proper type (53) 
</span><span class="cx"> FAIL Document interface: iframe.contentDocument must inherit property &quot;open&quot; with the proper type (54) assert_inherits: property &quot;open&quot; found on object expected in prototype chain
</span><span class="lines">@@ -425,17 +417,11 @@
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;doctype&quot; with the proper type (9) 
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;documentElement&quot; with the proper type (10) 
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;getElementsByTagName&quot; with the proper type (11) 
</span><del>-FAIL Document interface: calling getElementsByTagName(DOMString) on new Document() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagName(DOMString) on new Document() with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: new Document() must inherit property &quot;getElementsByTagNameNS&quot; with the proper type (12) 
</span><del>-FAIL Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on new Document() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on new Document() with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: new Document() must inherit property &quot;getElementsByClassName&quot; with the proper type (13) 
</span><del>-FAIL Document interface: calling getElementsByClassName(DOMString) on new Document() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByClassName(DOMString) on new Document() with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: new Document() must inherit property &quot;createElement&quot; with the proper type (14) 
</span><span class="cx"> PASS Document interface: calling createElement(DOMString) on new Document() with too few arguments must throw TypeError 
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;createElementNS&quot; with the proper type (15) 
</span><span class="lines">@@ -488,9 +474,7 @@
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;forms&quot; with the proper type (49) 
</span><span class="cx"> FAIL Document interface: new Document() must inherit property &quot;scripts&quot; with the proper type (50) assert_inherits: property &quot;scripts&quot; not found in prototype chain
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;getElementsByName&quot; with the proper type (51) 
</span><del>-FAIL Document interface: calling getElementsByName(DOMString) on new Document() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByName(DOMString) on new Document() with too few arguments must throw TypeError 
</ins><span class="cx"> FAIL Document interface: new Document() must inherit property &quot;cssElementMap&quot; with the proper type (52) assert_inherits: property &quot;cssElementMap&quot; not found in prototype chain
</span><span class="cx"> PASS Document interface: new Document() must inherit property &quot;currentScript&quot; with the proper type (53) 
</span><span class="cx"> FAIL Document interface: new Document() must inherit property &quot;open&quot; with the proper type (54) assert_inherits: property &quot;open&quot; not found in prototype chain
</span><span class="lines">@@ -718,17 +702,11 @@
</span><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;doctype&quot; with the proper type (9) 
</span><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;documentElement&quot; with the proper type (10) 
</span><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;getElementsByTagName&quot; with the proper type (11) 
</span><del>-FAIL Document interface: calling getElementsByTagName(DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagName(DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;getElementsByTagNameNS&quot; with the proper type (12) 
</span><del>-FAIL Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;getElementsByClassName&quot; with the proper type (13) 
</span><del>-FAIL Document interface: calling getElementsByClassName(DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByClassName(DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError 
</ins><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;createElement&quot; with the proper type (14) 
</span><span class="cx"> PASS Document interface: calling createElement(DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError 
</span><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;createElementNS&quot; with the proper type (15) 
</span><span class="lines">@@ -781,9 +759,7 @@
</span><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;forms&quot; with the proper type (49) 
</span><span class="cx"> FAIL Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;scripts&quot; with the proper type (50) assert_inherits: property &quot;scripts&quot; not found in prototype chain
</span><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;getElementsByName&quot; with the proper type (51) 
</span><del>-FAIL Document interface: calling getElementsByName(DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
-            fn.apply(obj, args);
-        }&quot; did not throw
</del><ins>+PASS Document interface: calling getElementsByName(DOMString) on document.implementation.createDocument(null, &quot;&quot;, null) with too few arguments must throw TypeError 
</ins><span class="cx"> FAIL Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;cssElementMap&quot; with the proper type (52) assert_inherits: property &quot;cssElementMap&quot; not found in prototype chain
</span><span class="cx"> PASS Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;currentScript&quot; with the proper type (53) 
</span><span class="cx"> FAIL Document interface: document.implementation.createDocument(null, &quot;&quot;, null) must inherit property &quot;open&quot; with the proper type (54) assert_inherits: property &quot;open&quot; not found in prototype chain
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (203538 => 203539)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-21 23:47:53 UTC (rev 203538)
+++ trunk/Source/WebCore/ChangeLog        2016-07-21 23:52:35 UTC (rev 203539)
</span><span class="lines">@@ -1,3 +1,25 @@
</span><ins>+2016-07-21  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Make parameters to Document.getElementsBy*() operations mandatory
+        https://bugs.webkit.org/show_bug.cgi?id=160050
+
+        Reviewed by Daniel Bates.
+
+        Make parameters to Document.getElementsBy*() operations mandatory to
+        match the specification:
+        - https://dom.spec.whatwg.org/#interface-document
+
+        Firefox and Chrome agree with the specification so the compatibility
+        risk should be low.
+
+        It makes very little sense to call these operations without parameter,
+        especially considering WebKit uses the string &quot;undefined&quot; if the
+        parameter is omitted.
+
+        No new tests, rebaselined existing tests.
+
+        * dom/Document.idl:
+
</ins><span class="cx"> 2016-07-21  Nan Wang  &lt;n_wang@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         AX: aria-label not being used correctly in accessible name calculation of heading
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.idl (203538 => 203539)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.idl        2016-07-21 23:47:53 UTC (rev 203538)
+++ trunk/Source/WebCore/dom/Document.idl        2016-07-21 23:52:35 UTC (rev 203539)
</span><span class="lines">@@ -48,8 +48,7 @@
</span><span class="cx"> #if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
</span><span class="cx">     [ImplementedAs=getElementsByTagNameForObjC] NodeList getElementsByTagName(optional DOMString tagname);
</span><span class="cx"> #else
</span><del>-    // FIXME: Using &quot;undefined&quot; as default parameter value is wrong.
-    HTMLCollection getElementsByTagName(optional DOMString tagname = &quot;undefined&quot;);
</del><ins>+    HTMLCollection getElementsByTagName(DOMString tagname);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // Introduced in DOM Level 2:
</span><span class="lines">@@ -62,8 +61,7 @@
</span><span class="cx"> #if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
</span><span class="cx">     [ObjCLegacyUnnamedParameters, ImplementedAs=getElementsByTagNameNSForObjC] NodeList getElementsByTagNameNS(optional DOMString namespaceURI, optional DOMString localName);
</span><span class="cx"> #else
</span><del>-    // FIXME: Using &quot;undefined&quot; as default parameter value is wrong.
-    HTMLCollection getElementsByTagNameNS(optional DOMString? namespaceURI = null, optional DOMString localName = &quot;undefined&quot;);
</del><ins>+    HTMLCollection getElementsByTagNameNS(DOMString? namespaceURI, DOMString localName);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // DOM Level 3 Core
</span><span class="lines">@@ -186,8 +184,7 @@
</span><span class="cx">     readonly attribute HTMLCollection anchors;
</span><span class="cx">     readonly attribute DOMString lastModified;
</span><span class="cx"> 
</span><del>-    // FIXME: Using &quot;undefined&quot; as default parameter value is wrong.
-    NodeList getElementsByName([AtomicString] optional DOMString elementName = &quot;undefined&quot;);
</del><ins>+    NodeList getElementsByName([AtomicString] DOMString elementName);
</ins><span class="cx"> 
</span><span class="cx"> #if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
</span><span class="cx">     [PutForwards=href, Unforgeable] readonly attribute Location? location;
</span><span class="lines">@@ -244,8 +241,7 @@
</span><span class="cx"> #if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
</span><span class="cx">     [ImplementedAs=getElementsByClassNameForObjC] NodeList getElementsByClassName(optional DOMString classNames);
</span><span class="cx"> #else
</span><del>-    // FIXME: Using &quot;undefined&quot; as default parameter value is wrong.
-    HTMLCollection getElementsByClassName(optional DOMString classNames = &quot;undefined&quot;);
</del><ins>+    HTMLCollection getElementsByClassName(DOMString classNames);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     readonly attribute Element? activeElement;
</span></span></pre>
</div>
</div>

</body>
</html>