<!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>[162998] 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/162998">162998</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2014-01-28 20:18:20 -0800 (Tue, 28 Jan 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/162987">r162987</a>.
http://trac.webkit.org/changeset/162987
https://bugs.webkit.org/show_bug.cgi?id=127825
Broke Mountain Lion build (Requested by andersca on #webkit).
Source/JavaScriptCore:
* inspector/InjectedScriptSource.js:
(.):
* runtime/JSObject.cpp:
(JSC::JSObject::getOwnPropertyDescriptor):
* runtime/PropertyDescriptor.cpp:
* runtime/PropertyDescriptor.h:
* runtime/PropertySlot.h:
Source/WebCore:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateAttributesHashTable):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectConstructor):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionConstructor):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableConstructor):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructor):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerConstructor):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::jsTestNamedConstructorConstructor):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodeConstructor):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::jsTestOverloadedConstructorsConstructor):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsConstructor):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeConstructor):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::jsreadonlyConstructor):
LayoutTests:
* fast/dom/Window/replaceable-expected.txt:
* fast/dom/Window/replaceable.html:
* js/dom/getOwnPropertyDescriptor-expected.txt:
* js/resources/getOwnPropertyDescriptor.js:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowreplaceableexpectedtxt">trunk/LayoutTests/fast/dom/Window/replaceable-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowreplaceablehtml">trunk/LayoutTests/fast/dom/Window/replaceable.html</a></li>
<li><a href="#trunkLayoutTestsjsdomgetOwnPropertyDescriptorexpectedtxt">trunk/LayoutTests/js/dom/getOwnPropertyDescriptor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsresourcesgetOwnPropertyDescriptorjs">trunk/LayoutTests/js/resources/getOwnPropertyDescriptor.js</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInjectedScriptSourcejs">trunk/Source/JavaScriptCore/inspector/InjectedScriptSource.js</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSObjectcpp">trunk/Source/JavaScriptCore/runtime/JSObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertyDescriptorcpp">trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertyDescriptorh">trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertySloth">trunk/Source/JavaScriptCore/runtime/PropertySlot.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSattributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/LayoutTests/ChangeLog        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2014-01-28 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r162987.
+ http://trac.webkit.org/changeset/162987
+ https://bugs.webkit.org/show_bug.cgi?id=127825
+
+ Broke Mountain Lion build (Requested by andersca on #webkit).
+
+ * fast/dom/Window/replaceable-expected.txt:
+ * fast/dom/Window/replaceable.html:
+ * js/dom/getOwnPropertyDescriptor-expected.txt:
+ * js/resources/getOwnPropertyDescriptor.js:
+
</ins><span class="cx"> 2014-01-28 Zoltan Horvath <zoltan@webkit.org>
</span><span class="cx">
</span><span class="cx"> [CSS Shapes] Adjust inset sizing syntax to the latest specification
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowreplaceableexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Window/replaceable-expected.txt (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/replaceable-expected.txt        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/LayoutTests/fast/dom/Window/replaceable-expected.txt        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS Object.getOwnPropertyDescriptor(window, "innerHeight").hasOwnProperty("get") is true
</del><ins>+PASS Object.getOwnPropertyDescriptor(window, "innerHeight").writable is true
</ins><span class="cx"> PASS window.innerHeight is 42
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowreplaceablehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Window/replaceable.html (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/replaceable.html        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/LayoutTests/fast/dom/Window/replaceable.html        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">
</span><span class="cx"> description('Tests that Replaceable attributes are writable');
</span><span class="cx">
</span><del>-shouldBeTrue('Object.getOwnPropertyDescriptor(window, "innerHeight").hasOwnProperty("get")');
</del><ins>+shouldBeTrue('Object.getOwnPropertyDescriptor(window, "innerHeight").writable');
</ins><span class="cx">
</span><span class="cx"> window.innerHeight = 42;
</span><span class="cx"> shouldBe('window.innerHeight', '42');
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomgetOwnPropertyDescriptorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/getOwnPropertyDescriptor-expected.txt (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/getOwnPropertyDescriptor-expected.txt        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/LayoutTests/js/dom/getOwnPropertyDescriptor-expected.txt        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -129,10 +129,9 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').configurable is true
</span><del>-PASS Object.getOwnPropertyDescriptor(global, 'length').get is undefined
-PASS Object.getOwnPropertyDescriptor(global, 'length').set is undefined
-PASS Object.getOwnPropertyDescriptor(global, 'length').hasOwnProperty('value') is false
-PASS Object.getOwnPropertyDescriptor(global, 'length').hasOwnProperty('writable') is false
</del><ins>+PASS Object.getOwnPropertyDescriptor(global, 'length').value is global.length
+PASS Object.getOwnPropertyDescriptor(global, 'length').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'length').hasOwnProperty('set') is false
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'length').enumerable is true
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'length').configurable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 0).value is global[0]
</span><span class="lines">@@ -140,10 +139,9 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 0).hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 0).enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 0).configurable is false
</span><del>-PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').get is undefined
-PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').set is undefined
-PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').hasOwnProperty('value') is false
-PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').hasOwnProperty('writable') is false
</del><ins>+PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').value is 1
+PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').hasOwnProperty('set') is false
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').enumerable is true
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').configurable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 0).value is document.getElementsByTagName('div')[0]
</span><span class="lines">@@ -156,10 +154,9 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 0).hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 0).enumerable is true
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 0).configurable is false
</span><del>-PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').get is undefined
-PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').set is undefined
-PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').hasOwnProperty('value') is false
-PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').hasOwnProperty('writable') is false
</del><ins>+PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').value is document.getElementsByClassName('pass').length
+PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').hasOwnProperty('set') is false
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').enumerable is true
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').configurable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 'length').value is canvasPixelArray.length
</span><span class="lines">@@ -172,10 +169,9 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 0).hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 0).enumerable is true
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 0).configurable is false
</span><del>-PASS Object.getOwnPropertyDescriptor(select, 'length').get is undefined
-PASS Object.getOwnPropertyDescriptor(select, 'length').set is undefined
-PASS Object.getOwnPropertyDescriptor(select, 'length').hasOwnProperty('value') is false
-PASS Object.getOwnPropertyDescriptor(select, 'length').hasOwnProperty('writable') is false
</del><ins>+PASS Object.getOwnPropertyDescriptor(select, 'length').value is select.length
+PASS Object.getOwnPropertyDescriptor(select, 'length').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(select, 'length').hasOwnProperty('set') is false
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(select, 'length').enumerable is true
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(select, 'length').configurable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(select, 0).value is select[0]
</span></span></pre></div>
<a id="trunkLayoutTestsjsresourcesgetOwnPropertyDescriptorjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/resources/getOwnPropertyDescriptor.js (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/resources/getOwnPropertyDescriptor.js        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/LayoutTests/js/resources/getOwnPropertyDescriptor.js        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -44,19 +44,19 @@
</span><span class="cx"> descriptorShouldBe("global", "'Infinity'", {writable: false, enumerable: false, configurable: false, value:"Infinity"});
</span><span class="cx"> descriptorShouldBe("global", "'window'", {writable: false, enumerable: true, configurable: false, value:"global"});
</span><span class="cx"> descriptorShouldBe("global", "'XMLHttpRequest'", {writable: true, enumerable: false, configurable: true, value:"XMLHttpRequest"});
</span><del>-descriptorShouldBe("global", "'length'", {get: undefined, set: undefined, enumerable: true, configurable: false});
</del><ins>+descriptorShouldBe("global", "'length'", {writable: true, enumerable: true, configurable: false, value:"global.length"});
</ins><span class="cx"> descriptorShouldBe("global", "0", {writable: true, enumerable: false, configurable: false, value:"global[0]"});
</span><del>-descriptorShouldBe("document.getElementsByTagName('div')", "'length'", {get: undefined, set: undefined, enumerable: true, configurable: false});
</del><ins>+descriptorShouldBe("document.getElementsByTagName('div')", "'length'", {writable: false, enumerable: true, configurable: false, value:"1"});
</ins><span class="cx"> descriptorShouldBe("document.getElementsByTagName('div')", "0", {writable: false, enumerable: true, configurable: false, value:"document.getElementsByTagName('div')[0]"});
</span><span class="cx"> descriptorShouldBe("document.getElementsByClassName('pass')", "0", {writable: false, enumerable: true, configurable: false, value:"document.getElementsByClassName('pass')[0]"});
</span><del>-descriptorShouldBe("document.getElementsByClassName('pass')", "'length'", {get: undefined, set: undefined, enumerable: true, configurable: false});
</del><ins>+descriptorShouldBe("document.getElementsByClassName('pass')", "'length'", {writable: false, enumerable: true, configurable: false, value:"document.getElementsByClassName('pass').length"});
</ins><span class="cx"> var canvas = document.createElement("canvas");
</span><span class="cx"> var canvasPixelArray = canvas.getContext("2d").createImageData(10,10).data;
</span><span class="cx"> descriptorShouldBe("canvasPixelArray", "'length'", {writable: false, enumerable: true, configurable: false, value:"canvasPixelArray.length"});
</span><span class="cx"> descriptorShouldBe("canvasPixelArray", "0", {writable: true, enumerable: true, configurable: false, value:"canvasPixelArray[0]"});
</span><span class="cx"> var select = document.createElement("select");
</span><span class="cx"> select.innerHTML = "<option>foo</option>";
</span><del>-descriptorShouldBe("select", "'length'", {get: undefined, set: undefined, enumerable: true, configurable: false});
</del><ins>+descriptorShouldBe("select", "'length'", {writable: false, enumerable: true, configurable: false, value:"select.length"});
</ins><span class="cx"> descriptorShouldBe("select", "0", {writable: true, enumerable: true, configurable: false, value:"select[0]"});
</span><span class="cx">
</span><span class="cx"> var objectWithGetter = {};
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2014-01-28 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r162987.
+ http://trac.webkit.org/changeset/162987
+ https://bugs.webkit.org/show_bug.cgi?id=127825
+
+ Broke Mountain Lion build (Requested by andersca on #webkit).
+
+ * inspector/InjectedScriptSource.js:
+ (.):
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::getOwnPropertyDescriptor):
+ * runtime/PropertyDescriptor.cpp:
+ * runtime/PropertyDescriptor.h:
+ * runtime/PropertySlot.h:
+
</ins><span class="cx"> 2014-01-28 Oliver Hunt <oliver@apple.com>
</span><span class="cx">
</span><span class="cx"> Make DOM attributes appear to be faux accessor properties
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInjectedScriptSourcejs"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InjectedScriptSource.js (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InjectedScriptSource.js        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/JavaScriptCore/inspector/InjectedScriptSource.js        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -350,18 +350,6 @@
</span><span class="cx"> }
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><del>- if (descriptor.hasOwnProperty("get") && descriptor.hasOwnProperty("set") && !descriptor.get && !descriptor.set) {
- // Not all bindings provide proper descriptors. Fall back to the writable, configurable property.
- try {
- descriptor = { name: name, value: object[name], writable: false, configurable: false, enumerable: false};
- if (o === object)
- descriptor.isOwn = true;
- descriptors.push(descriptor);
- } catch (e) {
- // Silent catch.
- }
- continue;
- }
</del><span class="cx"> } catch (e) {
</span><span class="cx"> var descriptor = {};
</span><span class="cx"> descriptor.value = e;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -2421,8 +2421,6 @@
</span><span class="cx"> return false;
</span><span class="cx"> if (slot.isAccessor())
</span><span class="cx"> descriptor.setAccessorDescriptor(slot.getterSetter(), slot.attributes());
</span><del>- else if (slot.attributes() & CustomAccessor)
- descriptor.setCustomDescriptor(slot.attributes());
</del><span class="cx"> else
</span><span class="cx"> descriptor.setDescriptor(slot.getValue(exec, propertyName), slot.attributes());
</span><span class="cx"> return true;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertyDescriptorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -115,16 +115,6 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void PropertyDescriptor::setCustomDescriptor(unsigned attributes)
-{
- m_attributes = attributes | Accessor | CustomAccessor;
- m_attributes &= ~ReadOnly;
- m_seenAttributes = EnumerablePresent | ConfigurablePresent;
- setGetter(jsUndefined());
- setSetter(jsUndefined());
- m_value = JSValue();
-}
-
</del><span class="cx"> void PropertyDescriptor::setAccessorDescriptor(GetterSetter* accessor, unsigned attributes)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(attributes & Accessor);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertyDescriptorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.h (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.h        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/JavaScriptCore/runtime/PropertyDescriptor.h        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -63,7 +63,6 @@
</span><span class="cx"> JSObject* setterObject() const;
</span><span class="cx"> JS_EXPORT_PRIVATE void setUndefined();
</span><span class="cx"> JS_EXPORT_PRIVATE void setDescriptor(JSValue value, unsigned attributes);
</span><del>- JS_EXPORT_PRIVATE void setCustomDescriptor(unsigned attributes);
</del><span class="cx"> JS_EXPORT_PRIVATE void setAccessorDescriptor(GetterSetter* accessor, unsigned attributes);
</span><span class="cx"> JS_EXPORT_PRIVATE void setWritable(bool);
</span><span class="cx"> JS_EXPORT_PRIVATE void setEnumerable(bool);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertySloth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertySlot.h (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertySlot.h        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/JavaScriptCore/runtime/PropertySlot.h        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -41,7 +41,6 @@
</span><span class="cx"> DontDelete = 1 << 3, // property can't be deleted
</span><span class="cx"> Function = 1 << 4, // property is a function - only used by static hashtables
</span><span class="cx"> Accessor = 1 << 5, // property is a getter/setter
</span><del>- CustomAccessor = 1 << 6,
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class PropertySlot {
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/ChangeLog        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -1,3 +1,48 @@
</span><ins>+2014-01-28 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r162987.
+ http://trac.webkit.org/changeset/162987
+ https://bugs.webkit.org/show_bug.cgi?id=127825
+
+ Broke Mountain Lion build (Requested by andersca on #webkit).
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateGetOwnPropertySlotBody):
+ (GenerateAttributesHashTable):
+ (GenerateImplementation):
+ * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+ (WebCore::jsTestActiveDOMObjectConstructor):
+ * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+ (WebCore::jsTestCustomNamedGetterConstructor):
+ * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+ (WebCore::jsTestEventConstructorConstructor):
+ * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+ (WebCore::jsTestEventTargetConstructor):
+ * bindings/scripts/test/JS/JSTestException.cpp:
+ (WebCore::jsTestExceptionConstructor):
+ * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+ (WebCore::jsTestGenerateIsReachableConstructor):
+ * bindings/scripts/test/JS/JSTestInterface.cpp:
+ (WebCore::jsTestInterfaceConstructor):
+ * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+ (WebCore::jsTestMediaQueryListListenerConstructor):
+ * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+ (WebCore::jsTestNamedConstructorConstructor):
+ * bindings/scripts/test/JS/JSTestNode.cpp:
+ (WebCore::jsTestNodeConstructor):
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjConstructor):
+ * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+ (WebCore::jsTestOverloadedConstructorsConstructor):
+ * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+ (WebCore::jsTestSerializedScriptValueInterfaceConstructor):
+ * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+ (WebCore::jsTestTypedefsConstructor):
+ * bindings/scripts/test/JS/JSattribute.cpp:
+ (WebCore::jsattributeConstructor):
+ * bindings/scripts/test/JS/JSreadonly.cpp:
+ (WebCore::jsreadonlyConstructor):
+
</ins><span class="cx"> 2014-01-28 Enrica Casucci <enrica@apple.com>
</span><span class="cx">
</span><span class="cx"> Add support for ActionSheets in WK2 for iOS.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -398,7 +398,7 @@
</span><span class="cx">
</span><span class="cx"> if ($interfaceName eq "NamedNodeMap" or $interfaceName =~ /^HTML\w*Collection$/) {
</span><span class="cx"> push(@getOwnPropertySlotImpl, " ${namespaceMaybe}JSValue proto = thisObject->prototype();\n");
</span><del>- push(@getOwnPropertySlotImpl, " if (proto.isObject() && jsCast<${namespaceMaybe}JSObject*>(proto)->hasProperty(exec, propertyName))\n");
</del><ins>+ push(@getOwnPropertySlotImpl, " if (proto.isObject() && jsCast<${namespaceMaybe}JSObject*>(asObject(proto))->hasProperty(exec, propertyName))\n");
</ins><span class="cx"> push(@getOwnPropertySlotImpl, " return false;\n\n");
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1174,9 +1174,9 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-sub GenerateAttributesHashTable
</del><ins>+sub GenerateAttributesHashTable($$)
</ins><span class="cx"> {
</span><del>- my ($object, $interface, $hashKeys, $hashSpecials, $hashValue1, $hashValue2, $conditionals, $entries) = @_;
</del><ins>+ my ($object, $interface) = @_;
</ins><span class="cx">
</span><span class="cx"> # FIXME: These should be functions on $interface.
</span><span class="cx"> my $interfaceName = $interface->name;
</span><span class="lines">@@ -1188,10 +1188,21 @@
</span><span class="cx">
</span><span class="cx"> return 0 if !$numAttributes;
</span><span class="cx">
</span><ins>+ my $hashSize = $numAttributes;
+ my $hashName = $className . "Table";
+
+ my @hashKeys = ();
+ my @hashSpecials = ();
+ my @hashValue1 = ();
+ my @hashValue2 = ();
+ my %conditionals = ();
+
+ my @entries = ();
+
</ins><span class="cx"> foreach my $attribute (@{$interface->attributes}) {
</span><span class="cx"> next if ($attribute->isStatic);
</span><span class="cx"> my $name = $attribute->signature->name;
</span><del>- push($hashKeys, $name);
</del><ins>+ push(@hashKeys, $name);
</ins><span class="cx">
</span><span class="cx"> my @specials = ();
</span><span class="cx"> # As per Web IDL specification, constructor properties on the ECMAScript global object should be
</span><span class="lines">@@ -1200,39 +1211,43 @@
</span><span class="cx"> push(@specials, "DontDelete") unless ($attribute->signature->extendedAttributes->{"Deletable"} || $is_global_constructor);
</span><span class="cx"> push(@specials, "DontEnum") if ($attribute->signature->extendedAttributes->{"NotEnumerable"} || $is_global_constructor);
</span><span class="cx"> push(@specials, "ReadOnly") if IsReadonly($attribute);
</span><del>- push(@specials, "CustomAccessor") unless $is_global_constructor;
</del><span class="cx"> my $special = (@specials > 0) ? join(" | ", @specials) : "0";
</span><del>- push($hashSpecials, $special);
</del><ins>+ push(@hashSpecials, $special);
</ins><span class="cx">
</span><span class="cx"> my $getter = GetAttributeGetterName($interfaceName, $className, $attribute);
</span><del>- push($hashValue1, $getter);
</del><ins>+ push(@hashValue1, $getter);
</ins><span class="cx">
</span><span class="cx"> if (IsReadonly($attribute)) {
</span><del>- push($hashValue2, "0");
</del><ins>+ push(@hashValue2, "0");
</ins><span class="cx"> } else {
</span><span class="cx"> my $setter = GetAttributeSetterName($interfaceName, $className, $attribute);
</span><del>- push($hashValue2, $setter);
</del><ins>+ push(@hashValue2, $setter);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> my $conditional = $attribute->signature->extendedAttributes->{"Conditional"};
</span><span class="cx"> if ($conditional) {
</span><del>- $conditionals->{$name} = $conditional;
</del><ins>+ $conditionals{$name} = $conditional;
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (!$interface->extendedAttributes->{"NoInterfaceObject"}) {
</span><del>- push($hashKeys, "constructor");
</del><ins>+ push(@hashKeys, "constructor");
</ins><span class="cx"> my $getter = "js" . $interfaceName . "Constructor";
</span><del>- push($hashValue1, $getter);
</del><ins>+ push(@hashValue1, $getter);
</ins><span class="cx"> if ($interface->extendedAttributes->{"ReplaceableConstructor"}) {
</span><span class="cx"> my $setter = "setJS" . $interfaceName . "Constructor";
</span><del>- push($hashValue2, $setter);
- push($hashSpecials, "DontEnum | DontDelete");
</del><ins>+ push(@hashValue2, $setter);
+ push(@hashSpecials, "DontEnum | DontDelete");
</ins><span class="cx"> } else {
</span><del>- push($hashValue2, "0");
- push($hashSpecials, "DontEnum | ReadOnly");
</del><ins>+ push(@hashValue2, "0");
+ push(@hashSpecials, "DontEnum | ReadOnly");
</ins><span class="cx"> }
</span><span class="cx"> }
</span><ins>+
+ $object->GenerateHashTable($hashName, $hashSize,
+ \@hashKeys, \@hashSpecials,
+ \@hashValue1, \@hashValue2,
+ \%conditionals);
</ins><span class="cx"> return $numAttributes;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1570,24 +1585,10 @@
</span><span class="cx"> push(@implContent, "\nusing namespace JSC;\n\n");
</span><span class="cx"> push(@implContent, "namespace WebCore {\n\n");
</span><span class="cx">
</span><del>- my @hashKeys = ();
- my @hashValue1 = ();
- my @hashValue2 = ();
- my @hashSpecials = ();
- my %conditionals = ();
- my $hashName = $className . "Table";
</del><ins>+ my $numAttributes = GenerateAttributesHashTable($object, $interface);
</ins><span class="cx">
</span><del>- my $numAttributes = GenerateAttributesHashTable($object, $interface,
- \@hashKeys, \@hashSpecials,
- \@hashValue1, \@hashValue2,
- \%conditionals);
-
</del><span class="cx"> my $numConstants = @{$interface->constants};
</span><span class="cx"> my $numFunctions = @{$interface->functions};
</span><del>- $object->GenerateHashTable($hashName, $numAttributes,
- \@hashKeys, \@hashSpecials,
- \@hashValue1, \@hashValue2,
- \%conditionals) if $numAttributes > 0;
</del><span class="cx">
</span><span class="cx"> # - Add all constants
</span><span class="cx"> if (!$interface->extendedAttributes->{"NoInterfaceObject"}) {
</span><span class="lines">@@ -1688,13 +1689,13 @@
</span><span class="cx">
</span><span class="cx"> # - Add functions and constants to a hashtable definition
</span><span class="cx"> my $hashSize = $numFunctions + $numConstants;
</span><del>- $hashName = $className . "PrototypeTable";
</del><ins>+ my $hashName = $className . "PrototypeTable";
</ins><span class="cx">
</span><del>- @hashKeys = ();
- @hashValue1 = ();
- @hashValue2 = ();
- @hashSpecials = ();
- %conditionals = ();
</del><ins>+ my @hashKeys = ();
+ my @hashValue1 = ();
+ my @hashValue2 = ();
+ my @hashSpecials = ();
+ my %conditionals = ();
</ins><span class="cx">
</span><span class="cx"> # FIXME: we should not need a function for every constant.
</span><span class="cx"> foreach my $constant (@{$interface->constants}) {
</span><span class="lines">@@ -1969,14 +1970,8 @@
</span><span class="cx">
</span><span class="cx"> if (!$attribute->isStatic || $attribute->signature->type =~ /Constructor$/) {
</span><span class="cx"> if ($interfaceName eq "DOMWindow") {
</span><del>- push(@implContent, " ${className}* castedThis = jsDynamicCast<$className*>(JSValue::decode(thisValue));\n");
- push(@implContent, " if (!castedThis) {\n");
- push(@implContent, " if (JSDOMWindowShell* shell = jsDynamicCast<JSDOMWindowShell*>(JSValue::decode(thisValue)))\n");
- push(@implContent, " castedThis = shell->window();\n");
- push(@implContent, " }\n");
- push(@implContent, " UNUSED_PARAM(slotBase);\n");
- push(@implContent, " if (!castedThis)\n");
- push(@implContent, " return throwVMTypeError(exec);\n");
</del><ins>+ push(@implContent, " ${className}* castedThis = jsCast<$className*>(JSValue::decode(slotBase));\n");
+ push(@implContent, " UNUSED_PARAM(thisValue);\n");
</ins><span class="cx"> } else {
</span><span class="cx"> push(@implContent, " ${className}* castedThis = jsDynamicCast<$className*>(JSValue::decode(thisValue));\n");
</span><span class="cx"> push(@implContent, " UNUSED_PARAM(slotBase);\n");
</span><span class="lines">@@ -2147,7 +2142,7 @@
</span><span class="cx"> if (!$interface->extendedAttributes->{"NoInterfaceObject"}) {
</span><span class="cx"> my $constructorFunctionName = "js" . $interfaceName . "Constructor";
</span><span class="cx">
</span><del>- push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)\n");
</del><ins>+ push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> if ($interfaceName eq "DOMWindow") {
</span><span class="cx"> push(@implContent, " ${className}* domObject = jsDynamicCast<$className*>(JSValue::decode(thisValue));\n");
</span><span class="lines">@@ -2157,6 +2152,8 @@
</span><span class="cx"> push(@implContent, " }\n");
</span><span class="cx"> } else {
</span><span class="cx"> push(@implContent, " ${className}* domObject = jsDynamicCast<$className*>(JSValue::decode(thisValue));\n");
</span><ins>+ push(@implContent, " if (!domObject)\n");
+ push(@implContent, " return throwVMTypeError(exec);\n");
</ins><span class="cx"> }
</span><span class="cx"> push(@implContent, " if (!domObject)\n");
</span><span class="cx"> push(@implContent, " return throwVMTypeError(exec);\n");
</span><span class="lines">@@ -2170,265 +2167,268 @@
</span><span class="cx"> push(@implContent, "}\n\n");
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if ($interface->extendedAttributes->{"ReplaceableConstructor"}) {
- my $constructorFunctionName = "setJS" . $interfaceName . "Constructor";
</del><span class="cx">
</span><del>- push(@implContent, "void ${constructorFunctionName}(ExecState* exec, JSObject*, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n");
- push(@implContent, "{\n");
- push(@implContent, " JSValue value = JSValue::decode(encodedValue);");
- push(@implContent, " ${className}* castedThis = jsDynamicCast<${className}*>(JSValue::decode(thisValue));\n");
- if ($interfaceName eq "DOMWindow") {
- push(@implContent, " if (!castedThis) {\n");
- push(@implContent, " if (JSDOMWindowShell* shell = jsDynamicCast<JSDOMWindowShell*>(JSValue::decode(thisValue)))\n");
- push(@implContent, " castedThis = shell->window();\n");
- push(@implContent, " }\n");
- }
- push(@implContent, " if (!castedThis) {\n");
- push(@implContent, " throwVMTypeError(exec);\n");
- push(@implContent, " return;\n");
- push(@implContent, " }\n");
- if ($interface->extendedAttributes->{"CheckSecurity"}) {
- if ($interfaceName eq "DOMWindow") {
- push(@implContent, " if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis->impl()))\n");
- } else {
- push(@implContent, " if (!shouldAllowAccessToFrame(exec, castedThis->impl().frame()))\n");
- }
- push(@implContent, " return;\n");
- }
-
- push(@implContent, " // Shadowing a built-in constructor\n");
-
- if ($interfaceName eq "DOMWindow") {
- push(@implContent, " castedThis->putDirect(exec->vm(), exec->propertyNames().constructor, value);\n");
- } else {
- die "No way to handle interface with ReplaceableConstructor extended attribute: $interfaceName";
- }
- push(@implContent, "}\n\n");
</del><ins>+ # Check if we have any writable attributes
+ my $hasReadWriteProperties = 0;
+ foreach my $attribute (@{$interface->attributes}) {
+ $hasReadWriteProperties = 1 if !IsReadonly($attribute) && !$attribute->isStatic;
</ins><span class="cx"> }
</span><del>- }
- my $hasCustomSetter = $interface->extendedAttributes->{"CustomNamedSetter"}
- || $interface->extendedAttributes->{"CustomIndexedSetter"};
</del><span class="cx">
</span><del>- if ($hasCustomSetter) {
- if (!$interface->extendedAttributes->{"CustomPutFunction"}) {
- push(@implContent, "void ${className}::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot& slot)\n");
- push(@implContent, "{\n");
- push(@implContent, " ${className}* thisObject = jsCast<${className}*>(cell);\n");
- push(@implContent, " ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n");
- if ($interface->extendedAttributes->{"CustomIndexedSetter"}) {
- push(@implContent, " unsigned index = propertyName.asIndex();\n");
- push(@implContent, " if (index != PropertyName::NotAnIndex) {\n");
- push(@implContent, " thisObject->indexSetter(exec, index, value);\n");
- push(@implContent, " return;\n");
- push(@implContent, " }\n");
- }
- if ($interface->extendedAttributes->{"CustomNamedSetter"}) {
- push(@implContent, " if (thisObject->putDelegate(exec, propertyName, value, slot))\n");
- push(@implContent, " return;\n");
- }
</del><ins>+ my $overridesPutImplementation = InstanceOverridesPutImplementation($interface);
+ my $hasSetter = $hasReadWriteProperties;
</ins><span class="cx">
</span><del>- push(@implContent, " Base::put(thisObject, exec, propertyName, value, slot);\n");
- push(@implContent, "}\n\n");
-
- if ($interface->extendedAttributes->{"CustomIndexedSetter"} || $interface->extendedAttributes->{"CustomNamedSetter"}) {
- push(@implContent, "void ${className}::putByIndex(JSCell* cell, ExecState* exec, unsigned index, JSValue value, bool shouldThrow)\n");
</del><ins>+ if ($hasSetter || $overridesPutImplementation) {
+ if ($overridesPutImplementation) {
+ push(@implContent, "void ${className}::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot& slot)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " ${className}* thisObject = jsCast<${className}*>(cell);\n");
</span><span class="cx"> push(@implContent, " ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n");
</span><span class="cx"> if ($interface->extendedAttributes->{"CustomIndexedSetter"}) {
</span><del>- push(@implContent, " if (index <= MAX_ARRAY_INDEX) {\n");
- push(@implContent, " UNUSED_PARAM(shouldThrow);\n");
</del><ins>+ push(@implContent, " unsigned index = propertyName.asIndex();\n");
+ push(@implContent, " if (index != PropertyName::NotAnIndex) {\n");
</ins><span class="cx"> push(@implContent, " thisObject->indexSetter(exec, index, value);\n");
</span><span class="cx"> push(@implContent, " return;\n");
</span><span class="cx"> push(@implContent, " }\n");
</span><span class="cx"> }
</span><del>-
</del><span class="cx"> if ($interface->extendedAttributes->{"CustomNamedSetter"}) {
</span><del>- push(@implContent, " PropertyName propertyName = Identifier::from(exec, index);\n");
- push(@implContent, " PutPropertySlot slot(thisObject, shouldThrow);\n");
</del><span class="cx"> push(@implContent, " if (thisObject->putDelegate(exec, propertyName, value, slot))\n");
</span><span class="cx"> push(@implContent, " return;\n");
</span><span class="cx"> }
</span><span class="cx">
</span><del>- push(@implContent, " Base::putByIndex(cell, exec, index, value, shouldThrow);\n");
</del><ins>+ push(@implContent, " Base::put(thisObject, exec, propertyName, value, slot);\n");
+
</ins><span class="cx"> push(@implContent, "}\n\n");
</span><del>- }
- }
- }
</del><span class="cx">
</span><del>- # Check if we have any writable attributes
- my $hasReadWriteProperties = 0;
- foreach my $attribute (@{$interface->attributes}) {
- $hasReadWriteProperties = 1 if !IsReadonly($attribute) && !$attribute->isStatic;
-
- if ($attribute->signature->type eq "EventListener") {
- $implIncludes{"JSEventListener.h"} = 1;
- }
- }
-
- if ($hasReadWriteProperties) {
- foreach my $attribute (@{$interface->attributes}) {
- if (!IsReadonly($attribute)) {
- my $name = $attribute->signature->name;
- my $type = $attribute->signature->type;
- my $putFunctionName = GetAttributeSetterName($interfaceName, $className, $attribute);
- my $implSetterFunctionName = $codeGenerator->WK_ucfirst($name);
- my $setterRaisesException = $attribute->signature->extendedAttributes->{"SetterRaisesException"};
-
- my $attributeConditionalString = $codeGenerator->GenerateConditionalString($attribute->signature);
- push(@implContent, "#if ${attributeConditionalString}\n") if $attributeConditionalString;
-
- push(@implContent, "void ${putFunctionName}(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue");
- push(@implContent, " thisValue") if !$attribute->isStatic;
- push(@implContent, ", EncodedJSValue encodedValue)\n");
- push(@implContent, "{\n");
- push(@implContent, " JSValue value = JSValue::decode(encodedValue);\n");
- push(@implContent, " UNUSED_PARAM(exec);\n");
- if (!$attribute->isStatic) {
- push(@implContent, " ${className}* castedThis = jsDynamicCast<${className}*>(JSValue::decode(thisValue));\n");
- if ($interfaceName eq "DOMWindow") {
- push(@implContent, " if (!castedThis) {\n");
- push(@implContent, " if (JSDOMWindowShell* shell = jsDynamicCast<JSDOMWindowShell*>(JSValue::decode(thisValue)))\n");
- push(@implContent, " castedThis = shell->window();\n");
</del><ins>+ if ($interface->extendedAttributes->{"CustomIndexedSetter"} || $interface->extendedAttributes->{"CustomNamedSetter"}) {
+ push(@implContent, "void ${className}::putByIndex(JSCell* cell, ExecState* exec, unsigned index, JSValue value, bool shouldThrow)\n");
+ push(@implContent, "{\n");
+ push(@implContent, " ${className}* thisObject = jsCast<${className}*>(cell);\n");
+ push(@implContent, " ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n");
+ if ($interface->extendedAttributes->{"CustomIndexedSetter"}) {
+ push(@implContent, " if (index <= MAX_ARRAY_INDEX) {\n");
+ push(@implContent, " UNUSED_PARAM(shouldThrow);\n");
+ push(@implContent, " thisObject->indexSetter(exec, index, value);\n");
+ push(@implContent, " return;\n");
</ins><span class="cx"> push(@implContent, " }\n");
</span><span class="cx"> }
</span><del>- push(@implContent, " if (!castedThis) {\n");
- push(@implContent, " throwVMTypeError(exec);\n");
- push(@implContent, " return;\n");
- push(@implContent, " }\n");
- }
- if ($interface->extendedAttributes->{"CheckSecurity"} && !$attribute->signature->extendedAttributes->{"DoNotCheckSecurity"}) {
- if ($interfaceName eq "DOMWindow") {
- push(@implContent, " if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis->impl()))\n");
- } else {
- push(@implContent, " if (!shouldAllowAccessToFrame(exec, castedThis->impl().frame()))\n");
</del><ins>+
+ if ($interface->extendedAttributes->{"CustomNamedSetter"}) {
+ push(@implContent, " PropertyName propertyName = Identifier::from(exec, index);\n");
+ push(@implContent, " PutPropertySlot slot(thisObject, shouldThrow);\n");
+ push(@implContent, " if (thisObject->putDelegate(exec, propertyName, value, slot))\n");
+ push(@implContent, " return;\n");
</ins><span class="cx"> }
</span><del>- push(@implContent, " return;\n");
</del><ins>+
+ push(@implContent, " Base::putByIndex(cell, exec, index, value, shouldThrow);\n");
+ push(@implContent, "}\n\n");
</ins><span class="cx"> }
</span><ins>+ }
</ins><span class="cx">
</span><del>- if (HasCustomSetter($attribute->signature->extendedAttributes)) {
- push(@implContent, " castedThis->set$implSetterFunctionName(exec, value);\n");
- } elsif ($type eq "EventListener") {
- $implIncludes{"JSEventListener.h"} = 1;
- push(@implContent, " UNUSED_PARAM(exec);\n");
- my $windowEventListener = $attribute->signature->extendedAttributes->{"JSWindowEventListener"};
- if ($windowEventListener) {
- push(@implContent, " JSDOMGlobalObject* globalObject = castedThis->globalObject();\n");
- }
- push(@implContent, " $interfaceName& impl = castedThis->impl();\n");
- if ((($interfaceName eq "DOMWindow") or ($interfaceName eq "WorkerGlobalScope")) and $name eq "onerror") {
- $implIncludes{"JSErrorHandler.h"} = 1;
- push(@implContent, " impl.set$implSetterFunctionName(createJSErrorHandler(exec, value, castedThis));\n");
- } else {
- push(@implContent, GenerateAttributeEventListenerCall($className, $implSetterFunctionName, $windowEventListener));
- }
- } elsif ($attribute->signature->type =~ /Constructor$/) {
- my $constructorType = $attribute->signature->type;
- $constructorType =~ s/Constructor$//;
- # $constructorType ~= /Constructor$/ indicates that it is NamedConstructor.
- # We do not generate the header file for NamedConstructor of class XXXX,
- # since we generate the NamedConstructor declaration into the header file of class XXXX.
- if ($constructorType ne "any" and $constructorType !~ /Named$/) {
- AddToImplIncludes("JS" . $constructorType . ".h", $attribute->signature->extendedAttributes->{"Conditional"});
- }
- push(@implContent, " // Shadowing a built-in constructor\n");
- push(@implContent, " castedThis->putDirect(exec->vm(), Identifier(exec, \"$name\"), value);\n");
</del><ins>+ if ($hasReadWriteProperties) {
+ foreach my $attribute (@{$interface->attributes}) {
+ if (!IsReadonly($attribute)) {
+ my $name = $attribute->signature->name;
+ my $type = $attribute->signature->type;
+ my $putFunctionName = GetAttributeSetterName($interfaceName, $className, $attribute);
+ my $implSetterFunctionName = $codeGenerator->WK_ucfirst($name);
+ my $setterRaisesException = $attribute->signature->extendedAttributes->{"SetterRaisesException"};
</ins><span class="cx">
</span><del>- } elsif ($attribute->signature->extendedAttributes->{"Replaceable"}) {
- push(@implContent, " // Shadowing a built-in object\n");
- push(@implContent, " castedThis->putDirect(exec->vm(), Identifier(exec, \"$name\"), value);\n");
- } else {
- if (!$attribute->isStatic) {
- push(@implContent, " $implType& impl = castedThis->impl();\n");
- }
- push(@implContent, " ExceptionCode ec = 0;\n") if $setterRaisesException;
</del><ins>+ my $attributeConditionalString = $codeGenerator->GenerateConditionalString($attribute->signature);
+ push(@implContent, "#if ${attributeConditionalString}\n") if $attributeConditionalString;
</ins><span class="cx">
</span><del>- # If the "StrictTypeChecking" extended attribute is present, and the attribute's type is an
- # interface type, then if the incoming value does not implement that interface, a TypeError
- # is thrown rather than silently passing NULL to the C++ code.
- # Per the Web IDL and ECMAScript specifications, incoming values can always be converted to
- # both strings and numbers, so do not throw TypeError if the attribute is of these types.
- if ($attribute->signature->extendedAttributes->{"StrictTypeChecking"}) {
- $implIncludes{"<runtime/Error.h>"} = 1;
-
- my $argType = $attribute->signature->type;
- if ($codeGenerator->IsWrapperType($argType)) {
- push(@implContent, " if (!value.isUndefinedOrNull() && !value.inherits(JS${argType}::info())) {\n");
</del><ins>+ push(@implContent, "void ${putFunctionName}(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue");
+ push(@implContent, " thisValue") if !$attribute->isStatic;
+ push(@implContent, ", EncodedJSValue encodedValue)\n");
+ push(@implContent, "{\n");
+ push(@implContent, " JSValue value = JSValue::decode(encodedValue);\n");
+ push(@implContent, " UNUSED_PARAM(exec);\n");
+ if (!$attribute->isStatic) {
+ push(@implContent, " ${className}* castedThis = jsDynamicCast<${className}*>(JSValue::decode(thisValue));\n");
+ if ($interfaceName eq "DOMWindow") {
+ push(@implContent, " if (!castedThis) {\n");
+ push(@implContent, " if (JSDOMWindowShell* shell = jsDynamicCast<JSDOMWindowShell*>(JSValue::decode(thisValue)))\n");
+ push(@implContent, " castedThis = shell->window();\n");
+ push(@implContent, " }\n");
+ }
+ push(@implContent, " if (!castedThis) {\n");
</ins><span class="cx"> push(@implContent, " throwVMTypeError(exec);\n");
</span><span class="cx"> push(@implContent, " return;\n");
</span><del>- push(@implContent, " };\n");
</del><ins>+ push(@implContent, " }\n");
</ins><span class="cx"> }
</span><del>- }
</del><ins>+ if ($interface->extendedAttributes->{"CheckSecurity"} && !$attribute->signature->extendedAttributes->{"DoNotCheckSecurity"}) {
+ if ($interfaceName eq "DOMWindow") {
+ push(@implContent, " if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis->impl()))\n");
+ } else {
+ push(@implContent, " if (!shouldAllowAccessToFrame(exec, castedThis->impl().frame()))\n");
+ }
+ push(@implContent, " return;\n");
+ }
</ins><span class="cx">
</span><del>- push(@implContent, " " . GetNativeTypeFromSignature($attribute->signature) . " nativeValue(" . JSValueToNative($attribute->signature, "value") . ");\n");
- push(@implContent, " if (exec->hadException())\n");
- push(@implContent, " return;\n");
</del><ins>+ if (HasCustomSetter($attribute->signature->extendedAttributes)) {
+ push(@implContent, " castedThis->set$implSetterFunctionName(exec, value);\n");
+ } elsif ($type eq "EventListener") {
+ $implIncludes{"JSEventListener.h"} = 1;
+ push(@implContent, " UNUSED_PARAM(exec);\n");
+ my $windowEventListener = $attribute->signature->extendedAttributes->{"JSWindowEventListener"};
+ if ($windowEventListener) {
+ push(@implContent, " JSDOMGlobalObject* globalObject = castedThis->globalObject();\n");
+ }
+ push(@implContent, " $interfaceName& impl = castedThis->impl();\n");
+ if ((($interfaceName eq "DOMWindow") or ($interfaceName eq "WorkerGlobalScope")) and $name eq "onerror") {
+ $implIncludes{"JSErrorHandler.h"} = 1;
+ push(@implContent, " impl.set$implSetterFunctionName(createJSErrorHandler(exec, value, castedThis));\n");
+ } else {
+ push(@implContent, GenerateAttributeEventListenerCall($className, $implSetterFunctionName, $windowEventListener));
+ }
+ } elsif ($attribute->signature->type =~ /Constructor$/) {
+ my $constructorType = $attribute->signature->type;
+ $constructorType =~ s/Constructor$//;
+ # $constructorType ~= /Constructor$/ indicates that it is NamedConstructor.
+ # We do not generate the header file for NamedConstructor of class XXXX,
+ # since we generate the NamedConstructor declaration into the header file of class XXXX.
+ if ($constructorType ne "any" and $constructorType !~ /Named$/) {
+ AddToImplIncludes("JS" . $constructorType . ".h", $attribute->signature->extendedAttributes->{"Conditional"});
+ }
+ push(@implContent, " // Shadowing a built-in constructor\n");
+ if ($interfaceName eq "DOMWindow" && $className eq "JSblah") {
+ # FIXME: This branch never executes and should be removed.
+ push(@implContent, " castedThis->putDirect(exec->vm(), exec->propertyNames().constructor, value);\n");
+ } else {
+ push(@implContent, " castedThis->putDirect(exec->vm(), Identifier(exec, \"$name\"), value);\n");
+ }
+ } elsif ($attribute->signature->extendedAttributes->{"Replaceable"}) {
+ push(@implContent, " // Shadowing a built-in object\n");
+ push(@implContent, " castedThis->putDirect(exec->vm(), Identifier(exec, \"$name\"), value);\n");
+ } else {
+ if (!$attribute->isStatic) {
+ push(@implContent, " $implType& impl = castedThis->impl();\n");
+ }
+ push(@implContent, " ExceptionCode ec = 0;\n") if $setterRaisesException;
</ins><span class="cx">
</span><del>- if ($codeGenerator->IsEnumType($type)) {
- my @enumValues = $codeGenerator->ValidEnumValues($type);
- my @enumChecks = ();
- foreach my $enumValue (@enumValues) {
- push(@enumChecks, "nativeValue != \"$enumValue\"");
- }
- push (@implContent, " if (" . join(" && ", @enumChecks) . ")\n");
- push (@implContent, " return;\n");
- }
</del><ins>+ # If the "StrictTypeChecking" extended attribute is present, and the attribute's type is an
+ # interface type, then if the incoming value does not implement that interface, a TypeError
+ # is thrown rather than silently passing NULL to the C++ code.
+ # Per the Web IDL and ECMAScript specifications, incoming values can always be converted to
+ # both strings and numbers, so do not throw TypeError if the attribute is of these types.
+ if ($attribute->signature->extendedAttributes->{"StrictTypeChecking"}) {
+ $implIncludes{"<runtime/Error.h>"} = 1;
</ins><span class="cx">
</span><del>- if ($svgPropertyOrListPropertyType) {
- if ($svgPropertyType) {
- push(@implContent, " if (impl.isReadOnly()) {\n");
- push(@implContent, " setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);\n");
</del><ins>+ my $argType = $attribute->signature->type;
+ if ($codeGenerator->IsWrapperType($argType)) {
+ push(@implContent, " if (!value.isUndefinedOrNull() && !value.inherits(JS${argType}::info())) {\n");
+ push(@implContent, " throwVMTypeError(exec);\n");
+ push(@implContent, " return;\n");
+ push(@implContent, " };\n");
+ }
+ }
+
+ push(@implContent, " " . GetNativeTypeFromSignature($attribute->signature) . " nativeValue(" . JSValueToNative($attribute->signature, "value") . ");\n");
+ push(@implContent, " if (exec->hadException())\n");
</ins><span class="cx"> push(@implContent, " return;\n");
</span><del>- push(@implContent, " }\n");
- $implIncludes{"ExceptionCode.h"} = 1;
- }
- push(@implContent, " $svgPropertyOrListPropertyType& podImpl = impl.propertyReference();\n");
- if ($svgPropertyOrListPropertyType eq "float") { # Special case for JSSVGNumber
- push(@implContent, " podImpl = nativeValue;\n");
- } else {
- push(@implContent, " podImpl.set$implSetterFunctionName(nativeValue");
- push(@implContent, ", ec") if $setterRaisesException;
- push(@implContent, ");\n");
- push(@implContent, " setDOMException(exec, ec);\n") if $setterRaisesException;
- }
- if ($svgPropertyType) {
- if ($setterRaisesException) {
- push(@implContent, " if (!ec)\n");
- push(@implContent, " impl.commitChange();\n");
</del><ins>+
+ if ($codeGenerator->IsEnumType($type)) {
+ my @enumValues = $codeGenerator->ValidEnumValues($type);
+ my @enumChecks = ();
+ foreach my $enumValue (@enumValues) {
+ push(@enumChecks, "nativeValue != \"$enumValue\"");
+ }
+ push (@implContent, " if (" . join(" && ", @enumChecks) . ")\n");
+ push (@implContent, " return;\n");
+ }
+
+ if ($svgPropertyOrListPropertyType) {
+ if ($svgPropertyType) {
+ push(@implContent, " if (impl.isReadOnly()) {\n");
+ push(@implContent, " setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);\n");
+ push(@implContent, " return;\n");
+ push(@implContent, " }\n");
+ $implIncludes{"ExceptionCode.h"} = 1;
+ }
+ push(@implContent, " $svgPropertyOrListPropertyType& podImpl = impl.propertyReference();\n");
+ if ($svgPropertyOrListPropertyType eq "float") { # Special case for JSSVGNumber
+ push(@implContent, " podImpl = nativeValue;\n");
+ } else {
+ push(@implContent, " podImpl.set$implSetterFunctionName(nativeValue");
+ push(@implContent, ", ec") if $setterRaisesException;
+ push(@implContent, ");\n");
+ push(@implContent, " setDOMException(exec, ec);\n") if $setterRaisesException;
+ }
+ if ($svgPropertyType) {
+ if ($setterRaisesException) {
+ push(@implContent, " if (!ec)\n");
+ push(@implContent, " impl.commitChange();\n");
+ } else {
+ push(@implContent, " impl.commitChange();\n");
+ }
+ }
</ins><span class="cx"> } else {
</span><del>- push(@implContent, " impl.commitChange();\n");
</del><ins>+ my ($functionName, @arguments) = $codeGenerator->SetterExpression(\%implIncludes, $interfaceName, $attribute);
+ if ($codeGenerator->IsTypedArrayType($attribute->signature->type) and not $attribute->signature->type eq "ArrayBuffer") {
+ push(@arguments, "nativeValue.get()");
+ } else {
+ push(@arguments, "nativeValue");
+ }
+ if ($attribute->signature->extendedAttributes->{"ImplementedBy"}) {
+ my $implementedBy = $attribute->signature->extendedAttributes->{"ImplementedBy"};
+ $implIncludes{"${implementedBy}.h"} = 1;
+ unshift(@arguments, "&impl") if !$attribute->isStatic;
+ $functionName = "${implementedBy}::${functionName}";
+ } elsif ($attribute->isStatic) {
+ $functionName = "${interfaceName}::${functionName}";
+ } else {
+ $functionName = "impl.${functionName}";
+ }
+
+ unshift(@arguments, GenerateCallWith($attribute->signature->extendedAttributes->{"CallWith"}, \@implContent, ""));
+
+ push(@arguments, "ec") if $setterRaisesException;
+ push(@implContent, " ${functionName}(" . join(", ", @arguments) . ");\n");
+ push(@implContent, " setDOMException(exec, ec);\n") if $setterRaisesException;
</ins><span class="cx"> }
</span><span class="cx"> }
</span><del>- } else {
- my ($functionName, @arguments) = $codeGenerator->SetterExpression(\%implIncludes, $interfaceName, $attribute);
- if ($codeGenerator->IsTypedArrayType($attribute->signature->type) and not $attribute->signature->type eq "ArrayBuffer") {
- push(@arguments, "nativeValue.get()");
- } else {
- push(@arguments, "nativeValue");
- }
- if ($attribute->signature->extendedAttributes->{"ImplementedBy"}) {
- my $implementedBy = $attribute->signature->extendedAttributes->{"ImplementedBy"};
- $implIncludes{"${implementedBy}.h"} = 1;
- unshift(@arguments, "&impl") if !$attribute->isStatic;
- $functionName = "${implementedBy}::${functionName}";
- } elsif ($attribute->isStatic) {
- $functionName = "${interfaceName}::${functionName}";
- } else {
- $functionName = "impl.${functionName}";
- }
</del><span class="cx">
</span><del>- unshift(@arguments, GenerateCallWith($attribute->signature->extendedAttributes->{"CallWith"}, \@implContent, ""));
-
- push(@arguments, "ec") if $setterRaisesException;
- push(@implContent, " ${functionName}(" . join(", ", @arguments) . ");\n");
- push(@implContent, " setDOMException(exec, ec);\n") if $setterRaisesException;
</del><ins>+ push(@implContent, "}\n\n");
+ push(@implContent, "#endif\n") if $attributeConditionalString;
+ push(@implContent, "\n");
</ins><span class="cx"> }
</span><span class="cx"> }
</span><ins>+ }
+ }
</ins><span class="cx">
</span><del>- push(@implContent, "}\n\n");
- push(@implContent, "#endif\n") if $attributeConditionalString;
- push(@implContent, "\n");
</del><ins>+ if ($interface->extendedAttributes->{"ReplaceableConstructor"}) {
+ my $constructorFunctionName = "setJS" . $interfaceName . "Constructor";
+
+ push(@implContent, "void ${constructorFunctionName}(ExecState* exec, JSObject*, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n");
+ push(@implContent, "{\n");
+ push(@implContent, " JSValue value = JSValue::decode(encodedValue);");
+ push(@implContent, " ${className}* castedThis = jsDynamicCast<${className}*>(JSValue::decode(thisValue));\n");
+ if ($interfaceName eq "DOMWindow") {
+ push(@implContent, " if (!castedThis) {\n");
+ push(@implContent, " if (JSDOMWindowShell* shell = jsDynamicCast<JSDOMWindowShell*>(JSValue::decode(thisValue)))\n");
+ push(@implContent, " castedThis = shell->window();\n");
+ push(@implContent, " }\n");
</ins><span class="cx"> }
</span><ins>+ push(@implContent, " if (!castedThis) {\n");
+ push(@implContent, " throwVMTypeError(exec);\n");
+ push(@implContent, " return;\n");
+ push(@implContent, " }\n");
+ if ($interface->extendedAttributes->{"CheckSecurity"}) {
+ if ($interfaceName eq "DOMWindow") {
+ push(@implContent, " if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis->impl()))\n");
+ } else {
+ push(@implContent, " if (!shouldAllowAccessToFrame(exec, castedThis->impl().frame()))\n");
+ }
+ push(@implContent, " return;\n");
+ }
+
+ push(@implContent, " // Shadowing a built-in constructor\n");
+
+ if ($interfaceName eq "DOMWindow") {
+ push(@implContent, " castedThis->putDirect(exec->vm(), exec->propertyNames().constructor, value);\n");
+ } else {
+ die "No way to handle interface with ReplaceableConstructor extended attribute: $interfaceName";
+ }
+ push(@implContent, "}\n\n");
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestActiveDOMObjectTableValues[] =
</span><span class="cx"> {
</span><del>- { "excitingAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestActiveDOMObjectExcitingAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><ins>+ { "excitingAttr", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestActiveDOMObjectExcitingAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestActiveDOMObjectConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="lines">@@ -145,11 +145,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestActiveDOMObjectConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestActiveDOMObjectConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestActiveDOMObject* domObject = jsDynamicCast<JSTestActiveDOMObject*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, domObject->impl()))
</span><span class="cx"> return JSValue::encode(jsUndefined());
</span><span class="cx"> return JSValue::encode(JSTestActiveDOMObject::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -144,11 +144,13 @@
</span><span class="cx"> return Base::getOwnPropertySlotByIndex(thisObject, exec, index, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestCustomNamedGetterConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestCustomNamedGetterConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestCustomNamedGetter* domObject = jsDynamicCast<JSTestCustomNamedGetter*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestCustomNamedGetter::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestEventConstructorTableValues[] =
</span><span class="cx"> {
</span><del>- { "attr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorAttr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "attr2", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorAttr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><ins>+ { "attr1", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorAttr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "attr2", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorAttr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="lines">@@ -193,11 +193,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestEventConstructorConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestEventConstructorConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestEventConstructor* domObject = jsDynamicCast<JSTestEventConstructor*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestEventConstructor::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -169,11 +169,13 @@
</span><span class="cx"> return Base::getOwnPropertySlotByIndex(thisObject, exec, index, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestEventTargetConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestEventTargetConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestEventTarget* domObject = jsDynamicCast<JSTestEventTarget*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestEventTarget::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestExceptionTableValues[] =
</span><span class="cx"> {
</span><del>- { "name", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestExceptionName), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><ins>+ { "name", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestExceptionName), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestExceptionConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="lines">@@ -133,11 +133,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestExceptionConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestExceptionConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestException* domObject = jsDynamicCast<JSTestException*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestException::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -117,11 +117,13 @@
</span><span class="cx"> return getStaticValueSlot<JSTestGenerateIsReachable, Base>(exec, JSTestGenerateIsReachableTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestGenerateIsReachableConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestGenerateIsReachableConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestGenerateIsReachable* domObject = jsDynamicCast<JSTestGenerateIsReachable*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestGenerateIsReachable::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -52,28 +52,28 @@
</span><span class="cx"> static const HashTableValue JSTestInterfaceTableValues[] =
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>- { "implementsStr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><ins>+ { "implementsStr1", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>- { "implementsStr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsStr2) },
</del><ins>+ { "implementsStr2", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsStr2) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>- { "implementsStr3", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsStr3) },
</del><ins>+ { "implementsStr3", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsStr3) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>- { "implementsNode", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsNode) },
</del><ins>+ { "implementsNode", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsNode) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>- { "supplementalStr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><ins>+ { "supplementalStr1", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>- { "supplementalStr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalStr2) },
</del><ins>+ { "supplementalStr2", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalStr2) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>- { "supplementalStr3", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalStr3) },
</del><ins>+ { "supplementalStr3", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalStr3) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>- { "supplementalNode", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalNode) },
</del><ins>+ { "supplementalNode", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalNode) },
</ins><span class="cx"> #endif
</span><span class="cx"> { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="lines">@@ -433,11 +433,13 @@
</span><span class="cx">
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-EncodedJSValue jsTestInterfaceConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestInterface* domObject = jsDynamicCast<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestInterface::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -128,11 +128,13 @@
</span><span class="cx"> return getStaticValueSlot<JSTestMediaQueryListListener, Base>(exec, JSTestMediaQueryListListenerTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestMediaQueryListListenerConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestMediaQueryListListenerConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestMediaQueryListListener* domObject = jsDynamicCast<JSTestMediaQueryListListener*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestMediaQueryListListener::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -164,11 +164,13 @@
</span><span class="cx"> return getStaticValueSlot<JSTestNamedConstructor, Base>(exec, JSTestNamedConstructorTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNamedConstructorConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNamedConstructorConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestNamedConstructor* domObject = jsDynamicCast<JSTestNamedConstructor*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestNamedConstructor::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -121,11 +121,13 @@
</span><span class="cx"> return getStaticValueSlot<JSTestNode, Base>(exec, JSTestNodeTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNodeConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNodeConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestNode* domObject = jsDynamicCast<JSTestNode*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestNode::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</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 (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -77,53 +77,53 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestObjTableValues[] =
</span><span class="cx"> {
</span><del>- { "readOnlyLongAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "readOnlyStringAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "readOnlyTestObjAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyTestObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><ins>+ { "readOnlyLongAttr", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "readOnlyStringAttr", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "readOnlyTestObjAttr", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyTestObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { "TestSubObjEnabledBySetting", DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTestSubObjEnabledBySettingConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTestSubObjEnabledBySettingConstructor) },
</span><del>- { "enumAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjEnumAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjEnumAttr) },
- { "byteAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjByteAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjByteAttr) },
- { "octetAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjOctetAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjOctetAttr) },
- { "shortAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjShortAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjShortAttr) },
- { "unsignedShortAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedShortAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjUnsignedShortAttr) },
- { "longAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjLongAttr) },
- { "longLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjLongLongAttr) },
- { "unsignedLongLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjUnsignedLongLongAttr) },
- { "stringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttr) },
- { "testObjAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTestObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTestObjAttr) },
- { "XMLObjAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjXMLObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjXMLObjAttr) },
- { "create", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCreate), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjCreate) },
- { "reflectedStringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) },
- { "reflectedIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedIntegralAttr) },
- { "reflectedUnsignedIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedUnsignedIntegralAttr) },
- { "reflectedBooleanAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedBooleanAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedBooleanAttr) },
- { "reflectedURLAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedURLAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedURLAttr) },
- { "reflectedStringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) },
- { "reflectedCustomIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomIntegralAttr) },
- { "reflectedCustomBooleanAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomBooleanAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomBooleanAttr) },
- { "reflectedCustomURLAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomURLAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomURLAttr) },
- { "typedArrayAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTypedArrayAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTypedArrayAttr) },
- { "attrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttrWithGetterException) },
- { "attrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttrWithSetterException) },
- { "stringAttrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrWithGetterException) },
- { "stringAttrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrWithSetterException) },
- { "customAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCustomAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjCustomAttr) },
- { "withScriptStateAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptStateAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptStateAttribute) },
- { "withScriptExecutionContextAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAttribute) },
- { "withScriptStateAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptStateAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptStateAttributeRaises) },
- { "withScriptExecutionContextAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAttributeRaises) },
- { "withScriptExecutionContextAndScriptStateAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateAttribute) },
- { "withScriptExecutionContextAndScriptStateAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises) },
- { "withScriptExecutionContextAndScriptStateWithSpacesAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute) },
- { "withScriptArgumentsAndCallStackAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptArgumentsAndCallStackAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptArgumentsAndCallStackAttribute) },
</del><ins>+ { "enumAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjEnumAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjEnumAttr) },
+ { "byteAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjByteAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjByteAttr) },
+ { "octetAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjOctetAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjOctetAttr) },
+ { "shortAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjShortAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjShortAttr) },
+ { "unsignedShortAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedShortAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjUnsignedShortAttr) },
+ { "longAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjLongAttr) },
+ { "longLongAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjLongLongAttr) },
+ { "unsignedLongLongAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjUnsignedLongLongAttr) },
+ { "stringAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttr) },
+ { "testObjAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTestObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTestObjAttr) },
+ { "XMLObjAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjXMLObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjXMLObjAttr) },
+ { "create", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCreate), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjCreate) },
+ { "reflectedStringAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) },
+ { "reflectedIntegralAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedIntegralAttr) },
+ { "reflectedUnsignedIntegralAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedUnsignedIntegralAttr) },
+ { "reflectedBooleanAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedBooleanAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedBooleanAttr) },
+ { "reflectedURLAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedURLAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedURLAttr) },
+ { "reflectedStringAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) },
+ { "reflectedCustomIntegralAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomIntegralAttr) },
+ { "reflectedCustomBooleanAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomBooleanAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomBooleanAttr) },
+ { "reflectedCustomURLAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomURLAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomURLAttr) },
+ { "typedArrayAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTypedArrayAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTypedArrayAttr) },
+ { "attrWithGetterException", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttrWithGetterException) },
+ { "attrWithSetterException", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttrWithSetterException) },
+ { "stringAttrWithGetterException", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrWithGetterException) },
+ { "stringAttrWithSetterException", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrWithSetterException) },
+ { "customAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCustomAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjCustomAttr) },
+ { "withScriptStateAttribute", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptStateAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptStateAttribute) },
+ { "withScriptExecutionContextAttribute", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAttribute) },
+ { "withScriptStateAttributeRaises", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptStateAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptStateAttributeRaises) },
+ { "withScriptExecutionContextAttributeRaises", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAttributeRaises) },
+ { "withScriptExecutionContextAndScriptStateAttribute", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateAttribute) },
+ { "withScriptExecutionContextAndScriptStateAttributeRaises", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises) },
+ { "withScriptExecutionContextAndScriptStateWithSpacesAttribute", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute) },
+ { "withScriptArgumentsAndCallStackAttribute", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptArgumentsAndCallStackAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptArgumentsAndCallStackAttribute) },
</ins><span class="cx"> #if ENABLE(Condition1)
</span><del>- { "conditionalAttr1", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr1) },
</del><ins>+ { "conditionalAttr1", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr1) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><del>- { "conditionalAttr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr2) },
</del><ins>+ { "conditionalAttr2", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr2) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>- { "conditionalAttr3", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr3) },
</del><ins>+ { "conditionalAttr3", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr3) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1)
</span><span class="cx"> { "conditionalAttr4", DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr4Constructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr4Constructor) },
</span><span class="lines">@@ -134,26 +134,26 @@
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><span class="cx"> { "conditionalAttr6", DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr6Constructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr6Constructor) },
</span><span class="cx"> #endif
</span><del>- { "cachedAttribute1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCachedAttribute1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "cachedAttribute2", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCachedAttribute2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "anyAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAnyAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAnyAttribute) },
- { "contentDocument", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjContentDocument), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "mutablePoint", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjMutablePoint), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjMutablePoint) },
- { "immutablePoint", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjImmutablePoint), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjImmutablePoint) },
- { "strawberry", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStrawberry), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStrawberry) },
- { "strictFloat", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStrictFloat), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStrictFloat) },
- { "description", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjDescription), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "id", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjId), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjId) },
- { "hash", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjHash), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "replaceableAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReplaceableAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReplaceableAttribute) },
- { "nullableDoubleAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableDoubleAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "nullableLongAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableLongAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "nullableBooleanAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableBooleanAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "nullableStringAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableStringAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "nullableLongSettableAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableLongSettableAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjNullableLongSettableAttribute) },
- { "nullableStringValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableStringValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjNullableStringValue) },
- { "attribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "attributeWithReservedEnumType", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttributeWithReservedEnumType), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttributeWithReservedEnumType) },
</del><ins>+ { "cachedAttribute1", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCachedAttribute1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "cachedAttribute2", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCachedAttribute2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "anyAttribute", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAnyAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAnyAttribute) },
+ { "contentDocument", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjContentDocument), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "mutablePoint", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjMutablePoint), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjMutablePoint) },
+ { "immutablePoint", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjImmutablePoint), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjImmutablePoint) },
+ { "strawberry", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStrawberry), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStrawberry) },
+ { "strictFloat", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStrictFloat), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStrictFloat) },
+ { "description", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjDescription), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "id", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjId), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjId) },
+ { "hash", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjHash), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "replaceableAttribute", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReplaceableAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReplaceableAttribute) },
+ { "nullableDoubleAttribute", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableDoubleAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "nullableLongAttribute", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableLongAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "nullableBooleanAttribute", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableBooleanAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "nullableStringAttribute", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableStringAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "nullableLongSettableAttribute", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableLongSettableAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjNullableLongSettableAttribute) },
+ { "nullableStringValue", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableStringValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjNullableStringValue) },
+ { "attribute", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "attributeWithReservedEnumType", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttributeWithReservedEnumType), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttributeWithReservedEnumType) },
</ins><span class="cx"> { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="lines">@@ -1307,11 +1307,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestObj* domObject = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestObj::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -192,11 +192,13 @@
</span><span class="cx"> return getStaticValueSlot<JSTestOverloadedConstructors, Base>(exec, JSTestOverloadedConstructorsTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestOverloadedConstructorsConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestOverloadedConstructorsConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestOverloadedConstructors* domObject = jsDynamicCast<JSTestOverloadedConstructors*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestOverloadedConstructors::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -39,11 +39,11 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestSerializedScriptValueInterfaceTableValues[] =
</span><span class="cx"> {
</span><del>- { "value", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestSerializedScriptValueInterfaceValue) },
- { "readonlyValue", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceReadonlyValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "cachedValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceCachedValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestSerializedScriptValueInterfaceCachedValue) },
- { "ports", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfacePorts), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "cachedReadonlyValue", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceCachedReadonlyValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><ins>+ { "value", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestSerializedScriptValueInterfaceValue) },
+ { "readonlyValue", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceReadonlyValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "cachedValue", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceCachedValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestSerializedScriptValueInterfaceCachedValue) },
+ { "ports", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfacePorts), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "cachedReadonlyValue", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceCachedReadonlyValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="lines">@@ -200,11 +200,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestSerializedScriptValueInterface* domObject = jsDynamicCast<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestSerializedScriptValueInterface::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -47,12 +47,12 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestTypedefsTableValues[] =
</span><span class="cx"> {
</span><del>- { "unsignedLongLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsUnsignedLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsUnsignedLongLongAttr) },
- { "immutableSerializedScriptValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsImmutableSerializedScriptValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsImmutableSerializedScriptValue) },
- { "attrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsAttrWithGetterException) },
- { "attrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsAttrWithSetterException) },
- { "stringAttrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsStringAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsStringAttrWithGetterException) },
- { "stringAttrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsStringAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsStringAttrWithSetterException) },
</del><ins>+ { "unsignedLongLongAttr", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsUnsignedLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsUnsignedLongLongAttr) },
+ { "immutableSerializedScriptValue", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsImmutableSerializedScriptValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsImmutableSerializedScriptValue) },
+ { "attrWithGetterException", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsAttrWithGetterException) },
+ { "attrWithSetterException", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsAttrWithSetterException) },
+ { "stringAttrWithGetterException", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsStringAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsStringAttrWithGetterException) },
+ { "stringAttrWithSetterException", DontDelete, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsStringAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsStringAttrWithSetterException) },
</ins><span class="cx"> { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="lines">@@ -266,11 +266,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSTestTypedefs* domObject = jsDynamicCast<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSTestTypedefs::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSattributeTableValues[] =
</span><span class="cx"> {
</span><del>- { "readonly", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsattributeReadonly), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><ins>+ { "readonly", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsattributeReadonly), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsattributeConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="lines">@@ -133,11 +133,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsattributeConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsattributeConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSattribute* domObject = jsDynamicCast<JSattribute*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSattribute::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp (162997 => 162998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2014-01-29 04:09:12 UTC (rev 162997)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2014-01-29 04:18:20 UTC (rev 162998)
</span><span class="lines">@@ -117,11 +117,13 @@
</span><span class="cx"> return getStaticValueSlot<JSreadonly, Base>(exec, JSreadonlyTable, thisObject, propertyName, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsreadonlyConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsreadonlyConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
</ins><span class="cx"> {
</span><span class="cx"> JSreadonly* domObject = jsDynamicCast<JSreadonly*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><ins>+ if (!domObject)
+ return throwVMTypeError(exec);
</ins><span class="cx"> return JSValue::encode(JSreadonly::getConstructor(exec->vm(), domObject->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>