<!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>[169433] 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/169433">169433</a></dd>
<dt>Author</dt> <dd>oliver@apple.com</dd>
<dt>Date</dt> <dd>2014-05-28 13:54:21 -0700 (Wed, 28 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Make DOM properties exposed as instance properties use the base object instead of |this|
https://bugs.webkit.org/show_bug.cgi?id=133353

Reviewed by Geoffrey Garen.

Source/WebCore:
Make the bindings generator emit code that uses the base object for
a property, rather than the this object. This means that attributes
that we need to be treated as instance properties will match their old
instance-based behaviour.

* bindings/scripts/CodeGeneratorJS.pm:
(InterfaceRequiresAttributesOnInstanceForCompatibility):
(InterfaceRequiresAttributesOnInstance):
(GetCastingHelperForBaseObject):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceImplementsStr3):
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalStr3):
(WebCore::setJSTestInterfaceSupplementalNode):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
(WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):

LayoutTests:
Update tests to cover change in expected behaviour.

* js/dom/dom-as-prototype-assignment-exception-expected.txt:
* js/dom/dom-attributes-on-mismatch-type-expected.txt:
* js/dom/dom-attributes-on-mismatch-type.html:
* js/dom/script-tests/dom-as-prototype-assignment-exception.js:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsjsdomdomasprototypeassignmentexceptionexpectedtxt">trunk/LayoutTests/js/dom/dom-as-prototype-assignment-exception-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomdomattributesonmismatchtypeexpectedtxt">trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomdomattributesonmismatchtypehtml">trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type.html</a></li>
<li><a href="#trunkLayoutTestsjsdomscripttestsdomasprototypeassignmentexceptionjs">trunk/LayoutTests/js/dom/script-tests/dom-as-prototype-assignment-exception.js</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="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/LayoutTests/ChangeLog        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-05-28  Oliver Hunt  &lt;oliver@apple.com&gt;
+
+        Make DOM properties exposed as instance properties use the base object instead of |this|
+        https://bugs.webkit.org/show_bug.cgi?id=133353
+
+        Reviewed by Geoffrey Garen.
+
+        Update tests to cover change in expected behaviour.
+
+        * js/dom/dom-as-prototype-assignment-exception-expected.txt:
+        * js/dom/dom-attributes-on-mismatch-type-expected.txt:
+        * js/dom/dom-attributes-on-mismatch-type.html:
+        * js/dom/script-tests/dom-as-prototype-assignment-exception.js:
+
</ins><span class="cx"> 2014-05-28  Radu Stavila  &lt;stavila@adobe.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION (r168046): Invalid layout in multicol
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdomasprototypeassignmentexceptionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dom-as-prototype-assignment-exception-expected.txt (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dom-as-prototype-assignment-exception-expected.txt        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/LayoutTests/js/dom/dom-as-prototype-assignment-exception-expected.txt        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> 
</span><span class="cx"> PASS testObject.id is undefined.
</span><span class="cx"> PASS testObject.id=&quot;foo&quot; threw exception TypeError: The Element.id setter can only be used on instances of Element.
</span><del>-PASS testObject.length threw exception TypeError: The NodeList.length getter can only be used on instances of NodeList.
</del><ins>+PASS testObject.length is 1
</ins><span class="cx"> PASS div.id is 'test'
</span><span class="cx"> PASS div.hasOwnProperty('id') is false
</span><span class="cx"> PASS div.__proto__.id is undefined.
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdomattributesonmismatchtypeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type-expected.txt (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type-expected.txt        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type-expected.txt        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -5,7 +5,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 objectWithDocumentAsPrototype.all threw exception TypeError: The HTMLDocument.all getter can only be used on instances of HTMLDocument.
</del><ins>+PASS objectWithDocumentAsPrototype.all is undefined.
</ins><span class="cx"> See what happens if we put the anchor prototype on a div
</span><span class="cx"> PASS testDiv instanceof HTMLAnchorElement is true
</span><span class="cx"> PASS testDiv.href is undefined.
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdomattributesonmismatchtypehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type.html (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type.html        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type.html        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx">         var testDiv = document.getElementById(&quot;testDiv&quot;);
</span><span class="cx">         var testAnchor = document.getElementById(&quot;testAnchor&quot;);
</span><span class="cx">         var objectWithDocumentAsPrototype = { __proto__: document };
</span><del>-        shouldThrow(&quot;objectWithDocumentAsPrototype.all&quot;);
</del><ins>+        shouldBeUndefined(&quot;objectWithDocumentAsPrototype.all&quot;);
</ins><span class="cx">         debug(&quot;See what happens if we put the anchor prototype on a div&quot;);
</span><span class="cx">         testDiv.__proto__ = testAnchor.__proto__;
</span><span class="cx">         shouldBeTrue(&quot;testDiv instanceof HTMLAnchorElement&quot;)
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomscripttestsdomasprototypeassignmentexceptionjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/script-tests/dom-as-prototype-assignment-exception.js (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/script-tests/dom-as-prototype-assignment-exception.js        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/LayoutTests/js/dom/script-tests/dom-as-prototype-assignment-exception.js        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> shouldThrow('testObject.id=&quot;foo&quot;')
</span><span class="cx"> 
</span><span class="cx"> testObject = {__proto__: document.getElementsByTagName(&quot;div&quot;)}
</span><del>-shouldThrow(&quot;testObject.length&quot;)
</del><ins>+shouldBe(&quot;testObject.length&quot;, '1')
</ins><span class="cx"> 
</span><span class="cx"> shouldBe(&quot;div.id&quot;, &quot;'test'&quot;)
</span><span class="cx"> shouldBeFalse(&quot;div.hasOwnProperty('id')&quot;)
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/ChangeLog        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -1,3 +1,50 @@
</span><ins>+2014-05-28  Oliver Hunt  &lt;oliver@apple.com&gt;
+
+        Make DOM properties exposed as instance properties use the base object instead of |this|
+        https://bugs.webkit.org/show_bug.cgi?id=133353
+
+        Reviewed by Geoffrey Garen.
+
+        Make the bindings generator emit code that uses the base object for
+        a property, rather than the this object. This means that attributes
+        that we need to be treated as instance properties will match their old
+        instance-based behaviour.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (InterfaceRequiresAttributesOnInstanceForCompatibility):
+        (InterfaceRequiresAttributesOnInstance):
+        (GetCastingHelperForBaseObject):
+        (GenerateImplementation):
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        (WebCore::jsTestActiveDOMObjectExcitingAttr):
+        * bindings/scripts/test/JS/JSTestException.cpp:
+        (WebCore::jsTestExceptionName):
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        (WebCore::jsTestInterfaceImplementsStr3):
+        (WebCore::jsTestInterfaceSupplementalStr3):
+        (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
+        (WebCore::setJSTestInterfaceImplementsStr2):
+        (WebCore::setJSTestInterfaceImplementsStr3):
+        (WebCore::setJSTestInterfaceImplementsNode):
+        (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
+        (WebCore::setJSTestInterfaceSupplementalStr2):
+        (WebCore::setJSTestInterfaceSupplementalStr3):
+        (WebCore::setJSTestInterfaceSupplementalNode):
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+        (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
+        (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
+        (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
+        (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
+        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        (WebCore::jsTestTypedefsConstructorTestSubObj):
+        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
+        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
+        (WebCore::setJSTestTypedefsAttrWithGetterException):
+        (WebCore::setJSTestTypedefsAttrWithSetterException):
+        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
+        (WebCore::setJSTestTypedefsStringAttrWithSetterException):
+
</ins><span class="cx"> 2014-05-28  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS WK2] Improve behavior of position:fixed inside accelerated overflow-scroll
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -602,6 +602,19 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+
+sub InterfaceRequiresAttributesOnInstanceForCompatibility
+{
+    my $interface = shift;
+    my $interfaceName = $interface-&gt;name;
+
+    # Needed for compatibility with existing content
+    return 1 if $interfaceName =~ &quot;Touch&quot;;
+    return 1 if $interfaceName =~ &quot;Navigator&quot;;
+
+    return 0;
+}
+
</ins><span class="cx"> sub InterfaceRequiresAttributesOnInstance
</span><span class="cx"> {
</span><span class="cx">     my $interface = shift;
</span><span class="lines">@@ -623,12 +636,10 @@
</span><span class="cx">     # FIXME: These two should be fixed by removing the custom override of message, etc
</span><span class="cx">     return 1 if $interfaceName =~ &quot;Exception&quot;;
</span><span class="cx">     return 1 if $interfaceName =~ &quot;Error&quot;;
</span><del>-    return 1 if $interfaceName =~ &quot;Navigator&quot;;
</del><span class="cx"> 
</span><span class="cx">     return 1 if IsDOMGlobalObject($interface);
</span><span class="cx"> 
</span><del>-    # Needed for compatibility with existing content
-    return 1 if $interfaceName =~ &quot;Touch&quot;;
</del><ins>+    return 1 if InterfaceRequiresAttributesOnInstanceForCompatibility($interface);
</ins><span class="cx"> 
</span><span class="cx">     #FIXME: We currently clobber performance for a number of the list types
</span><span class="cx">     return 1 if $interfaceName =~ &quot;List&quot;;
</span><span class="lines">@@ -1697,6 +1708,19 @@
</span><span class="cx">     return &quot;jsDynamicCast&lt;JS&quot; . $interface-&gt;name . &quot;*&gt;&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub GetCastingHelperForBaseObject
+{
+    my $interface = shift;
+
+    if ($interface-&gt;name eq &quot;Node&quot;) {
+        return &quot;jsNodeCast&quot;;
+    }
+    if ($interface-&gt;name eq &quot;Element&quot;) {
+        return &quot;jsElementCast&quot;;
+    }
+    return &quot;jsCast&lt;JS&quot; . $interface-&gt;name . &quot;*&gt;&quot;;
+}
+
</ins><span class="cx"> sub GenerateImplementation
</span><span class="cx"> {
</span><span class="cx">     my ($object, $interface) = @_;
</span><span class="lines">@@ -2126,21 +2150,28 @@
</span><span class="cx">             push(@implContent, &quot;EncodedJSValue ${getFunctionName}(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)\n&quot;);
</span><span class="cx">             push(@implContent, &quot;{\n&quot;);
</span><span class="cx"> 
</span><ins>+            push(@implContent, &quot;    UNUSED_PARAM(exec);\n&quot;);
+            push(@implContent, &quot;    UNUSED_PARAM(slotBase);\n&quot;);
+            push(@implContent, &quot;    UNUSED_PARAM(thisValue);\n&quot;);
</ins><span class="cx">             if (!$attribute-&gt;isStatic || $attribute-&gt;signature-&gt;type =~ /Constructor$/) {
</span><span class="cx">                 if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomProxyToJSObject&quot;}) {
</span><span class="cx">                     push(@implContent, &quot;    ${className}* castedThis = to${className}(JSValue::decode(thisValue));\n&quot;);
</span><ins>+                } elsif (AttributeShouldBeOnInstance($interface, $attribute)) {
+                    push(@implContent, &quot;    ${className}* castedThis = &quot; . GetCastingHelperForBaseObject($interface) . &quot;(slotBase);\n&quot;);
+                    if (InterfaceRequiresAttributesOnInstanceForCompatibility($interface)) {
+                        push(@implContent, &quot;    ${className}* castedThisObject = &quot; . GetCastingHelperForThisObject($interface) . &quot;(JSValue::decode(thisValue));\n&quot;);
+                        push(@implContent, &quot;    if (UNLIKELY(!castedThisObject))\n&quot;);
+                        push(@implContent, &quot;        reportDeprecatedGetterError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
+                    }
</ins><span class="cx">                 } else {
</span><span class="cx">                     push(@implContent, &quot;    ${className}* castedThis = &quot; . GetCastingHelperForThisObject($interface) . &quot;(JSValue::decode(thisValue));\n&quot;);
</span><ins>+                    push(@implContent, &quot;    if (UNLIKELY(!castedThis)) {\n&quot;);
+                    push(@implContent, &quot;        if (jsDynamicCast&lt;${className}Prototype*&gt;(slotBase))\n&quot;);
+                    push(@implContent, &quot;            return reportDeprecatedGetterError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
+                    push(@implContent, &quot;        return throwGetterTypeError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
+                    push(@implContent, &quot;    }\n&quot;);
</ins><span class="cx">                 }
</span><span class="cx">                 $implIncludes{&quot;ScriptExecutionContext.h&quot;} = 1;
</span><del>-                push(@implContent, &quot;    if (UNLIKELY(!castedThis)) {\n&quot;);
-                push(@implContent, &quot;        if (jsDynamicCast&lt;${className}Prototype*&gt;(slotBase))\n&quot;);
-                push(@implContent, &quot;            return reportDeprecatedGetterError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
-                push(@implContent, &quot;        return throwGetterTypeError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
-                push(@implContent, &quot;    }\n&quot;);
-            } else {
-                push(@implContent, &quot;    UNUSED_PARAM(thisValue);\n&quot;);
-                push(@implContent, &quot;    UNUSED_PARAM(slotBase);\n&quot;);
</del><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             my @arguments = ();
</span><span class="lines">@@ -2471,24 +2502,36 @@
</span><span class="cx">                 my $attributeConditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute-&gt;signature);
</span><span class="cx">                 push(@implContent, &quot;#if ${attributeConditionalString}\n&quot;) if $attributeConditionalString;
</span><span class="cx"> 
</span><del>-                push(@implContent, &quot;void ${putFunctionName}(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue&quot;);
</del><ins>+                push(@implContent, &quot;void ${putFunctionName}(ExecState* exec, JSObject* baseObject, EncodedJSValue&quot;);
</ins><span class="cx">                 push(@implContent, &quot; thisValue&quot;) if !$attribute-&gt;isStatic;
</span><span class="cx">                 push(@implContent, &quot;, EncodedJSValue encodedValue)\n&quot;);
</span><span class="cx">                 push(@implContent, &quot;{\n&quot;);
</span><span class="cx">                 push(@implContent, &quot;    JSValue value = JSValue::decode(encodedValue);\n&quot;);
</span><ins>+                push(@implContent, &quot;    UNUSED_PARAM(baseObject);\n&quot;);
</ins><span class="cx">                 if (!$attribute-&gt;isStatic) {
</span><span class="cx">                     if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomProxyToJSObject&quot;}) {
</span><span class="cx">                         push(@implContent, &quot;    ${className}* castedThis = to${className}(JSValue::decode(thisValue));\n&quot;);
</span><ins>+                    } elsif (AttributeShouldBeOnInstance($interface, $attribute)) {
+                        push(@implContent, &quot;    UNUSED_PARAM(thisValue);\n&quot;);
+                        push(@implContent, &quot;    ${className}* castedThis = &quot; . GetCastingHelperForBaseObject($interface) . &quot;(baseObject);\n&quot;);
+                        if (InterfaceRequiresAttributesOnInstanceForCompatibility($interface)) {
+                            push(@implContent, &quot;    ${className}* castedThisObject = &quot; . GetCastingHelperForThisObject($interface) . &quot;(JSValue::decode(thisValue));\n&quot;);
+                            push(@implContent, &quot;    if (UNLIKELY(!castedThisObject))\n&quot;);
+                            push(@implContent, &quot;        reportDeprecatedSetterError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
+                        } else {
+                            push(@implContent, &quot;    UNUSED_PARAM(thisValue);\n&quot;);
+                            push(@implContent, &quot;    UNUSED_PARAM(exec);\n&quot;);
+                        }
</ins><span class="cx">                     } else {
</span><span class="cx">                         push(@implContent, &quot;    ${className}* castedThis = &quot; . GetCastingHelperForThisObject($interface) . &quot;(JSValue::decode(thisValue));\n&quot;);
</span><ins>+                        push(@implContent, &quot;    if (UNLIKELY(!castedThis)) {\n&quot;);
+                        push(@implContent, &quot;        if (jsDynamicCast&lt;${className}Prototype*&gt;(JSValue::decode(thisValue)))\n&quot;);
+                        push(@implContent, &quot;            reportDeprecatedSetterError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
+                        push(@implContent, &quot;        else\n&quot;);
+                        push(@implContent, &quot;            throwSetterTypeError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
+                        push(@implContent, &quot;        return;\n&quot;);
+                        push(@implContent, &quot;    }\n&quot;);
</ins><span class="cx">                     }
</span><del>-                    push(@implContent, &quot;    if (UNLIKELY(!castedThis)) {\n&quot;);
-                    push(@implContent, &quot;        if (jsDynamicCast&lt;${className}Prototype*&gt;(JSValue::decode(thisValue)))\n&quot;);
-                    push(@implContent, &quot;            reportDeprecatedSetterError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
-                    push(@implContent, &quot;        else\n&quot;);
-                    push(@implContent, &quot;            throwSetterTypeError(*exec, \&quot;$interfaceName\&quot;, \&quot;$name\&quot;);\n&quot;);
-                    push(@implContent, &quot;        return;\n&quot;);
-                    push(@implContent, &quot;    }\n&quot;);
</del><span class="cx">                 }
</span><span class="cx">                 if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;} &amp;&amp; !$attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;DoNotCheckSecurity&quot;}) {
</span><span class="cx">                     if ($interfaceName eq &quot;DOMWindow&quot;) {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -146,12 +146,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue jsTestActiveDOMObjectExcitingAttr(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestActiveDOMObject* castedThis = jsDynamicCast&lt;JSTestActiveDOMObject*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestActiveDOMObjectPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestActiveDOMObject&quot;, &quot;excitingAttr&quot;);
-        return throwGetterTypeError(*exec, &quot;TestActiveDOMObject&quot;, &quot;excitingAttr&quot;);
-    }
</del><ins>+    JSTestActiveDOMObject* castedThis = jsCast&lt;JSTestActiveDOMObject*&gt;(slotBase);
</ins><span class="cx">     if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis-&gt;impl()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     TestActiveDOMObject&amp; impl = castedThis-&gt;impl();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -138,12 +138,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue jsTestExceptionName(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestException* castedThis = jsDynamicCast&lt;JSTestException*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestExceptionPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestException&quot;, &quot;name&quot;);
-        return throwGetterTypeError(*exec, &quot;TestException&quot;, &quot;name&quot;);
-    }
</del><ins>+    JSTestException* castedThis = jsCast&lt;JSTestException*&gt;(slotBase);
</ins><span class="cx">     TestException&amp; impl = castedThis-&gt;impl();
</span><span class="cx">     JSValue result = jsStringWithCache(exec, impl.name());
</span><span class="cx">     return JSValue::encode(result);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -468,12 +468,7 @@
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><span class="cx"> EncodedJSValue jsTestInterfaceImplementsStr3(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestInterface* castedThis = jsDynamicCast&lt;JSTestInterface*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestInterface&quot;, &quot;implementsStr3&quot;);
-        return throwGetterTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsStr3&quot;);
-    }
</del><ins>+    JSTestInterface* castedThis = jsCast&lt;JSTestInterface*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(castedThis-&gt;implementsStr3(exec));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -552,12 +547,7 @@
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><span class="cx"> EncodedJSValue jsTestInterfaceSupplementalStr3(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestInterface* castedThis = jsDynamicCast&lt;JSTestInterface*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr3&quot;);
-        return throwGetterTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr3&quot;);
-    }
</del><ins>+    JSTestInterface* castedThis = jsCast&lt;JSTestInterface*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(castedThis-&gt;supplementalStr3(exec));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -608,9 +598,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-void setJSTestInterfaceConstructorImplementsStaticAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceConstructorImplementsStaticAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -620,9 +611,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-void setJSTestInterfaceImplementsStr2(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceImplementsStr2(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestInterface* castedThis = jsDynamicCast&lt;JSTestInterface*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -641,26 +633,22 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-void setJSTestInterfaceImplementsStr3(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceImplementsStr3(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><del>-    JSTestInterface* castedThis = jsDynamicCast&lt;JSTestInterface*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(JSValue::decode(thisValue)))
-            reportDeprecatedSetterError(*exec, &quot;TestInterface&quot;, &quot;implementsStr3&quot;);
-        else
-            throwSetterTypeError(*exec, &quot;TestInterface&quot;, &quot;implementsStr3&quot;);
-        return;
-    }
</del><ins>+    UNUSED_PARAM(baseObject);
+    UNUSED_PARAM(thisValue);
+    JSTestInterface* castedThis = jsCast&lt;JSTestInterface*&gt;(baseObject);
</ins><span class="cx">     castedThis-&gt;setImplementsStr3(exec, value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>-void setJSTestInterfaceImplementsNode(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceImplementsNode(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestInterface* castedThis = jsDynamicCast&lt;JSTestInterface*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -679,9 +667,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-void setJSTestInterfaceConstructorSupplementalStaticAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceConstructorSupplementalStaticAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -691,9 +680,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-void setJSTestInterfaceSupplementalStr2(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceSupplementalStr2(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestInterface* castedThis = jsDynamicCast&lt;JSTestInterface*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -712,26 +702,22 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-void setJSTestInterfaceSupplementalStr3(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceSupplementalStr3(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><del>-    JSTestInterface* castedThis = jsDynamicCast&lt;JSTestInterface*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(JSValue::decode(thisValue)))
-            reportDeprecatedSetterError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr3&quot;);
-        else
-            throwSetterTypeError(*exec, &quot;TestInterface&quot;, &quot;supplementalStr3&quot;);
-        return;
-    }
</del><ins>+    UNUSED_PARAM(baseObject);
+    UNUSED_PARAM(thisValue);
+    JSTestInterface* castedThis = jsCast&lt;JSTestInterface*&gt;(baseObject);
</ins><span class="cx">     castedThis-&gt;setSupplementalStr3(exec, value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><del>-void setJSTestInterfaceSupplementalNode(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestInterfaceSupplementalNode(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestInterface* castedThis = jsDynamicCast&lt;JSTestInterface*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestInterfacePrototype*&gt;(JSValue::decode(thisValue)))
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -334,9 +334,10 @@
</span><span class="cx">     return JSValue::encode(JSTestNondeterministic::getConstructor(exec-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void setJSTestNondeterministicNondeterministicWriteableAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicNondeterministicWriteableAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestNondeterministic* castedThis = jsDynamicCast&lt;JSTestNondeterministic*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestNondeterministicPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -353,9 +354,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestNondeterministicNondeterministicExceptionAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicNondeterministicExceptionAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestNondeterministic* castedThis = jsDynamicCast&lt;JSTestNondeterministic*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestNondeterministicPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -372,9 +374,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestNondeterministicNondeterministicGetterExceptionAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicNondeterministicGetterExceptionAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestNondeterministic* castedThis = jsDynamicCast&lt;JSTestNondeterministic*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestNondeterministicPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -391,9 +394,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestNondeterministicNondeterministicSetterExceptionAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestNondeterministicNondeterministicSetterExceptionAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestNondeterministic* castedThis = jsDynamicCast&lt;JSTestNondeterministic*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestNondeterministicPrototype*&gt;(JSValue::decode(thisValue)))
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -1068,24 +1068,14 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue jsTestObjConstructorTestSubObj(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;TestSubObj&quot;);
-        return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;TestSubObj&quot;);
-    }
</del><ins>+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestSubObj::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue jsTestObjTestSubObjEnabledBySettingConstructor(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;TestSubObjEnabledBySetting&quot;);
-        return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;TestSubObjEnabledBySetting&quot;);
-    }
</del><ins>+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     if (!castedThis-&gt;impl().frame())
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     Settings&amp; settings = castedThis-&gt;impl().frame()-&gt;settings();
</span><span class="lines">@@ -1465,12 +1455,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue jsTestObjCustomAttr(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;customAttr&quot;);
-        return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;customAttr&quot;);
-    }
</del><ins>+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(castedThis-&gt;customAttr(exec));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1659,12 +1644,7 @@
</span><span class="cx"> #if ENABLE(Condition1)
</span><span class="cx"> EncodedJSValue jsTestObjConditionalAttr4Constructor(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr4&quot;);
-        return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr4&quot;);
-    }
</del><ins>+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestObjectA::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1673,12 +1653,7 @@
</span><span class="cx"> #if ENABLE(Condition1) &amp;&amp; ENABLE(Condition2)
</span><span class="cx"> EncodedJSValue jsTestObjConditionalAttr5Constructor(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr5&quot;);
-        return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr5&quot;);
-    }
</del><ins>+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestObjectB::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1687,12 +1662,7 @@
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><span class="cx"> EncodedJSValue jsTestObjConditionalAttr6Constructor(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr6&quot;);
-        return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr6&quot;);
-    }
</del><ins>+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestObjectC::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1748,12 +1718,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue jsTestObjContentDocument(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;contentDocument&quot;);
-        return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;contentDocument&quot;);
-    }
</del><ins>+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(slotBase);
</ins><span class="cx">     TestObj&amp; impl = castedThis-&gt;impl();
</span><span class="cx">     return JSValue::encode(shouldAllowAccessToNode(exec, impl.contentDocument()) ? toJS(exec, castedThis-&gt;globalObject(), WTF::getPtr(impl.contentDocument())) : jsNull());
</span><span class="cx"> }
</span><span class="lines">@@ -2011,9 +1976,10 @@
</span><span class="cx">     return JSValue::encode(JSTestObj::getConstructor(exec-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void setJSTestObjConstructorStaticStringAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConstructorStaticStringAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     const String&amp; nativeValue(value.isEmpty() ? String() : value.toString(exec)-&gt;value(exec));
</span><span class="cx">     if (UNLIKELY(exec-&gt;hadException()))
</span><span class="cx">         return;
</span><span class="lines">@@ -2021,25 +1987,21 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjTestSubObjEnabledBySettingConstructor(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjTestSubObjEnabledBySettingConstructor(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
-            reportDeprecatedSetterError(*exec, &quot;TestObj&quot;, &quot;TestSubObjEnabledBySetting&quot;);
-        else
-            throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;TestSubObjEnabledBySetting&quot;);
-        return;
-    }
</del><ins>+    UNUSED_PARAM(baseObject);
+    UNUSED_PARAM(thisValue);
+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     // Shadowing a built-in constructor
</span><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;TestSubObjEnabledBySetting&quot;), value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjEnumAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjEnumAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2058,9 +2020,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjByteAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjByteAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2077,9 +2040,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjOctetAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjOctetAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2096,9 +2060,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjShortAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjShortAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2115,9 +2080,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjUnsignedShortAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjUnsignedShortAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2134,9 +2100,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjLongAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjLongAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2153,9 +2120,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjLongLongAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjLongLongAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2172,9 +2140,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjUnsignedLongLongAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjUnsignedLongLongAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2191,9 +2160,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjStringAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStringAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2210,9 +2180,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjTestObjAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjTestObjAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2229,9 +2200,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjXMLObjAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjXMLObjAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2248,9 +2220,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjCreate(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjCreate(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2267,9 +2240,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedStringAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedStringAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2286,9 +2260,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedIntegralAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedIntegralAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2305,9 +2280,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedUnsignedIntegralAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedUnsignedIntegralAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2324,9 +2300,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedBooleanAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedBooleanAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2343,9 +2320,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedURLAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedURLAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2362,9 +2340,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedStringAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedStringAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2381,9 +2360,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedCustomIntegralAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedCustomIntegralAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2400,9 +2380,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedCustomBooleanAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedCustomBooleanAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2419,9 +2400,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReflectedCustomURLAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReflectedCustomURLAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2438,9 +2420,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjTypedArrayAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjTypedArrayAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2457,9 +2440,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjAttrWithGetterException(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAttrWithGetterException(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2476,9 +2460,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjAttrWithSetterException(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAttrWithSetterException(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2497,9 +2482,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjStringAttrWithGetterException(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStringAttrWithGetterException(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2516,9 +2502,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjStringAttrWithSetterException(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStringAttrWithSetterException(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2537,24 +2524,20 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjCustomAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjCustomAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
-            reportDeprecatedSetterError(*exec, &quot;TestObj&quot;, &quot;customAttr&quot;);
-        else
-            throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;customAttr&quot;);
-        return;
-    }
</del><ins>+    UNUSED_PARAM(baseObject);
+    UNUSED_PARAM(thisValue);
+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     castedThis-&gt;setCustomAttr(exec, value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjWithScriptStateAttribute(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptStateAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2571,9 +2554,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjWithScriptExecutionContextAttribute(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2593,9 +2577,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjWithScriptStateAttributeRaises(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptStateAttributeRaises(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2612,9 +2597,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjWithScriptExecutionContextAttributeRaises(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAttributeRaises(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2634,9 +2620,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjWithScriptExecutionContextAndScriptStateAttribute(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAndScriptStateAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2656,9 +2643,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2678,9 +2666,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2700,9 +2689,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjWithScriptArgumentsAndCallStackAttribute(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjWithScriptArgumentsAndCallStackAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2720,9 +2710,10 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1)
</span><del>-void setJSTestObjConditionalAttr1(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr1(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2741,9 +2732,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1) &amp;&amp; ENABLE(Condition2)
</span><del>-void setJSTestObjConditionalAttr2(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr2(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2762,9 +2754,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-void setJSTestObjConditionalAttr3(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr3(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2783,17 +2776,12 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1)
</span><del>-void setJSTestObjConditionalAttr4Constructor(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr4Constructor(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
-            reportDeprecatedSetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr4&quot;);
-        else
-            throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr4&quot;);
-        return;
-    }
</del><ins>+    UNUSED_PARAM(baseObject);
+    UNUSED_PARAM(thisValue);
+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     // Shadowing a built-in constructor
</span><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;conditionalAttr4&quot;), value);
</span><span class="cx"> }
</span><span class="lines">@@ -2801,17 +2789,12 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1) &amp;&amp; ENABLE(Condition2)
</span><del>-void setJSTestObjConditionalAttr5Constructor(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr5Constructor(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
-            reportDeprecatedSetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr5&quot;);
-        else
-            throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr5&quot;);
-        return;
-    }
</del><ins>+    UNUSED_PARAM(baseObject);
+    UNUSED_PARAM(thisValue);
+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     // Shadowing a built-in constructor
</span><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;conditionalAttr5&quot;), value);
</span><span class="cx"> }
</span><span class="lines">@@ -2819,26 +2802,22 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><del>-void setJSTestObjConditionalAttr6Constructor(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjConditionalAttr6Constructor(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><del>-    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
-            reportDeprecatedSetterError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr6&quot;);
-        else
-            throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;conditionalAttr6&quot;);
-        return;
-    }
</del><ins>+    UNUSED_PARAM(baseObject);
+    UNUSED_PARAM(thisValue);
+    JSTestObj* castedThis = jsCast&lt;JSTestObj*&gt;(baseObject);
</ins><span class="cx">     // Shadowing a built-in constructor
</span><span class="cx">     castedThis-&gt;putDirect(exec-&gt;vm(), Identifier(exec, &quot;conditionalAttr6&quot;), value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void setJSTestObjAnyAttribute(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAnyAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2855,9 +2834,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjMutablePoint(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjMutablePoint(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2874,9 +2854,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjImmutablePoint(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjImmutablePoint(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2893,9 +2874,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjStrawberry(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStrawberry(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2912,9 +2894,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjStrictFloat(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjStrictFloat(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2931,9 +2914,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjId(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjId(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2950,9 +2934,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjReplaceableAttribute(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjReplaceableAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2966,9 +2951,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjNullableLongSettableAttribute(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjNullableLongSettableAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -2985,9 +2971,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjNullableStringValue(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjNullableStringValue(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -3004,9 +2991,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestObjAttributeWithReservedEnumType(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestObjAttributeWithReservedEnumType(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -231,9 +231,10 @@
</span><span class="cx">     return JSValue::encode(JSTestSerializedScriptValueInterface::getConstructor(exec-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void setJSTestSerializedScriptValueInterfaceValue(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestSerializedScriptValueInterfaceValue(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestSerializedScriptValueInterface* castedThis = jsDynamicCast&lt;JSTestSerializedScriptValueInterface*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestSerializedScriptValueInterfacePrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -250,9 +251,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestSerializedScriptValueInterfaceCachedValue(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestSerializedScriptValueInterfaceCachedValue(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestSerializedScriptValueInterface* castedThis = jsDynamicCast&lt;JSTestSerializedScriptValueInterface*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestSerializedScriptValueInterfacePrototype*&gt;(JSValue::decode(thisValue)))
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (169432 => 169433)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2014-05-28 20:26:28 UTC (rev 169432)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2014-05-28 20:54:21 UTC (rev 169433)
</span><span class="lines">@@ -280,12 +280,7 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue jsTestTypedefsConstructorTestSubObj(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>-    JSTestTypedefs* castedThis = jsDynamicCast&lt;JSTestTypedefs*&gt;(JSValue::decode(thisValue));
-    if (UNLIKELY(!castedThis)) {
-        if (jsDynamicCast&lt;JSTestTypedefsPrototype*&gt;(slotBase))
-            return reportDeprecatedGetterError(*exec, &quot;TestTypedefs&quot;, &quot;TestSubObj&quot;);
-        return throwGetterTypeError(*exec, &quot;TestTypedefs&quot;, &quot;TestSubObj&quot;);
-    }
</del><ins>+    JSTestTypedefs* castedThis = jsCast&lt;JSTestTypedefs*&gt;(slotBase);
</ins><span class="cx">     return JSValue::encode(JSTestSubObj::getConstructor(exec-&gt;vm(), castedThis-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -358,9 +353,10 @@
</span><span class="cx">     return JSValue::encode(JSTestTypedefs::getConstructor(exec-&gt;vm(), domObject-&gt;globalObject()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void setJSTestTypedefsUnsignedLongLongAttr(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsUnsignedLongLongAttr(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestTypedefs* castedThis = jsDynamicCast&lt;JSTestTypedefs*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestTypedefsPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -377,9 +373,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestTypedefsImmutableSerializedScriptValue(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsImmutableSerializedScriptValue(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestTypedefs* castedThis = jsDynamicCast&lt;JSTestTypedefs*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestTypedefsPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -396,9 +393,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestTypedefsAttrWithGetterException(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsAttrWithGetterException(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestTypedefs* castedThis = jsDynamicCast&lt;JSTestTypedefs*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestTypedefsPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -415,9 +413,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestTypedefsAttrWithSetterException(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsAttrWithSetterException(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestTypedefs* castedThis = jsDynamicCast&lt;JSTestTypedefs*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestTypedefsPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -436,9 +435,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestTypedefsStringAttrWithGetterException(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsStringAttrWithGetterException(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestTypedefs* castedThis = jsDynamicCast&lt;JSTestTypedefs*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestTypedefsPrototype*&gt;(JSValue::decode(thisValue)))
</span><span class="lines">@@ -455,9 +455,10 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void setJSTestTypedefsStringAttrWithSetterException(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</del><ins>+void setJSTestTypedefsStringAttrWithSetterException(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</ins><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span><ins>+    UNUSED_PARAM(baseObject);
</ins><span class="cx">     JSTestTypedefs* castedThis = jsDynamicCast&lt;JSTestTypedefs*&gt;(JSValue::decode(thisValue));
</span><span class="cx">     if (UNLIKELY(!castedThis)) {
</span><span class="cx">         if (jsDynamicCast&lt;JSTestTypedefsPrototype*&gt;(JSValue::decode(thisValue)))
</span></span></pre>
</div>
</div>

</body>
</html>