<!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  &lt;commit-queue@webkit.org&gt;
+
+        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  &lt;zoltan@webkit.org&gt;
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS Object.getOwnPropertyDescriptor(window, &quot;innerHeight&quot;).hasOwnProperty(&quot;get&quot;) is true
</del><ins>+PASS Object.getOwnPropertyDescriptor(window, &quot;innerHeight&quot;).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, &quot;innerHeight&quot;).hasOwnProperty(&quot;get&quot;)');
</del><ins>+shouldBeTrue('Object.getOwnPropertyDescriptor(window, &quot;innerHeight&quot;).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(&quot;global&quot;, &quot;'Infinity'&quot;, {writable: false, enumerable: false, configurable: false, value:&quot;Infinity&quot;});
</span><span class="cx"> descriptorShouldBe(&quot;global&quot;, &quot;'window'&quot;, {writable: false, enumerable: true, configurable: false, value:&quot;global&quot;});
</span><span class="cx"> descriptorShouldBe(&quot;global&quot;, &quot;'XMLHttpRequest'&quot;, {writable: true, enumerable: false, configurable: true, value:&quot;XMLHttpRequest&quot;});
</span><del>-descriptorShouldBe(&quot;global&quot;, &quot;'length'&quot;, {get: undefined, set: undefined, enumerable: true, configurable: false});
</del><ins>+descriptorShouldBe(&quot;global&quot;, &quot;'length'&quot;, {writable: true, enumerable: true, configurable: false, value:&quot;global.length&quot;});
</ins><span class="cx"> descriptorShouldBe(&quot;global&quot;, &quot;0&quot;, {writable: true, enumerable: false, configurable: false, value:&quot;global[0]&quot;});
</span><del>-descriptorShouldBe(&quot;document.getElementsByTagName('div')&quot;, &quot;'length'&quot;, {get: undefined, set: undefined, enumerable: true, configurable: false});
</del><ins>+descriptorShouldBe(&quot;document.getElementsByTagName('div')&quot;, &quot;'length'&quot;, {writable: false, enumerable: true, configurable: false, value:&quot;1&quot;});
</ins><span class="cx"> descriptorShouldBe(&quot;document.getElementsByTagName('div')&quot;, &quot;0&quot;, {writable: false, enumerable: true, configurable: false, value:&quot;document.getElementsByTagName('div')[0]&quot;});
</span><span class="cx"> descriptorShouldBe(&quot;document.getElementsByClassName('pass')&quot;, &quot;0&quot;, {writable: false, enumerable: true, configurable: false, value:&quot;document.getElementsByClassName('pass')[0]&quot;});
</span><del>-descriptorShouldBe(&quot;document.getElementsByClassName('pass')&quot;, &quot;'length'&quot;, {get: undefined, set: undefined, enumerable: true, configurable: false});
</del><ins>+descriptorShouldBe(&quot;document.getElementsByClassName('pass')&quot;, &quot;'length'&quot;, {writable: false, enumerable: true, configurable: false, value:&quot;document.getElementsByClassName('pass').length&quot;});
</ins><span class="cx"> var canvas = document.createElement(&quot;canvas&quot;);
</span><span class="cx"> var canvasPixelArray = canvas.getContext(&quot;2d&quot;).createImageData(10,10).data;
</span><span class="cx"> descriptorShouldBe(&quot;canvasPixelArray&quot;, &quot;'length'&quot;, {writable: false, enumerable: true, configurable: false, value:&quot;canvasPixelArray.length&quot;});
</span><span class="cx"> descriptorShouldBe(&quot;canvasPixelArray&quot;, &quot;0&quot;, {writable: true, enumerable: true, configurable: false, value:&quot;canvasPixelArray[0]&quot;});
</span><span class="cx"> var select = document.createElement(&quot;select&quot;);
</span><span class="cx"> select.innerHTML = &quot;&lt;option&gt;foo&lt;/option&gt;&quot;;
</span><del>-descriptorShouldBe(&quot;select&quot;, &quot;'length'&quot;, {get: undefined, set: undefined, enumerable: true, configurable: false});
</del><ins>+descriptorShouldBe(&quot;select&quot;, &quot;'length'&quot;, {writable: false, enumerable: true, configurable: false, value:&quot;select.length&quot;});
</ins><span class="cx"> descriptorShouldBe(&quot;select&quot;, &quot;0&quot;, {writable: true, enumerable: true, configurable: false, value:&quot;select[0]&quot;});
</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  &lt;commit-queue@webkit.org&gt;
+
+        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  &lt;oliver@apple.com&gt;
</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(&quot;get&quot;) &amp;&amp; descriptor.hasOwnProperty(&quot;set&quot;) &amp;&amp; !descriptor.get &amp;&amp; !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() &amp; 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 &amp;= ~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 &amp; 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 &lt;&lt; 3,  // property can't be deleted
</span><span class="cx">     Function     = 1 &lt;&lt; 4,  // property is a function - only used by static hashtables
</span><span class="cx">     Accessor     = 1 &lt;&lt; 5,  // property is a getter/setter
</span><del>-    CustomAccessor = 1 &lt;&lt; 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  &lt;commit-queue@webkit.org&gt;
+
+        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  &lt;enrica@apple.com&gt;
</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 &quot;NamedNodeMap&quot; or $interfaceName =~ /^HTML\w*Collection$/) {
</span><span class="cx">         push(@getOwnPropertySlotImpl, &quot;    ${namespaceMaybe}JSValue proto = thisObject-&gt;prototype();\n&quot;);
</span><del>-        push(@getOwnPropertySlotImpl, &quot;    if (proto.isObject() &amp;&amp; jsCast&lt;${namespaceMaybe}JSObject*&gt;(proto)-&gt;hasProperty(exec, propertyName))\n&quot;);
</del><ins>+        push(@getOwnPropertySlotImpl, &quot;    if (proto.isObject() &amp;&amp; jsCast&lt;${namespaceMaybe}JSObject*&gt;(asObject(proto))-&gt;hasProperty(exec, propertyName))\n&quot;);
</ins><span class="cx">         push(@getOwnPropertySlotImpl, &quot;        return false;\n\n&quot;);
</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-&gt;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 . &quot;Table&quot;;
+
+    my @hashKeys = ();
+    my @hashSpecials = ();
+    my @hashValue1 = ();
+    my @hashValue2 = ();
+    my %conditionals = ();
+
+    my @entries = ();
+
</ins><span class="cx">     foreach my $attribute (@{$interface-&gt;attributes}) {
</span><span class="cx">         next if ($attribute-&gt;isStatic);
</span><span class="cx">         my $name = $attribute-&gt;signature-&gt;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, &quot;DontDelete&quot;) unless ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Deletable&quot;} || $is_global_constructor);
</span><span class="cx">         push(@specials, &quot;DontEnum&quot;) if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;NotEnumerable&quot;} || $is_global_constructor);
</span><span class="cx">         push(@specials, &quot;ReadOnly&quot;) if IsReadonly($attribute);
</span><del>-        push(@specials, &quot;CustomAccessor&quot;) unless $is_global_constructor;
</del><span class="cx">         my $special = (@specials &gt; 0) ? join(&quot; | &quot;, @specials) : &quot;0&quot;;
</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, &quot;0&quot;);
</del><ins>+            push(@hashValue2, &quot;0&quot;);
</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-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;};
</span><span class="cx">         if ($conditional) {
</span><del>-            $conditionals-&gt;{$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-&gt;extendedAttributes-&gt;{&quot;NoInterfaceObject&quot;}) {
</span><del>-        push($hashKeys, &quot;constructor&quot;);
</del><ins>+        push(@hashKeys, &quot;constructor&quot;);
</ins><span class="cx">         my $getter = &quot;js&quot; . $interfaceName . &quot;Constructor&quot;;
</span><del>-        push($hashValue1, $getter);
</del><ins>+        push(@hashValue1, $getter);
</ins><span class="cx">         if ($interface-&gt;extendedAttributes-&gt;{&quot;ReplaceableConstructor&quot;}) {
</span><span class="cx">             my $setter = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
</span><del>-            push($hashValue2, $setter);
-            push($hashSpecials, &quot;DontEnum | DontDelete&quot;);
</del><ins>+            push(@hashValue2, $setter);
+            push(@hashSpecials, &quot;DontEnum | DontDelete&quot;);
</ins><span class="cx">         } else {            
</span><del>-            push($hashValue2, &quot;0&quot;);
-            push($hashSpecials, &quot;DontEnum | ReadOnly&quot;);
</del><ins>+            push(@hashValue2, &quot;0&quot;);
+            push(@hashSpecials, &quot;DontEnum | ReadOnly&quot;);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><ins>+
+    $object-&gt;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, &quot;\nusing namespace JSC;\n\n&quot;);
</span><span class="cx">     push(@implContent, &quot;namespace WebCore {\n\n&quot;);
</span><span class="cx"> 
</span><del>-    my @hashKeys = ();
-    my @hashValue1 = ();
-    my @hashValue2 = ();
-    my @hashSpecials = ();
-    my %conditionals = ();
-    my $hashName = $className . &quot;Table&quot;;
</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-&gt;constants};
</span><span class="cx">     my $numFunctions = @{$interface-&gt;functions};
</span><del>-    $object-&gt;GenerateHashTable($hashName, $numAttributes,
-        \@hashKeys, \@hashSpecials,
-        \@hashValue1, \@hashValue2,
-        \%conditionals) if $numAttributes &gt; 0;
</del><span class="cx"> 
</span><span class="cx">     # - Add all constants
</span><span class="cx">     if (!$interface-&gt;extendedAttributes-&gt;{&quot;NoInterfaceObject&quot;}) {
</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 . &quot;PrototypeTable&quot;;
</del><ins>+    my $hashName = $className . &quot;PrototypeTable&quot;;
</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-&gt;constants}) {
</span><span class="lines">@@ -1969,14 +1970,8 @@
</span><span class="cx"> 
</span><span class="cx">             if (!$attribute-&gt;isStatic || $attribute-&gt;signature-&gt;type =~ /Constructor$/) {
</span><span class="cx">                 if ($interfaceName eq &quot;DOMWindow&quot;) {
</span><del>-                    push(@implContent, &quot;    ${className}* castedThis = jsDynamicCast&lt;$className*&gt;(JSValue::decode(thisValue));\n&quot;);
-                    push(@implContent, &quot;    if (!castedThis) {\n&quot;);
-                    push(@implContent, &quot;        if (JSDOMWindowShell* shell = jsDynamicCast&lt;JSDOMWindowShell*&gt;(JSValue::decode(thisValue)))\n&quot;);
-                    push(@implContent, &quot;            castedThis = shell-&gt;window();\n&quot;);
-                    push(@implContent, &quot;    }\n&quot;);
-                    push(@implContent, &quot;    UNUSED_PARAM(slotBase);\n&quot;);
-                    push(@implContent, &quot;    if (!castedThis)\n&quot;);
-                    push(@implContent, &quot;        return throwVMTypeError(exec);\n&quot;);
</del><ins>+                    push(@implContent, &quot;    ${className}* castedThis = jsCast&lt;$className*&gt;(JSValue::decode(slotBase));\n&quot;);
+                    push(@implContent, &quot;    UNUSED_PARAM(thisValue);\n&quot;);
</ins><span class="cx">                 } else {
</span><span class="cx">                     push(@implContent, &quot;    ${className}* castedThis = jsDynamicCast&lt;$className*&gt;(JSValue::decode(thisValue));\n&quot;);
</span><span class="cx">                     push(@implContent, &quot;    UNUSED_PARAM(slotBase);\n&quot;);
</span><span class="lines">@@ -2147,7 +2142,7 @@
</span><span class="cx">         if (!$interface-&gt;extendedAttributes-&gt;{&quot;NoInterfaceObject&quot;}) {
</span><span class="cx">             my $constructorFunctionName = &quot;js&quot; . $interfaceName . &quot;Constructor&quot;;
</span><span class="cx"> 
</span><del>-            push(@implContent, &quot;EncodedJSValue ${constructorFunctionName}(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)\n&quot;);
</del><ins>+            push(@implContent, &quot;EncodedJSValue ${constructorFunctionName}(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)\n&quot;);
</ins><span class="cx">             push(@implContent, &quot;{\n&quot;);
</span><span class="cx">             if ($interfaceName eq &quot;DOMWindow&quot;) {
</span><span class="cx">                 push(@implContent, &quot;    ${className}* domObject = jsDynamicCast&lt;$className*&gt;(JSValue::decode(thisValue));\n&quot;);
</span><span class="lines">@@ -2157,6 +2152,8 @@
</span><span class="cx">                 push(@implContent, &quot;    }\n&quot;);
</span><span class="cx">             } else {
</span><span class="cx">                 push(@implContent, &quot;    ${className}* domObject = jsDynamicCast&lt;$className*&gt;(JSValue::decode(thisValue));\n&quot;);
</span><ins>+                push(@implContent, &quot;    if (!domObject)\n&quot;);
+                push(@implContent, &quot;        return throwVMTypeError(exec);\n&quot;);
</ins><span class="cx">             }
</span><span class="cx">             push(@implContent, &quot;    if (!domObject)\n&quot;);
</span><span class="cx">             push(@implContent, &quot;        return throwVMTypeError(exec);\n&quot;);
</span><span class="lines">@@ -2170,265 +2167,268 @@
</span><span class="cx">             push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if ($interface-&gt;extendedAttributes-&gt;{&quot;ReplaceableConstructor&quot;}) {
-            my $constructorFunctionName = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
</del><span class="cx"> 
</span><del>-            push(@implContent, &quot;void ${constructorFunctionName}(ExecState* exec, JSObject*, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n&quot;);
-            push(@implContent, &quot;{\n&quot;);
-            push(@implContent, &quot;    JSValue value = JSValue::decode(encodedValue);&quot;);
-            push(@implContent, &quot;    ${className}* castedThis = jsDynamicCast&lt;${className}*&gt;(JSValue::decode(thisValue));\n&quot;);
-            if ($interfaceName eq &quot;DOMWindow&quot;) {
-                push(@implContent, &quot;    if (!castedThis) {\n&quot;);
-                push(@implContent, &quot;        if (JSDOMWindowShell* shell = jsDynamicCast&lt;JSDOMWindowShell*&gt;(JSValue::decode(thisValue)))\n&quot;);
-                push(@implContent, &quot;            castedThis = shell-&gt;window();\n&quot;);
-                push(@implContent, &quot;    }\n&quot;);
-            }
-            push(@implContent, &quot;    if (!castedThis) {\n&quot;);
-            push(@implContent, &quot;        throwVMTypeError(exec);\n&quot;);
-            push(@implContent, &quot;        return;\n&quot;);
-            push(@implContent, &quot;    }\n&quot;);
-            if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;}) {
-                if ($interfaceName eq &quot;DOMWindow&quot;) {
-                    push(@implContent, &quot;    if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis-&gt;impl()))\n&quot;);
-                } else {
-                    push(@implContent, &quot;    if (!shouldAllowAccessToFrame(exec, castedThis-&gt;impl().frame()))\n&quot;);
-                }
-                push(@implContent, &quot;        return;\n&quot;);
-            }
-
-            push(@implContent, &quot;    // Shadowing a built-in constructor\n&quot;);
-
-            if ($interfaceName eq &quot;DOMWindow&quot;) {
-                push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), exec-&gt;propertyNames().constructor, value);\n&quot;);
-            } else {
-                die &quot;No way to handle interface with ReplaceableConstructor extended attribute: $interfaceName&quot;;
-            }
-            push(@implContent, &quot;}\n\n&quot;);
</del><ins>+        # Check if we have any writable attributes
+        my $hasReadWriteProperties = 0;
+        foreach my $attribute (@{$interface-&gt;attributes}) {
+            $hasReadWriteProperties = 1 if !IsReadonly($attribute) &amp;&amp; !$attribute-&gt;isStatic;
</ins><span class="cx">         }
</span><del>-    }
-    my $hasCustomSetter = $interface-&gt;extendedAttributes-&gt;{&quot;CustomNamedSetter&quot;}
-                          || $interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;};
</del><span class="cx"> 
</span><del>-    if ($hasCustomSetter) {
-        if (!$interface-&gt;extendedAttributes-&gt;{&quot;CustomPutFunction&quot;}) {
-            push(@implContent, &quot;void ${className}::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot&amp; slot)\n&quot;);
-            push(@implContent, &quot;{\n&quot;);
-            push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
-            push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
-            if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;}) {
-                push(@implContent, &quot;    unsigned index = propertyName.asIndex();\n&quot;);
-                push(@implContent, &quot;    if (index != PropertyName::NotAnIndex) {\n&quot;);
-                push(@implContent, &quot;        thisObject-&gt;indexSetter(exec, index, value);\n&quot;);
-                push(@implContent, &quot;        return;\n&quot;);
-                push(@implContent, &quot;    }\n&quot;);
-            }
-            if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomNamedSetter&quot;}) {
-                push(@implContent, &quot;    if (thisObject-&gt;putDelegate(exec, propertyName, value, slot))\n&quot;);
-                push(@implContent, &quot;        return;\n&quot;);
-            }
</del><ins>+        my $overridesPutImplementation = InstanceOverridesPutImplementation($interface);
+        my $hasSetter = $hasReadWriteProperties;
</ins><span class="cx"> 
</span><del>-            push(@implContent, &quot;    Base::put(thisObject, exec, propertyName, value, slot);\n&quot;);
-            push(@implContent, &quot;}\n\n&quot;);
-
-            if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;} || $interface-&gt;extendedAttributes-&gt;{&quot;CustomNamedSetter&quot;}) {
-                push(@implContent, &quot;void ${className}::putByIndex(JSCell* cell, ExecState* exec, unsigned index, JSValue value, bool shouldThrow)\n&quot;);
</del><ins>+        if ($hasSetter || $overridesPutImplementation) {
+            if ($overridesPutImplementation) {
+                push(@implContent, &quot;void ${className}::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot&amp; slot)\n&quot;);
</ins><span class="cx">                 push(@implContent, &quot;{\n&quot;);
</span><span class="cx">                 push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</span><span class="cx">                 push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><span class="cx">                 if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;}) {
</span><del>-                    push(@implContent, &quot;    if (index &lt;= MAX_ARRAY_INDEX) {\n&quot;);
-                    push(@implContent, &quot;        UNUSED_PARAM(shouldThrow);\n&quot;);
</del><ins>+                    push(@implContent, &quot;    unsigned index = propertyName.asIndex();\n&quot;);
+                    push(@implContent, &quot;    if (index != PropertyName::NotAnIndex) {\n&quot;);
</ins><span class="cx">                     push(@implContent, &quot;        thisObject-&gt;indexSetter(exec, index, value);\n&quot;);
</span><span class="cx">                     push(@implContent, &quot;        return;\n&quot;);
</span><span class="cx">                     push(@implContent, &quot;    }\n&quot;);
</span><span class="cx">                 }
</span><del>-
</del><span class="cx">                 if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomNamedSetter&quot;}) {
</span><del>-                    push(@implContent, &quot;    PropertyName propertyName = Identifier::from(exec, index);\n&quot;);
-                    push(@implContent, &quot;    PutPropertySlot slot(thisObject, shouldThrow);\n&quot;);
</del><span class="cx">                     push(@implContent, &quot;    if (thisObject-&gt;putDelegate(exec, propertyName, value, slot))\n&quot;);
</span><span class="cx">                     push(@implContent, &quot;        return;\n&quot;);
</span><span class="cx">                 }
</span><span class="cx"> 
</span><del>-                push(@implContent, &quot;    Base::putByIndex(cell, exec, index, value, shouldThrow);\n&quot;);
</del><ins>+                push(@implContent, &quot;    Base::put(thisObject, exec, propertyName, value, slot);\n&quot;);
+
</ins><span class="cx">                 push(@implContent, &quot;}\n\n&quot;);
</span><del>-            }
-        }
-    }
</del><span class="cx"> 
</span><del>-    # Check if we have any writable attributes
-    my $hasReadWriteProperties = 0;
-    foreach my $attribute (@{$interface-&gt;attributes}) {
-        $hasReadWriteProperties = 1 if !IsReadonly($attribute) &amp;&amp; !$attribute-&gt;isStatic;
-
-        if ($attribute-&gt;signature-&gt;type eq &quot;EventListener&quot;) {
-            $implIncludes{&quot;JSEventListener.h&quot;} = 1;
-        }
-    }
-
-    if ($hasReadWriteProperties) {
-        foreach my $attribute (@{$interface-&gt;attributes}) {
-            if (!IsReadonly($attribute)) {
-                my $name = $attribute-&gt;signature-&gt;name;
-                my $type = $attribute-&gt;signature-&gt;type;
-                my $putFunctionName = GetAttributeSetterName($interfaceName, $className, $attribute);
-                my $implSetterFunctionName = $codeGenerator-&gt;WK_ucfirst($name);
-                my $setterRaisesException = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;SetterRaisesException&quot;};
-
-                my $attributeConditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute-&gt;signature);
-                push(@implContent, &quot;#if ${attributeConditionalString}\n&quot;) if $attributeConditionalString;
-
-                push(@implContent, &quot;void ${putFunctionName}(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue&quot;);
-                push(@implContent, &quot; thisValue&quot;) if !$attribute-&gt;isStatic;
-                push(@implContent, &quot;, EncodedJSValue encodedValue)\n&quot;);
-                push(@implContent, &quot;{\n&quot;);
-                push(@implContent, &quot;    JSValue value = JSValue::decode(encodedValue);\n&quot;);
-                push(@implContent, &quot;    UNUSED_PARAM(exec);\n&quot;);
-                if (!$attribute-&gt;isStatic) {
-                    push(@implContent, &quot;    ${className}* castedThis = jsDynamicCast&lt;${className}*&gt;(JSValue::decode(thisValue));\n&quot;);
-                    if ($interfaceName eq &quot;DOMWindow&quot;) {
-                        push(@implContent, &quot;    if (!castedThis) {\n&quot;);
-                        push(@implContent, &quot;        if (JSDOMWindowShell* shell = jsDynamicCast&lt;JSDOMWindowShell*&gt;(JSValue::decode(thisValue)))\n&quot;);
-                        push(@implContent, &quot;            castedThis = shell-&gt;window();\n&quot;);
</del><ins>+                if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;} || $interface-&gt;extendedAttributes-&gt;{&quot;CustomNamedSetter&quot;}) {
+                    push(@implContent, &quot;void ${className}::putByIndex(JSCell* cell, ExecState* exec, unsigned index, JSValue value, bool shouldThrow)\n&quot;);
+                    push(@implContent, &quot;{\n&quot;);
+                    push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
+                    push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
+                    if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomIndexedSetter&quot;}) {
+                        push(@implContent, &quot;    if (index &lt;= MAX_ARRAY_INDEX) {\n&quot;);
+                        push(@implContent, &quot;        UNUSED_PARAM(shouldThrow);\n&quot;);
+                        push(@implContent, &quot;        thisObject-&gt;indexSetter(exec, index, value);\n&quot;);
+                        push(@implContent, &quot;        return;\n&quot;);
</ins><span class="cx">                         push(@implContent, &quot;    }\n&quot;);
</span><span class="cx">                     }
</span><del>-                    push(@implContent, &quot;    if (!castedThis) {\n&quot;);
-                    push(@implContent, &quot;        throwVMTypeError(exec);\n&quot;);
-                    push(@implContent, &quot;        return;\n&quot;);
-                    push(@implContent, &quot;    }\n&quot;);
-                }
-                if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;} &amp;&amp; !$attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;DoNotCheckSecurity&quot;}) {
-                    if ($interfaceName eq &quot;DOMWindow&quot;) {
-                        push(@implContent, &quot;    if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis-&gt;impl()))\n&quot;);
-                    } else {
-                        push(@implContent, &quot;    if (!shouldAllowAccessToFrame(exec, castedThis-&gt;impl().frame()))\n&quot;);
</del><ins>+
+                    if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomNamedSetter&quot;}) {
+                        push(@implContent, &quot;    PropertyName propertyName = Identifier::from(exec, index);\n&quot;);
+                        push(@implContent, &quot;    PutPropertySlot slot(thisObject, shouldThrow);\n&quot;);
+                        push(@implContent, &quot;    if (thisObject-&gt;putDelegate(exec, propertyName, value, slot))\n&quot;);
+                        push(@implContent, &quot;        return;\n&quot;);
</ins><span class="cx">                     }
</span><del>-                    push(@implContent, &quot;        return;\n&quot;);
</del><ins>+
+                    push(@implContent, &quot;    Base::putByIndex(cell, exec, index, value, shouldThrow);\n&quot;);
+                    push(@implContent, &quot;}\n\n&quot;);
</ins><span class="cx">                 }
</span><ins>+            }
</ins><span class="cx"> 
</span><del>-                if (HasCustomSetter($attribute-&gt;signature-&gt;extendedAttributes)) {
-                    push(@implContent, &quot;    castedThis-&gt;set$implSetterFunctionName(exec, value);\n&quot;);
-                } elsif ($type eq &quot;EventListener&quot;) {
-                    $implIncludes{&quot;JSEventListener.h&quot;} = 1;
-                    push(@implContent, &quot;    UNUSED_PARAM(exec);\n&quot;);
-                    my $windowEventListener = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;JSWindowEventListener&quot;};
-                    if ($windowEventListener) {
-                        push(@implContent, &quot;    JSDOMGlobalObject* globalObject = castedThis-&gt;globalObject();\n&quot;);
-                    }
-                    push(@implContent, &quot;    $interfaceName&amp; impl = castedThis-&gt;impl();\n&quot;);
-                    if ((($interfaceName eq &quot;DOMWindow&quot;) or ($interfaceName eq &quot;WorkerGlobalScope&quot;)) and $name eq &quot;onerror&quot;) {
-                        $implIncludes{&quot;JSErrorHandler.h&quot;} = 1;
-                        push(@implContent, &quot;    impl.set$implSetterFunctionName(createJSErrorHandler(exec, value, castedThis));\n&quot;);
-                    } else {
-                        push(@implContent, GenerateAttributeEventListenerCall($className, $implSetterFunctionName, $windowEventListener));
-                    }
-                } elsif ($attribute-&gt;signature-&gt;type =~ /Constructor$/) {
-                    my $constructorType = $attribute-&gt;signature-&gt;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 &quot;any&quot; and $constructorType !~ /Named$/) {
-                        AddToImplIncludes(&quot;JS&quot; . $constructorType . &quot;.h&quot;, $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;});
-                    }
-                    push(@implContent, &quot;    // Shadowing a built-in constructor\n&quot;);
-                    push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, \&quot;$name\&quot;), value);\n&quot;);
</del><ins>+            if ($hasReadWriteProperties) {
+                foreach my $attribute (@{$interface-&gt;attributes}) {
+                    if (!IsReadonly($attribute)) {
+                        my $name = $attribute-&gt;signature-&gt;name;
+                        my $type = $attribute-&gt;signature-&gt;type;
+                        my $putFunctionName = GetAttributeSetterName($interfaceName, $className, $attribute);
+                        my $implSetterFunctionName = $codeGenerator-&gt;WK_ucfirst($name);
+                        my $setterRaisesException = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;SetterRaisesException&quot;};
</ins><span class="cx"> 
</span><del>-                } elsif ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Replaceable&quot;}) {
-                    push(@implContent, &quot;    // Shadowing a built-in object\n&quot;);
-                    push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, \&quot;$name\&quot;), value);\n&quot;);
-                } else {
-                    if (!$attribute-&gt;isStatic) {
-                        push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;);
-                    }
-                    push(@implContent, &quot;    ExceptionCode ec = 0;\n&quot;) if $setterRaisesException;
</del><ins>+                        my $attributeConditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute-&gt;signature);
+                        push(@implContent, &quot;#if ${attributeConditionalString}\n&quot;) if $attributeConditionalString;
</ins><span class="cx"> 
</span><del>-                    # If the &quot;StrictTypeChecking&quot; 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-&gt;signature-&gt;extendedAttributes-&gt;{&quot;StrictTypeChecking&quot;}) {
-                        $implIncludes{&quot;&lt;runtime/Error.h&gt;&quot;} = 1;
-
-                        my $argType = $attribute-&gt;signature-&gt;type;
-                        if ($codeGenerator-&gt;IsWrapperType($argType)) {
-                            push(@implContent, &quot;    if (!value.isUndefinedOrNull() &amp;&amp; !value.inherits(JS${argType}::info())) {\n&quot;);
</del><ins>+                        push(@implContent, &quot;void ${putFunctionName}(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue&quot;);
+                        push(@implContent, &quot; thisValue&quot;) if !$attribute-&gt;isStatic;
+                        push(@implContent, &quot;, EncodedJSValue encodedValue)\n&quot;);
+                        push(@implContent, &quot;{\n&quot;);
+                        push(@implContent, &quot;    JSValue value = JSValue::decode(encodedValue);\n&quot;);
+                        push(@implContent, &quot;    UNUSED_PARAM(exec);\n&quot;);
+                        if (!$attribute-&gt;isStatic) {
+                            push(@implContent, &quot;    ${className}* castedThis = jsDynamicCast&lt;${className}*&gt;(JSValue::decode(thisValue));\n&quot;);
+                            if ($interfaceName eq &quot;DOMWindow&quot;) {
+                                push(@implContent, &quot;    if (!castedThis) {\n&quot;);
+                                push(@implContent, &quot;        if (JSDOMWindowShell* shell = jsDynamicCast&lt;JSDOMWindowShell*&gt;(JSValue::decode(thisValue)))\n&quot;);
+                                push(@implContent, &quot;            castedThis = shell-&gt;window();\n&quot;);
+                                push(@implContent, &quot;    }\n&quot;);
+                            }
+                            push(@implContent, &quot;    if (!castedThis) {\n&quot;);
</ins><span class="cx">                             push(@implContent, &quot;        throwVMTypeError(exec);\n&quot;);
</span><span class="cx">                             push(@implContent, &quot;        return;\n&quot;);
</span><del>-                            push(@implContent, &quot;    };\n&quot;);
</del><ins>+                            push(@implContent, &quot;    }\n&quot;);
</ins><span class="cx">                         }
</span><del>-                    }
</del><ins>+                        if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;} &amp;&amp; !$attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;DoNotCheckSecurity&quot;}) {
+                            if ($interfaceName eq &quot;DOMWindow&quot;) {
+                                push(@implContent, &quot;    if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis-&gt;impl()))\n&quot;);
+                            } else {
+                                push(@implContent, &quot;    if (!shouldAllowAccessToFrame(exec, castedThis-&gt;impl().frame()))\n&quot;);
+                            }
+                            push(@implContent, &quot;        return;\n&quot;);
+                        }
</ins><span class="cx"> 
</span><del>-                    push(@implContent, &quot;    &quot; . GetNativeTypeFromSignature($attribute-&gt;signature) . &quot; nativeValue(&quot; . JSValueToNative($attribute-&gt;signature, &quot;value&quot;) . &quot;);\n&quot;);
-                    push(@implContent, &quot;    if (exec-&gt;hadException())\n&quot;);
-                    push(@implContent, &quot;        return;\n&quot;);
</del><ins>+                        if (HasCustomSetter($attribute-&gt;signature-&gt;extendedAttributes)) {
+                            push(@implContent, &quot;    castedThis-&gt;set$implSetterFunctionName(exec, value);\n&quot;);
+                        } elsif ($type eq &quot;EventListener&quot;) {
+                            $implIncludes{&quot;JSEventListener.h&quot;} = 1;
+                            push(@implContent, &quot;    UNUSED_PARAM(exec);\n&quot;);
+                            my $windowEventListener = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;JSWindowEventListener&quot;};
+                            if ($windowEventListener) {
+                                push(@implContent, &quot;    JSDOMGlobalObject* globalObject = castedThis-&gt;globalObject();\n&quot;);
+                            }
+                            push(@implContent, &quot;    $interfaceName&amp; impl = castedThis-&gt;impl();\n&quot;);
+                            if ((($interfaceName eq &quot;DOMWindow&quot;) or ($interfaceName eq &quot;WorkerGlobalScope&quot;)) and $name eq &quot;onerror&quot;) {
+                                $implIncludes{&quot;JSErrorHandler.h&quot;} = 1;
+                                push(@implContent, &quot;    impl.set$implSetterFunctionName(createJSErrorHandler(exec, value, castedThis));\n&quot;);
+                            } else {
+                                push(@implContent, GenerateAttributeEventListenerCall($className, $implSetterFunctionName, $windowEventListener));
+                            }
+                        } elsif ($attribute-&gt;signature-&gt;type =~ /Constructor$/) {
+                            my $constructorType = $attribute-&gt;signature-&gt;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 &quot;any&quot; and $constructorType !~ /Named$/) {
+                                AddToImplIncludes(&quot;JS&quot; . $constructorType . &quot;.h&quot;, $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;});
+                            }
+                            push(@implContent, &quot;    // Shadowing a built-in constructor\n&quot;);
+                            if ($interfaceName eq &quot;DOMWindow&quot; &amp;&amp; $className eq &quot;JSblah&quot;) {
+                                # FIXME: This branch never executes and should be removed.
+                                push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), exec-&gt;propertyNames().constructor, value);\n&quot;);
+                            } else {
+                                push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, \&quot;$name\&quot;), value);\n&quot;);
+                            }
+                        } elsif ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Replaceable&quot;}) {
+                            push(@implContent, &quot;    // Shadowing a built-in object\n&quot;);
+                            push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, \&quot;$name\&quot;), value);\n&quot;);
+                        } else {
+                            if (!$attribute-&gt;isStatic) {
+                                push(@implContent, &quot;    $implType&amp; impl = castedThis-&gt;impl();\n&quot;);
+                            }
+                            push(@implContent, &quot;    ExceptionCode ec = 0;\n&quot;) if $setterRaisesException;
</ins><span class="cx"> 
</span><del>-                    if ($codeGenerator-&gt;IsEnumType($type)) {
-                        my @enumValues = $codeGenerator-&gt;ValidEnumValues($type);
-                        my @enumChecks = ();
-                        foreach my $enumValue (@enumValues) {
-                            push(@enumChecks, &quot;nativeValue != \&quot;$enumValue\&quot;&quot;);
-                        }
-                        push (@implContent, &quot;    if (&quot; . join(&quot; &amp;&amp; &quot;, @enumChecks) . &quot;)\n&quot;);
-                        push (@implContent, &quot;        return;\n&quot;);
-                    }
</del><ins>+                            # If the &quot;StrictTypeChecking&quot; 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-&gt;signature-&gt;extendedAttributes-&gt;{&quot;StrictTypeChecking&quot;}) {
+                                $implIncludes{&quot;&lt;runtime/Error.h&gt;&quot;} = 1;
</ins><span class="cx"> 
</span><del>-                    if ($svgPropertyOrListPropertyType) {
-                        if ($svgPropertyType) {
-                            push(@implContent, &quot;    if (impl.isReadOnly()) {\n&quot;);
-                            push(@implContent, &quot;        setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);\n&quot;);
</del><ins>+                                my $argType = $attribute-&gt;signature-&gt;type;
+                                if ($codeGenerator-&gt;IsWrapperType($argType)) {
+                                    push(@implContent, &quot;    if (!value.isUndefinedOrNull() &amp;&amp; !value.inherits(JS${argType}::info())) {\n&quot;);
+                                    push(@implContent, &quot;        throwVMTypeError(exec);\n&quot;);
+                                    push(@implContent, &quot;        return;\n&quot;);
+                                    push(@implContent, &quot;    };\n&quot;);
+                                }
+                            }
+
+                            push(@implContent, &quot;    &quot; . GetNativeTypeFromSignature($attribute-&gt;signature) . &quot; nativeValue(&quot; . JSValueToNative($attribute-&gt;signature, &quot;value&quot;) . &quot;);\n&quot;);
+                            push(@implContent, &quot;    if (exec-&gt;hadException())\n&quot;);
</ins><span class="cx">                             push(@implContent, &quot;        return;\n&quot;);
</span><del>-                            push(@implContent, &quot;    }\n&quot;);
-                            $implIncludes{&quot;ExceptionCode.h&quot;} = 1;
-                        }
-                        push(@implContent, &quot;    $svgPropertyOrListPropertyType&amp; podImpl = impl.propertyReference();\n&quot;);
-                        if ($svgPropertyOrListPropertyType eq &quot;float&quot;) { # Special case for JSSVGNumber
-                            push(@implContent, &quot;    podImpl = nativeValue;\n&quot;);
-                        } else {
-                            push(@implContent, &quot;    podImpl.set$implSetterFunctionName(nativeValue&quot;);
-                            push(@implContent, &quot;, ec&quot;) if $setterRaisesException;
-                            push(@implContent, &quot;);\n&quot;);
-                            push(@implContent, &quot;    setDOMException(exec, ec);\n&quot;) if $setterRaisesException;
-                        }
-                        if ($svgPropertyType) {
-                            if ($setterRaisesException) {
-                                push(@implContent, &quot;    if (!ec)\n&quot;);
-                                push(@implContent, &quot;        impl.commitChange();\n&quot;);
</del><ins>+
+                            if ($codeGenerator-&gt;IsEnumType($type)) {
+                                my @enumValues = $codeGenerator-&gt;ValidEnumValues($type);
+                                my @enumChecks = ();
+                                foreach my $enumValue (@enumValues) {
+                                    push(@enumChecks, &quot;nativeValue != \&quot;$enumValue\&quot;&quot;);
+                                }
+                                push (@implContent, &quot;    if (&quot; . join(&quot; &amp;&amp; &quot;, @enumChecks) . &quot;)\n&quot;);
+                                push (@implContent, &quot;        return;\n&quot;);
+                            }
+
+                            if ($svgPropertyOrListPropertyType) {
+                                if ($svgPropertyType) {
+                                    push(@implContent, &quot;    if (impl.isReadOnly()) {\n&quot;);
+                                    push(@implContent, &quot;        setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);\n&quot;);
+                                    push(@implContent, &quot;        return;\n&quot;);
+                                    push(@implContent, &quot;    }\n&quot;);
+                                    $implIncludes{&quot;ExceptionCode.h&quot;} = 1;
+                                }
+                                push(@implContent, &quot;    $svgPropertyOrListPropertyType&amp; podImpl = impl.propertyReference();\n&quot;);
+                                if ($svgPropertyOrListPropertyType eq &quot;float&quot;) { # Special case for JSSVGNumber
+                                    push(@implContent, &quot;    podImpl = nativeValue;\n&quot;);
+                                } else {
+                                    push(@implContent, &quot;    podImpl.set$implSetterFunctionName(nativeValue&quot;);
+                                    push(@implContent, &quot;, ec&quot;) if $setterRaisesException;
+                                    push(@implContent, &quot;);\n&quot;);
+                                    push(@implContent, &quot;    setDOMException(exec, ec);\n&quot;) if $setterRaisesException;
+                                }
+                                if ($svgPropertyType) {
+                                    if ($setterRaisesException) {
+                                        push(@implContent, &quot;    if (!ec)\n&quot;);
+                                        push(@implContent, &quot;        impl.commitChange();\n&quot;);
+                                    } else {
+                                        push(@implContent, &quot;    impl.commitChange();\n&quot;);
+                                    }
+                                }
</ins><span class="cx">                             } else {
</span><del>-                                push(@implContent, &quot;    impl.commitChange();\n&quot;);
</del><ins>+                                my ($functionName, @arguments) = $codeGenerator-&gt;SetterExpression(\%implIncludes, $interfaceName, $attribute);
+                                if ($codeGenerator-&gt;IsTypedArrayType($attribute-&gt;signature-&gt;type) and not $attribute-&gt;signature-&gt;type eq &quot;ArrayBuffer&quot;) {
+                                    push(@arguments, &quot;nativeValue.get()&quot;);
+                                } else {
+                                    push(@arguments, &quot;nativeValue&quot;);
+                                }
+                                if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedBy&quot;}) {
+                                    my $implementedBy = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedBy&quot;};
+                                    $implIncludes{&quot;${implementedBy}.h&quot;} = 1;
+                                    unshift(@arguments, &quot;&amp;impl&quot;) if !$attribute-&gt;isStatic;
+                                    $functionName = &quot;${implementedBy}::${functionName}&quot;;
+                                } elsif ($attribute-&gt;isStatic) {
+                                    $functionName = &quot;${interfaceName}::${functionName}&quot;;
+                                } else {
+                                    $functionName = &quot;impl.${functionName}&quot;;
+                                }
+
+                                unshift(@arguments, GenerateCallWith($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CallWith&quot;}, \@implContent, &quot;&quot;));
+
+                                push(@arguments, &quot;ec&quot;) if $setterRaisesException;
+                                push(@implContent, &quot;    ${functionName}(&quot; . join(&quot;, &quot;, @arguments) . &quot;);\n&quot;);
+                                push(@implContent, &quot;    setDOMException(exec, ec);\n&quot;) if $setterRaisesException;
</ins><span class="cx">                             }
</span><span class="cx">                         }
</span><del>-                    } else {
-                        my ($functionName, @arguments) = $codeGenerator-&gt;SetterExpression(\%implIncludes, $interfaceName, $attribute);
-                        if ($codeGenerator-&gt;IsTypedArrayType($attribute-&gt;signature-&gt;type) and not $attribute-&gt;signature-&gt;type eq &quot;ArrayBuffer&quot;) {
-                            push(@arguments, &quot;nativeValue.get()&quot;);
-                        } else {
-                            push(@arguments, &quot;nativeValue&quot;);
-                        }
-                        if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedBy&quot;}) {
-                            my $implementedBy = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedBy&quot;};
-                            $implIncludes{&quot;${implementedBy}.h&quot;} = 1;
-                            unshift(@arguments, &quot;&amp;impl&quot;) if !$attribute-&gt;isStatic;
-                            $functionName = &quot;${implementedBy}::${functionName}&quot;;
-                        } elsif ($attribute-&gt;isStatic) {
-                            $functionName = &quot;${interfaceName}::${functionName}&quot;;
-                        } else {
-                            $functionName = &quot;impl.${functionName}&quot;;
-                        }
</del><span class="cx"> 
</span><del>-                        unshift(@arguments, GenerateCallWith($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CallWith&quot;}, \@implContent, &quot;&quot;));
-
-                        push(@arguments, &quot;ec&quot;) if $setterRaisesException;
-                        push(@implContent, &quot;    ${functionName}(&quot; . join(&quot;, &quot;, @arguments) . &quot;);\n&quot;);
-                        push(@implContent, &quot;    setDOMException(exec, ec);\n&quot;) if $setterRaisesException;
</del><ins>+                        push(@implContent, &quot;}\n\n&quot;);
+                        push(@implContent, &quot;#endif\n&quot;) if $attributeConditionalString;
+                        push(@implContent, &quot;\n&quot;);
</ins><span class="cx">                     }
</span><span class="cx">                 }
</span><ins>+            }
+        }
</ins><span class="cx"> 
</span><del>-                push(@implContent, &quot;}\n\n&quot;);
-                push(@implContent, &quot;#endif\n&quot;) if $attributeConditionalString;
-                push(@implContent, &quot;\n&quot;);
</del><ins>+        if ($interface-&gt;extendedAttributes-&gt;{&quot;ReplaceableConstructor&quot;}) {
+            my $constructorFunctionName = &quot;setJS&quot; . $interfaceName . &quot;Constructor&quot;;
+
+            push(@implContent, &quot;void ${constructorFunctionName}(ExecState* exec, JSObject*, EncodedJSValue thisValue, EncodedJSValue encodedValue)\n&quot;);
+            push(@implContent, &quot;{\n&quot;);
+            push(@implContent, &quot;    JSValue value = JSValue::decode(encodedValue);&quot;);
+            push(@implContent, &quot;    ${className}* castedThis = jsDynamicCast&lt;${className}*&gt;(JSValue::decode(thisValue));\n&quot;);
+            if ($interfaceName eq &quot;DOMWindow&quot;) {
+                push(@implContent, &quot;    if (!castedThis) {\n&quot;);
+                push(@implContent, &quot;        if (JSDOMWindowShell* shell = jsDynamicCast&lt;JSDOMWindowShell*&gt;(JSValue::decode(thisValue)))\n&quot;);
+                push(@implContent, &quot;            castedThis = shell-&gt;window();\n&quot;);
+                push(@implContent, &quot;    }\n&quot;);
</ins><span class="cx">             }
</span><ins>+            push(@implContent, &quot;    if (!castedThis) {\n&quot;);
+            push(@implContent, &quot;        throwVMTypeError(exec);\n&quot;);
+            push(@implContent, &quot;        return;\n&quot;);
+            push(@implContent, &quot;    }\n&quot;);
+            if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;}) {
+                if ($interfaceName eq &quot;DOMWindow&quot;) {
+                    push(@implContent, &quot;    if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis-&gt;impl()))\n&quot;);
+                } else {
+                    push(@implContent, &quot;    if (!shouldAllowAccessToFrame(exec, castedThis-&gt;impl().frame()))\n&quot;);
+                }
+                push(@implContent, &quot;        return;\n&quot;);
+            }
+
+            push(@implContent, &quot;    // Shadowing a built-in constructor\n&quot;);
+
+            if ($interfaceName eq &quot;DOMWindow&quot;) {
+                push(@implContent, &quot;    castedThis-&gt;putDirect(exec-&gt;vm(), exec-&gt;propertyNames().constructor, value);\n&quot;);
+            } else {
+                die &quot;No way to handle interface with ReplaceableConstructor extended attribute: $interfaceName&quot;;
+            }
+            push(@implContent, &quot;}\n\n&quot;);
</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>-    { &quot;excitingAttr&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestActiveDOMObjectExcitingAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</del><ins>+    { &quot;excitingAttr&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestActiveDOMObjectExcitingAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</ins><span class="cx">     { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestActiveDOMObjectConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(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&lt;JSTestActiveDOMObject*&gt;(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-&gt;impl()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     return JSValue::encode(JSTestActiveDOMObject::getConstructor(exec-&gt;vm(), domObject-&gt;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&lt;JSTestCustomNamedGetter*&gt;(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-&gt;vm(), domObject-&gt;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>-    { &quot;attr1&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorAttr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;attr2&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorAttr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</del><ins>+    { &quot;attr1&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorAttr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;attr2&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorAttr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</ins><span class="cx">     { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestEventConstructorConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(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&lt;JSTestEventConstructor*&gt;(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-&gt;vm(), domObject-&gt;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&lt;JSTestEventTarget*&gt;(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-&gt;vm(), domObject-&gt;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>-    { &quot;name&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestExceptionName), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</del><ins>+    { &quot;name&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestExceptionName), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</ins><span class="cx">     { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestExceptionConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(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&lt;JSTestException*&gt;(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-&gt;vm(), domObject-&gt;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&lt;JSTestGenerateIsReachable, Base&gt;(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&lt;JSTestGenerateIsReachable*&gt;(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-&gt;vm(), domObject-&gt;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>-    { &quot;implementsStr1&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsStr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</del><ins>+    { &quot;implementsStr1&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsStr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-    { &quot;implementsStr2&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsStr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceImplementsStr2) },
</del><ins>+    { &quot;implementsStr2&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsStr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceImplementsStr2) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-    { &quot;implementsStr3&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsStr3), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceImplementsStr3) },
</del><ins>+    { &quot;implementsStr3&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsStr3), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceImplementsStr3) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-    { &quot;implementsNode&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsNode), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceImplementsNode) },
</del><ins>+    { &quot;implementsNode&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceImplementsNode), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceImplementsNode) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-    { &quot;supplementalStr1&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceSupplementalStr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</del><ins>+    { &quot;supplementalStr1&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceSupplementalStr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-    { &quot;supplementalStr2&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceSupplementalStr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceSupplementalStr2) },
</del><ins>+    { &quot;supplementalStr2&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceSupplementalStr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceSupplementalStr2) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-    { &quot;supplementalStr3&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceSupplementalStr3), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceSupplementalStr3) },
</del><ins>+    { &quot;supplementalStr3&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceSupplementalStr3), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceSupplementalStr3) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-    { &quot;supplementalNode&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceSupplementalNode), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceSupplementalNode) },
</del><ins>+    { &quot;supplementalNode&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceSupplementalNode), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestInterfaceSupplementalNode) },
</ins><span class="cx"> #endif
</span><span class="cx">     { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestInterfaceConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(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&lt;JSTestInterface*&gt;(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-&gt;vm(), domObject-&gt;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&lt;JSTestMediaQueryListListener, Base&gt;(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&lt;JSTestMediaQueryListListener*&gt;(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-&gt;vm(), domObject-&gt;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&lt;JSTestNamedConstructor, Base&gt;(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&lt;JSTestNamedConstructor*&gt;(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-&gt;vm(), domObject-&gt;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&lt;JSTestNode, Base&gt;(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&lt;JSTestNode*&gt;(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-&gt;vm(), domObject-&gt;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>-    { &quot;readOnlyLongAttr&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;readOnlyStringAttr&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;readOnlyTestObjAttr&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyTestObjAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</del><ins>+    { &quot;readOnlyLongAttr&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;readOnlyStringAttr&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;readOnlyTestObjAttr&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReadOnlyTestObjAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</ins><span class="cx">     { &quot;TestSubObjEnabledBySetting&quot;, DontEnum, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjTestSubObjEnabledBySettingConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjTestSubObjEnabledBySettingConstructor) },
</span><del>-    { &quot;enumAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjEnumAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjEnumAttr) },
-    { &quot;byteAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjByteAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjByteAttr) },
-    { &quot;octetAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjOctetAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjOctetAttr) },
-    { &quot;shortAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjShortAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjShortAttr) },
-    { &quot;unsignedShortAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjUnsignedShortAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjUnsignedShortAttr) },
-    { &quot;longAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjLongAttr) },
-    { &quot;longLongAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjLongLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjLongLongAttr) },
-    { &quot;unsignedLongLongAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjUnsignedLongLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjUnsignedLongLongAttr) },
-    { &quot;stringAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStringAttr) },
-    { &quot;testObjAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjTestObjAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjTestObjAttr) },
-    { &quot;XMLObjAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjXMLObjAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjXMLObjAttr) },
-    { &quot;create&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjCreate), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjCreate) },
-    { &quot;reflectedStringAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedStringAttr) },
-    { &quot;reflectedIntegralAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedIntegralAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedIntegralAttr) },
-    { &quot;reflectedUnsignedIntegralAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedUnsignedIntegralAttr) },
-    { &quot;reflectedBooleanAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedBooleanAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedBooleanAttr) },
-    { &quot;reflectedURLAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedURLAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedURLAttr) },
-    { &quot;reflectedStringAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedStringAttr) },
-    { &quot;reflectedCustomIntegralAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedCustomIntegralAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedCustomIntegralAttr) },
-    { &quot;reflectedCustomBooleanAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedCustomBooleanAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedCustomBooleanAttr) },
-    { &quot;reflectedCustomURLAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedCustomURLAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedCustomURLAttr) },
-    { &quot;typedArrayAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjTypedArrayAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjTypedArrayAttr) },
-    { &quot;attrWithGetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAttrWithGetterException) },
-    { &quot;attrWithSetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAttrWithSetterException) },
-    { &quot;stringAttrWithGetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStringAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStringAttrWithGetterException) },
-    { &quot;stringAttrWithSetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStringAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStringAttrWithSetterException) },
-    { &quot;customAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjCustomAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjCustomAttr) },
-    { &quot;withScriptStateAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptStateAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptStateAttribute) },
-    { &quot;withScriptExecutionContextAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAttribute) },
-    { &quot;withScriptStateAttributeRaises&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptStateAttributeRaises), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptStateAttributeRaises) },
-    { &quot;withScriptExecutionContextAttributeRaises&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAttributeRaises), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAttributeRaises) },
-    { &quot;withScriptExecutionContextAndScriptStateAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAndScriptStateAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAndScriptStateAttribute) },
-    { &quot;withScriptExecutionContextAndScriptStateAttributeRaises&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises) },
-    { &quot;withScriptExecutionContextAndScriptStateWithSpacesAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute) },
-    { &quot;withScriptArgumentsAndCallStackAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptArgumentsAndCallStackAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptArgumentsAndCallStackAttribute) },
</del><ins>+    { &quot;enumAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjEnumAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjEnumAttr) },
+    { &quot;byteAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjByteAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjByteAttr) },
+    { &quot;octetAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjOctetAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjOctetAttr) },
+    { &quot;shortAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjShortAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjShortAttr) },
+    { &quot;unsignedShortAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjUnsignedShortAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjUnsignedShortAttr) },
+    { &quot;longAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjLongAttr) },
+    { &quot;longLongAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjLongLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjLongLongAttr) },
+    { &quot;unsignedLongLongAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjUnsignedLongLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjUnsignedLongLongAttr) },
+    { &quot;stringAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStringAttr) },
+    { &quot;testObjAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjTestObjAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjTestObjAttr) },
+    { &quot;XMLObjAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjXMLObjAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjXMLObjAttr) },
+    { &quot;create&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjCreate), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjCreate) },
+    { &quot;reflectedStringAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedStringAttr) },
+    { &quot;reflectedIntegralAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedIntegralAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedIntegralAttr) },
+    { &quot;reflectedUnsignedIntegralAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedUnsignedIntegralAttr) },
+    { &quot;reflectedBooleanAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedBooleanAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedBooleanAttr) },
+    { &quot;reflectedURLAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedURLAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedURLAttr) },
+    { &quot;reflectedStringAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedStringAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedStringAttr) },
+    { &quot;reflectedCustomIntegralAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedCustomIntegralAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedCustomIntegralAttr) },
+    { &quot;reflectedCustomBooleanAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedCustomBooleanAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedCustomBooleanAttr) },
+    { &quot;reflectedCustomURLAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReflectedCustomURLAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReflectedCustomURLAttr) },
+    { &quot;typedArrayAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjTypedArrayAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjTypedArrayAttr) },
+    { &quot;attrWithGetterException&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAttrWithGetterException) },
+    { &quot;attrWithSetterException&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAttrWithSetterException) },
+    { &quot;stringAttrWithGetterException&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStringAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStringAttrWithGetterException) },
+    { &quot;stringAttrWithSetterException&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStringAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStringAttrWithSetterException) },
+    { &quot;customAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjCustomAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjCustomAttr) },
+    { &quot;withScriptStateAttribute&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptStateAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptStateAttribute) },
+    { &quot;withScriptExecutionContextAttribute&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAttribute) },
+    { &quot;withScriptStateAttributeRaises&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptStateAttributeRaises), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptStateAttributeRaises) },
+    { &quot;withScriptExecutionContextAttributeRaises&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAttributeRaises), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAttributeRaises) },
+    { &quot;withScriptExecutionContextAndScriptStateAttribute&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAndScriptStateAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAndScriptStateAttribute) },
+    { &quot;withScriptExecutionContextAndScriptStateAttributeRaises&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises) },
+    { &quot;withScriptExecutionContextAndScriptStateWithSpacesAttribute&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute) },
+    { &quot;withScriptArgumentsAndCallStackAttribute&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptArgumentsAndCallStackAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptArgumentsAndCallStackAttribute) },
</ins><span class="cx"> #if ENABLE(Condition1)
</span><del>-    { &quot;conditionalAttr1&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConditionalAttr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConditionalAttr1) },
</del><ins>+    { &quot;conditionalAttr1&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConditionalAttr1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConditionalAttr1) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) &amp;&amp; ENABLE(Condition2)
</span><del>-    { &quot;conditionalAttr2&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConditionalAttr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConditionalAttr2) },
</del><ins>+    { &quot;conditionalAttr2&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConditionalAttr2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConditionalAttr2) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-    { &quot;conditionalAttr3&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConditionalAttr3), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConditionalAttr3) },
</del><ins>+    { &quot;conditionalAttr3&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConditionalAttr3), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConditionalAttr3) },
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1)
</span><span class="cx">     { &quot;conditionalAttr4&quot;, DontEnum, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConditionalAttr4Constructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConditionalAttr4Constructor) },
</span><span class="lines">@@ -134,26 +134,26 @@
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><span class="cx">     { &quot;conditionalAttr6&quot;, DontEnum, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConditionalAttr6Constructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjConditionalAttr6Constructor) },
</span><span class="cx"> #endif
</span><del>-    { &quot;cachedAttribute1&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjCachedAttribute1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;cachedAttribute2&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjCachedAttribute2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;anyAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAnyAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAnyAttribute) },
-    { &quot;contentDocument&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjContentDocument), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;mutablePoint&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjMutablePoint), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjMutablePoint) },
-    { &quot;immutablePoint&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjImmutablePoint), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjImmutablePoint) },
-    { &quot;strawberry&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStrawberry), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStrawberry) },
-    { &quot;strictFloat&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStrictFloat), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStrictFloat) },
-    { &quot;description&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjDescription), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;id&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjId), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjId) },
-    { &quot;hash&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjHash), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;replaceableAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReplaceableAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReplaceableAttribute) },
-    { &quot;nullableDoubleAttribute&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableDoubleAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;nullableLongAttribute&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableLongAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;nullableBooleanAttribute&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableBooleanAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;nullableStringAttribute&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableStringAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;nullableLongSettableAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableLongSettableAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjNullableLongSettableAttribute) },
-    { &quot;nullableStringValue&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableStringValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjNullableStringValue) },
-    { &quot;attribute&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;attributeWithReservedEnumType&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttributeWithReservedEnumType), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAttributeWithReservedEnumType) },
</del><ins>+    { &quot;cachedAttribute1&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjCachedAttribute1), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;cachedAttribute2&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjCachedAttribute2), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;anyAttribute&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAnyAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAnyAttribute) },
+    { &quot;contentDocument&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjContentDocument), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;mutablePoint&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjMutablePoint), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjMutablePoint) },
+    { &quot;immutablePoint&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjImmutablePoint), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjImmutablePoint) },
+    { &quot;strawberry&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStrawberry), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStrawberry) },
+    { &quot;strictFloat&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStrictFloat), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStrictFloat) },
+    { &quot;description&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjDescription), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;id&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjId), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjId) },
+    { &quot;hash&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjHash), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;replaceableAttribute&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjReplaceableAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjReplaceableAttribute) },
+    { &quot;nullableDoubleAttribute&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableDoubleAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;nullableLongAttribute&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableLongAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;nullableBooleanAttribute&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableBooleanAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;nullableStringAttribute&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableStringAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;nullableLongSettableAttribute&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableLongSettableAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjNullableLongSettableAttribute) },
+    { &quot;nullableStringValue&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjNullableStringValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjNullableStringValue) },
+    { &quot;attribute&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;attributeWithReservedEnumType&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttributeWithReservedEnumType), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAttributeWithReservedEnumType) },
</ins><span class="cx">     { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(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&lt;JSTestObj*&gt;(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-&gt;vm(), domObject-&gt;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&lt;JSTestOverloadedConstructors, Base&gt;(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&lt;JSTestOverloadedConstructors*&gt;(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-&gt;vm(), domObject-&gt;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>-    { &quot;value&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestSerializedScriptValueInterfaceValue) },
-    { &quot;readonlyValue&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceReadonlyValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;cachedValue&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceCachedValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestSerializedScriptValueInterfaceCachedValue) },
-    { &quot;ports&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfacePorts), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
-    { &quot;cachedReadonlyValue&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceCachedReadonlyValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</del><ins>+    { &quot;value&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestSerializedScriptValueInterfaceValue) },
+    { &quot;readonlyValue&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceReadonlyValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;cachedValue&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceCachedValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestSerializedScriptValueInterfaceCachedValue) },
+    { &quot;ports&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfacePorts), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
+    { &quot;cachedReadonlyValue&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceCachedReadonlyValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</ins><span class="cx">     { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestSerializedScriptValueInterfaceConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(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&lt;JSTestSerializedScriptValueInterface*&gt;(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-&gt;vm(), domObject-&gt;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>-    { &quot;unsignedLongLongAttr&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsUnsignedLongLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsUnsignedLongLongAttr) },
-    { &quot;immutableSerializedScriptValue&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsImmutableSerializedScriptValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsImmutableSerializedScriptValue) },
-    { &quot;attrWithGetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsAttrWithGetterException) },
-    { &quot;attrWithSetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsAttrWithSetterException) },
-    { &quot;stringAttrWithGetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsStringAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsStringAttrWithGetterException) },
-    { &quot;stringAttrWithSetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsStringAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsStringAttrWithSetterException) },
</del><ins>+    { &quot;unsignedLongLongAttr&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsUnsignedLongLongAttr), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsUnsignedLongLongAttr) },
+    { &quot;immutableSerializedScriptValue&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsImmutableSerializedScriptValue), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsImmutableSerializedScriptValue) },
+    { &quot;attrWithGetterException&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsAttrWithGetterException) },
+    { &quot;attrWithSetterException&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsAttrWithSetterException) },
+    { &quot;stringAttrWithGetterException&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsStringAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsStringAttrWithGetterException) },
+    { &quot;stringAttrWithSetterException&quot;, DontDelete, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsStringAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestTypedefsStringAttrWithSetterException) },
</ins><span class="cx">     { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestTypedefsConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(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&lt;JSTestTypedefs*&gt;(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-&gt;vm(), domObject-&gt;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>-    { &quot;readonly&quot;, DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsattributeReadonly), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</del><ins>+    { &quot;readonly&quot;, DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsattributeReadonly), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(0) },
</ins><span class="cx">     { &quot;constructor&quot;, DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsattributeConstructor), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(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&lt;JSattribute*&gt;(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-&gt;vm(), domObject-&gt;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&lt;JSreadonly, Base&gt;(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&lt;JSreadonly*&gt;(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-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>