<!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>[200192] 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/200192">200192</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-04-28 08:41:46 -0700 (Thu, 28 Apr 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Web IDL] Specify default values for optional parameters of type 'DOMString'
https://bugs.webkit.org/show_bug.cgi?id=157116

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack-expected.txt:

Source/WebCore:

Specify default values for optional parameters of type 'DOMString' so
that this default value is used if the parameter is either omitted or
undefined. For parameters of type DOMString and that are not nullable,
the bindings generator now uses the null string as implicit default
value (unless explicitely specified otherwise in the IDL). This
simplifies the IDL a little and makes it a bit less confusing (it is
a bit weird to see something like &quot;optional DOMString param = null&quot;,
considering the parameter is not nullable). I also think it makes
more sense to use the null String() rather than Optional&lt;String&gt; in
this case.

No new tests, existing tests were rebaselined.

* Modules/encryptedmedia/MediaKeys.idl:
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::openCursor): Deleted.
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/speech/SpeechSynthesisUtterance.idl:
* Modules/websockets/WebSocket.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue): Deleted.
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
* bindings/scripts/test/TestNamedConstructor.idl:
* css/FontFaceSet.cpp:
* css/FontFaceSet.h:
* css/FontFaceSet.idl:
* css/WebKitCSSMatrix.idl:
* dom/Comment.idl:
* dom/DOMImplementation.idl:
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::clearData):
(WebCore::DataTransfer::getData): Deleted.
* dom/DataTransfer.h:
* dom/Document.idl:
* dom/Text.idl:
* fileapi/FileReader.cpp:
(WebCore::FileReader::readAsDataURL): Deleted.
* fileapi/FileReader.h:
* fileapi/FileReaderSync.h:
* fileapi/FileReaderSync.idl:
* html/HTMLAudioElement.idl:
* html/HTMLInputElement.idl:

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addTextTrack):
Throw a TypeError if the 'kind' parameter is not a valid string in the
TextTrackKind enum:
https://html.spec.whatwg.org/multipage/embedded-content.html#htmlmediaelement

We previously threw a SYNTAX_ERR instead of a TypeError in such case,
which was not correct as per Web IDL specification.

* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setShadow):
* html/canvas/CanvasRenderingContext2D.h:
* page/Performance.idl:

LayoutTests:

* media/track/w3c/interfaces/HTMLMediaElement/addTextTrack.html:
Resync test from upstream so that it expects a TypeError to be thrown if a
wrong 'kind' parameter is passed, and so that it expects the label / language
parameter to have the empty string as default value.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentmediaelementsinterfacesHTMLElementHTMLMediaElementaddTextTrackexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack-expected.txt</a></li>
<li><a href="#trunkLayoutTestsmediatracktrackaddtrackkindexpectedtxt">trunk/LayoutTests/media/track/track-addtrack-kind-expected.txt</a></li>
<li><a href="#trunkLayoutTestsmediatracktrackaddtrackkindhtml">trunk/LayoutTests/media/track/track-addtrack-kind.html</a></li>
<li><a href="#trunkLayoutTestsmediatrackw3cinterfacesHTMLMediaElementaddTextTrackhtml">trunk/LayoutTests/media/track/w3c/interfaces/HTMLMediaElement/addTextTrack.html</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmediaMediaKeysidl">trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseidl">trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBIndexh">trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBIndexidl">trunk/Source/WebCore/Modules/indexeddb/IDBIndex.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBObjectStorecpp">trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBObjectStoreh">trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBObjectStoreidl">trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesspeechSpeechSynthesisUtteranceidl">trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketidl">trunk/Source/WebCore/Modules/websockets/WebSocket.idl</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestTestNamedConstructoridl">trunk/Source/WebCore/bindings/scripts/test/TestNamedConstructor.idl</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceSetcpp">trunk/Source/WebCore/css/FontFaceSet.cpp</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceSeth">trunk/Source/WebCore/css/FontFaceSet.h</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceSetidl">trunk/Source/WebCore/css/FontFaceSet.idl</a></li>
<li><a href="#trunkSourceWebCorecssWebKitCSSMatrixidl">trunk/Source/WebCore/css/WebKitCSSMatrix.idl</a></li>
<li><a href="#trunkSourceWebCoredomCommentidl">trunk/Source/WebCore/dom/Comment.idl</a></li>
<li><a href="#trunkSourceWebCoredomDOMImplementationidl">trunk/Source/WebCore/dom/DOMImplementation.idl</a></li>
<li><a href="#trunkSourceWebCoredomDataTransfercpp">trunk/Source/WebCore/dom/DataTransfer.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDataTransferh">trunk/Source/WebCore/dom/DataTransfer.h</a></li>
<li><a href="#trunkSourceWebCoredomDocumentidl">trunk/Source/WebCore/dom/Document.idl</a></li>
<li><a href="#trunkSourceWebCoredomTextidl">trunk/Source/WebCore/dom/Text.idl</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReadercpp">trunk/Source/WebCore/fileapi/FileReader.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderh">trunk/Source/WebCore/fileapi/FileReader.h</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderSynch">trunk/Source/WebCore/fileapi/FileReaderSync.h</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderSyncidl">trunk/Source/WebCore/fileapi/FileReaderSync.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAudioElementidl">trunk/Source/WebCore/html/HTMLAudioElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementidl">trunk/Source/WebCore/html/HTMLInputElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementh">trunk/Source/WebCore/html/HTMLMediaElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementidl">trunk/Source/WebCore/html/HTMLMediaElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionElementidl">trunk/Source/WebCore/html/HTMLOptionElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextAreaElementidl">trunk/Source/WebCore/html/HTMLTextAreaElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dh">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceidl">trunk/Source/WebCore/page/Performance.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/LayoutTests/ChangeLog        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-04-28  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        [Web IDL] Specify default values for optional parameters of type 'DOMString'
+        https://bugs.webkit.org/show_bug.cgi?id=157116
+
+        Reviewed by Darin Adler.
+
+        * media/track/w3c/interfaces/HTMLMediaElement/addTextTrack.html:
+        Resync test from upstream so that it expects a TypeError to be thrown if a
+        wrong 'kind' parameter is passed, and so that it expects the label / language
+        parameter to have the empty string as default value.
+
</ins><span class="cx"> 2016-04-28  Skachkov Oleksandr  &lt;gskachkov@gmail.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Crash for non-static super property call in derived class constructor
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-04-28  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        [Web IDL] Specify default values for optional parameters of type 'DOMString'
+        https://bugs.webkit.org/show_bug.cgi?id=157116
+
+        Reviewed by Darin Adler.
+
+        Rebaseline now that more checks are passing.
+
+        * web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack-expected.txt:
+
</ins><span class="cx"> 2016-04-26  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Update tests in web-platform-tests/html/semantics/scripting-1/
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentmediaelementsinterfacesHTMLElementHTMLMediaElementaddTextTrackexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack-expected.txt (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack-expected.txt        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack-expected.txt        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -1,16 +1,12 @@
</span><span class="cx"> 
</span><del>-FAIL HTMLMediaElement.addTextTrack bogus first arg assert_throws: function &quot;function (){
-        video.addTextTrack('foo');
-    }&quot; threw object &quot;Error: SyntaxError: DOM Exception 12&quot; (&quot;SyntaxError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
-FAIL HTMLMediaElement.addTextTrack uppercase first arg assert_throws: function &quot;function (){
-        video.addTextTrack('SUBTITLES');
-    }&quot; threw object &quot;Error: SyntaxError: DOM Exception 12&quot; (&quot;SyntaxError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
</del><ins>+PASS HTMLMediaElement.addTextTrack bogus first arg 
+PASS HTMLMediaElement.addTextTrack uppercase first arg 
</ins><span class="cx"> PASS HTMLMediaElement.addTextTrack subtitles first arg 
</span><span class="cx"> PASS HTMLMediaElement.addTextTrack captions first arg 
</span><span class="cx"> PASS HTMLMediaElement.addTextTrack descriptions first arg 
</span><span class="cx"> PASS HTMLMediaElement.addTextTrack chapters first arg 
</span><span class="cx"> PASS HTMLMediaElement.addTextTrack metadata first arg 
</span><del>-FAIL HTMLMediaElement.addTextTrack undefined second and third arg assert_equals: expected &quot;&quot; but got &quot;undefined&quot;
</del><ins>+PASS HTMLMediaElement.addTextTrack undefined second and third arg 
</ins><span class="cx"> PASS HTMLMediaElement.addTextTrack null second and third arg 
</span><span class="cx"> PASS HTMLMediaElement.addTextTrack foo and bar second and third arg 
</span><span class="cx"> PASS HTMLMediaElement.addTextTrack foo second arg, third arg omitted 
</span></span></pre></div>
<a id="trunkLayoutTestsmediatracktrackaddtrackkindexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/track/track-addtrack-kind-expected.txt (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/track/track-addtrack-kind-expected.txt        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/LayoutTests/media/track/track-addtrack-kind-expected.txt        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> 
</span><span class="cx"> ++ Test invalid 'kind'.
</span><span class="cx"> EXPECTED (video.textTracks.length == '0') OK
</span><del>-TEST(video.addTextTrack('kaptions')) THROWS(DOMException.SYNTAX_ERR) OK
</del><ins>+TEST(video.addTextTrack('kaptions')) THROWS('TypeError: Type error') OK
</ins><span class="cx"> EXPECTED (video.textTracks.length == '0') OK
</span><span class="cx"> 
</span><span class="cx"> ++ Test all valid 'kind' keywords.
</span></span></pre></div>
<a id="trunkLayoutTestsmediatracktrackaddtrackkindhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/track/track-addtrack-kind.html (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/track/track-addtrack-kind.html        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/LayoutTests/media/track/track-addtrack-kind.html        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx"> 
</span><span class="cx">                 consoleWrite(&quot;&lt;em&gt;++ Test invalid 'kind'.&lt;/em&gt;&quot;);
</span><span class="cx">                 testExpected(&quot;video.textTracks.length&quot;, 0);
</span><del>-                testDOMException(&quot;video.addTextTrack('kaptions')&quot;, &quot;DOMException.SYNTAX_ERR&quot;);
</del><ins>+                testException(&quot;video.addTextTrack('kaptions')&quot;, &quot;'TypeError: Type error'&quot;);
</ins><span class="cx">                 testExpected(&quot;video.textTracks.length&quot;, 0);
</span><span class="cx">                 consoleWrite(&quot;&quot;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsmediatrackw3cinterfacesHTMLMediaElementaddTextTrackhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/track/w3c/interfaces/HTMLMediaElement/addTextTrack.html (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/track/w3c/interfaces/HTMLMediaElement/addTextTrack.html        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/LayoutTests/media/track/w3c/interfaces/HTMLMediaElement/addTextTrack.html        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -6,19 +6,19 @@
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> var video = document.createElement('video');
</span><span class="cx"> test(function(){
</span><del>-    assert_throws('SYNTAX_ERR', function(){
</del><ins>+    assert_throws(new TypeError(), function(){
</ins><span class="cx">         video.addTextTrack('foo');
</span><span class="cx">     });
</span><del>-    assert_throws('SYNTAX_ERR', function(){
</del><ins>+    assert_throws(new TypeError(), function(){
</ins><span class="cx">         video.addTextTrack(undefined);
</span><span class="cx">     });
</span><del>-    assert_throws('SYNTAX_ERR', function(){
</del><ins>+    assert_throws(new TypeError(), function(){
</ins><span class="cx">         video.addTextTrack(null);
</span><span class="cx">     });
</span><span class="cx"> }, document.title + ' bogus first arg');
</span><span class="cx"> 
</span><span class="cx"> test(function(){
</span><del>-    assert_throws('SYNTAX_ERR', function(){
</del><ins>+    assert_throws(new TypeError(), function(){
</ins><span class="cx">         video.addTextTrack('SUBTITLES');
</span><span class="cx">     });
</span><span class="cx"> }, document.title + ' uppercase first arg');
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx">     assert_equals(t.label, '');
</span><span class="cx">     assert_equals(t.language, '');
</span><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' subtitles first arg');
</span><span class="cx"> 
</span><span class="lines">@@ -38,6 +39,7 @@
</span><span class="cx">     assert_equals(t.label, '');
</span><span class="cx">     assert_equals(t.language, '');
</span><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' captions first arg');
</span><span class="cx"> 
</span><span class="lines">@@ -47,6 +49,7 @@
</span><span class="cx">     assert_equals(t.label, '');
</span><span class="cx">     assert_equals(t.language, '');
</span><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' descriptions first arg');
</span><span class="cx"> 
</span><span class="lines">@@ -56,6 +59,7 @@
</span><span class="cx">     assert_equals(t.label, '');
</span><span class="cx">     assert_equals(t.language, '');
</span><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' chapters first arg');
</span><span class="cx"> 
</span><span class="lines">@@ -65,15 +69,17 @@
</span><span class="cx">     assert_equals(t.label, '');
</span><span class="cx">     assert_equals(t.language, '');
</span><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' metadata first arg');
</span><span class="cx"> 
</span><span class="cx"> test(function(){
</span><span class="cx">     var t = video.addTextTrack('subtitles', undefined, undefined);
</span><span class="cx">     assert_equals(t.kind, 'subtitles');
</span><del>-    assert_equals(t.label, 'undefined');
-    assert_equals(t.language, 'undefined');
</del><ins>+    assert_equals(t.label, '');
+    assert_equals(t.language, '');
</ins><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' undefined second and third arg');
</span><span class="cx"> 
</span><span class="lines">@@ -83,6 +89,7 @@
</span><span class="cx">     assert_equals(t.label, 'null');
</span><span class="cx">     assert_equals(t.language, 'null');
</span><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' null second and third arg');
</span><span class="cx"> 
</span><span class="lines">@@ -92,6 +99,7 @@
</span><span class="cx">     assert_equals(t.label, 'foo');
</span><span class="cx">     assert_equals(t.language, 'bar');
</span><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' foo and bar second and third arg');
</span><span class="cx"> 
</span><span class="lines">@@ -101,6 +109,7 @@
</span><span class="cx">     assert_equals(t.label, 'foo');
</span><span class="cx">     assert_equals(t.language, '');
</span><span class="cx">     assert_equals(t.mode, 'hidden');
</span><ins>+    assert_true(t.cues instanceof TextTrackCueList);
</ins><span class="cx">     assert_equals(t.cues.length, 0);
</span><span class="cx"> }, document.title + ' foo second arg, third arg omitted');
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/ChangeLog        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -1,3 +1,81 @@
</span><ins>+2016-04-28  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        [Web IDL] Specify default values for optional parameters of type 'DOMString'
+        https://bugs.webkit.org/show_bug.cgi?id=157116
+
+        Reviewed by Darin Adler.
+
+        Specify default values for optional parameters of type 'DOMString' so
+        that this default value is used if the parameter is either omitted or
+        undefined. For parameters of type DOMString and that are not nullable,
+        the bindings generator now uses the null string as implicit default
+        value (unless explicitely specified otherwise in the IDL). This
+        simplifies the IDL a little and makes it a bit less confusing (it is
+        a bit weird to see something like &quot;optional DOMString param = null&quot;,
+        considering the parameter is not nullable). I also think it makes
+        more sense to use the null String() rather than Optional&lt;String&gt; in
+        this case.
+
+        No new tests, existing tests were rebaselined.
+
+        * Modules/encryptedmedia/MediaKeys.idl:
+        * Modules/indexeddb/IDBDatabase.idl:
+        * Modules/indexeddb/IDBIndex.h:
+        * Modules/indexeddb/IDBIndex.idl:
+        * Modules/indexeddb/IDBObjectStore.cpp:
+        (WebCore::IDBObjectStore::openCursor): Deleted.
+        * Modules/indexeddb/IDBObjectStore.h:
+        * Modules/indexeddb/IDBObjectStore.idl:
+        * Modules/speech/SpeechSynthesisUtterance.idl:
+        * Modules/websockets/WebSocket.idl:
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateParametersCheck):
+        (CanUseWTFOptionalForParameter): Deleted.
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicString):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue): Deleted.
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
+        * bindings/scripts/test/TestNamedConstructor.idl:
+        * css/FontFaceSet.cpp:
+        * css/FontFaceSet.h:
+        * css/FontFaceSet.idl:
+        * css/WebKitCSSMatrix.idl:
+        * dom/Comment.idl:
+        * dom/DOMImplementation.idl:
+        * dom/DataTransfer.cpp:
+        (WebCore::DataTransfer::clearData):
+        (WebCore::DataTransfer::getData): Deleted.
+        * dom/DataTransfer.h:
+        * dom/Document.idl:
+        * dom/Text.idl:
+        * fileapi/FileReader.cpp:
+        (WebCore::FileReader::readAsDataURL): Deleted.
+        * fileapi/FileReader.h:
+        * fileapi/FileReaderSync.h:
+        * fileapi/FileReaderSync.idl:
+        * html/HTMLAudioElement.idl:
+        * html/HTMLInputElement.idl:
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::addTextTrack):
+        Throw a TypeError if the 'kind' parameter is not a valid string in the
+        TextTrackKind enum:
+        https://html.spec.whatwg.org/multipage/embedded-content.html#htmlmediaelement
+
+        We previously threw a SYNTAX_ERR instead of a TypeError in such case,
+        which was not correct as per Web IDL specification.
+
+        * html/HTMLMediaElement.h:
+        * html/HTMLMediaElement.idl:
+        * html/HTMLOptionElement.idl:
+        * html/HTMLTextAreaElement.idl:
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::setShadow):
+        * html/canvas/CanvasRenderingContext2D.h:
+        * page/Performance.idl:
+
</ins><span class="cx"> 2016-04-28  Antonio Gomes  &lt;tonikitoo@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Factor out the &quot;paint item&quot; logic in RenderListBox into a helper
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaMediaKeysidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -31,6 +31,6 @@
</span><span class="cx"> ] interface MediaKeys {
</span><span class="cx">     // FIXME: The default value for the 'type' parameter is wrong.
</span><span class="cx">     [CallWith=ScriptExecutionContext, RaisesException] MediaKeySession createSession(optional DOMString type = &quot;undefined&quot;, optional Uint8Array initData = null);
</span><del>-    static boolean isTypeSupported(DOMString keySystem, optional DOMString type = null);
</del><ins>+    static boolean isTypeSupported(DOMString keySystem, optional DOMString type);
</ins><span class="cx">     readonly attribute DOMString keySystem;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx"> 
</span><span class="cx">     [Custom, RaisesExceptionWithMessage] IDBObjectStore createObjectStore(DOMString name, optional Dictionary options);
</span><span class="cx">     [RaisesExceptionWithMessage] void deleteObjectStore(DOMString name);
</span><del>-    [Custom, CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBTransaction transaction(DOMString storeName, optional DOMString mode = null);
-    [Custom, CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBTransaction transaction(sequence&lt;DOMString&gt; storeNames, optional DOMString mode = null);
</del><ins>+    [Custom, CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBTransaction transaction(DOMString storeName, optional DOMString mode);
+    [Custom, CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBTransaction transaction(sequence&lt;DOMString&gt; storeNames, optional DOMString mode);
</ins><span class="cx">     void close();
</span><span class="cx"> 
</span><span class="cx">     attribute EventHandler onabort;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBIndexh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -49,9 +49,6 @@
</span><span class="cx">     bool unique() const;
</span><span class="cx">     bool multiEntry() const;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp; context, ExceptionCodeWithMessage&amp; ec) { return openCursor(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec); }
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp; context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec) { return openCursor(context, keyRange, IDBCursor::directionNext(), ec); }
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp; context, JSC::JSValue key, ExceptionCodeWithMessage&amp; ec) { return openCursor(context, key, IDBCursor::directionNext(), ec); }
</del><span class="cx">     RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp;, IDBKeyRange*, const String&amp; direction, ExceptionCodeWithMessage&amp;);
</span><span class="cx">     RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp;, JSC::JSValue key, const String&amp; direction, ExceptionCodeWithMessage&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -59,9 +56,6 @@
</span><span class="cx">     RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext&amp;, IDBKeyRange*, ExceptionCodeWithMessage&amp;);
</span><span class="cx">     RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext&amp;, JSC::JSValue key, ExceptionCodeWithMessage&amp;);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext&amp; context, ExceptionCodeWithMessage&amp; ec) { return openKeyCursor(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec); }
-    RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext&amp; context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec) { return openKeyCursor(context, keyRange, IDBCursor::directionNext(), ec); }
-    RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext&amp; context, JSC::JSValue key, ExceptionCodeWithMessage&amp; ec) { return openKeyCursor(context, key, IDBCursor::directionNext(), ec); }
</del><span class="cx">     RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext&amp;, IDBKeyRange*, const String&amp; direction, ExceptionCodeWithMessage&amp;);
</span><span class="cx">     RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext&amp;, JSC::JSValue key, const String&amp; direction, ExceptionCodeWithMessage&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBIndexidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBIndex.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBIndex.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBIndex.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -36,11 +36,11 @@
</span><span class="cx">     readonly attribute boolean multiEntry;
</span><span class="cx">     readonly attribute boolean unique;
</span><span class="cx"> 
</span><del>-    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openCursor(optional IDBKeyRange? range, optional DOMString direction);
-    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openCursor(any key, optional DOMString direction);
</del><ins>+    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openCursor(optional IDBKeyRange? range = null, optional DOMString direction = &quot;next&quot;);
+    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openCursor(any key, optional DOMString direction = &quot;next&quot;);
</ins><span class="cx"> 
</span><del>-    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openKeyCursor(optional IDBKeyRange? range, optional DOMString  direction);
-    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openKeyCursor(any key, optional DOMString direction);
</del><ins>+    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openKeyCursor(optional IDBKeyRange? range = null, optional DOMString direction = &quot;next&quot;);
+    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openKeyCursor(any key, optional DOMString direction = &quot;next&quot;);
</ins><span class="cx"> 
</span><span class="cx">     [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest get(IDBKeyRange? key);
</span><span class="cx">     [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest get(any key);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBObjectStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -115,21 +115,6 @@
</span><span class="cx">     return m_info.autoIncrement();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;IDBRequest&gt; IDBObjectStore::openCursor(ScriptExecutionContext&amp; context, ExceptionCodeWithMessage&amp; ec)
-{
-    return openCursor(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; IDBObjectStore::openCursor(ScriptExecutionContext&amp; context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec)
-{
-    return openCursor(context, keyRange, IDBCursor::directionNext(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; IDBObjectStore::openCursor(ScriptExecutionContext&amp; context, JSValue key, ExceptionCodeWithMessage&amp; ec)
-{
-    return openCursor(context, key, IDBCursor::directionNext(), ec);
-}
-
</del><span class="cx"> RefPtr&lt;IDBRequest&gt; IDBObjectStore::openCursor(ScriptExecutionContext&amp; context, IDBKeyRange* range, const String&amp; directionString, ExceptionCodeWithMessage&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBObjectStore::openCursor&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBObjectStoreh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -64,9 +64,6 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;IDBRequest&gt; add(JSC::ExecState&amp;, JSC::JSValue, ExceptionCodeWithMessage&amp;);
</span><span class="cx">     RefPtr&lt;IDBRequest&gt; put(JSC::ExecState&amp;, JSC::JSValue, ExceptionCodeWithMessage&amp;);
</span><del>-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp;, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp;, IDBKeyRange*, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp;, JSC::JSValue key, ExceptionCodeWithMessage&amp;);
</del><span class="cx">     RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp;, IDBKeyRange*, const String&amp; direction, ExceptionCodeWithMessage&amp;);
</span><span class="cx">     RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext&amp;, JSC::JSValue key, const String&amp; direction, ExceptionCodeWithMessage&amp;);
</span><span class="cx">     RefPtr&lt;IDBRequest&gt; get(ScriptExecutionContext&amp;, JSC::JSValue key, ExceptionCodeWithMessage&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBObjectStoreidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -43,8 +43,8 @@
</span><span class="cx">     [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest get(IDBKeyRange? key);
</span><span class="cx">     [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest get(any key);
</span><span class="cx">     [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest clear();
</span><del>-    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openCursor(optional IDBKeyRange? range, optional DOMString direction);
-    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openCursor(any key, optional DOMString direction);
</del><ins>+    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openCursor(optional IDBKeyRange? range = null, optional DOMString direction = &quot;next&quot;);
+    [CallWith=ScriptExecutionContext, RaisesExceptionWithMessage] IDBRequest openCursor(any key, optional DOMString direction = &quot;next&quot;);
</ins><span class="cx">     [CallWith=ScriptExecutionContext, Custom, RaisesExceptionWithMessage] IDBIndex createIndex(DOMString name, sequence&lt;DOMString&gt; keyPath, optional Dictionary options);
</span><span class="cx">     [CallWith=ScriptExecutionContext, Custom, RaisesExceptionWithMessage] IDBIndex createIndex(DOMString name, DOMString keyPath, optional Dictionary options);
</span><span class="cx">     [RaisesExceptionWithMessage] IDBIndex index(DOMString name);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesspeechSpeechSynthesisUtteranceidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> [
</span><span class="cx">     Conditional=SPEECH_SYNTHESIS,
</span><span class="cx">     ConstructorCallWith=ScriptExecutionContext,
</span><del>-    Constructor(optional DOMString text = null)
</del><ins>+    Constructor(optional DOMString text)
</ins><span class="cx"> ] interface SpeechSynthesisUtterance : EventTarget {
</span><span class="cx">     attribute DOMString text;
</span><span class="cx">     attribute DOMString lang;
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -67,5 +67,5 @@
</span><span class="cx">     [RaisesException] void send(Blob data);
</span><span class="cx">     [RaisesException] void send(DOMString data);
</span><span class="cx"> 
</span><del>-    [RaisesException] void close([Clamp] optional unsigned short code, optional DOMString reason = null);
</del><ins>+    [RaisesException] void close([Clamp] optional unsigned short code, optional DOMString reason);
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -3381,7 +3381,6 @@
</span><span class="cx">     return 0 if $codeGenerator-&gt;IsCallbackInterface($type);
</span><span class="cx">     return 0 if $codeGenerator-&gt;IsEnumType($type);
</span><span class="cx">     return 0 if $codeGenerator-&gt;IsWrapperType($type);
</span><del>-    return 0 if $type eq &quot;DOMString&quot;;
</del><span class="cx">     return 0 if $type eq &quot;any&quot;;
</span><span class="cx"> 
</span><span class="cx">     return 1;
</span><span class="lines">@@ -3472,6 +3471,9 @@
</span><span class="cx">         # As per Web IDL, optional dictionary parameters are always considered to have a default value of an empty dictionary, unless otherwise specified.
</span><span class="cx">         $parameter-&gt;default(&quot;[]&quot;) if ($optional &amp;&amp; !defined($parameter-&gt;default) &amp;&amp; $argType eq &quot;Dictionary&quot;);
</span><span class="cx"> 
</span><ins>+        # We use the null string as default value for non-nullable parameters of type DOMString unless specified otherwise.
+        $parameter-&gt;default(&quot;null&quot;) if ($optional &amp;&amp; !defined($parameter-&gt;default) &amp;&amp; $argType eq &quot;DOMString&quot; &amp;&amp; !$parameter-&gt;isNullable);
+
</ins><span class="cx">         # FIXME: We should eventually stop generating any early calls, and instead use either default parameter values or WTF::Optional&lt;&gt;.
</span><span class="cx">         if ($optional &amp;&amp; !defined($parameter-&gt;default) &amp;&amp; !CanUseWTFOptionalForParameter($parameter) &amp;&amp; !$codeGenerator-&gt;IsCallbackInterface($argType)) {
</span><span class="cx">             # Generate early call if there are enough parameters.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -4132,14 +4132,7 @@
</span><span class="cx">         return throwThisTypeError(*state, &quot;TestObj&quot;, &quot;methodWithOptionalString&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-
-    size_t argsCount = state-&gt;argumentCount();
-    if (argsCount &lt;= 0) {
-        impl.methodWithOptionalString();
-        return JSValue::encode(jsUndefined());
-    }
-
-    String str = state-&gt;argument(0).toString(state)-&gt;value(state);
</del><ins>+    String str = state-&gt;argument(0).isUndefined() ? String() : state-&gt;uncheckedArgument(0).toString(state)-&gt;value(state);
</ins><span class="cx">     if (UNLIKELY(state-&gt;hadException()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     impl.methodWithOptionalString(str);
</span><span class="lines">@@ -4154,14 +4147,7 @@
</span><span class="cx">         return throwThisTypeError(*state, &quot;TestObj&quot;, &quot;methodWithOptionalAtomicString&quot;);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-
-    size_t argsCount = state-&gt;argumentCount();
-    if (argsCount &lt;= 0) {
-        impl.methodWithOptionalAtomicString();
-        return JSValue::encode(jsUndefined());
-    }
-
-    String str = state-&gt;argument(0).toString(state)-&gt;toAtomicString(state);
</del><ins>+    String str = state-&gt;argument(0).isUndefined() ? nullAtom : state-&gt;uncheckedArgument(0).toString(state)-&gt;toAtomicString(state);
</ins><span class="cx">     if (UNLIKELY(state-&gt;hadException()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     impl.methodWithOptionalAtomicString(str);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -489,14 +489,7 @@
</span><span class="cx">     float blur = state-&gt;argument(2).toFloat(state);
</span><span class="cx">     if (UNLIKELY(state-&gt;hadException()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><del>-
-    size_t argsCount = state-&gt;argumentCount();
-    if (argsCount &lt;= 3) {
-        impl.setShadow(width, height, blur);
-        return JSValue::encode(jsUndefined());
-    }
-
-    String color = state-&gt;argument(3).toString(state)-&gt;value(state);
</del><ins>+    String color = state-&gt;argument(3).isUndefined() ? String() : state-&gt;uncheckedArgument(3).toString(state)-&gt;value(state);
</ins><span class="cx">     if (UNLIKELY(state-&gt;hadException()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     Optional&lt;float&gt; alpha = state-&gt;argument(4).isUndefined() ? Optional&lt;float&gt;() : state-&gt;uncheckedArgument(4).toFloat(state);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestTestNamedConstructoridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/TestNamedConstructor.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/TestNamedConstructor.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/bindings/scripts/test/TestNamedConstructor.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> // changes in its ouput.
</span><span class="cx"> [
</span><span class="cx">     ActiveDOMObject,
</span><del>-    NamedConstructor=Audio(DOMString str1, optional DOMString str2 = &quot;defaultString&quot;, optional DOMString str3 = null),
</del><ins>+    NamedConstructor=Audio(DOMString str1, optional DOMString str2 = &quot;defaultString&quot;, optional DOMString str3),
</ins><span class="cx">     ConstructorRaisesException
</span><span class="cx"> ] interface TestNamedConstructor {
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFaceSet.cpp (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFaceSet.cpp        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/css/FontFaceSet.cpp        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -247,14 +247,4 @@
</span><span class="cx">     m_pendingPromises.remove(iterator);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FontFaceSet::load(JSC::ExecState&amp; state, const String&amp; font, DeferredWrapper&amp;&amp; promise, ExceptionCode&amp; ec)
-{
-    load(state, font, ASCIILiteral(&quot; &quot;), WTFMove(promise), ec);
</del><span class="cx"> }
</span><del>-
-bool FontFaceSet::check(const String&amp; font, ExceptionCode&amp; ec)
-{
-    return check(font, ASCIILiteral(&quot; &quot;), ec);
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceSeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFaceSet.h (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFaceSet.h        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/css/FontFaceSet.h        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -47,9 +47,7 @@
</span><span class="cx">     bool remove(FontFace&amp;);
</span><span class="cx">     void clear();
</span><span class="cx"> 
</span><del>-    void load(JSC::ExecState&amp;, const String&amp; font, DeferredWrapper&amp;&amp; promise, ExceptionCode&amp;);
</del><span class="cx">     void load(JSC::ExecState&amp;, const String&amp; font, const String&amp; text, DeferredWrapper&amp;&amp; promise, ExceptionCode&amp;);
</span><del>-    bool check(const String&amp; font, ExceptionCode&amp;);
</del><span class="cx">     bool check(const String&amp; font, const String&amp; text, ExceptionCode&amp;);
</span><span class="cx"> 
</span><span class="cx">     String status() const;
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceSetidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFaceSet.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFaceSet.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/css/FontFaceSet.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -48,8 +48,8 @@
</span><span class="cx">     attribute EventHandler onloadingdone;
</span><span class="cx">     attribute EventHandler onloadingerror;
</span><span class="cx"> 
</span><del>-    [RaisesException, CallWith=ScriptState] Promise load(DOMString font, optional DOMString text);
-    [RaisesException] boolean check(DOMString font, optional DOMString text);
</del><ins>+    [RaisesException, CallWith=ScriptState] Promise load(DOMString font, optional DOMString text = &quot; &quot;);
+    [RaisesException] boolean check(DOMString font, optional DOMString text = &quot; &quot;);
</ins><span class="cx"> 
</span><span class="cx">     [Custom] readonly attribute Promise ready;
</span><span class="cx">     readonly attribute FontFaceSetLoadStatus status;
</span></span></pre></div>
<a id="trunkSourceWebCorecssWebKitCSSMatrixidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/WebKitCSSMatrix.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/WebKitCSSMatrix.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/css/WebKitCSSMatrix.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Introduced in DOM Level ?:
</span><span class="cx"> [
</span><del>-    Constructor(optional DOMString cssValue = null),
</del><ins>+    Constructor(optional DOMString cssValue),
</ins><span class="cx">     ConstructorRaisesException,
</span><span class="cx">     ImplementationLacksVTable,
</span><span class="cx"> ] interface WebKitCSSMatrix {
</span></span></pre></div>
<a id="trunkSourceWebCoredomCommentidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Comment.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Comment.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/dom/Comment.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -18,7 +18,7 @@
</span><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> [
</span><del>-    Constructor(optional DOMString data = null),
</del><ins>+    Constructor(optional DOMString data),
</ins><span class="cx">     ConstructorCallWith=Document,
</span><span class="cx">     JSGenerateToJSObject
</span><span class="cx"> ] interface Comment : CharacterData {
</span></span></pre></div>
<a id="trunkSourceWebCoredomDOMImplementationidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DOMImplementation.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DOMImplementation.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/dom/DOMImplementation.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -49,6 +49,6 @@
</span><span class="cx"> 
</span><span class="cx">     // HTMLDOMImplementation interface from DOM Level 2 HTML
</span><span class="cx"> 
</span><del>-    [NewObject] HTMLDocument createHTMLDocument(optional DOMString title = null);
</del><ins>+    [NewObject] HTMLDocument createHTMLDocument(optional DOMString title);
</ins><span class="cx"> 
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoredomDataTransfercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DataTransfer.cpp (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DataTransfer.cpp        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/dom/DataTransfer.cpp        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -112,17 +112,12 @@
</span><span class="cx">     if (!canWriteData())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_pasteboard-&gt;clear(type);
</del><ins>+    if (type.isNull())
+        m_pasteboard-&gt;clear();
+    else
+        m_pasteboard-&gt;clear(type);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DataTransfer::clearData()
-{
-    if (!canWriteData())
-        return;
-
-    m_pasteboard-&gt;clear();
-}
-
</del><span class="cx"> String DataTransfer::getData(const String&amp; type) const
</span><span class="cx"> {
</span><span class="cx">     if (!canReadData())
</span></span></pre></div>
<a id="trunkSourceWebCoredomDataTransferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DataTransfer.h (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DataTransfer.h        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/dom/DataTransfer.h        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -58,8 +58,7 @@
</span><span class="cx"> 
</span><span class="cx">         FileList&amp; files() const;
</span><span class="cx"> 
</span><del>-        void clearData(const String&amp; type);
-        void clearData();
</del><ins>+        void clearData(const String&amp; type = String());
</ins><span class="cx"> 
</span><span class="cx">         String getData(const String&amp; type) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/dom/Document.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx">     // FIXME: Using &quot;undefined&quot; as default parameter value is wrong.
</span><span class="cx">     boolean execCommand(optional DOMString command = &quot;undefined&quot;,
</span><span class="cx">                         optional boolean userInterface = false,
</span><del>-                        optional DOMString? value);
</del><ins>+                        optional DOMString? value = null);
</ins><span class="cx"> 
</span><span class="cx"> #if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
</span><span class="cx">     // FIXME: remove the these two versions once optional is implemented for Objective-C.
</span></span></pre></div>
<a id="trunkSourceWebCoredomTextidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Text.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Text.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/dom/Text.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -17,7 +17,7 @@
</span><span class="cx">  * Boston, MA 02110-1301, USA.
</span><span class="cx">  */
</span><span class="cx"> [
</span><del>-    Constructor(optional DOMString data = null),
</del><ins>+    Constructor(optional DOMString data),
</ins><span class="cx">     ConstructorCallWith=Document
</span><span class="cx"> ] interface Text : CharacterData {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReader.cpp (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReader.cpp        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/fileapi/FileReader.cpp        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -112,11 +112,6 @@
</span><span class="cx">     readInternal(*blob, FileReaderLoader::ReadAsText, ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FileReader::readAsText(Blob* blob, ExceptionCode&amp; ec)
-{
-    readAsText(blob, String(), ec);
-}
-
</del><span class="cx"> void FileReader::readAsDataURL(Blob* blob, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     if (!blob)
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReader.h (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReader.h        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/fileapi/FileReader.h        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -67,7 +67,6 @@
</span><span class="cx">     void readAsArrayBuffer(Blob*, ExceptionCode&amp;);
</span><span class="cx">     void readAsBinaryString(Blob*, ExceptionCode&amp;);
</span><span class="cx">     void readAsText(Blob*, const String&amp; encoding, ExceptionCode&amp;);
</span><del>-    void readAsText(Blob*, ExceptionCode&amp;);
</del><span class="cx">     void readAsDataURL(Blob*, ExceptionCode&amp;);
</span><span class="cx">     void abort();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderSynch"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReaderSync.h (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReaderSync.h        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/fileapi/FileReaderSync.h        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -58,10 +58,6 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;JSC::ArrayBuffer&gt; readAsArrayBuffer(ScriptExecutionContext&amp;, Blob&amp;, ExceptionCode&amp;);
</span><span class="cx">     String readAsBinaryString(ScriptExecutionContext&amp;, Blob&amp;, ExceptionCode&amp;);
</span><del>-    String readAsText(ScriptExecutionContext&amp; scriptExecutionContext, Blob&amp; blob, ExceptionCode&amp; ec)
-    {
-        return readAsText(scriptExecutionContext, blob, emptyString(), ec);
-    }
</del><span class="cx">     String readAsText(ScriptExecutionContext&amp;, Blob&amp;, const String&amp; encoding, ExceptionCode&amp;);
</span><span class="cx">     String readAsDataURL(ScriptExecutionContext&amp;, Blob&amp;, ExceptionCode&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderSyncidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReaderSync.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReaderSync.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/fileapi/FileReaderSync.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -34,6 +34,6 @@
</span><span class="cx"> ] interface FileReaderSync {
</span><span class="cx">     [CallWith=ScriptExecutionContext, RaisesException] ArrayBuffer readAsArrayBuffer(Blob blob);
</span><span class="cx">     [CallWith=ScriptExecutionContext, RaisesException] DOMString readAsBinaryString(Blob blob);
</span><del>-    [CallWith=ScriptExecutionContext, RaisesException] DOMString readAsText(Blob blob, optional DOMString encoding);
</del><ins>+    [CallWith=ScriptExecutionContext, RaisesException] DOMString readAsText(Blob blob, optional DOMString encoding = &quot;&quot;);
</ins><span class="cx">     [CallWith=ScriptExecutionContext, RaisesException] DOMString readAsDataURL(Blob blob);
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAudioElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAudioElement.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAudioElement.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/HTMLAudioElement.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -26,6 +26,6 @@
</span><span class="cx"> [
</span><span class="cx">     EnabledAtRuntime,
</span><span class="cx">     Conditional=VIDEO,
</span><del>-    NamedConstructor=Audio(optional DOMString src = null)
</del><ins>+    NamedConstructor=Audio(optional DOMString src)
</ins><span class="cx"> ] interface HTMLAudioElement : HTMLMediaElement {
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/HTMLInputElement.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">     [RaisesException] void setRangeText(DOMString replacement,
</span><span class="cx">                         unsigned long start,
</span><span class="cx">                         unsigned long end,
</span><del>-                        optional DOMString selectionMode = null);
</del><ins>+                        optional DOMString selectionMode);
</ins><span class="cx"> 
</span><span class="cx"> #if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
</span><span class="cx">     [Custom] void setSelectionRange(long start, long end);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -3647,7 +3647,7 @@
</span><span class="cx"> 
</span><span class="cx">     // 1. If kind is not one of the following strings, then throw a SyntaxError exception and abort these steps
</span><span class="cx">     if (!TextTrack::isValidKindKeyword(kind)) {
</span><del>-        ec = SYNTAX_ERR;
</del><ins>+        ec = TypeError;
</ins><span class="cx">         return 0;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.h        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -268,8 +268,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     PassRefPtr&lt;TextTrack&gt; addTextTrack(const String&amp; kind, const String&amp; label, const String&amp; language, ExceptionCode&amp;);
</span><del>-    PassRefPtr&lt;TextTrack&gt; addTextTrack(const String&amp; kind, const String&amp; label, ExceptionCode&amp; ec) { return addTextTrack(kind, label, emptyString(), ec); }
-    PassRefPtr&lt;TextTrack&gt; addTextTrack(const String&amp; kind, ExceptionCode&amp; ec) { return addTextTrack(kind, emptyString(), emptyString(), ec); }
</del><span class="cx"> 
</span><span class="cx">     AudioTrackList* audioTracks();
</span><span class="cx">     TextTrackList* textTracks();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/HTMLMediaElement.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Using &quot;undefined&quot; as default parameter value is wrong.
</span><span class="cx"> #if (defined(ENABLE_ENCRYPTED_MEDIA) &amp;&amp; ENABLE_ENCRYPTED_MEDIA) || (defined(ENABLE_ENCRYPTED_MEDIA_V2) &amp;&amp; ENABLE_ENCRYPTED_MEDIA_V2)
</span><del>-    DOMString canPlayType(optional DOMString type = &quot;undefined&quot;, optional DOMString? keySystem);
</del><ins>+    DOMString canPlayType(optional DOMString type = &quot;undefined&quot;, optional DOMString? keySystem = null);
</ins><span class="cx"> #else
</span><span class="cx">     DOMString canPlayType(optional DOMString type = &quot;undefined&quot;);
</span><span class="cx"> #endif
</span><span class="lines">@@ -99,13 +99,13 @@
</span><span class="cx"> 
</span><span class="cx"> #if (!defined(LANGUAGE_GOBJECT) || !LANGUAGE_GOBJECT) &amp;&amp; (!defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C)
</span><span class="cx">     [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitGenerateKeyRequest(DOMString? keySystem, optional Uint8Array initData = null);
</span><del>-    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitAddKey(DOMString? keySystem, Uint8Array key, optional Uint8Array initData = null, optional DOMString sessionId = null);
-    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitCancelKeyRequest(DOMString? keySystem, optional DOMString sessionId = null);
</del><ins>+    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitAddKey(DOMString? keySystem, Uint8Array key, optional Uint8Array initData = null, optional DOMString sessionId);
+    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitCancelKeyRequest(DOMString? keySystem, optional DOMString sessionId);
</ins><span class="cx"> 
</span><span class="cx">     [Conditional=ENCRYPTED_MEDIA_V2, ImplementedAs=keys] readonly attribute MediaKeys webkitKeys;
</span><span class="cx">     [Conditional=ENCRYPTED_MEDIA_V2, ImplementedAs=setMediaKeys] void webkitSetMediaKeys(MediaKeys? mediaKeys);
</span><span class="cx"> 
</span><del>-    [Conditional=VIDEO_TRACK, RaisesException] TextTrack addTextTrack(DOMString kind, optional DOMString label, optional DOMString language);
</del><ins>+    [Conditional=VIDEO_TRACK, RaisesException] TextTrack addTextTrack(DOMString kind, optional DOMString label = &quot;&quot;, optional DOMString language = &quot;&quot;);
</ins><span class="cx">     [Conditional=VIDEO_TRACK] readonly attribute AudioTrackList audioTracks;
</span><span class="cx">     [Conditional=VIDEO_TRACK] readonly attribute TextTrackList textTracks;
</span><span class="cx">     [Conditional=VIDEO_TRACK] readonly attribute VideoTrackList videoTracks;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionElement.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionElement.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/HTMLOptionElement.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -20,7 +20,7 @@
</span><span class="cx"> 
</span><span class="cx"> [
</span><span class="cx">     JSGenerateToNativeObject,
</span><del>-    NamedConstructor=Option(optional DOMString data = null, optional DOMString value = null, optional boolean defaultSelected = false, optional boolean selected = false),
</del><ins>+    NamedConstructor=Option(optional DOMString data, optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false),
</ins><span class="cx">     ConstructorRaisesException
</span><span class="cx"> ] interface HTMLOptionElement : HTMLElement {
</span><span class="cx">     [Reflect] attribute boolean disabled;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx">     [RaisesException] void setRangeText(DOMString replacement,
</span><span class="cx">                         unsigned long start,
</span><span class="cx">                         unsigned long end,
</span><del>-                        optional DOMString selectionMode = null);
</del><ins>+                        optional DOMString selectionMode);
</ins><span class="cx"> 
</span><span class="cx"> #if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
</span><span class="cx">     void setSelectionRange(long start, long end);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -1254,15 +1254,10 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::setShadow(float width, float height, float blur)
-{
-    setShadow(FloatSize(width, height), blur, Color::transparent);
-}
-
</del><span class="cx"> void CanvasRenderingContext2D::setShadow(float width, float height, float blur, const String&amp; color, Optional&lt;float&gt; alpha)
</span><span class="cx"> {
</span><del>-    RGBA32 rgba;
-    if (!parseColorOrCurrentColor(rgba, color, canvas()))
</del><ins>+    RGBA32 rgba = Color::transparent;
+    if (!color.isNull() &amp;&amp; !parseColorOrCurrentColor(rgba, color, canvas()))
</ins><span class="cx">         return;
</span><span class="cx">     setShadow(FloatSize(width, height), blur, colorWithOverrideAlpha(rgba, alpha));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -147,9 +147,7 @@
</span><span class="cx">     void fillRect(float x, float y, float width, float height);
</span><span class="cx">     void strokeRect(float x, float y, float width, float height);
</span><span class="cx"> 
</span><del>-    void setShadow(float width, float height, float blur);
-    void setShadow(float width, float height, float blur, float grayLevel);
-    void setShadow(float width, float height, float blur, const String&amp; color, Optional&lt;float&gt; alpha = Nullopt);
</del><ins>+    void setShadow(float width, float height, float blur, const String&amp; color = String(), Optional&lt;float&gt; alpha = Nullopt);
</ins><span class="cx">     void setShadow(float width, float height, float blur, float grayLevel, float alpha = 1.0);
</span><span class="cx">     void setShadow(float width, float height, float blur, float r, float g, float b, float a);
</span><span class="cx">     void setShadow(float width, float height, float blur, float c, float m, float y, float k, float a);
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Performance.idl (200191 => 200192)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Performance.idl        2016-04-28 15:12:10 UTC (rev 200191)
+++ trunk/Source/WebCore/page/Performance.idl        2016-04-28 15:41:46 UTC (rev 200192)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> #if defined(ENABLE_PERFORMANCE_TIMELINE) &amp;&amp; ENABLE_PERFORMANCE_TIMELINE
</span><span class="cx">     PerformanceEntryList webkitGetEntries();
</span><span class="cx">     PerformanceEntryList webkitGetEntriesByType(DOMString entryType);
</span><del>-    PerformanceEntryList webkitGetEntriesByName(DOMString name, optional DOMString entryType = null);
</del><ins>+    PerformanceEntryList webkitGetEntriesByName(DOMString name, optional DOMString entryType);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if defined(ENABLE_RESOURCE_TIMING) &amp;&amp; ENABLE_RESOURCE_TIMING
</span><span class="lines">@@ -52,10 +52,10 @@
</span><span class="cx">     // See http://www.w3.org/TR/2012/CR-user-timing-20120726/
</span><span class="cx"> #if defined(ENABLE_USER_TIMING) &amp;&amp; ENABLE_USER_TIMING
</span><span class="cx">     [RaisesException] void webkitMark(DOMString markName);
</span><del>-    void webkitClearMarks(optional  DOMString markName = null);
</del><ins>+    void webkitClearMarks(optional  DOMString markName);
</ins><span class="cx"> 
</span><del>-    [RaisesException] void webkitMeasure(DOMString measureName, optional DOMString startMark = null, optional DOMString endMark = null);
-    void webkitClearMeasures(optional DOMString measureName = null);
</del><ins>+    [RaisesException] void webkitMeasure(DOMString measureName, optional DOMString startMark, optional DOMString endMark);
+    void webkitClearMeasures(optional DOMString measureName);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // See http://www.w3.org/TR/hr-time/ for details.
</span></span></pre>
</div>
</div>

</body>
</html>