<!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>[204679] 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/204679">204679</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2016-08-20 07:44:52 -0700 (Sat, 20 Aug 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Location.ancestorOrigins should return a FrozenArray<USVString>
https://bugs.webkit.org/show_bug.cgi?id=161018
Reviewed by Ryosuke Niwa and Chris Dumez.
Source/JavaScriptCore:
* runtime/ObjectConstructor.h:
(JSC::objectConstructorFreeze):
Export objectConstructorFreeze so it can be used to freeze DOM FrozenArrays.
Source/WebCore:
Updated tests: fast/dom/Window/Location/ancestor-origins.html
fast/dom/indexed-getters-returning-string.html
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::deleteObjectStore):
* Modules/indexeddb/IDBDatabase.h:
Remove unused ScriptExecutionContext parameter.
* Modules/indexeddb/IDBDatabase.idl:
There is no need for a custom implementation anymore.
* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
Remove JSDOMStringListCustom.cpp, which is no longer needed.
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsArray): Deleted.
Remove overload of jsArray that took a DOMStringList.
* bindings/js/JSDOMBinding.h:
(WebCore::jsFrozenArray):
Add jsFrozenArray which returns an JSArray which has had the moral
equivalent of Object.freeze() called on it. This follows
http://heycam.github.io/webidl/#es-frozen-array.
* bindings/js/JSDOMStringListCustom.cpp:
Removed.
* bindings/js/JSIDBDatabaseCustom.cpp:
(WebCore::JSIDBDatabase::transaction): Deleted.
Remove no longer necessary custom implementation of transaction.
* bindings/scripts/CodeGenerator.pm:
(IsRefPtrType):
(IsSVGAnimatedType):
(IsSequenceType):
(GetSequenceType):
(IsFrozenArrayType):
(GetFrozenArrayInnerType):
* bindings/scripts/CodeGeneratorJS.pm:
(AreTypesDistinguishableForOverloadResolution):
(GenerateOverloadedFunctionOrConstructor):
(GetNativeType):
(GetNativeVectorInnerType):
(GetNativeTypeForCallbacks):
(JSValueToNative):
(NativeToJSValue):
* bindings/scripts/IDLParser.pm:
(parseNonAnyType):
Add support for FrozenArray, closely matching the sequence code.
* bindings/scripts/test/JS/JSTestCallback.cpp:
* bindings/scripts/test/JS/JSTestCallback.h:
* bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
* bindings/scripts/test/JS/JSTestCallbackFunction.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
Updated bindings test results.
* dom/DOMStringList.idl:
Remove JSCustomToNativeObject, which is no longer needed.
* inspector/InspectorIndexedDBAgent.cpp:
Update calls to IDBDatabase::transaction.
* page/Location.cpp:
(WebCore::Location::ancestorOrigins):
* page/Location.h:
Change ancestorOrigins to return a Vector<String> rather than
a DOMStringList.
* page/Location.idl:
Change ancestorOrigins to return a FrozenArray<USVString>, matching
the HTML5 spec.
LayoutTests:
Update existing tests to account for the change in type of Location.ancestorOrigins.
* fast/dom/Window/Location/ancestor-origins-expected.txt:
* fast/dom/Window/Location/ancestor-origins.html:
* fast/dom/indexed-getters-returning-string-expected.txt:
* fast/dom/indexed-getters-returning-string.html:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowLocationancestororiginsexpectedtxt">trunk/LayoutTests/fast/dom/Window/Location/ancestor-origins-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowLocationancestororiginshtml">trunk/LayoutTests/fast/dom/Window/Location/ancestor-origins.html</a></li>
<li><a href="#trunkLayoutTestsfastdomindexedgettersreturningstringexpectedtxt">trunk/LayoutTests/fast/dom/indexed-getters-returning-string-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomindexedgettersreturningstringhtml">trunk/LayoutTests/fast/dom/indexed-getters-returning-string.html</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeObjectConstructorh">trunk/Source/JavaScriptCore/runtime/ObjectConstructor.h</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabasecpp">trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseh">trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseidl">trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSBindingsAllInOnecpp">trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingcpp">trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingh">trunk/Source/WebCore/bindings/js/JSDOMBinding.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSIDBDatabaseCustomcpp">trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorpm">trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorGObjectpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsIDLParserpm">trunk/Source/WebCore/bindings/scripts/IDLParser.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackFunctioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackFunctionh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDOMStringListidl">trunk/Source/WebCore/dom/DOMStringList.idl</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp">trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp</a></li>
<li><a href="#trunkSourceWebCorepageLocationcpp">trunk/Source/WebCore/page/Location.cpp</a></li>
<li><a href="#trunkSourceWebCorepageLocationh">trunk/Source/WebCore/page/Location.h</a></li>
<li><a href="#trunkSourceWebCorepageLocationidl">trunk/Source/WebCore/page/Location.idl</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMStringListCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMStringListCustom.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/LayoutTests/ChangeLog        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2016-08-19 Sam Weinig <sam@webkit.org>
+
+ Location.ancestorOrigins should return a FrozenArray<USVString>
+ https://bugs.webkit.org/show_bug.cgi?id=161018
+
+ Reviewed by Ryosuke Niwa and Chris Dumez.
+
+ Update existing tests to account for the change in type of Location.ancestorOrigins.
+
+ * fast/dom/Window/Location/ancestor-origins-expected.txt:
+ * fast/dom/Window/Location/ancestor-origins.html:
+ * fast/dom/indexed-getters-returning-string-expected.txt:
+ * fast/dom/indexed-getters-returning-string.html:
+
</ins><span class="cx"> 2016-08-19 Dean Jackson <dino@apple.com>
</span><span class="cx">
</span><span class="cx"> Implement preferLowPowerToHighPerformance for WebGL
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowLocationancestororiginsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Window/Location/ancestor-origins-expected.txt (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/Location/ancestor-origins-expected.txt        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/LayoutTests/fast/dom/Window/Location/ancestor-origins-expected.txt        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -1,7 +1,16 @@
</span><del>-ancestorOrigins.length = 0
</del><ins>+Test the Location object's ancestorOrigins property.
</ins><span class="cx">
</span><del>---------
-Frame: '<!--framePath //<!--frame0-->-->'
---------
-ancestorOrigins.length = 1
-ancestorOrigins[0] = file://
</del><ins>+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS window.location.ancestorOrigins is an instance of Array
+PASS window.location.ancestorOrigins.length is 0
+PASS Object.isFrozen(window.location.ancestorOrigins) is true
+PASS window.location.ancestorOrigins === window.location.ancestorOrigins is true
+PASS subframeOrigins is an instance of Array
+PASS subframeOrigins.length is 1
+PASS subframeOrigins[0] is 'file://'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowLocationancestororiginshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Window/Location/ancestor-origins.html (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/Location/ancestor-origins.html        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/LayoutTests/fast/dom/Window/Location/ancestor-origins.html        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -1,16 +1,36 @@
</span><ins>+<head>
+ <script src="../../../../resources/js-test-pre.js"></script>
+ <script src="resources/location-tests-functions.js"></script>
+</head>
+
</ins><span class="cx"> <script>
</span><del>-if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.dumpChildFramesAsText();
</del><ins>+
+self.jsTestIsAsync = true;
+
+description("Test the Location object's ancestorOrigins property.")
+
+shouldBeType("window.location.ancestorOrigins", "Array");
+shouldBe("window.location.ancestorOrigins.length", "0");
+shouldBeTrue("Object.isFrozen(window.location.ancestorOrigins)");
+shouldBeTrue("window.location.ancestorOrigins === window.location.ancestorOrigins");
+
+var subframeOrigins;
+
+window.onmessage = function(event)
+{
+ subframeOrigins = event.data;
+
+ shouldBeType("subframeOrigins", "Array");
+ shouldBe("subframeOrigins.length", "1");
+ shouldBe("subframeOrigins[0]", "'file://'");
+
+ finishJSTest();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-var origins = location.ancestorOrigins;
-document.write('ancestorOrigins.length = ' + origins.length);
</del><span class="cx"> </script>
</span><span class="cx"> <iframe srcdoc="
</span><span class="cx"> <script>
</span><del>- var origins = location.ancestorOrigins;
- document.write('ancestorOrigins.length = ' + origins.length + '<br>');
- document.write('ancestorOrigins[0] = ' + origins[0]);
</del><ins>+ top.postMessage(location.ancestorOrigins, '*')
</ins><span class="cx"> </script>
</span><span class="cx"> "></iframe>
</span><ins>+<script src="../../../../resources/js-test-post.js"></script>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomindexedgettersreturningstringexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/indexed-getters-returning-string-expected.txt (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/indexed-getters-returning-string-expected.txt        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/LayoutTests/fast/dom/indexed-getters-returning-string-expected.txt        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -7,9 +7,6 @@
</span><span class="cx"> DOMTokenList.item()
</span><span class="cx"> PASS document.body.classList.item(666) is null
</span><span class="cx"> PASS document.body.classList[666] is undefined.
</span><del>-DOMStringList.item()
-PASS location.ancestorOrigins.item(666) is null
-PASS location.ancestorOrigins[666] is undefined.
</del><span class="cx"> Storage.getItem()
</span><span class="cx"> PASS localStorage.getItem(666) is null
</span><span class="cx"> PASS localStorage[666] is undefined.
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomindexedgettersreturningstringhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/indexed-getters-returning-string.html (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/indexed-getters-returning-string.html        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/LayoutTests/fast/dom/indexed-getters-returning-string.html        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -11,9 +11,6 @@
</span><span class="cx"> debug("DOMTokenList.item()");
</span><span class="cx"> shouldBeNull("document.body.classList.item(666)");
</span><span class="cx"> shouldBeUndefined("document.body.classList[666]");
</span><del>-debug("DOMStringList.item()");
-shouldBeNull("location.ancestorOrigins.item(666)");
-shouldBeUndefined("location.ancestorOrigins[666]");
</del><span class="cx"> debug("Storage.getItem()");
</span><span class="cx"> shouldBeNull("localStorage.getItem(666)");
</span><span class="cx"> shouldBeUndefined("localStorage[666]");
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-08-19 Sam Weinig <sam@webkit.org>
+
+ Location.ancestorOrigins should return a FrozenArray<USVString>
+ https://bugs.webkit.org/show_bug.cgi?id=161018
+
+ Reviewed by Ryosuke Niwa and Chris Dumez.
+
+ * runtime/ObjectConstructor.h:
+ (JSC::objectConstructorFreeze):
+ Export objectConstructorFreeze so it can be used to freeze DOM FrozenArrays.
+
</ins><span class="cx"> 2016-08-19 Benjamin Poulain <bpoulain@apple.com>
</span><span class="cx">
</span><span class="cx"> [JSC] ArithSqrt should work with any argument type
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeObjectConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ObjectConstructor.h (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ObjectConstructor.h        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/JavaScriptCore/runtime/ObjectConstructor.h        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-JSObject* objectConstructorFreeze(ExecState*, JSObject*);
</del><ins>+JS_EXPORT_PRIVATE JSObject* objectConstructorFreeze(ExecState*, JSObject*);
</ins><span class="cx"> JSValue objectConstructorGetPrototypeOf(ExecState*, JSObject*);
</span><span class="cx"> JSValue objectConstructorGetOwnPropertyDescriptor(ExecState*, JSObject*, const Identifier&);
</span><span class="cx"> JSValue objectConstructorGetOwnPropertyDescriptors(ExecState*, JSObject*);
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -1150,7 +1150,6 @@
</span><span class="cx"> bindings/js/JSDOMPluginArrayCustom.cpp
</span><span class="cx"> bindings/js/JSDOMPluginCustom.cpp
</span><span class="cx"> bindings/js/JSDOMPromise.cpp
</span><del>- bindings/js/JSDOMStringListCustom.cpp
</del><span class="cx"> bindings/js/JSDOMStringMapCustom.cpp
</span><span class="cx"> bindings/js/JSDOMWindowBase.cpp
</span><span class="cx"> bindings/js/JSDOMWindowCustom.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/ChangeLog        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -1,3 +1,87 @@
</span><ins>+2016-08-19 Sam Weinig <sam@webkit.org>
+
+ Location.ancestorOrigins should return a FrozenArray<USVString>
+ https://bugs.webkit.org/show_bug.cgi?id=161018
+
+ Reviewed by Ryosuke Niwa and Chris Dumez.
+
+ Updated tests: fast/dom/Window/Location/ancestor-origins.html
+ fast/dom/indexed-getters-returning-string.html
+
+ * Modules/indexeddb/IDBDatabase.cpp:
+ (WebCore::IDBDatabase::createObjectStore):
+ (WebCore::IDBDatabase::transaction):
+ (WebCore::IDBDatabase::deleteObjectStore):
+ * Modules/indexeddb/IDBDatabase.h:
+ Remove unused ScriptExecutionContext parameter.
+
+ * Modules/indexeddb/IDBDatabase.idl:
+ There is no need for a custom implementation anymore.
+
+ * CMakeLists.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+ Remove JSDOMStringListCustom.cpp, which is no longer needed.
+
+ * bindings/js/JSDOMBinding.cpp:
+ (WebCore::jsArray): Deleted.
+ Remove overload of jsArray that took a DOMStringList.
+
+ * bindings/js/JSDOMBinding.h:
+ (WebCore::jsFrozenArray):
+ Add jsFrozenArray which returns an JSArray which has had the moral
+ equivalent of Object.freeze() called on it. This follows
+ http://heycam.github.io/webidl/#es-frozen-array.
+
+ * bindings/js/JSDOMStringListCustom.cpp:
+ Removed.
+
+ * bindings/js/JSIDBDatabaseCustom.cpp:
+ (WebCore::JSIDBDatabase::transaction): Deleted.
+ Remove no longer necessary custom implementation of transaction.
+
+ * bindings/scripts/CodeGenerator.pm:
+ (IsRefPtrType):
+ (IsSVGAnimatedType):
+ (IsSequenceType):
+ (GetSequenceType):
+ (IsFrozenArrayType):
+ (GetFrozenArrayInnerType):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (AreTypesDistinguishableForOverloadResolution):
+ (GenerateOverloadedFunctionOrConstructor):
+ (GetNativeType):
+ (GetNativeVectorInnerType):
+ (GetNativeTypeForCallbacks):
+ (JSValueToNative):
+ (NativeToJSValue):
+ * bindings/scripts/IDLParser.pm:
+ (parseNonAnyType):
+ Add support for FrozenArray, closely matching the sequence code.
+
+ * bindings/scripts/test/JS/JSTestCallback.cpp:
+ * bindings/scripts/test/JS/JSTestCallback.h:
+ * bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
+ * bindings/scripts/test/JS/JSTestCallbackFunction.h:
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+ Updated bindings test results.
+
+ * dom/DOMStringList.idl:
+ Remove JSCustomToNativeObject, which is no longer needed.
+
+ * inspector/InspectorIndexedDBAgent.cpp:
+ Update calls to IDBDatabase::transaction.
+
+ * page/Location.cpp:
+ (WebCore::Location::ancestorOrigins):
+ * page/Location.h:
+ Change ancestorOrigins to return a Vector<String> rather than
+ a DOMStringList.
+
+ * page/Location.idl:
+ Change ancestorOrigins to return a FrozenArray<USVString>, matching
+ the HTML5 spec.
+
</ins><span class="cx"> 2016-08-19 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> Mark CanvasPath operations' parameters as mandatory when they should be
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx"> return adoptRef(&objectStore.leakRef());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<WebCore::IDBTransaction> IDBDatabase::transaction(ScriptExecutionContext*, const Vector<String>& objectStores, const String& modeString, ExceptionCodeWithMessage& ec)
</del><ins>+RefPtr<WebCore::IDBTransaction> IDBDatabase::transaction(const Vector<String>& objectStores, const String& modeString, ExceptionCodeWithMessage& ec)
</ins><span class="cx"> {
</span><span class="cx"> LOG(IndexedDB, "IDBDatabase::transaction");
</span><span class="cx">
</span><span class="lines">@@ -211,13 +211,13 @@
</span><span class="cx"> return adoptRef(&transaction.leakRef());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<WebCore::IDBTransaction> IDBDatabase::transaction(ScriptExecutionContext* context, const String& objectStore, const String& mode, ExceptionCodeWithMessage& ec)
</del><ins>+RefPtr<WebCore::IDBTransaction> IDBDatabase::transaction(const String& objectStore, const String& mode, ExceptionCodeWithMessage& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(currentThread() == originThreadID());
</span><span class="cx">
</span><span class="cx"> Vector<String> objectStores(1);
</span><span class="cx"> objectStores[0] = objectStore;
</span><del>- return transaction(context, objectStores, mode, ec);
</del><ins>+ return transaction(objectStores, mode, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void IDBDatabase::deleteObjectStore(const String& objectStoreName, ExceptionCodeWithMessage& ec)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -57,8 +57,8 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<IDBObjectStore> createObjectStore(const String& name, const Dictionary&, ExceptionCodeWithMessage&);
</span><span class="cx"> RefPtr<IDBObjectStore> createObjectStore(const String& name, const IDBKeyPath&, bool autoIncrement, ExceptionCodeWithMessage&);
</span><del>- RefPtr<IDBTransaction> transaction(ScriptExecutionContext*, const Vector<String>&, const String& mode, ExceptionCodeWithMessage&);
- RefPtr<IDBTransaction> transaction(ScriptExecutionContext*, const String&, const String& mode, ExceptionCodeWithMessage&);
</del><ins>+ RefPtr<IDBTransaction> transaction(const Vector<String>&, const String& mode, ExceptionCodeWithMessage&);
+ RefPtr<IDBTransaction> transaction(const String&, const String& mode, ExceptionCodeWithMessage&);
</ins><span class="cx"> void deleteObjectStore(const String& name, ExceptionCodeWithMessage&);
</span><span class="cx"> void close();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -36,8 +36,11 @@
</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, RaisesExceptionWithMessage] IDBTransaction transaction(DOMString storeName, optional DOMString mode);
- [Custom, RaisesExceptionWithMessage] IDBTransaction transaction(sequence<DOMString> storeNames, optional DOMString mode);
</del><ins>+ [RaisesExceptionWithMessage] IDBTransaction transaction(DOMString storeName, optional DOMString mode = "readonly");
+ [RaisesExceptionWithMessage] IDBTransaction transaction(sequence<DOMString> storeNames, optional DOMString mode = "readonly");
+ // FIXME: This is not part of the spec, but is needed for compatibility.
+ // See https://github.com/w3c/IndexedDB/issues/85
+ [RaisesExceptionWithMessage] IDBTransaction transaction(DOMStringList storeNames, optional DOMString mode = "readonly");
</ins><span class="cx"> void close();
</span><span class="cx">
</span><span class="cx"> attribute EventHandler onabort;
</span><span class="lines">@@ -44,4 +47,3 @@
</span><span class="cx"> attribute EventHandler onerror;
</span><span class="cx"> attribute EventHandler onversionchange;
</span><span class="cx"> };
</span><del>-
</del></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -3915,7 +3915,6 @@
</span><span class="cx">                 99CC0B6B18BEA1FF006CEBCC /* WebReplayInputs.h in Headers */ = {isa = PBXBuildFile; fileRef = 99CC0B6918BEA1FF006CEBCC /* WebReplayInputs.h */; };
</span><span class="cx">                 99E45A1718A063BE0026D88F /* EventLoopInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 99E45A1618A063BE0026D88F /* EventLoopInput.h */; };
</span><span class="cx">                 9A1142041832D135000BB8AD /* ValueToString.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A1142031832D134000BB8AD /* ValueToString.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                9A1B6F97158869C80011A8C4 /* JSDOMStringListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A1B6F96158869C80011A8C4 /* JSDOMStringListCustom.cpp */; };
</del><span class="cx">                 9A528E8317D7F52F00AA9518 /* FloatingObjects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A528E8117D7F52F00AA9518 /* FloatingObjects.cpp */; };
</span><span class="cx">                 9A528E8417D7F52F00AA9518 /* FloatingObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A528E8217D7F52F00AA9518 /* FloatingObjects.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 9AB1F38018E2489A00534743 /* CSSToLengthConversionData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AB1F37E18E2489A00534743 /* CSSToLengthConversionData.h */; };
</span><span class="lines">@@ -11491,7 +11490,6 @@
</span><span class="cx">                 99CC0B6918BEA1FF006CEBCC /* WebReplayInputs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebReplayInputs.h; sourceTree = "<group>"; };
</span><span class="cx">                 99E45A1618A063BE0026D88F /* EventLoopInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventLoopInput.h; sourceTree = "<group>"; };
</span><span class="cx">                 9A1142031832D134000BB8AD /* ValueToString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ValueToString.h; sourceTree = "<group>"; };
</span><del>-                9A1B6F96158869C80011A8C4 /* JSDOMStringListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMStringListCustom.cpp; sourceTree = "<group>"; };
</del><span class="cx">                 9A528E8117D7F52F00AA9518 /* FloatingObjects.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FloatingObjects.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 9A528E8217D7F52F00AA9518 /* FloatingObjects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FloatingObjects.h; sourceTree = "<group>"; };
</span><span class="cx">                 9AB1F37E18E2489A00534743 /* CSSToLengthConversionData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSToLengthConversionData.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -22166,7 +22164,6 @@
</span><span class="cx">                                 A9C6E6460D7465CA006442E9 /* JSDOMMimeTypeArrayCustom.cpp */,
</span><span class="cx">                                 A9C6E64A0D7465E7006442E9 /* JSDOMPluginArrayCustom.cpp */,
</span><span class="cx">                                 A9C6E64B0D7465E7006442E9 /* JSDOMPluginCustom.cpp */,
</span><del>-                                9A1B6F96158869C80011A8C4 /* JSDOMStringListCustom.cpp */,
</del><span class="cx">                                 BC64649B11D8238C006455B0 /* JSDOMStringMapCustom.cpp */,
</span><span class="cx">                                 BCD9C25E0C17AA67005C90A2 /* JSDOMWindowCustom.cpp */,
</span><span class="cx">                                 652FBBBB0DE27CB60001D386 /* JSDOMWindowCustom.h */,
</span><span class="lines">@@ -29955,7 +29952,6 @@
</span><span class="cx">                                 E172AF8F1811BC3700FBADB9 /* JSDOMPromise.cpp in Sources */,
</span><span class="cx">                                 BC5A86B50C3367E800EEA649 /* JSDOMSelection.cpp in Sources */,
</span><span class="cx">                                 C5137CF211A58378004ADB99 /* JSDOMStringList.cpp in Sources */,
</span><del>-                                9A1B6F97158869C80011A8C4 /* JSDOMStringListCustom.cpp in Sources */,
</del><span class="cx">                                 BC64649711D82349006455B0 /* JSDOMStringMap.cpp in Sources */,
</span><span class="cx">                                 BC64649C11D8238C006455B0 /* JSDOMStringMapCustom.cpp in Sources */,
</span><span class="cx">                                 7694563C1214D97C0007CBAE /* JSDOMTokenList.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSBindingsAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -58,7 +58,6 @@
</span><span class="cx"> #include "JSDOMPluginArrayCustom.cpp"
</span><span class="cx"> #include "JSDOMPluginCustom.cpp"
</span><span class="cx"> #include "JSDOMPromise.cpp"
</span><del>-#include "JSDOMStringListCustom.cpp"
</del><span class="cx"> #include "JSDOMStringMapCustom.cpp"
</span><span class="cx"> #include "JSDOMWindowBase.cpp"
</span><span class="cx"> #include "JSDOMWindowCustom.cpp"
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx">
</span><span class="cx"> #include "CachedScript.h"
</span><span class="cx"> #include "DOMConstructorWithDocument.h"
</span><del>-#include "DOMStringList.h"
</del><span class="cx"> #include "ExceptionCode.h"
</span><span class="cx"> #include "ExceptionCodeDescription.h"
</span><span class="cx"> #include "ExceptionHeaders.h"
</span><span class="lines">@@ -186,16 +185,6 @@
</span><span class="cx"> return static_cast<DateInstance*>(value.toObject(exec))->internalNumber();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-JSC::JSValue jsArray(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMStringList* stringList)
-{
- JSC::MarkedArgumentBuffer list;
- if (stringList) {
- for (unsigned i = 0; i < stringList->length(); ++i)
- list.append(jsStringWithCache(exec, stringList->item(i)));
- }
- return JSC::constructArray(exec, 0, globalObject, list);
-}
-
</del><span class="cx"> void reportException(ExecState* exec, JSValue exceptionValue, CachedScript* cachedScript)
</span><span class="cx"> {
</span><span class="cx"> RELEASE_ASSERT(exec->vm().currentThreadIsHoldingAPILock());
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> #include <runtime/JSCellInlines.h>
</span><span class="cx"> #include <runtime/JSTypedArrays.h>
</span><span class="cx"> #include <runtime/Lookup.h>
</span><ins>+#include <runtime/ObjectConstructor.h>
</ins><span class="cx"> #include <runtime/StructureInlines.h>
</span><span class="cx"> #include <runtime/TypedArrayInlines.h>
</span><span class="cx"> #include <runtime/TypedArrays.h>
</span><span class="lines">@@ -60,7 +61,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> class CachedScript;
</span><del>-class DOMStringList;
</del><span class="cx"> class DOMWindow;
</span><span class="cx"> class Frame;
</span><span class="cx"> class URL;
</span><span class="lines">@@ -269,7 +269,7 @@
</span><span class="cx">
</span><span class="cx"> template<typename T, size_t inlineCapacity> JSC::JSValue jsArray(JSC::ExecState*, JSDOMGlobalObject*, const Vector<T, inlineCapacity>&);
</span><span class="cx"> template<typename T, size_t inlineCapacity> JSC::JSValue jsArray(JSC::ExecState*, JSDOMGlobalObject*, const Vector<T, inlineCapacity>*);
</span><del>-WEBCORE_EXPORT JSC::JSValue jsArray(JSC::ExecState*, JSDOMGlobalObject*, DOMStringList*);
</del><ins>+template<typename T, size_t inlineCapacity> JSC::JSValue jsFrozenArray(JSC::ExecState*, JSDOMGlobalObject*, const Vector<T, inlineCapacity>&);
</ins><span class="cx">
</span><span class="cx"> JSC::JSValue jsPair(JSC::ExecState&, JSDOMGlobalObject*, JSC::JSValue, JSC::JSValue);
</span><span class="cx"> template<typename FirstType, typename SecondType> JSC::JSValue jsPair(JSC::ExecState&, JSDOMGlobalObject*, const FirstType&, const SecondType&);
</span><span class="lines">@@ -631,6 +631,20 @@
</span><span class="cx"> return jsArray(exec, globalObject, *vector);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+template<typename T, size_t inlineCapacity> JSC::JSValue jsFrozenArray(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, const Vector<T, inlineCapacity>& vector)
+{
+ JSC::MarkedArgumentBuffer list;
+ for (auto& element : vector) {
+ list.append(JSValueTraits<T>::arrayJSValue(exec, globalObject, element));
+ if (UNLIKELY(exec->hadException()))
+ return JSC::jsUndefined();
+ }
+ auto* array = JSC::constructArray(exec, nullptr, globalObject, list);
+ if (UNLIKELY(exec->hadException()))
+ return JSC::jsUndefined();
+ return JSC::objectConstructorFreeze(exec, array);
+}
+
</ins><span class="cx"> inline JSC::JSValue jsPair(JSC::ExecState& state, JSDOMGlobalObject* globalObject, JSC::JSValue value1, JSC::JSValue value2)
</span><span class="cx"> {
</span><span class="cx"> JSC::MarkedArgumentBuffer args;
</span><span class="lines">@@ -668,7 +682,7 @@
</span><span class="cx"> static inline bool nativeValue(JSC::ExecState& exec, JSC::JSValue jsValue, String& indexedValue)
</span><span class="cx"> {
</span><span class="cx"> indexedValue = jsValue.toWTFString(&exec);
</span><del>- return true;
</del><ins>+ return !exec.hadException();
</ins><span class="cx"> }
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMStringListCustomcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/JSDOMStringListCustom.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMStringListCustom.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/js/JSDOMStringListCustom.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -1,45 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Research In Motion Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSDOMStringList.h"
-
-#include "DOMWrapperWorld.h"
-#include <runtime/JSCJSValueInlines.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-RefPtr<DOMStringList> JSDOMStringList::toWrapped(ExecState& state, JSValue value)
-{
- if (value.inherits(JSDOMStringList::info()))
- return &jsCast<JSDOMStringList*>(asObject(value))->wrapped();
-
- if (!isJSArray(value))
- return nullptr;
-
- JSArray* array = asArray(value);
- RefPtr<DOMStringList> stringList = DOMStringList::create();
- for (unsigned i = 0; i < array->length(); ++i)
- stringList->append(array->getIndex(&state, i).toString(&state)->value(&state));
-
- return stringList;
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSIDBDatabaseCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -82,45 +82,6 @@
</span><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-JSValue JSIDBDatabase::transaction(ExecState& exec)
-{
- size_t argsCount = std::min<size_t>(2, exec.argumentCount());
- if (argsCount < 1)
- return exec.vm().throwException(&exec, createNotEnoughArgumentsError(&exec));
-
- auto* scriptContext = jsCast<JSDOMGlobalObject*>(exec.lexicalGlobalObject())->scriptExecutionContext();
- if (!scriptContext)
- return jsUndefined();
-
- Vector<String> scope;
- JSValue scopeArg(exec.argument(0));
- auto domStringList = JSDOMStringList::toWrapped(exec, scopeArg);
- if (exec.hadException())
- return jsUndefined();
-
- if (domStringList)
- scope = *domStringList;
- else {
- scope.append(scopeArg.toString(&exec)->value(&exec));
- if (exec.hadException())
- return jsUndefined();
- }
-
- String mode;
- if (argsCount == 2) {
- JSValue modeArg(exec.argument(1));
- mode = modeArg.toString(&exec)->value(&exec);
-
- if (exec.hadException())
- return jsUndefined();
- }
-
- ExceptionCodeWithMessage ec;
- JSValue result = toJS(&exec, globalObject(), wrapped().transaction(scriptContext, scope, mode, ec));
- setDOMException(&exec, ec);
- return result;
</del><span class="cx"> }
</span><span class="cx">
</span><del>-}
-
</del><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -471,7 +471,7 @@
</span><span class="cx"> return 0 if $object->IsPrimitiveType($type);
</span><span class="cx"> return 0 if $object->IsDictionaryType($type);
</span><span class="cx"> return 0 if $object->IsEnumType($type);
</span><del>- return 0 if $object->GetSequenceType($type);
</del><ins>+ return 0 if $object->IsSequenceOrFrozenArrayType($type);
</ins><span class="cx"> return 0 if $type eq "DOMString" or $type eq "USVString";
</span><span class="cx"> return 0 if $type eq "any";
</span><span class="cx">
</span><span class="lines">@@ -517,15 +517,58 @@
</span><span class="cx"> return $type =~ /^SVGAnimated/;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-sub GetSequenceType
</del><ins>+sub IsSequenceType
</ins><span class="cx"> {
</span><span class="cx"> my $object = shift;
</span><span class="cx"> my $type = shift;
</span><span class="cx">
</span><ins>+ return $type =~ /^sequence</;
+}
+
+sub GetSequenceInnerType
+{
+ my $object = shift;
+ my $type = shift;
+
</ins><span class="cx"> return $1 if $type =~ /^sequence<([\w\d_\s]+)>.*/;
</span><span class="cx"> return "";
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+sub IsFrozenArrayType
+{
+ my $object = shift;
+ my $type = shift;
+
+ return $type =~ /^FrozenArray</;
+}
+
+sub GetFrozenArrayInnerType
+{
+ my $object = shift;
+ my $type = shift;
+
+ return $1 if $type =~ /^FrozenArray<([\w\d_\s]+)>.*/;
+ return "";
+}
+
+sub IsSequenceOrFrozenArrayType
+{
+ my $object = shift;
+ my $type = shift;
+
+ return $object->IsSequenceType($type) || $object->IsFrozenArrayType($type);
+}
+
+sub GetSequenceOrFrozenArrayInnerType
+{
+ my $object = shift;
+ my $type = shift;
+
+ return $object->GetSequenceInnerType($type) if $object->IsSequenceType($type);
+ return $object->GetFrozenArrayInnerType($type) if $object->IsFrozenArrayType($type);
+ return "";
+}
+
</ins><span class="cx"> # These match WK_lcfirst and WK_ucfirst defined in builtins_generator.py.
</span><span class="cx"> # Uppercase the first letter while respecting WebKit style guidelines.
</span><span class="cx"> # E.g., xmlEncoding becomes XMLEncoding, but xmlllang becomes Xmllang.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorGObjectpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -244,7 +244,7 @@
</span><span class="cx">
</span><span class="cx"> return 1 if $attribute->isStatic;
</span><span class="cx"> return 1 if $codeGenerator->IsTypedArrayType($propType);
</span><del>- return 1 if $codeGenerator->GetSequenceType($propType);
</del><ins>+ return 1 if $codeGenerator->IsSequenceOrFrozenArrayType($propType);
</ins><span class="cx">
</span><span class="cx"> if ($codeGenerator->IsEnumType($propType)) {
</span><span class="cx"> return 1;
</span><span class="lines">@@ -320,7 +320,7 @@
</span><span class="cx"> return 1 if $param->extendedAttributes->{"Clamp"};
</span><span class="cx"> return 1 if $param->type eq "MediaQueryListListener";
</span><span class="cx"> return 1 if $param->type eq "EventListener";
</span><del>- return 1 if $codeGenerator->GetSequenceType($param->type);
</del><ins>+ return 1 if $codeGenerator->IsSequenceOrFrozenArrayType($param->type);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> # This is for DataTransferItemList.idl add(File) method
</span><span class="lines">@@ -361,7 +361,7 @@
</span><span class="cx"> return 1;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if ($codeGenerator->GetSequenceType($functionReturnType)) {
</del><ins>+ if ($codeGenerator->IsSequenceOrFrozenArrayType($functionReturnType)) {
</ins><span class="cx"> return 1;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1103,7 +1103,7 @@
</span><span class="cx"> my @callImplParams;
</span><span class="cx"> foreach my $param (@{$function->parameters}) {
</span><span class="cx"> my $paramIDLType = $param->type;
</span><del>- my $sequenceType = $codeGenerator->GetSequenceType($paramIDLType);
</del><ins>+ my $sequenceType = $codeGenerator->GetSequenceInnerType($paramIDLType);
</ins><span class="cx"> $paramIDLType = $sequenceType if $sequenceType ne "";
</span><span class="cx"> my $paramType = GetGlibTypeName($paramIDLType);
</span><span class="cx"> my $const = $paramType eq "gchar*" ? "const " : "";
</span><span class="lines">@@ -1175,7 +1175,7 @@
</span><span class="cx"> last;
</span><span class="cx"> }
</span><span class="cx"> my $paramIDLType = $param->type;
</span><del>- my $sequenceType = $codeGenerator->GetSequenceType($paramIDLType);
</del><ins>+ my $sequenceType = $codeGenerator->GetSequenceInnerType($paramIDLType);
</ins><span class="cx"> $paramIDLType = $sequenceType if $sequenceType ne "";
</span><span class="cx"> my $paramType = GetGlibTypeName($paramIDLType);
</span><span class="cx"> # $paramType can have a trailing * in some cases
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -202,11 +202,11 @@
</span><span class="cx"> # When we're finished with the one-file-per-class reorganization, we won't need these special cases.
</span><span class="cx"> if ($isCallback && $codeGenerator->IsWrapperType($type)) {
</span><span class="cx"> $includesRef->{"JS${type}.h"} = 1;
</span><del>- } elsif ($codeGenerator->GetSequenceType($type)) {
- my $sequenceType = $codeGenerator->GetSequenceType($type);
- if ($codeGenerator->IsRefPtrType($sequenceType)) {
- $includesRef->{"JS${sequenceType}.h"} = 1;
- $includesRef->{"${sequenceType}.h"} = 1;
</del><ins>+ } elsif ($codeGenerator->IsSequenceOrFrozenArrayType($type)) {
+ my $innerType = $codeGenerator->GetSequenceOrFrozenArrayInnerType($type);
+ if ($codeGenerator->IsRefPtrType($innerType)) {
+ $includesRef->{"JS${innerType}.h"} = 1;
+ $includesRef->{"${innerType}.h"} = 1;
</ins><span class="cx"> }
</span><span class="cx"> $includesRef->{"<runtime/JSArray.h>"} = 1;
</span><span class="cx"> } else {
</span><span class="lines">@@ -1765,7 +1765,7 @@
</span><span class="cx"> return 0 if &$isDictionary($typeA) && &$isDictionary($typeB);
</span><span class="cx"> return 0 if $codeGenerator->IsCallbackInterface($typeA) && $codeGenerator->IsCallbackInterface($typeB);
</span><span class="cx"> return 0 if &$isCallbackFunctionOrDictionary($typeA) && &$isCallbackFunctionOrDictionary($typeB);
</span><del>- return 0 if $codeGenerator->GetSequenceType($typeA) && $codeGenerator->GetSequenceType($typeB);
</del><ins>+ return 0 if $codeGenerator->IsSequenceOrFrozenArrayType($typeA) && $codeGenerator->IsSequenceOrFrozenArrayType($typeB);
</ins><span class="cx"> # FIXME: return 0 if typeA and typeB are both exception types.
</span><span class="cx"> return 1;
</span><span class="cx"> }
</span><span class="lines">@@ -1854,9 +1854,9 @@
</span><span class="cx"> my ($type, $optionality, $isNullable) = @_;
</span><span class="cx"> return $type eq "object" || $codeGenerator->IsFunctionOnlyCallbackInterface($type);
</span><span class="cx"> };
</span><del>- my $isSequenceParameter = sub {
</del><ins>+ my $isSequenceOrFrozenArrayParameter = sub {
</ins><span class="cx"> my ($type, $optionality, $isNullable) = @_;
</span><del>- return $codeGenerator->GetSequenceType($type);
</del><ins>+ return $codeGenerator->IsSequenceOrFrozenArrayType($type);
</ins><span class="cx"> };
</span><span class="cx"> my $isDictionaryOrObjectOrCallbackInterfaceParameter = sub {
</span><span class="cx"> my ($type, $optionality, $isNullable) = @_;
</span><span class="lines">@@ -1930,7 +1930,7 @@
</span><span class="cx"> &$generateOverloadCallIfNecessary($overload, "distinguishingArg.isFunction()");
</span><span class="cx">
</span><span class="cx"> # FIXME: Avoid invoking GetMethod(object, Symbol.iterator) again in toNativeArray and toRefPtrNativeArray.
</span><del>- $overload = GetOverloadThatMatches($S, $d, \&$isSequenceParameter);
</del><ins>+ $overload = GetOverloadThatMatches($S, $d, \&$isSequenceOrFrozenArrayParameter);
</ins><span class="cx"> &$generateOverloadCallIfNecessary($overload, "hasIteratorMethod(*state, distinguishingArg)");
</span><span class="cx">
</span><span class="cx"> $overload = GetOverloadThatMatches($S, $d, \&$isDictionaryOrObjectOrCallbackInterfaceParameter);
</span><span class="lines">@@ -4497,7 +4497,6 @@
</span><span class="cx"> my %nativeType = (
</span><span class="cx"> "DOMString" => "String",
</span><span class="cx"> "USVString" => "String",
</span><del>- "DOMStringList" => "RefPtr<DOMStringList>",
</del><span class="cx"> "DOMTimeStamp" => "DOMTimeStamp",
</span><span class="cx"> "Date" => "double",
</span><span class="cx"> "Dictionary" => "Dictionary",
</span><span class="lines">@@ -4534,8 +4533,7 @@
</span><span class="cx">
</span><span class="cx"> return "RefPtr<${type}>" if $codeGenerator->IsTypedArrayType($type) and $type ne "ArrayBuffer";
</span><span class="cx">
</span><del>- my $sequenceType = $codeGenerator->GetSequenceType($type);
- return "Vector<" . GetNativeVectorInnerType($sequenceType) . ">" if $sequenceType;
</del><ins>+ return "Vector<" . GetNativeVectorInnerType($codeGenerator->GetSequenceOrFrozenArrayInnerType($type)) . ">" if $codeGenerator->IsSequenceOrFrozenArrayType($type);
</ins><span class="cx">
</span><span class="cx"> return "${type}*";
</span><span class="cx"> }
</span><span class="lines">@@ -4551,10 +4549,10 @@
</span><span class="cx">
</span><span class="cx"> sub GetNativeVectorInnerType
</span><span class="cx"> {
</span><del>- my $sequenceType = shift;
</del><ins>+ my $innerType = shift;
</ins><span class="cx">
</span><del>- return $nativeType{$sequenceType} if exists $nativeType{$sequenceType};
- return "RefPtr<${sequenceType}>";
</del><ins>+ return $nativeType{$innerType} if exists $nativeType{$innerType};
+ return "RefPtr<$innerType>";
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> sub GetNativeTypeForCallbacks
</span><span class="lines">@@ -4562,7 +4560,6 @@
</span><span class="cx"> my ($interface, $type) = @_;
</span><span class="cx">
</span><span class="cx"> return "RefPtr<SerializedScriptValue>&&" if $type eq "SerializedScriptValue";
</span><del>- return "RefPtr<DOMStringList>&&" if $type eq "DOMStringList";
</del><span class="cx"> return "const String&" if $codeGenerator->IsStringType($type);
</span><span class="cx"> return GetNativeType($interface, $type);
</span><span class="cx"> }
</span><span class="lines">@@ -4666,13 +4663,13 @@
</span><span class="cx"> return ("Dictionary(state, $value)", 0);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- my $sequenceType = $codeGenerator->GetSequenceType($type);
- if ($sequenceType) {
- if ($codeGenerator->IsRefPtrType($sequenceType)) {
- AddToImplIncludes("JS${sequenceType}.h");
- return ("toRefPtrNativeArray<${sequenceType}, JS${sequenceType}>(*state, $value)", 1);
</del><ins>+ if ($codeGenerator->IsSequenceOrFrozenArrayType($type)) {
+ my $innerType = $codeGenerator->GetSequenceOrFrozenArrayInnerType($type);
+ if ($codeGenerator->IsRefPtrType($innerType)) {
+ AddToImplIncludes("JS${innerType}.h");
+ return ("toRefPtrNativeArray<${innerType}, JS${innerType}>(*state, $value)", 1);
</ins><span class="cx"> }
</span><del>- return ("toNativeArray<" . GetNativeVectorInnerType($sequenceType) . ">(*state, $value)", 1);
</del><ins>+ return ("toNativeArray<" . GetNativeVectorInnerType($innerType) . ">(*state, $value)", 1);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return ($value, 0) if $type eq "any";
</span><span class="lines">@@ -4742,14 +4739,15 @@
</span><span class="cx"> AddToImplIncludes("<runtime/JSString.h>", $conditional);
</span><span class="cx"> return "jsStringWithCache(state, $value)";
</span><span class="cx"> }
</span><del>-
- my $sequenceType = $codeGenerator->GetSequenceType($type);
- if ($sequenceType) {
- if ($codeGenerator->IsRefPtrType($sequenceType)) {
- AddToImplIncludes("JS${sequenceType}.h", $conditional);
</del><ins>+
+ if ($codeGenerator->IsSequenceOrFrozenArrayType($type)) {
+ my $innerType = $codeGenerator->GetSequenceOrFrozenArrayInnerType($type);
+ if ($codeGenerator->IsRefPtrType($innerType)) {
+ AddToImplIncludes("JS${innerType}.h", $conditional);
</ins><span class="cx"> }
</span><del>- AddToImplIncludes("<runtime/JSArray.h>", $conditional);
- return "jsArray(state, $globalObject, $value)";
</del><ins>+
+ return "jsArray(state, $globalObject, $value)" if $codeGenerator->IsSequenceType($type);
+ return "jsFrozenArray(state, $globalObject, $value)" if $codeGenerator->IsFrozenArrayType($type);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if ($type eq "any") {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsIDLParserpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/IDLParser.pm (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/IDLParser.pm        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/IDLParser.pm        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -2019,6 +2019,21 @@
</span><span class="cx">
</span><span class="cx"> return $type;
</span><span class="cx"> }
</span><ins>+ if ($next->value() eq "FrozenArray") {
+ $self->assertTokenValue($self->getToken(), "FrozenArray", __LINE__);
+ $self->assertTokenValue($self->getToken(), "<", __LINE__);
+
+ my $subtype = $self->parseType();
+ my $subtypeName = $subtype->name;
+
+ $self->assertTokenValue($self->getToken(), ">", __LINE__);
+
+ # FIXME: This should just be "FrozenArray" when we start using domTypes in the CodeGenerators
+ $type->name("FrozenArray<${subtypeName}>");
+ push(@{$type->subtypes}, $subtype);
+
+ return $type;
+ }
</ins><span class="cx"> if ($next->type() == IdentifierToken) {
</span><span class="cx"> my $identifier = $self->getToken();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx"> return !returnedException;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestCallback::callbackWithStringList(RefPtr<DOMStringList>&& listParam)
</del><ins>+bool JSTestCallback::callbackWithStringList(DOMStringList* listParam)
</ins><span class="cx"> {
</span><span class="cx"> if (!canInvokeCallback())
</span><span class="cx"> return true;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> virtual bool callbackWithSerializedScriptValueParam(RefPtr<SerializedScriptValue>&& srzParam, const String& strArg);
</span><span class="cx"> virtual int32_t callbackWithNonBoolReturnType(const String& strArg);
</span><span class="cx"> virtual int32_t customCallback(Class5* class5Param, Class6* class6Param);
</span><del>- virtual bool callbackWithStringList(RefPtr<DOMStringList>&& listParam);
</del><ins>+ virtual bool callbackWithStringList(DOMStringList* listParam);
</ins><span class="cx"> virtual bool callbackWithBoolean(bool boolParam);
</span><span class="cx"> virtual bool callbackRequiresThisToPass(int32_t longParam, TestNode* testNodeParam);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx"> return !returnedException;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestCallbackFunction::callbackWithStringList(RefPtr<DOMStringList>&& listParam)
</del><ins>+bool JSTestCallbackFunction::callbackWithStringList(DOMStringList* listParam)
</ins><span class="cx"> {
</span><span class="cx"> if (!canInvokeCallback())
</span><span class="cx"> return true;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> virtual bool callbackWithSerializedScriptValueParam(RefPtr<SerializedScriptValue>&& srzParam, const String& strArg);
</span><span class="cx"> virtual int32_t callbackWithNonBoolReturnType(const String& strArg);
</span><span class="cx"> virtual int32_t customCallback(Class5* class5Param, Class6* class6Param);
</span><del>- virtual bool callbackWithStringList(RefPtr<DOMStringList>&& listParam);
</del><ins>+ virtual bool callbackWithStringList(DOMStringList* listParam);
</ins><span class="cx"> virtual bool callbackWithBoolean(bool boolParam);
</span><span class="cx"> virtual bool callbackRequiresThisToPass(int32_t longParam, TestNode* testNodeParam);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -5569,11 +5569,9 @@
</span><span class="cx"> auto& impl = castedThis->wrapped();
</span><span class="cx"> if (UNLIKELY(state->argumentCount() < 1))
</span><span class="cx"> return throwVMError(state, createNotEnoughArgumentsError(state));
</span><del>- RefPtr<DOMStringList> listArg = nullptr;
</del><ins>+ DOMStringList* listArg = nullptr;
</ins><span class="cx"> if (!state->argument(0).isUndefinedOrNull()) {
</span><del>- listArg = JSDOMStringList::toWrapped(*state, state->uncheckedArgument(0));
- if (UNLIKELY(state->hadException()))
- return JSValue::encode(jsUndefined());
</del><ins>+ listArg = JSDOMStringList::toWrapped(state->uncheckedArgument(0));
</ins><span class="cx"> if (UNLIKELY(!listArg))
</span><span class="cx"> return throwArgumentTypeError(*state, 0, "listArg", "TestObject", "overloadedMethod", "DOMStringList");
</span><span class="cx"> }
</span><span class="lines">@@ -5950,9 +5948,7 @@
</span><span class="cx"> if (UNLIKELY(state->argumentCount() < 1))
</span><span class="cx"> return throwVMError(state, createNotEnoughArgumentsError(state));
</span><span class="cx"> ExceptionCode ec = 0;
</span><del>- auto values = JSDOMStringList::toWrapped(*state, state->argument(0));
- if (UNLIKELY(state->hadException()))
- return JSValue::encode(jsUndefined());
</del><ins>+ auto values = JSDOMStringList::toWrapped(state->argument(0));
</ins><span class="cx"> if (UNLIKELY(!values))
</span><span class="cx"> return throwArgumentTypeError(*state, 0, "values", "TestObject", "domStringListFunction", "DOMStringList");
</span><span class="cx"> JSValue result = toJS(state, castedThis->globalObject(), impl.domStringListFunction(*values, ec));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #include "JSMessagePort.h"
</span><span class="cx"> #include "SerializedScriptValue.h"
</span><span class="cx"> #include <runtime/FunctionPrototype.h>
</span><del>-#include <runtime/JSArray.h>
</del><span class="cx"> #include <wtf/GetPtr.h>
</span><span class="cx">
</span><span class="cx"> using namespace JSC;
</span></span></pre></div>
<a id="trunkSourceWebCoredomDOMStringListidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DOMStringList.idl (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DOMStringList.idl        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/dom/DOMStringList.idl        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -24,8 +24,7 @@
</span><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> [
</span><del>- JSCustomToNativeObject,
- ImplementationLacksVTable,
</del><ins>+ ImplementationLacksVTable
</ins><span class="cx"> ] interface DOMStringList {
</span><span class="cx"> readonly attribute unsigned long length;
</span><span class="cx"> getter DOMString? item(unsigned long index);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -201,10 +201,10 @@
</span><span class="cx"> return keyPath;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static RefPtr<IDBTransaction> transactionForDatabase(ScriptExecutionContext* scriptExecutionContext, IDBDatabase* idbDatabase, const String& objectStoreName, const String& mode = IDBTransaction::modeReadOnly())
</del><ins>+static RefPtr<IDBTransaction> transactionForDatabase(IDBDatabase* idbDatabase, const String& objectStoreName, const String& mode = IDBTransaction::modeReadOnly())
</ins><span class="cx"> {
</span><span class="cx"> ExceptionCodeWithMessage ec;
</span><del>- RefPtr<IDBTransaction> idbTransaction = idbDatabase->transaction(scriptExecutionContext, objectStoreName, mode, ec);
</del><ins>+ RefPtr<IDBTransaction> idbTransaction = idbDatabase->transaction(objectStoreName, mode, ec);
</ins><span class="cx"> if (ec.code)
</span><span class="cx"> return nullptr;
</span><span class="cx"> return idbTransaction;
</span><span class="lines">@@ -472,7 +472,7 @@
</span><span class="cx"> if (!requestCallback().isActive())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- RefPtr<IDBTransaction> idbTransaction = transactionForDatabase(context(), &database, m_objectStoreName);
</del><ins>+ RefPtr<IDBTransaction> idbTransaction = transactionForDatabase(&database, m_objectStoreName);
</ins><span class="cx"> if (!idbTransaction) {
</span><span class="cx"> m_requestCallback->sendFailure("Could not get transaction");
</span><span class="cx"> return;
</span><span class="lines">@@ -706,7 +706,7 @@
</span><span class="cx"> if (!requestCallback().isActive())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- RefPtr<IDBTransaction> idbTransaction = transactionForDatabase(context(), &database, m_objectStoreName);
</del><ins>+ RefPtr<IDBTransaction> idbTransaction = transactionForDatabase(&database, m_objectStoreName);
</ins><span class="cx"> if (!idbTransaction) {
</span><span class="cx"> m_requestCallback->sendFailure("Could not get transaction");
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorepageLocationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Location.cpp (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Location.cpp        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/page/Location.cpp        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -132,13 +132,13 @@
</span><span class="cx"> return SecurityOrigin::create(url())->toString();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-Ref<DOMStringList> Location::ancestorOrigins() const
</del><ins>+Vector<String> Location::ancestorOrigins() const
</ins><span class="cx"> {
</span><del>- auto origins = DOMStringList::create();
</del><ins>+ Vector<String> origins;
</ins><span class="cx"> if (!m_frame)
</span><span class="cx"> return origins;
</span><span class="cx"> for (Frame* frame = m_frame->tree().parent(); frame; frame = frame->tree().parent())
</span><del>- origins->append(frame->document()->securityOrigin()->toString());
</del><ins>+ origins.append(frame->document()->securityOrigin()->toString());
</ins><span class="cx"> return origins;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorepageLocationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Location.h (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Location.h        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/page/Location.h        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">
</span><span class="cx"> String toString() const { return href(); }
</span><span class="cx">
</span><del>- Ref<DOMStringList> ancestorOrigins() const;
</del><ins>+ Vector<String> ancestorOrigins() const;
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> explicit Location(Frame*);
</span></span></pre></div>
<a id="trunkSourceWebCorepageLocationidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Location.idl (204678 => 204679)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Location.idl        2016-08-20 09:38:41 UTC (rev 204678)
+++ trunk/Source/WebCore/page/Location.idl        2016-08-20 14:44:52 UTC (rev 204679)
</span><span class="lines">@@ -54,7 +54,8 @@
</span><span class="cx">
</span><span class="cx"> readonly attribute USVString origin;
</span><span class="cx">
</span><del>- readonly attribute DOMStringList ancestorOrigins;
</del><ins>+ // FIXME: Add support for SameObject
+ [Unforgeable, CachedAttribute] readonly attribute FrozenArray<USVString> ancestorOrigins;
</ins><span class="cx">
</span><span class="cx"> #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
</span><span class="cx"> [NotEnumerable, Custom, ImplementedAs=toStringFunction] DOMString toString();
</span></span></pre>
</div>
</div>
</body>
</html>