<!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 <oliver@apple.com>
+
+ 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 <stavila@adobe.com>
</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="foo" 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 "PASS" messages, followed by "TEST COMPLETE".
</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("testDiv");
</span><span class="cx"> var testAnchor = document.getElementById("testAnchor");
</span><span class="cx"> var objectWithDocumentAsPrototype = { __proto__: document };
</span><del>- shouldThrow("objectWithDocumentAsPrototype.all");
</del><ins>+ shouldBeUndefined("objectWithDocumentAsPrototype.all");
</ins><span class="cx"> debug("See what happens if we put the anchor prototype on a div");
</span><span class="cx"> testDiv.__proto__ = testAnchor.__proto__;
</span><span class="cx"> shouldBeTrue("testDiv instanceof HTMLAnchorElement")
</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="foo"')
</span><span class="cx">
</span><span class="cx"> testObject = {__proto__: document.getElementsByTagName("div")}
</span><del>-shouldThrow("testObject.length")
</del><ins>+shouldBe("testObject.length", '1')
</ins><span class="cx">
</span><span class="cx"> shouldBe("div.id", "'test'")
</span><span class="cx"> shouldBeFalse("div.hasOwnProperty('id')")
</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 <oliver@apple.com>
+
+ 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 <simon.fraser@apple.com>
</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->name;
+
+ # Needed for compatibility with existing content
+ return 1 if $interfaceName =~ "Touch";
+ return 1 if $interfaceName =~ "Navigator";
+
+ 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 =~ "Exception";
</span><span class="cx"> return 1 if $interfaceName =~ "Error";
</span><del>- return 1 if $interfaceName =~ "Navigator";
</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 =~ "Touch";
</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 =~ "List";
</span><span class="lines">@@ -1697,6 +1708,19 @@
</span><span class="cx"> return "jsDynamicCast<JS" . $interface->name . "*>";
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+sub GetCastingHelperForBaseObject
+{
+ my $interface = shift;
+
+ if ($interface->name eq "Node") {
+ return "jsNodeCast";
+ }
+ if ($interface->name eq "Element") {
+ return "jsElementCast";
+ }
+ return "jsCast<JS" . $interface->name . "*>";
+}
+
</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, "EncodedJSValue ${getFunctionName}(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)\n");
</span><span class="cx"> push(@implContent, "{\n");
</span><span class="cx">
</span><ins>+ push(@implContent, " UNUSED_PARAM(exec);\n");
+ push(@implContent, " UNUSED_PARAM(slotBase);\n");
+ push(@implContent, " UNUSED_PARAM(thisValue);\n");
</ins><span class="cx"> if (!$attribute->isStatic || $attribute->signature->type =~ /Constructor$/) {
</span><span class="cx"> if ($interface->extendedAttributes->{"CustomProxyToJSObject"}) {
</span><span class="cx"> push(@implContent, " ${className}* castedThis = to${className}(JSValue::decode(thisValue));\n");
</span><ins>+ } elsif (AttributeShouldBeOnInstance($interface, $attribute)) {
+ push(@implContent, " ${className}* castedThis = " . GetCastingHelperForBaseObject($interface) . "(slotBase);\n");
+ if (InterfaceRequiresAttributesOnInstanceForCompatibility($interface)) {
+ push(@implContent, " ${className}* castedThisObject = " . GetCastingHelperForThisObject($interface) . "(JSValue::decode(thisValue));\n");
+ push(@implContent, " if (UNLIKELY(!castedThisObject))\n");
+ push(@implContent, " reportDeprecatedGetterError(*exec, \"$interfaceName\", \"$name\");\n");
+ }
</ins><span class="cx"> } else {
</span><span class="cx"> push(@implContent, " ${className}* castedThis = " . GetCastingHelperForThisObject($interface) . "(JSValue::decode(thisValue));\n");
</span><ins>+ push(@implContent, " if (UNLIKELY(!castedThis)) {\n");
+ push(@implContent, " if (jsDynamicCast<${className}Prototype*>(slotBase))\n");
+ push(@implContent, " return reportDeprecatedGetterError(*exec, \"$interfaceName\", \"$name\");\n");
+ push(@implContent, " return throwGetterTypeError(*exec, \"$interfaceName\", \"$name\");\n");
+ push(@implContent, " }\n");
</ins><span class="cx"> }
</span><span class="cx"> $implIncludes{"ScriptExecutionContext.h"} = 1;
</span><del>- push(@implContent, " if (UNLIKELY(!castedThis)) {\n");
- push(@implContent, " if (jsDynamicCast<${className}Prototype*>(slotBase))\n");
- push(@implContent, " return reportDeprecatedGetterError(*exec, \"$interfaceName\", \"$name\");\n");
- push(@implContent, " return throwGetterTypeError(*exec, \"$interfaceName\", \"$name\");\n");
- push(@implContent, " }\n");
- } else {
- push(@implContent, " UNUSED_PARAM(thisValue);\n");
- push(@implContent, " UNUSED_PARAM(slotBase);\n");
</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->GenerateConditionalString($attribute->signature);
</span><span class="cx"> push(@implContent, "#if ${attributeConditionalString}\n") if $attributeConditionalString;
</span><span class="cx">
</span><del>- push(@implContent, "void ${putFunctionName}(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue");
</del><ins>+ push(@implContent, "void ${putFunctionName}(ExecState* exec, JSObject* baseObject, EncodedJSValue");
</ins><span class="cx"> push(@implContent, " thisValue") if !$attribute->isStatic;
</span><span class="cx"> push(@implContent, ", EncodedJSValue encodedValue)\n");
</span><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " JSValue value = JSValue::decode(encodedValue);\n");
</span><ins>+ push(@implContent, " UNUSED_PARAM(baseObject);\n");
</ins><span class="cx"> if (!$attribute->isStatic) {
</span><span class="cx"> if ($interface->extendedAttributes->{"CustomProxyToJSObject"}) {
</span><span class="cx"> push(@implContent, " ${className}* castedThis = to${className}(JSValue::decode(thisValue));\n");
</span><ins>+ } elsif (AttributeShouldBeOnInstance($interface, $attribute)) {
+ push(@implContent, " UNUSED_PARAM(thisValue);\n");
+ push(@implContent, " ${className}* castedThis = " . GetCastingHelperForBaseObject($interface) . "(baseObject);\n");
+ if (InterfaceRequiresAttributesOnInstanceForCompatibility($interface)) {
+ push(@implContent, " ${className}* castedThisObject = " . GetCastingHelperForThisObject($interface) . "(JSValue::decode(thisValue));\n");
+ push(@implContent, " if (UNLIKELY(!castedThisObject))\n");
+ push(@implContent, " reportDeprecatedSetterError(*exec, \"$interfaceName\", \"$name\");\n");
+ } else {
+ push(@implContent, " UNUSED_PARAM(thisValue);\n");
+ push(@implContent, " UNUSED_PARAM(exec);\n");
+ }
</ins><span class="cx"> } else {
</span><span class="cx"> push(@implContent, " ${className}* castedThis = " . GetCastingHelperForThisObject($interface) . "(JSValue::decode(thisValue));\n");
</span><ins>+ push(@implContent, " if (UNLIKELY(!castedThis)) {\n");
+ push(@implContent, " if (jsDynamicCast<${className}Prototype*>(JSValue::decode(thisValue)))\n");
+ push(@implContent, " reportDeprecatedSetterError(*exec, \"$interfaceName\", \"$name\");\n");
+ push(@implContent, " else\n");
+ push(@implContent, " throwSetterTypeError(*exec, \"$interfaceName\", \"$name\");\n");
+ push(@implContent, " return;\n");
+ push(@implContent, " }\n");
</ins><span class="cx"> }
</span><del>- push(@implContent, " if (UNLIKELY(!castedThis)) {\n");
- push(@implContent, " if (jsDynamicCast<${className}Prototype*>(JSValue::decode(thisValue)))\n");
- push(@implContent, " reportDeprecatedSetterError(*exec, \"$interfaceName\", \"$name\");\n");
- push(@implContent, " else\n");
- push(@implContent, " throwSetterTypeError(*exec, \"$interfaceName\", \"$name\");\n");
- push(@implContent, " return;\n");
- push(@implContent, " }\n");
</del><span class="cx"> }
</span><span class="cx"> if ($interface->extendedAttributes->{"CheckSecurity"} && !$attribute->signature->extendedAttributes->{"DoNotCheckSecurity"}) {
</span><span class="cx"> if ($interfaceName eq "DOMWindow") {
</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<JSTestActiveDOMObject*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestActiveDOMObjectPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestActiveDOMObject", "excitingAttr");
- return throwGetterTypeError(*exec, "TestActiveDOMObject", "excitingAttr");
- }
</del><ins>+ JSTestActiveDOMObject* castedThis = jsCast<JSTestActiveDOMObject*>(slotBase);
</ins><span class="cx"> if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, castedThis->impl()))
</span><span class="cx"> return JSValue::encode(jsUndefined());
</span><span class="cx"> TestActiveDOMObject& impl = castedThis->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<JSTestException*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestExceptionPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestException", "name");
- return throwGetterTypeError(*exec, "TestException", "name");
- }
</del><ins>+ JSTestException* castedThis = jsCast<JSTestException*>(slotBase);
</ins><span class="cx"> TestException& impl = castedThis->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<JSTestInterface*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestInterfacePrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestInterface", "implementsStr3");
- return throwGetterTypeError(*exec, "TestInterface", "implementsStr3");
- }
</del><ins>+ JSTestInterface* castedThis = jsCast<JSTestInterface*>(slotBase);
</ins><span class="cx"> return JSValue::encode(castedThis->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<JSTestInterface*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestInterfacePrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestInterface", "supplementalStr3");
- return throwGetterTypeError(*exec, "TestInterface", "supplementalStr3");
- }
</del><ins>+ JSTestInterface* castedThis = jsCast<JSTestInterface*>(slotBase);
</ins><span class="cx"> return JSValue::encode(castedThis->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& nativeValue(value.isEmpty() ? String() : value.toString(exec)->value(exec));
</span><span class="cx"> if (UNLIKELY(exec->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<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestInterfacePrototype*>(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<JSTestInterface*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestInterfacePrototype*>(JSValue::decode(thisValue)))
- reportDeprecatedSetterError(*exec, "TestInterface", "implementsStr3");
- else
- throwSetterTypeError(*exec, "TestInterface", "implementsStr3");
- return;
- }
</del><ins>+ UNUSED_PARAM(baseObject);
+ UNUSED_PARAM(thisValue);
+ JSTestInterface* castedThis = jsCast<JSTestInterface*>(baseObject);
</ins><span class="cx"> castedThis->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<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestInterfacePrototype*>(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& nativeValue(value.isEmpty() ? String() : value.toString(exec)->value(exec));
</span><span class="cx"> if (UNLIKELY(exec->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<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestInterfacePrototype*>(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<JSTestInterface*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestInterfacePrototype*>(JSValue::decode(thisValue)))
- reportDeprecatedSetterError(*exec, "TestInterface", "supplementalStr3");
- else
- throwSetterTypeError(*exec, "TestInterface", "supplementalStr3");
- return;
- }
</del><ins>+ UNUSED_PARAM(baseObject);
+ UNUSED_PARAM(thisValue);
+ JSTestInterface* castedThis = jsCast<JSTestInterface*>(baseObject);
</ins><span class="cx"> castedThis->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<JSTestInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestInterfacePrototype*>(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->vm(), domObject->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<JSTestNondeterministic*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestNondeterministicPrototype*>(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<JSTestNondeterministic*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestNondeterministicPrototype*>(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<JSTestNondeterministic*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestNondeterministicPrototype*>(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<JSTestNondeterministic*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestNondeterministicPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestObj", "TestSubObj");
- return throwGetterTypeError(*exec, "TestObj", "TestSubObj");
- }
</del><ins>+ JSTestObj* castedThis = jsCast<JSTestObj*>(slotBase);
</ins><span class="cx"> return JSValue::encode(JSTestSubObj::getConstructor(exec->vm(), castedThis->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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestObj", "TestSubObjEnabledBySetting");
- return throwGetterTypeError(*exec, "TestObj", "TestSubObjEnabledBySetting");
- }
</del><ins>+ JSTestObj* castedThis = jsCast<JSTestObj*>(slotBase);
</ins><span class="cx"> if (!castedThis->impl().frame())
</span><span class="cx"> return JSValue::encode(jsUndefined());
</span><span class="cx"> Settings& settings = castedThis->impl().frame()->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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestObj", "customAttr");
- return throwGetterTypeError(*exec, "TestObj", "customAttr");
- }
</del><ins>+ JSTestObj* castedThis = jsCast<JSTestObj*>(slotBase);
</ins><span class="cx"> return JSValue::encode(castedThis->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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestObj", "conditionalAttr4");
- return throwGetterTypeError(*exec, "TestObj", "conditionalAttr4");
- }
</del><ins>+ JSTestObj* castedThis = jsCast<JSTestObj*>(slotBase);
</ins><span class="cx"> return JSValue::encode(JSTestObjectA::getConstructor(exec->vm(), castedThis->globalObject()));
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1673,12 +1653,7 @@
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><span class="cx"> EncodedJSValue jsTestObjConditionalAttr5Constructor(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><del>- JSTestObj* castedThis = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestObj", "conditionalAttr5");
- return throwGetterTypeError(*exec, "TestObj", "conditionalAttr5");
- }
</del><ins>+ JSTestObj* castedThis = jsCast<JSTestObj*>(slotBase);
</ins><span class="cx"> return JSValue::encode(JSTestObjectB::getConstructor(exec->vm(), castedThis->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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestObj", "conditionalAttr6");
- return throwGetterTypeError(*exec, "TestObj", "conditionalAttr6");
- }
</del><ins>+ JSTestObj* castedThis = jsCast<JSTestObj*>(slotBase);
</ins><span class="cx"> return JSValue::encode(JSTestObjectC::getConstructor(exec->vm(), castedThis->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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestObj", "contentDocument");
- return throwGetterTypeError(*exec, "TestObj", "contentDocument");
- }
</del><ins>+ JSTestObj* castedThis = jsCast<JSTestObj*>(slotBase);
</ins><span class="cx"> TestObj& impl = castedThis->impl();
</span><span class="cx"> return JSValue::encode(shouldAllowAccessToNode(exec, impl.contentDocument()) ? toJS(exec, castedThis->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->vm(), domObject->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& nativeValue(value.isEmpty() ? String() : value.toString(exec)->value(exec));
</span><span class="cx"> if (UNLIKELY(exec->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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(JSValue::decode(thisValue)))
- reportDeprecatedSetterError(*exec, "TestObj", "TestSubObjEnabledBySetting");
- else
- throwSetterTypeError(*exec, "TestObj", "TestSubObjEnabledBySetting");
- return;
- }
</del><ins>+ UNUSED_PARAM(baseObject);
+ UNUSED_PARAM(thisValue);
+ JSTestObj* castedThis = jsCast<JSTestObj*>(baseObject);
</ins><span class="cx"> // Shadowing a built-in constructor
</span><span class="cx"> castedThis->putDirect(exec->vm(), Identifier(exec, "TestSubObjEnabledBySetting"), 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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(JSValue::decode(thisValue)))
- reportDeprecatedSetterError(*exec, "TestObj", "customAttr");
- else
- throwSetterTypeError(*exec, "TestObj", "customAttr");
- return;
- }
</del><ins>+ UNUSED_PARAM(baseObject);
+ UNUSED_PARAM(thisValue);
+ JSTestObj* castedThis = jsCast<JSTestObj*>(baseObject);
</ins><span class="cx"> castedThis->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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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) && 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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(JSValue::decode(thisValue)))
- reportDeprecatedSetterError(*exec, "TestObj", "conditionalAttr4");
- else
- throwSetterTypeError(*exec, "TestObj", "conditionalAttr4");
- return;
- }
</del><ins>+ UNUSED_PARAM(baseObject);
+ UNUSED_PARAM(thisValue);
+ JSTestObj* castedThis = jsCast<JSTestObj*>(baseObject);
</ins><span class="cx"> // Shadowing a built-in constructor
</span><span class="cx"> castedThis->putDirect(exec->vm(), Identifier(exec, "conditionalAttr4"), 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) && 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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(JSValue::decode(thisValue)))
- reportDeprecatedSetterError(*exec, "TestObj", "conditionalAttr5");
- else
- throwSetterTypeError(*exec, "TestObj", "conditionalAttr5");
- return;
- }
</del><ins>+ UNUSED_PARAM(baseObject);
+ UNUSED_PARAM(thisValue);
+ JSTestObj* castedThis = jsCast<JSTestObj*>(baseObject);
</ins><span class="cx"> // Shadowing a built-in constructor
</span><span class="cx"> castedThis->putDirect(exec->vm(), Identifier(exec, "conditionalAttr5"), 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<JSTestObj*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestObjPrototype*>(JSValue::decode(thisValue)))
- reportDeprecatedSetterError(*exec, "TestObj", "conditionalAttr6");
- else
- throwSetterTypeError(*exec, "TestObj", "conditionalAttr6");
- return;
- }
</del><ins>+ UNUSED_PARAM(baseObject);
+ UNUSED_PARAM(thisValue);
+ JSTestObj* castedThis = jsCast<JSTestObj*>(baseObject);
</ins><span class="cx"> // Shadowing a built-in constructor
</span><span class="cx"> castedThis->putDirect(exec->vm(), Identifier(exec, "conditionalAttr6"), 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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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<JSTestObj*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestObjPrototype*>(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->vm(), domObject->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<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(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<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(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<JSTestTypedefs*>(JSValue::decode(thisValue));
- if (UNLIKELY(!castedThis)) {
- if (jsDynamicCast<JSTestTypedefsPrototype*>(slotBase))
- return reportDeprecatedGetterError(*exec, "TestTypedefs", "TestSubObj");
- return throwGetterTypeError(*exec, "TestTypedefs", "TestSubObj");
- }
</del><ins>+ JSTestTypedefs* castedThis = jsCast<JSTestTypedefs*>(slotBase);
</ins><span class="cx"> return JSValue::encode(JSTestSubObj::getConstructor(exec->vm(), castedThis->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->vm(), domObject->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<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestTypedefsPrototype*>(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<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestTypedefsPrototype*>(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<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestTypedefsPrototype*>(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<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestTypedefsPrototype*>(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<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestTypedefsPrototype*>(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<JSTestTypedefs*>(JSValue::decode(thisValue));
</span><span class="cx"> if (UNLIKELY(!castedThis)) {
</span><span class="cx"> if (jsDynamicCast<JSTestTypedefsPrototype*>(JSValue::decode(thisValue)))
</span></span></pre>
</div>
</div>
</body>
</html>