<!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>[163413] 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/163413">163413</a></dd>
<dt>Author</dt> <dd>ggaren@apple.com</dd>
<dt>Date</dt> <dd>2014-02-04 15:57:22 -0800 (Tue, 04 Feb 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Rolled out <http://trac.webkit.org/changeset/163280>:
Source/WebCore:
Push DOM attributes into the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=127969
It caused performance regressions, and broken websites on iOS.
Reviewed by Geoffrey Garen.
* bindings/js/JSDOMBinding.h:
(WebCore::getStaticValueSlotEntryWithoutCaching):
* bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::nameGetter):
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::putDelegate):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(InstanceOverridesGetOwnPropertySlot):
(PrototypeOverridesGetOwnPropertySlot):
(GenerateAttributesHashTable):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectConstructor):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructor::getOwnPropertySlot):
(WebCore::jsTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionConstructor):
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachable::getOwnPropertySlot):
(WebCore::jsTestGenerateIsReachableConstructor):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructor):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlot):
(WebCore::JSTestMediaQueryListListener::getOwnPropertySlot):
(WebCore::jsTestMediaQueryListListenerConstructor):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructor::getOwnPropertySlot):
(WebCore::jsTestNamedConstructorConstructor):
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNode::getOwnPropertySlot):
(WebCore::jsTestNodeConstructor):
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
(WebCore::jsTestOverloadedConstructorsConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlot):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
(WebCore::jsTestTypedefsConstructor):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::JSattribute::getOwnPropertySlot):
(WebCore::jsattributeConstructor):
* bindings/scripts/test/JS/JSattribute.h:
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonly::getOwnPropertySlot):
(WebCore::jsreadonlyConstructor):
* bindings/scripts/test/JS/JSreadonly.h:
LayoutTests:
Push DOM attributes into the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=127969
It caused performance regressions, and broken websites on iOS.
Reviewed by Geoffrey Garen.
* fast/dom/Geolocation/enabled-expected.txt:
* fast/dom/Geolocation/script-tests/enabled.js:
* fast/dom/wrapper-classes-expected.txt:
* http/tests/security/cross-frame-access-enumeration-expected.txt:
* js/dom/constructor-attributes-expected.txt:
* js/dom/delete-syntax-expected.txt:
* js/dom/dom-attributes-on-mismatch-type-expected.txt:
* js/dom/dom-attributes-on-mismatch-type.html:
* js/dom/dom-static-property-for-in-iteration-expected.txt:
* js/dom/script-tests/constructor-attributes.js:
* js/dom/script-tests/delete-syntax.js:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomGeolocationenabledexpectedtxt">trunk/LayoutTests/fast/dom/Geolocation/enabled-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomGeolocationscripttestsenabledjs">trunk/LayoutTests/fast/dom/Geolocation/script-tests/enabled.js</a></li>
<li><a href="#trunkLayoutTestsfastdomwrapperclassesexpectedtxt">trunk/LayoutTests/fast/dom/wrapper-classes-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossframeaccessenumerationexpectedtxt">trunk/LayoutTests/http/tests/security/cross-frame-access-enumeration-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomconstructorattributesexpectedtxt">trunk/LayoutTests/js/dom/constructor-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomdeletesyntaxexpectedtxt">trunk/LayoutTests/js/dom/delete-syntax-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="#trunkLayoutTestsjsdomdomstaticpropertyforiniterationexpectedtxt">trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomscripttestsconstructorattributesjs">trunk/LayoutTests/js/dom/script-tests/constructor-attributes.js</a></li>
<li><a href="#trunkLayoutTestsjsdomscripttestsdeletesyntaxjs">trunk/LayoutTests/js/dom/script-tests/delete-syntax.js</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingh">trunk/Source/WebCore/bindings/js/JSDOMBinding.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSStorageCustomcpp">trunk/Source/WebCore/bindings/js/JSStorageCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptionh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachableh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodeh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfaceh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSattributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSattributeh">trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSreadonlyh">trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/ChangeLog 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2014-02-04 Geoffrey Garen <ggaren@apple.com>
+
+ Rolled out <http://trac.webkit.org/changeset/163280>:
+
+ Push DOM attributes into the prototype chain
+ https://bugs.webkit.org/show_bug.cgi?id=127969
+
+ It caused performance regressions, and broken websites on iOS.
+
+ Reviewed by Geoffrey Garen.
+
+ * fast/dom/Geolocation/enabled-expected.txt:
+ * fast/dom/Geolocation/script-tests/enabled.js:
+ * fast/dom/wrapper-classes-expected.txt:
+ * http/tests/security/cross-frame-access-enumeration-expected.txt:
+ * js/dom/constructor-attributes-expected.txt:
+ * js/dom/delete-syntax-expected.txt:
+ * js/dom/dom-attributes-on-mismatch-type-expected.txt:
+ * js/dom/dom-attributes-on-mismatch-type.html:
+ * js/dom/dom-static-property-for-in-iteration-expected.txt:
+ * js/dom/script-tests/constructor-attributes.js:
+ * js/dom/script-tests/delete-syntax.js:
+
</ins><span class="cx"> 2014-02-04 Eric Carlson <eric.carlson@apple.com>
</span><span class="cx">
</span><span class="cx"> Refine MediaSession interruptions
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomGeolocationenabledexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Geolocation/enabled-expected.txt (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Geolocation/enabled-expected.txt 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/fast/dom/Geolocation/enabled-expected.txt 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -6,8 +6,7 @@
</span><span class="cx"> PASS typeof navigator.geolocation == 'object' is true
</span><span class="cx"> PASS hasGeolocationProperty() is true
</span><span class="cx"> PASS 'geolocation' in navigator is true
</span><del>-PASS navigator.hasOwnProperty('geolocation') is false
-PASS navigator.__proto__.hasOwnProperty('geolocation') is true
</del><ins>+PASS navigator.hasOwnProperty('geolocation') is true
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomGeolocationscripttestsenabledjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Geolocation/script-tests/enabled.js (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Geolocation/script-tests/enabled.js 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/fast/dom/Geolocation/script-tests/enabled.js 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -12,7 +12,6 @@
</span><span class="cx"> shouldBeTrue("typeof navigator.geolocation == 'object'");
</span><span class="cx"> shouldBeTrue("hasGeolocationProperty()");
</span><span class="cx"> shouldBeTrue("'geolocation' in navigator");
</span><del>-shouldBeFalse("navigator.hasOwnProperty('geolocation')");
-shouldBeTrue("navigator.__proto__.hasOwnProperty('geolocation')");
</del><ins>+shouldBeTrue("navigator.hasOwnProperty('geolocation')");
</ins><span class="cx">
</span><span class="cx"> window.jsTestIsAsync = false;
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomwrapperclassesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/wrapper-classes-expected.txt (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/wrapper-classes-expected.txt 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/fast/dom/wrapper-classes-expected.txt 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> PASS jsWrapperClass(document.constructor) is 'HTMLDocumentConstructor'
</span><span class="cx"> PASS jsWrapperClass(document.createElement('select').options) is 'HTMLOptionsCollection'
</span><span class="cx"> PASS jsWrapperClass(document.createElement('select').options.__proto__) is 'HTMLOptionsCollectionPrototype'
</span><del>-PASS jsWrapperClass(document.createElement('select').options.constructor) is 'HTMLOptionsCollectionConstructor'
</del><ins>+FAIL jsWrapperClass(document.createElement('select').options.constructor) should be HTMLOptionsCollectionConstructor. Was Function.
</ins><span class="cx">
</span><span class="cx"> HTML Elements
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossframeaccessenumerationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-frame-access-enumeration-expected.txt (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-frame-access-enumeration-expected.txt 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/http/tests/security/cross-frame-access-enumeration-expected.txt 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -9,8 +9,6 @@
</span><span class="cx"> CONSOLE MESSAGE: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
</span><span class="cx"> CONSOLE MESSAGE: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
</span><span class="cx"> CONSOLE MESSAGE: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
</span><del>-CONSOLE MESSAGE: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
-CONSOLE MESSAGE: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
</del><span class="cx"> This tests that variable names can't be enumerated cross domain (see http://bugs.webkit.org/show_bug.cgi?id=16387)
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomconstructorattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/constructor-attributes-expected.txt (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/constructor-attributes-expected.txt 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/js/dom/constructor-attributes-expected.txt 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -75,10 +75,10 @@
</span><span class="cx"> PASS canEnum(URIError.prototype, 'constructor') is false
</span><span class="cx"> PASS x = URIError.prototype; x.constructor = 4; x.constructor is 4
</span><span class="cx"> PASS x = URIError.prototype; delete x.constructor; x.hasOwnProperty('constructor') is false
</span><del>-PASS document.createTextNode('').__proto__.hasOwnProperty('constructor') is true
-PASS canEnum(document.createTextNode('').__proto__, 'constructor') is false
-FAIL x = document.createTextNode('').__proto__; x.constructor = 4; x.constructor should be 4 (of type number). Was [object TextConstructor] (of type object).
-FAIL x = document.createTextNode('').__proto__; delete x.constructor; x.hasOwnProperty('constructor') should be false. Was true.
</del><ins>+PASS document.createTextNode('').hasOwnProperty('constructor') is true
+PASS canEnum(document.createTextNode(''), 'constructor') is false
+FAIL x = document.createTextNode(''); x.constructor = 4; x.constructor should be 4 (of type number). Was [object TextConstructor] (of type object).
+FAIL x = document.createTextNode(''); delete x.constructor; x.hasOwnProperty('constructor') should be false. Was true.
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdeletesyntaxexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/delete-syntax-expected.txt (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/delete-syntax-expected.txt 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/js/dom/delete-syntax-expected.txt 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -30,32 +30,19 @@
</span><span class="cx"> PASS RegExp.prototype.exec is undefined
</span><span class="cx"> PASS RegExp.prototype.test is null
</span><span class="cx"> PASS Object.getOwnPropertyNames(Object.prototype).indexOf('__defineSetter__') is -1
</span><del>-PASS navigatorPropertyNames.indexOf('appName') == -1 is true
-PASS navigatorPropertyNames.indexOf('appVersion') == -1 is true
-PASS navigatorPropertyNames.indexOf('language') == -1 is true
-PASS navigatorPropertyNames.indexOf('userAgent') == -1 is true
-PASS navigatorPropertyNames.indexOf('platform') == -1 is true
-PASS navigatorPropertyNames.indexOf('plugins') == -1 is true
-PASS navigatorPropertyNames.indexOf('mimeTypes') == -1 is true
-PASS navigatorPropertyNames.indexOf('product') == -1 is true
-PASS navigatorPropertyNames.indexOf('productSub') == -1 is true
-PASS navigatorPropertyNames.indexOf('vendor') == -1 is true
-PASS navigatorPropertyNames.indexOf('vendorSub') == -1 is true
-PASS navigatorPropertyNames.indexOf('cookieEnabled') == -1 is true
-PASS navigatorPropertyNames.indexOf('onLine') == -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('appName') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('appVersion') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('language') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('userAgent') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('platform') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('plugins') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('mimeTypes') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('product') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('productSub') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('vendor') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('vendorSub') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('cookieEnabled') != -1 is true
-PASS navigatorPrototypePropertyNames.indexOf('onLine') != -1 is true
</del><ins>+PASS navigatorPropertyNames.indexOf('appName') != -1 is true
+PASS navigatorPropertyNames.indexOf('appVersion') != -1 is true
+PASS navigatorPropertyNames.indexOf('language') != -1 is true
+PASS navigatorPropertyNames.indexOf('userAgent') != -1 is true
+PASS navigatorPropertyNames.indexOf('platform') != -1 is true
+PASS navigatorPropertyNames.indexOf('plugins') != -1 is true
+PASS navigatorPropertyNames.indexOf('mimeTypes') != -1 is true
+PASS navigatorPropertyNames.indexOf('product') != -1 is true
+PASS navigatorPropertyNames.indexOf('productSub') != -1 is true
+PASS navigatorPropertyNames.indexOf('vendor') != -1 is true
+PASS navigatorPropertyNames.indexOf('vendorSub') != -1 is true
+PASS navigatorPropertyNames.indexOf('cookieEnabled') != -1 is true
+PASS navigatorPropertyNames.indexOf('onLine') != -1 is true
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdomattributesonmismatchtypeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type-expected.txt (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type-expected.txt 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type-expected.txt 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -6,7 +6,7 @@
</span><span class="cx"> PASS objectWithDocumentAsPrototype.all threw exception TypeError: Type error.
</span><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><del>-PASS testDiv.href threw exception TypeError: Type error.
</del><ins>+PASS testDiv.href is undefined.
</ins><span class="cx"> PASS testDiv instanceof HTMLAnchorElement is true
</span><span class="cx"> PASS testDiv.href threw exception TypeError: Type error.
</span><span class="cx"> PASS successfullyParsed is true
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdomattributesonmismatchtypehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type.html (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type.html 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/js/dom/dom-attributes-on-mismatch-type.html 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -16,7 +16,8 @@
</span><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><del>- shouldThrow("testDiv.href")
</del><ins>+ /* This will change to an exception once attributes are on the prototype chain */
+ shouldBeUndefined("testDiv.href")
</ins><span class="cx"> testDiv.__proto__ = testAnchor;
</span><span class="cx"> shouldBeTrue("testDiv instanceof HTMLAnchorElement")
</span><span class="cx"> shouldThrow("testDiv.href")
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdomstaticpropertyforiniterationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -3,18 +3,13 @@
</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 a["foo"] is 1
-PASS a["bar"] is 2
-PASS a["wibble"] is 3
-PASS a["hick"] is 4
-PASS a["hock"] is 5
-PASS a["snood"] is 6
</del><span class="cx"> PASS a["origin"] is file://
</span><span class="cx"> PASS a["hash"] is
</span><span class="cx"> PASS a["search"] is
</span><span class="cx"> PASS a["text"] is nerget
</span><span class="cx"> PASS a["hostname"] is
</span><span class="cx"> PASS a["rel"] is
</span><ins>+PASS a["name"] is
</ins><span class="cx"> PASS a["hreflang"] is
</span><span class="cx"> PASS a["ping"] is
</span><span class="cx"> PASS a["rev"] is
</span><span class="lines">@@ -23,7 +18,6 @@
</span><span class="cx"> PASS a["target"] is
</span><span class="cx"> PASS a["type"] is
</span><span class="cx"> PASS a["coords"] is
</span><del>-PASS a["name"] is
</del><span class="cx"> PASS a["shape"] is
</span><span class="cx"> PASS a["port"] is
</span><span class="cx"> PASS a["protocol"] is file:
</span><span class="lines">@@ -51,7 +45,6 @@
</span><span class="cx"> PASS a["scrollWidth"] is 0
</span><span class="cx"> PASS a["attributes"] is [object NamedNodeMap]
</span><span class="cx"> PASS a["webkitRegionOverset"] is undefined
</span><del>-PASS a["ALLOW_KEYBOARD_INPUT"] is 1
</del><span class="cx"> PASS a["offsetWidth"] is 39
</span><span class="cx"> PASS a["classList"] is
</span><span class="cx"> PASS a["offsetLeft"] is 8
</span><span class="lines">@@ -69,41 +62,48 @@
</span><span class="cx"> PASS a["clientLeft"] is 0
</span><span class="cx"> PASS a["offsetHeight"] is 18
</span><span class="cx"> PASS a["clientHeight"] is 0
</span><del>-PASS a["offsetTop"] is 1074
</del><ins>+PASS a["offsetTop"] is 969
</ins><span class="cx"> PASS a["scrollTop"] is 0
</span><span class="cx"> PASS a["scrollHeight"] is 0
</span><span class="cx"> PASS a["previousSibling"] is [object Text]
</span><ins>+PASS a["parentNode"] is [object HTMLBodyElement]
+PASS a["lastChild"] is [object Text]
+PASS a["firstChild"] is [object Text]
+PASS a["nodeValue"] is null
+PASS a["textContent"] is nerget
+PASS a["nodeType"] is 1
+PASS a["nodeName"] is A
+PASS a["prefix"] is null
+PASS a["childNodes"] is [object NodeList]
+PASS a["nextSibling"] is [object Text]
+PASS a["ownerDocument"] is [object HTMLDocument]
+PASS a["namespaceURI"] is http://www.w3.org/1999/xhtml
+PASS a["localName"] is a
+PASS a["parentElement"] is [object HTMLBodyElement]
+PASS a["foo"] is 1
+PASS a["bar"] is 2
+PASS a["wibble"] is 3
+PASS a["hick"] is 4
+PASS a["hock"] is 5
+PASS a["snood"] is 6
+PASS a["ALLOW_KEYBOARD_INPUT"] is 1
</ins><span class="cx"> PASS a["NOTATION_NODE"] is 12
</span><span class="cx"> PASS a["CDATA_SECTION_NODE"] is 4
</span><del>-PASS a["lastChild"] is [object Text]
</del><span class="cx"> PASS a["ELEMENT_NODE"] is 1
</span><del>-PASS a["nodeValue"] is null
</del><span class="cx"> PASS a["DOCUMENT_POSITION_DISCONNECTED"] is 1
</span><span class="cx"> PASS a["ENTITY_NODE"] is 6
</span><span class="cx"> PASS a["TEXT_NODE"] is 3
</span><span class="cx"> PASS a["ENTITY_REFERENCE_NODE"] is 5
</span><del>-PASS a["textContent"] is nerget
-PASS a["nodeType"] is 1
</del><span class="cx"> PASS a["DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC"] is 32
</span><del>-PASS a["ownerDocument"] is [object HTMLDocument]
</del><ins>+PASS a["DOCUMENT_FRAGMENT_NODE"] is 11
</ins><span class="cx"> PASS a["PROCESSING_INSTRUCTION_NODE"] is 7
</span><del>-PASS a["localName"] is a
-PASS a["parentNode"] is [object HTMLBodyElement]
-PASS a["firstChild"] is [object Text]
</del><span class="cx"> PASS a["DOCUMENT_POSITION_PRECEDING"] is 2
</span><span class="cx"> PASS a["DOCUMENT_TYPE_NODE"] is 10
</span><span class="cx"> PASS a["COMMENT_NODE"] is 8
</span><del>-PASS a["nodeName"] is A
</del><span class="cx"> PASS a["DOCUMENT_POSITION_FOLLOWING"] is 4
</span><del>-PASS a["prefix"] is null
-PASS a["childNodes"] is [object NodeList]
-PASS a["nextSibling"] is [object Text]
</del><span class="cx"> PASS a["ATTRIBUTE_NODE"] is 2
</span><span class="cx"> PASS a["DOCUMENT_POSITION_CONTAINED_BY"] is 16
</span><del>-PASS a["namespaceURI"] is http://www.w3.org/1999/xhtml
-PASS a["parentElement"] is [object HTMLBodyElement]
</del><span class="cx"> PASS a["DOCUMENT_NODE"] is 9
</span><del>-PASS a["DOCUMENT_FRAGMENT_NODE"] is 11
</del><span class="cx"> PASS a["DOCUMENT_POSITION_CONTAINS"] is 8
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomscripttestsconstructorattributesjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/script-tests/constructor-attributes.js (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/script-tests/constructor-attributes.js 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/js/dom/script-tests/constructor-attributes.js 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -39,4 +39,4 @@
</span><span class="cx"> checkConstructor("TypeError.prototype");
</span><span class="cx"> checkConstructor("URIError.prototype");
</span><span class="cx">
</span><del>-checkConstructor("document.createTextNode('').__proto__");
</del><ins>+checkConstructor("document.createTextNode('')");
</ins></span></pre></div>
<a id="trunkLayoutTestsjsdomscripttestsdeletesyntaxjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/script-tests/delete-syntax.js (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/script-tests/delete-syntax.js 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/LayoutTests/js/dom/script-tests/delete-syntax.js 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -91,7 +91,4 @@
</span><span class="cx"> ];
</span><span class="cx">
</span><span class="cx"> for (var i = 0; i < expectedPropertyNames.length; ++i)
</span><del>- shouldBeTrue("navigatorPropertyNames.indexOf('" + expectedPropertyNames[i] +"') == -1");
-var navigatorPrototypePropertyNames = Object.getOwnPropertyNames(navigator.__proto__);
-for (var i = 0; i < expectedPropertyNames.length; ++i)
- shouldBeTrue("navigatorPrototypePropertyNames.indexOf('" + expectedPropertyNames[i] +"') != -1");
</del><ins>+ shouldBeTrue("navigatorPropertyNames.indexOf('" + expectedPropertyNames[i] +"') != -1");
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/ChangeLog 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -1,3 +1,79 @@
</span><ins>+2014-02-04 Geoffrey Garen <ggaren@apple.com>
+
+ Rolled out <http://trac.webkit.org/changeset/163280>:
+
+ Push DOM attributes into the prototype chain
+ https://bugs.webkit.org/show_bug.cgi?id=127969
+
+ It caused performance regressions, and broken websites on iOS.
+
+ Reviewed by Geoffrey Garen.
+
+ * bindings/js/JSDOMBinding.h:
+ (WebCore::getStaticValueSlotEntryWithoutCaching):
+ * bindings/js/JSStorageCustom.cpp:
+ (WebCore::JSStorage::nameGetter):
+ (WebCore::JSStorage::deleteProperty):
+ (WebCore::JSStorage::putDelegate):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateGetOwnPropertySlotBody):
+ (InstanceOverridesGetOwnPropertySlot):
+ (PrototypeOverridesGetOwnPropertySlot):
+ (GenerateAttributesHashTable):
+ (GenerateImplementation):
+ * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+ (WebCore::jsTestActiveDOMObjectConstructor):
+ * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+ (WebCore::jsTestCustomNamedGetterConstructor):
+ * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+ (WebCore::JSTestEventConstructor::getOwnPropertySlot):
+ (WebCore::jsTestEventConstructorConstructor):
+ * bindings/scripts/test/JS/JSTestEventConstructor.h:
+ * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+ (WebCore::jsTestEventTargetConstructor):
+ * bindings/scripts/test/JS/JSTestException.cpp:
+ (WebCore::jsTestExceptionConstructor):
+ * bindings/scripts/test/JS/JSTestException.h:
+ * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+ (WebCore::JSTestGenerateIsReachable::getOwnPropertySlot):
+ (WebCore::jsTestGenerateIsReachableConstructor):
+ * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
+ * bindings/scripts/test/JS/JSTestInterface.cpp:
+ (WebCore::jsTestInterfaceConstructor):
+ * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+ (WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlot):
+ (WebCore::JSTestMediaQueryListListener::getOwnPropertySlot):
+ (WebCore::jsTestMediaQueryListListenerConstructor):
+ * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+ (WebCore::JSTestNamedConstructor::getOwnPropertySlot):
+ (WebCore::jsTestNamedConstructorConstructor):
+ * bindings/scripts/test/JS/JSTestNamedConstructor.h:
+ * bindings/scripts/test/JS/JSTestNode.cpp:
+ (WebCore::JSTestNode::getOwnPropertySlot):
+ (WebCore::jsTestNodeConstructor):
+ * bindings/scripts/test/JS/JSTestNode.h:
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjConstructor):
+ * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+ (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
+ (WebCore::jsTestOverloadedConstructorsConstructor):
+ * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
+ * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+ (WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlot):
+ (WebCore::jsTestSerializedScriptValueInterfaceConstructor):
+ * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
+ * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+ (WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
+ (WebCore::jsTestTypedefsConstructor):
+ * bindings/scripts/test/JS/JSattribute.cpp:
+ (WebCore::JSattribute::getOwnPropertySlot):
+ (WebCore::jsattributeConstructor):
+ * bindings/scripts/test/JS/JSattribute.h:
+ * bindings/scripts/test/JS/JSreadonly.cpp:
+ (WebCore::JSreadonly::getOwnPropertySlot):
+ (WebCore::jsreadonlyConstructor):
+ * bindings/scripts/test/JS/JSreadonly.h:
+
</ins><span class="cx"> 2014-02-04 Alexey Proskuryakov <ap@apple.com>
</span><span class="cx">
</span><span class="cx"> WebCrypto HMAC verification uses a non-constant-time memcmp
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -614,10 +614,7 @@
</span><span class="cx"> template <class ThisImp>
</span><span class="cx"> inline const JSC::HashEntry* getStaticValueSlotEntryWithoutCaching(JSC::ExecState* exec, JSC::PropertyName propertyName)
</span><span class="cx"> {
</span><del>- const JSC::HashTable* table = ThisImp::info()->propHashTable(exec);
- if (!table)
- return getStaticValueSlotEntryWithoutCaching<typename ThisImp::Base>(exec, propertyName);
- const JSC::HashEntry* entry = table->entry(exec, propertyName);
</del><ins>+ const JSC::HashEntry* entry = ThisImp::info()->propHashTable(exec)->entry(exec, propertyName);
</ins><span class="cx"> if (!entry) // not found, forward to parent
</span><span class="cx"> return getStaticValueSlotEntryWithoutCaching<typename ThisImp::Base>(exec, propertyName);
</span><span class="cx"> return entry;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSStorageCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSStorageCustom.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSStorageCustom.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/js/JSStorageCustom.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -44,14 +44,14 @@
</span><span class="cx">
</span><span class="cx"> EncodedJSValue JSStorage::nameGetter(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue, PropertyName propertyName)
</span><span class="cx"> {
</span><del>- JSStorage* thisObject = jsCast<JSStorage*>(JSValue::decode(slotBase));
- JSValue prototype = thisObject->prototype();
- PropertySlot slot(thisObject);
- if (prototype.isObject() && asObject(prototype)->getPropertySlot(exec, propertyName, slot))
- return JSValue::encode(slot.getValue(exec, propertyName));
-
</del><ins>+ JSStorage* thisObj = jsCast<JSStorage*>(JSValue::decode(slotBase));
+
+ JSValue prototype = asObject(JSValue::decode(slotBase))->prototype();
+ if (prototype.isObject() && asObject(prototype)->hasProperty(exec, propertyName))
+ return JSValue::encode(asObject(prototype)->get(exec, propertyName));
+
</ins><span class="cx"> ExceptionCode ec = 0;
</span><del>- JSValue result = jsStringOrNull(exec, thisObject->impl().getItem(propertyNameToString(propertyName), ec));
</del><ins>+ JSValue result = jsStringOrNull(exec, thisObj->impl().getItem(propertyNameToString(propertyName), ec));
</ins><span class="cx"> setDOMException(exec, ec);
</span><span class="cx"> return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> JSValue prototype = thisObject->prototype();
</span><del>- if (prototype.isObject() && asObject(prototype)->getPropertySlot(exec, propertyName, slot))
</del><ins>+ if (prototype.isObject() && asObject(prototype)->hasProperty(exec, propertyName))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> ExceptionCode ec = 0;
</span><span class="lines">@@ -107,11 +107,11 @@
</span><span class="cx"> PropertySlot slot(this);
</span><span class="cx"> if (getStaticValueSlot<JSStorage, Base>(exec, *s_info.propHashTable(exec), this, propertyName, slot))
</span><span class="cx"> return false;
</span><del>-
</del><ins>+
</ins><span class="cx"> JSValue prototype = this->prototype();
</span><del>- if (prototype.isObject() && asObject(prototype)->getPropertySlot(exec, propertyName, slot))
</del><ins>+ if (prototype.isObject() && asObject(prototype)->hasProperty(exec, propertyName))
</ins><span class="cx"> return false;
</span><del>-
</del><ins>+
</ins><span class="cx"> String stringValue = value.toString(exec)->value(exec);
</span><span class="cx"> if (exec->hadException())
</span><span class="cx"> return true;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -413,7 +413,7 @@
</span><span class="cx"> }
</span><span class="cx"> };
</span><span class="cx">
</span><del>- if (!$interface->extendedAttributes->{"CustomNamedGetter"} and InstanceAttributeCount($interface) > 0) {
</del><ins>+ if (!$interface->extendedAttributes->{"CustomNamedGetter"}) {
</ins><span class="cx"> &$manualLookupGetterGeneration();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -586,88 +586,6 @@
</span><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-sub HasComplexGetOwnProperty
-{
- my $interface = shift;
-
- my $namedGetterFunction = GetNamedGetterFunction($interface);
- my $indexedGetterFunction = GetIndexedGetterFunction($interface);
- my $hasNumericIndexedGetter = $indexedGetterFunction ? $codeGenerator->IsNumericType($indexedGetterFunction->signature->type) : 0;
-
- my $hasImpureNamedGetter = $namedGetterFunction
- || $interface->extendedAttributes->{"CustomNamedGetter"}
- || $interface->extendedAttributes->{"CustomGetOwnPropertySlot"};
-
- my $hasComplexGetter = $indexedGetterFunction
- || $interface->extendedAttributes->{"JSCustomGetOwnPropertySlotAndDescriptor"}
- || $hasImpureNamedGetter;
-
- return 1 if $interface->extendedAttributes->{"CheckSecurity"};
- return 1 if IsDOMGlobalObject($interface);
- return 1 if $hasComplexGetter;
- return 0;
-}
-
-sub ConstructorShouldBeOnInstance
-{
- my $interface = shift;
- my $interfaceName = $interface->name;
- return HasComplexGetOwnProperty($interface);
-}
-
-sub AttributeShouldBeOnInstance
-{
- my $interface = shift;
- my $attribute = shift;
-
- my $interfaceName = $interface->name;
- my $namedGetterFunction = GetNamedGetterFunction($interface);
- my $indexedGetterFunction = GetIndexedGetterFunction($interface);
- my $hasNumericIndexedGetter = $indexedGetterFunction ? $codeGenerator->IsNumericType($indexedGetterFunction->signature->type) : 0;
-
- # FIXME: All these return 1 if ... should ideally be removed.
- # Some of them are unavoidable due to DOM weirdness, in which case we should
- # add an IDL attribute for them
-
- # FIXME: We should rearrange how custom named getters and getOwnPropertySlot
- # overrides are handled so that we get the correct semantics and lookup ordering
- my $hasImpureNamedGetter = $namedGetterFunction
- || $interface->extendedAttributes->{"CustomNamedGetter"}
- || $interface->extendedAttributes->{"CustomGetOwnPropertySlot"};
- return 1 if $hasImpureNamedGetter;
-
-
- return 1 if IsDOMGlobalObject($interface);
- return 1 if $attribute->signature->type =~ /Constructor$/;
- return 1 if HasCustomGetter($attribute->signature->extendedAttributes);
- return 1 if HasCustomSetter($attribute->signature->extendedAttributes);
-
-
- # FIXME: These two should be fixed by removing the custom override of message, etc
- return 1 if $interfaceName =~ "Exception";
- return 1 if $interfaceName =~ "Error";
-
- # FIXME: Length is a tricky attribute to handle correctly as it is frequently tied to
- # objects which also have magic named attributes that can end up being named "length"
- # and so interfere with lookup ordering. I'm not sure what the correct solution is
- # here.
- return 1 if ($attribute->signature->name eq "length");
-
- # It becomes hard to reason about attributes that require security checks if we push
- # them down the prototype chain, so before we do these we'll need to carefully consider
- # the possible pitfalls.
- return 1 if $attribute->signature->extendedAttributes->{"CheckSecurityForNode"};
-
- if ($interface->extendedAttributes->{"CheckSecurity"}) {
- if ($attribute->signature->extendedAttributes->{"DoNotCheckSecurity"} or
- $attribute->signature->extendedAttributes->{"DoNotCheckSecurityOnGetter"}) {
- return 0;
- }
- return 1;
- }
- return 0;
-}
-
</del><span class="cx"> sub GetIndexedGetterFunction
</span><span class="cx"> {
</span><span class="cx"> my $interface = shift;
</span><span class="lines">@@ -680,32 +598,10 @@
</span><span class="cx"> return GetSpecialAccessorFunctionForType($interface, "getter", "DOMString", 1);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-sub InstanceAttributeCount
-{
- my $interface = shift;
- my $count = 0;
- foreach my $attribute (@{$interface->attributes}) {
- $count = $count + AttributeShouldBeOnInstance($interface, $attribute);
- }
- $count = $count + 1 if ConstructorShouldBeOnInstance($interface);
- return $count;
-}
-
-sub PrototypeAttributeCount
-{
- my $interface = shift;
- my $count = 0;
- foreach my $attribute (@{$interface->attributes}) {
- $count = $count + 1 if !AttributeShouldBeOnInstance($interface, $attribute);
- }
- $count = $count + 1 if !ConstructorShouldBeOnInstance($interface);
- return $count;
-}
-
</del><span class="cx"> sub InstanceOverridesGetOwnPropertySlot
</span><span class="cx"> {
</span><span class="cx"> my $interface = shift;
</span><del>- my $numInstanceAttributes = InstanceAttributeCount($interface);
</del><ins>+ my $numAttributes = @{$interface->attributes};
</ins><span class="cx">
</span><span class="cx"> my $namedGetterFunction = GetNamedGetterFunction($interface);
</span><span class="cx"> my $indexedGetterFunction = GetIndexedGetterFunction($interface);
</span><span class="lines">@@ -719,17 +615,16 @@
</span><span class="cx"> || $interface->extendedAttributes->{"JSCustomGetOwnPropertySlotAndDescriptor"}
</span><span class="cx"> || $hasImpureNamedGetter;
</span><span class="cx">
</span><del>- return $numInstanceAttributes > 0 || !$interface->extendedAttributes->{"NoInterfaceObject"} || $hasComplexGetter;
</del><ins>+ return $numAttributes > 0 || !$interface->extendedAttributes->{"NoInterfaceObject"} || $hasComplexGetter;
</ins><span class="cx">
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> sub PrototypeOverridesGetOwnPropertySlot
</span><span class="cx"> {
</span><span class="cx"> my $interface = shift;
</span><del>- my $numPrototypeAttributes = PrototypeAttributeCount($interface);
</del><span class="cx"> my $numConstants = @{$interface->constants};
</span><span class="cx"> my $numFunctions = @{$interface->functions};
</span><del>- return $numFunctions > 0 || $numConstants > 0 || $numPrototypeAttributes > 0;
</del><ins>+ return $numFunctions > 0 || $numConstants > 0;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> sub InstanceOverridesPutImplementation
</span><span class="lines">@@ -1281,44 +1176,20 @@
</span><span class="cx">
</span><span class="cx"> sub GenerateAttributesHashTable
</span><span class="cx"> {
</span><del>- my ($object, $interface, $isInstance, $hashKeys, $hashSpecials, $hashValue1, $hashValue2, $conditionals, $entries) = @_;
</del><ins>+ my ($object, $interface, $hashKeys, $hashSpecials, $hashValue1, $hashValue2, $conditionals, $entries) = @_;
</ins><span class="cx">
</span><span class="cx"> # FIXME: These should be functions on $interface.
</span><span class="cx"> my $interfaceName = $interface->name;
</span><span class="cx"> my $className = "JS$interfaceName";
</span><span class="cx">
</span><span class="cx"> # - Add all attributes in a hashtable definition
</span><del>- my $numAttributes = 0;
- if ($isInstance) {
- $numAttributes = InstanceAttributeCount($interface);
- } else {
- $numAttributes = PrototypeAttributeCount($interface);
- }
</del><ins>+ my $numAttributes = @{$interface->attributes};
+ $numAttributes++ if !$interface->extendedAttributes->{"NoInterfaceObject"};
</ins><span class="cx">
</span><ins>+ return 0 if !$numAttributes;
</ins><span class="cx">
</span><del>- if (ConstructorShouldBeOnInstance($interface) == $isInstance) {
-
- if (!$interface->extendedAttributes->{"NoInterfaceObject"}) {
- die if !$numAttributes;
- push(@$hashKeys, "constructor");
- my $getter = "js" . $interfaceName . "Constructor";
- push(@$hashValue1, $getter);
- if ($interface->extendedAttributes->{"ReplaceableConstructor"}) {
- my $setter = "setJS" . $interfaceName . "Constructor";
- push(@$hashValue2, $setter);
- push(@$hashSpecials, "DontEnum | DontDelete");
- } else {
- push(@$hashValue2, "0");
- push(@$hashSpecials, "DontEnum | ReadOnly");
- }
- }
- }
-
- return 0 if !$numAttributes;
-
</del><span class="cx"> foreach my $attribute (@{$interface->attributes}) {
</span><span class="cx"> next if ($attribute->isStatic);
</span><del>- next if AttributeShouldBeOnInstance($interface, $attribute) != $isInstance;
</del><span class="cx"> my $name = $attribute->signature->name;
</span><span class="cx"> push(@$hashKeys, $name);
</span><span class="cx">
</span><span class="lines">@@ -1349,6 +1220,19 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ if (!$interface->extendedAttributes->{"NoInterfaceObject"}) {
+ push(@$hashKeys, "constructor");
+ my $getter = "js" . $interfaceName . "Constructor";
+ push(@$hashValue1, $getter);
+ if ($interface->extendedAttributes->{"ReplaceableConstructor"}) {
+ my $setter = "setJS" . $interfaceName . "Constructor";
+ push(@$hashValue2, $setter);
+ push(@$hashSpecials, "DontEnum | DontDelete");
+ } else {
+ push(@$hashValue2, "0");
+ push(@$hashSpecials, "DontEnum | ReadOnly");
+ }
+ }
</ins><span class="cx"> return $numAttributes;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1693,17 +1577,17 @@
</span><span class="cx"> my %conditionals = ();
</span><span class="cx"> my $hashName = $className . "Table";
</span><span class="cx">
</span><del>- my $numInstanceAttributes = GenerateAttributesHashTable($object, $interface, 1,
</del><ins>+ my $numAttributes = GenerateAttributesHashTable($object, $interface,
</ins><span class="cx"> \@hashKeys, \@hashSpecials,
</span><span class="cx"> \@hashValue1, \@hashValue2,
</span><span class="cx"> \%conditionals);
</span><span class="cx">
</span><span class="cx"> my $numConstants = @{$interface->constants};
</span><span class="cx"> my $numFunctions = @{$interface->functions};
</span><del>- $object->GenerateHashTable($hashName, $numInstanceAttributes,
</del><ins>+ $object->GenerateHashTable($hashName, $numAttributes,
</ins><span class="cx"> \@hashKeys, \@hashSpecials,
</span><span class="cx"> \@hashValue1, \@hashValue2,
</span><del>- \%conditionals) if $numInstanceAttributes > 0;
</del><ins>+ \%conditionals) if $numAttributes > 0;
</ins><span class="cx">
</span><span class="cx"> # - Add all constants
</span><span class="cx"> if (!$interface->extendedAttributes->{"NoInterfaceObject"}) {
</span><span class="lines">@@ -1803,7 +1687,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> # - Add functions and constants to a hashtable definition
</span><del>-
</del><ins>+ my $hashSize = $numFunctions + $numConstants;
</ins><span class="cx"> $hashName = $className . "PrototypeTable";
</span><span class="cx">
</span><span class="cx"> @hashKeys = ();
</span><span class="lines">@@ -1812,13 +1696,6 @@
</span><span class="cx"> @hashSpecials = ();
</span><span class="cx"> %conditionals = ();
</span><span class="cx">
</span><del>-
- my $numPrototypeAttributes = GenerateAttributesHashTable($object, $interface, 0,
- \@hashKeys, \@hashSpecials,
- \@hashValue1, \@hashValue2,
- \%conditionals);
- my $hashSize = $numFunctions + $numConstants + $numPrototypeAttributes;
-
</del><span class="cx"> # FIXME: we should not need a function for every constant.
</span><span class="cx"> foreach my $constant (@{$interface->constants}) {
</span><span class="cx"> my $name = $constant->name;
</span><span class="lines">@@ -1886,12 +1763,11 @@
</span><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " ${className}Prototype* thisObject = jsCast<${className}Prototype*>(object);\n");
</span><span class="cx">
</span><del>- my $numPrototypeAttributes = PrototypeAttributeCount($interface);
- if ($numConstants eq 0 && $numFunctions eq 0 && $numPrototypeAttributes eq 0) {
</del><ins>+ if ($numConstants eq 0 && $numFunctions eq 0) {
</ins><span class="cx"> push(@implContent, " return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);\n");
</span><del>- } elsif ($numConstants eq 0 && $numPrototypeAttributes eq 0) {
</del><ins>+ } elsif ($numConstants eq 0) {
</ins><span class="cx"> push(@implContent, " return getStaticFunctionSlot<JSObject>(exec, " . prototypeHashTableAccessor($interface->extendedAttributes->{"JSNoStaticTables"}, $className) . ", thisObject, propertyName, slot);\n");
</span><del>- } elsif ($numFunctions eq 0 && $numPrototypeAttributes eq 0) {
</del><ins>+ } elsif ($numFunctions eq 0) {
</ins><span class="cx"> push(@implContent, " return getStaticValueSlot<${className}Prototype, JSObject>(exec, " . prototypeHashTableAccessor($interface->extendedAttributes->{"JSNoStaticTables"}, $className) . ", thisObject, propertyName, slot);\n");
</span><span class="cx"> } else {
</span><span class="cx"> push(@implContent, " return getStaticPropertySlot<${className}Prototype, JSObject>(exec, " . prototypeHashTableAccessor($interface->extendedAttributes->{"JSNoStaticTables"}, $className) . ", thisObject, propertyName, slot);\n");
</span><span class="lines">@@ -1910,7 +1786,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> # - Initialize static ClassInfo object
</span><del>- if ($numInstanceAttributes > 0 && $interface->extendedAttributes->{"JSNoStaticTables"}) {
</del><ins>+ if ($numAttributes > 0 && $interface->extendedAttributes->{"JSNoStaticTables"}) {
</ins><span class="cx"> push(@implContent, "static const HashTable& get${className}Table(VM& vm)\n");
</span><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " return getHashTableForGlobalData(vm, ${className}Table);\n");
</span><span class="lines">@@ -1919,12 +1795,12 @@
</span><span class="cx">
</span><span class="cx"> push(@implContent, "const ClassInfo $className" . "::s_info = { \"${visibleInterfaceName}\", &Base::s_info, ");
</span><span class="cx">
</span><del>- if ($numInstanceAttributes > 0 && !$interface->extendedAttributes->{"JSNoStaticTables"}) {
</del><ins>+ if ($numAttributes > 0 && !$interface->extendedAttributes->{"JSNoStaticTables"}) {
</ins><span class="cx"> push(@implContent, "&${className}Table");
</span><span class="cx"> } else {
</span><span class="cx"> push(@implContent, "0");
</span><span class="cx"> }
</span><del>- if ($numInstanceAttributes > 0 && $interface->extendedAttributes->{"JSNoStaticTables"}) {
</del><ins>+ if ($numAttributes > 0 && $interface->extendedAttributes->{"JSNoStaticTables"}) {
</ins><span class="cx"> push(@implContent, ", get${className}Table ");
</span><span class="cx"> } else {
</span><span class="cx"> push(@implContent, ", 0 ");
</span><span class="lines">@@ -2012,7 +1888,7 @@
</span><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " ${className}* thisObject = jsCast<${className}*>(object);\n");
</span><span class="cx"> push(@implContent, " ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n");
</span><del>- push(@implContent, GenerateGetOwnPropertySlotBody($interface, $interfaceName, $className, $numInstanceAttributes > 0, 0));
</del><ins>+ push(@implContent, GenerateGetOwnPropertySlotBody($interface, $interfaceName, $className, $numAttributes > 0, 0));
</ins><span class="cx"> push(@implContent, "}\n\n");
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -2076,8 +1952,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span><del>- my $numAttributes = @{$interface->attributes};
- $numAttributes = $numAttributes + 1 if !$interface->extendedAttributes->{"NoInterfaceObject"};
</del><span class="cx"> if ($numAttributes > 0) {
</span><span class="cx"> foreach my $attribute (@{$interface->attributes}) {
</span><span class="cx"> my $name = $attribute->signature->name;
</span><span class="lines">@@ -2273,10 +2147,8 @@
</span><span class="cx"> if (!$interface->extendedAttributes->{"NoInterfaceObject"}) {
</span><span class="cx"> my $constructorFunctionName = "js" . $interfaceName . "Constructor";
</span><span class="cx">
</span><del>- push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)\n");
</del><ins>+ push(@implContent, "EncodedJSValue ${constructorFunctionName}(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)\n");
</ins><span class="cx"> push(@implContent, "{\n");
</span><del>- push(@implContent, " UNUSED_PARAM(baseValue);\n");
- push(@implContent, " UNUSED_PARAM(thisValue);\n");
</del><span class="cx"> if ($interfaceName eq "DOMWindow") {
</span><span class="cx"> push(@implContent, " ${className}* domObject = jsDynamicCast<$className*>(JSValue::decode(thisValue));\n");
</span><span class="cx"> push(@implContent, " if (!domObject) {\n");
</span><span class="lines">@@ -2284,14 +2156,12 @@
</span><span class="cx"> push(@implContent, " domObject = shell->window();\n");
</span><span class="cx"> push(@implContent, " }\n");
</span><span class="cx"> } else {
</span><del>- push(@implContent, " ${className}* domObject = jsDynamicCast<${className}*>(JSValue::decode(thisValue));\n") if ConstructorShouldBeOnInstance($interface);
- push(@implContent, " ${className}Prototype* domObject = jsDynamicCast<${className}Prototype*>(JSValue::decode(baseValue));\n") if !ConstructorShouldBeOnInstance($interface);
</del><ins>+ push(@implContent, " ${className}* domObject = jsDynamicCast<$className*>(JSValue::decode(thisValue));\n");
</ins><span class="cx"> }
</span><span class="cx"> push(@implContent, " if (!domObject)\n");
</span><span class="cx"> push(@implContent, " return throwVMTypeError(exec);\n");
</span><span class="cx">
</span><span class="cx"> if ($interface->extendedAttributes->{"CheckSecurity"}) {
</span><del>- die if !ConstructorShouldBeOnInstance($interface);
</del><span class="cx"> push(@implContent, " if (!BindingSecurity::shouldAllowAccessToDOMWindow(exec, domObject->impl()))\n");
</span><span class="cx"> push(@implContent, " return JSValue::encode(jsUndefined());\n");
</span><span class="cx"> }
</span><span class="lines">@@ -2894,8 +2764,6 @@
</span><span class="cx"> $rootString .= " return false;\n";
</span><span class="cx"> $rootString .= " void* root = WebCore::root(element);\n";
</span><span class="cx"> } elsif ($interfaceName eq "CanvasRenderingContext") {
</span><del>- $implIncludes{"Element.h"} = 1;
- $implIncludes{"JSNodeCustom.h"} = 1;
</del><span class="cx"> $rootString = " void* root = WebCore::root(js${interfaceName}->impl().canvas());\n";
</span><span class="cx"> } elsif (GetGenerateIsReachable($interface) eq "ImplOwnerNodeRoot") {
</span><span class="cx"> $implIncludes{"Element.h"} = 1;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestActiveDOMObjectTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestActiveDOMObjectConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { "excitingAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestActiveDOMObjectExcitingAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><ins>+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestActiveDOMObjectConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><span class="lines">@@ -145,10 +145,8 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestActiveDOMObjectConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestActiveDOMObjectConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
</del><span class="cx"> JSTestActiveDOMObject* domObject = jsDynamicCast<JSTestActiveDOMObject*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -144,10 +144,8 @@
</span><span class="cx"> return Base::getOwnPropertySlotByIndex(thisObject, exec, index, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestCustomNamedGetterConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestCustomNamedGetterConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
</del><span class="cx"> JSTestCustomNamedGetter* domObject = jsDynamicCast<JSTestCustomNamedGetter*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -34,6 +34,17 @@
</span><span class="cx">
</span><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><ins>+static const HashTableValue JSTestEventConstructorTableValues[] =
+{
+ { "attr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorAttr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "attr2", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorAttr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSTestEventConstructorTable = { 9, 7, true, JSTestEventConstructorTableValues, 0 };
+/* Hash table for constructor */
+
</ins><span class="cx"> static const HashTableValue JSTestEventConstructorConstructorTableValues[] =
</span><span class="cx"> {
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="lines">@@ -108,13 +119,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestEventConstructorPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "attr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorAttr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "attr2", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestEventConstructorAttr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestEventConstructorPrototypeTable = { 9, 7, true, JSTestEventConstructorPrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestEventConstructorPrototypeTable = { 1, 0, false, JSTestEventConstructorPrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestEventConstructorPrototype::s_info = { "TestEventConstructorPrototype", &Base::s_info, &JSTestEventConstructorPrototypeTable, 0, CREATE_METHOD_TABLE(JSTestEventConstructorPrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestEventConstructorPrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -122,14 +130,8 @@
</span><span class="cx"> return getDOMPrototype<JSTestEventConstructor>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestEventConstructorPrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSTestEventConstructorPrototype* thisObject = jsCast<JSTestEventConstructorPrototype*>(object);
- return getStaticPropertySlot<JSTestEventConstructorPrototype, JSObject>(exec, JSTestEventConstructorPrototypeTable, thisObject, propertyName, slot);
-}
</del><ins>+const ClassInfo JSTestEventConstructor::s_info = { "TestEventConstructor", &Base::s_info, &JSTestEventConstructorTable, 0 , CREATE_METHOD_TABLE(JSTestEventConstructor) };
</ins><span class="cx">
</span><del>-const ClassInfo JSTestEventConstructor::s_info = { "TestEventConstructor", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSTestEventConstructor) };
-
</del><span class="cx"> JSTestEventConstructor::JSTestEventConstructor(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestEventConstructor> impl)
</span><span class="cx"> : JSDOMWrapper(structure, globalObject)
</span><span class="cx"> , m_impl(impl.leakRef())
</span><span class="lines">@@ -162,7 +164,7 @@
</span><span class="cx"> {
</span><span class="cx"> JSTestEventConstructor* thisObject = jsCast<JSTestEventConstructor*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSTestEventConstructor, Base>(exec, JSTestEventConstructorTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> EncodedJSValue jsTestEventConstructorAttr1(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="lines">@@ -191,11 +193,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestEventConstructorConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestEventConstructorConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestEventConstructorPrototype* domObject = jsDynamicCast<JSTestEventConstructorPrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestEventConstructor* domObject = jsDynamicCast<JSTestEventConstructor*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestEventConstructor::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -104,7 +104,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -113,7 +112,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSTestEventConstructorPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestEventConstructorConstructor : public DOMConstructorObject {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -169,10 +169,8 @@
</span><span class="cx"> return Base::getOwnPropertySlotByIndex(thisObject, exec, index, slot);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestEventTargetConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestEventTargetConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
</del><span class="cx"> JSTestEventTarget* domObject = jsDynamicCast<JSTestEventTarget*>(JSValue::decode(thisValue));
</span><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -35,10 +35,11 @@
</span><span class="cx"> static const HashTableValue JSTestExceptionTableValues[] =
</span><span class="cx"> {
</span><span class="cx"> { "name", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestExceptionName), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><ins>+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestExceptionConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestExceptionTable = { 2, 1, true, JSTestExceptionTableValues, 0 };
</del><ins>+static const HashTable JSTestExceptionTable = { 5, 3, true, JSTestExceptionTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestExceptionConstructorTableValues[] =
</span><span class="lines">@@ -71,11 +72,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestExceptionPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestExceptionConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestExceptionPrototypeTable = { 2, 1, true, JSTestExceptionPrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestExceptionPrototypeTable = { 1, 0, false, JSTestExceptionPrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestExceptionPrototype::s_info = { "TestExceptionPrototype", &Base::s_info, &JSTestExceptionPrototypeTable, 0, CREATE_METHOD_TABLE(JSTestExceptionPrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestExceptionPrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -83,12 +83,6 @@
</span><span class="cx"> return getDOMPrototype<JSTestException>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestExceptionPrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSTestExceptionPrototype* thisObject = jsCast<JSTestExceptionPrototype*>(object);
- return getStaticPropertySlot<JSTestExceptionPrototype, JSObject>(exec, JSTestExceptionPrototypeTable, thisObject, propertyName, slot);
-}
-
</del><span class="cx"> const ClassInfo JSTestException::s_info = { "TestException", &Base::s_info, &JSTestExceptionTable, 0 , CREATE_METHOD_TABLE(JSTestException) };
</span><span class="cx">
</span><span class="cx"> JSTestException::JSTestException(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestException> impl)
</span><span class="lines">@@ -139,11 +133,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestExceptionConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestExceptionConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestExceptionPrototype* domObject = jsDynamicCast<JSTestExceptionPrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestException* domObject = jsDynamicCast<JSTestException*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestException::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -102,7 +102,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -111,7 +110,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSTestExceptionPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestExceptionConstructor : public DOMConstructorObject {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -28,6 +28,15 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><ins>+/* Hash table */
+
+static const HashTableValue JSTestGenerateIsReachableTableValues[] =
+{
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestGenerateIsReachableConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSTestGenerateIsReachableTable = { 2, 1, true, JSTestGenerateIsReachableTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestGenerateIsReachableConstructorTableValues[] =
</span><span class="lines">@@ -60,11 +69,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestGenerateIsReachablePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestGenerateIsReachableConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestGenerateIsReachablePrototypeTable = { 2, 1, true, JSTestGenerateIsReachablePrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestGenerateIsReachablePrototypeTable = { 1, 0, false, JSTestGenerateIsReachablePrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestGenerateIsReachablePrototype::s_info = { "TestGenerateIsReachablePrototype", &Base::s_info, &JSTestGenerateIsReachablePrototypeTable, 0, CREATE_METHOD_TABLE(JSTestGenerateIsReachablePrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestGenerateIsReachablePrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -72,14 +80,8 @@
</span><span class="cx"> return getDOMPrototype<JSTestGenerateIsReachable>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestGenerateIsReachablePrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSTestGenerateIsReachablePrototype* thisObject = jsCast<JSTestGenerateIsReachablePrototype*>(object);
- return getStaticPropertySlot<JSTestGenerateIsReachablePrototype, JSObject>(exec, JSTestGenerateIsReachablePrototypeTable, thisObject, propertyName, slot);
-}
</del><ins>+const ClassInfo JSTestGenerateIsReachable::s_info = { "TestGenerateIsReachable", &Base::s_info, &JSTestGenerateIsReachableTable, 0 , CREATE_METHOD_TABLE(JSTestGenerateIsReachable) };
</ins><span class="cx">
</span><del>-const ClassInfo JSTestGenerateIsReachable::s_info = { "TestGenerateIsReachable", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSTestGenerateIsReachable) };
-
</del><span class="cx"> JSTestGenerateIsReachable::JSTestGenerateIsReachable(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestGenerateIsReachable> impl)
</span><span class="cx"> : JSDOMWrapper(structure, globalObject)
</span><span class="cx"> , m_impl(impl.leakRef())
</span><span class="lines">@@ -112,14 +114,12 @@
</span><span class="cx"> {
</span><span class="cx"> JSTestGenerateIsReachable* thisObject = jsCast<JSTestGenerateIsReachable*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSTestGenerateIsReachable, Base>(exec, JSTestGenerateIsReachableTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestGenerateIsReachableConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestGenerateIsReachableConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestGenerateIsReachablePrototype* domObject = jsDynamicCast<JSTestGenerateIsReachablePrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestGenerateIsReachable* domObject = jsDynamicCast<JSTestGenerateIsReachable*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestGenerateIsReachable::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -102,7 +102,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -111,7 +110,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSTestGenerateIsReachablePrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestGenerateIsReachableConstructor : public DOMConstructorObject {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -52,15 +52,34 @@
</span><span class="cx"> static const HashTableValue JSTestInterfaceTableValues[] =
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><ins>+ { "implementsStr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+#endif
+#if ENABLE(Condition22) || ENABLE(Condition23)
+ { "implementsStr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsStr2) },
+#endif
+#if ENABLE(Condition22) || ENABLE(Condition23)
</ins><span class="cx"> { "implementsStr3", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsStr3) },
</span><span class="cx"> #endif
</span><ins>+#if ENABLE(Condition22) || ENABLE(Condition23)
+ { "implementsNode", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsNode) },
+#endif
</ins><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12)
</span><ins>+ { "supplementalStr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+#endif
+#if ENABLE(Condition11) || ENABLE(Condition12)
+ { "supplementalStr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalStr2) },
+#endif
+#if ENABLE(Condition11) || ENABLE(Condition12)
</ins><span class="cx"> { "supplementalStr3", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalStr3) },
</span><span class="cx"> #endif
</span><ins>+#if ENABLE(Condition11) || ENABLE(Condition12)
+ { "supplementalNode", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalNode) },
+#endif
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestInterfaceTable = { 4, 3, true, JSTestInterfaceTableValues, 0 };
</del><ins>+static const HashTable JSTestInterfaceTable = { 33, 31, true, JSTestInterfaceTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestInterfaceConstructorTableValues[] =
</span><span class="lines">@@ -168,26 +187,7 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestInterfacePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><del>- { "implementsStr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
-#endif
-#if ENABLE(Condition22) || ENABLE(Condition23)
- { "implementsStr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsStr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsStr2) },
-#endif
-#if ENABLE(Condition22) || ENABLE(Condition23)
- { "implementsNode", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceImplementsNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceImplementsNode) },
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
- { "supplementalStr1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
- { "supplementalStr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalStr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalStr2) },
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
- { "supplementalNode", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceSupplementalNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceSupplementalNode) },
-#endif
-#if ENABLE(Condition22) || ENABLE(Condition23)
</del><span class="cx"> { "IMPLEMENTSCONSTANT1", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceIMPLEMENTSCONSTANT1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestInterfacePrototypeTable = { 65, 63, true, JSTestInterfacePrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestInterfacePrototypeTable = { 34, 31, true, JSTestInterfacePrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestInterfacePrototype::s_info = { "TestInterfacePrototype", &Base::s_info, &JSTestInterfacePrototypeTable, 0, CREATE_METHOD_TABLE(JSTestInterfacePrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestInterfacePrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -433,11 +433,9 @@
</span><span class="cx">
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-EncodedJSValue jsTestInterfaceConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestInterfaceConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestInterfacePrototype* domObject = jsDynamicCast<JSTestInterfacePrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestInterface* domObject = jsDynamicCast<JSTestInterface*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestInterface::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -32,6 +32,15 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><ins>+/* Hash table */
+
+static const HashTableValue JSTestMediaQueryListListenerTableValues[] =
+{
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestMediaQueryListListenerConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSTestMediaQueryListListenerTable = { 2, 1, true, JSTestMediaQueryListListenerTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestMediaQueryListListenerConstructorTableValues[] =
</span><span class="lines">@@ -64,12 +73,11 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestMediaQueryListListenerPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestMediaQueryListListenerConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { "method", JSC::Function, NoIntrinsic, (intptr_t)static_cast<NativeFunction>(jsTestMediaQueryListListenerPrototypeFunctionMethod), (intptr_t) (1) },
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestMediaQueryListListenerPrototypeTable = { 4, 3, true, JSTestMediaQueryListListenerPrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestMediaQueryListListenerPrototypeTable = { 2, 1, false, JSTestMediaQueryListListenerPrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestMediaQueryListListenerPrototype::s_info = { "TestMediaQueryListListenerPrototype", &Base::s_info, &JSTestMediaQueryListListenerPrototypeTable, 0, CREATE_METHOD_TABLE(JSTestMediaQueryListListenerPrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestMediaQueryListListenerPrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -80,10 +88,10 @@
</span><span class="cx"> bool JSTestMediaQueryListListenerPrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
</span><span class="cx"> {
</span><span class="cx"> JSTestMediaQueryListListenerPrototype* thisObject = jsCast<JSTestMediaQueryListListenerPrototype*>(object);
</span><del>- return getStaticPropertySlot<JSTestMediaQueryListListenerPrototype, JSObject>(exec, JSTestMediaQueryListListenerPrototypeTable, thisObject, propertyName, slot);
</del><ins>+ return getStaticFunctionSlot<JSObject>(exec, JSTestMediaQueryListListenerPrototypeTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-const ClassInfo JSTestMediaQueryListListener::s_info = { "TestMediaQueryListListener", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSTestMediaQueryListListener) };
</del><ins>+const ClassInfo JSTestMediaQueryListListener::s_info = { "TestMediaQueryListListener", &Base::s_info, &JSTestMediaQueryListListenerTable, 0 , CREATE_METHOD_TABLE(JSTestMediaQueryListListener) };
</ins><span class="cx">
</span><span class="cx"> JSTestMediaQueryListListener::JSTestMediaQueryListListener(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestMediaQueryListListener> impl)
</span><span class="cx"> : JSDOMWrapper(structure, globalObject)
</span><span class="lines">@@ -117,14 +125,12 @@
</span><span class="cx"> {
</span><span class="cx"> JSTestMediaQueryListListener* thisObject = jsCast<JSTestMediaQueryListListener*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSTestMediaQueryListListener, Base>(exec, JSTestMediaQueryListListenerTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestMediaQueryListListenerConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestMediaQueryListListenerConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestMediaQueryListListenerPrototype* domObject = jsDynamicCast<JSTestMediaQueryListListenerPrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestMediaQueryListListener* domObject = jsDynamicCast<JSTestMediaQueryListListener*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestMediaQueryListListener::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -33,6 +33,15 @@
</span><span class="cx">
</span><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><ins>+static const HashTableValue JSTestNamedConstructorTableValues[] =
+{
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestNamedConstructorConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSTestNamedConstructorTable = { 2, 1, true, JSTestNamedConstructorTableValues, 0 };
+/* Hash table for constructor */
+
</ins><span class="cx"> static const HashTableValue JSTestNamedConstructorConstructorTableValues[] =
</span><span class="cx"> {
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="lines">@@ -107,11 +116,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestNamedConstructorPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestNamedConstructorConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestNamedConstructorPrototypeTable = { 2, 1, true, JSTestNamedConstructorPrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestNamedConstructorPrototypeTable = { 1, 0, false, JSTestNamedConstructorPrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestNamedConstructorPrototype::s_info = { "TestNamedConstructorPrototype", &Base::s_info, &JSTestNamedConstructorPrototypeTable, 0, CREATE_METHOD_TABLE(JSTestNamedConstructorPrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestNamedConstructorPrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -119,14 +127,8 @@
</span><span class="cx"> return getDOMPrototype<JSTestNamedConstructor>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestNamedConstructorPrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSTestNamedConstructorPrototype* thisObject = jsCast<JSTestNamedConstructorPrototype*>(object);
- return getStaticPropertySlot<JSTestNamedConstructorPrototype, JSObject>(exec, JSTestNamedConstructorPrototypeTable, thisObject, propertyName, slot);
-}
</del><ins>+const ClassInfo JSTestNamedConstructor::s_info = { "TestNamedConstructor", &Base::s_info, &JSTestNamedConstructorTable, 0 , CREATE_METHOD_TABLE(JSTestNamedConstructor) };
</ins><span class="cx">
</span><del>-const ClassInfo JSTestNamedConstructor::s_info = { "TestNamedConstructor", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSTestNamedConstructor) };
-
</del><span class="cx"> JSTestNamedConstructor::JSTestNamedConstructor(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestNamedConstructor> impl)
</span><span class="cx"> : JSDOMWrapper(structure, globalObject)
</span><span class="cx"> , m_impl(impl.leakRef())
</span><span class="lines">@@ -159,14 +161,12 @@
</span><span class="cx"> {
</span><span class="cx"> JSTestNamedConstructor* thisObject = jsCast<JSTestNamedConstructor*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSTestNamedConstructor, Base>(exec, JSTestNamedConstructorTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNamedConstructorConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNamedConstructorConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestNamedConstructorPrototype* domObject = jsDynamicCast<JSTestNamedConstructorPrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestNamedConstructor* domObject = jsDynamicCast<JSTestNamedConstructor*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestNamedConstructor::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -104,7 +104,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -113,7 +112,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSTestNamedConstructorPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestNamedConstructorConstructor : public DOMConstructorObject {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -31,6 +31,15 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><ins>+/* Hash table */
+
+static const HashTableValue JSTestNodeTableValues[] =
+{
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestNodeConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSTestNodeTable = { 2, 1, true, JSTestNodeTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestNodeConstructorTableValues[] =
</span><span class="lines">@@ -76,11 +85,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestNodePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestNodeConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestNodePrototypeTable = { 2, 1, true, JSTestNodePrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestNodePrototypeTable = { 1, 0, false, JSTestNodePrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestNodePrototype::s_info = { "TestNodePrototype", &Base::s_info, &JSTestNodePrototypeTable, 0, CREATE_METHOD_TABLE(JSTestNodePrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestNodePrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -88,14 +96,8 @@
</span><span class="cx"> return getDOMPrototype<JSTestNode>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestNodePrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSTestNodePrototype* thisObject = jsCast<JSTestNodePrototype*>(object);
- return getStaticPropertySlot<JSTestNodePrototype, JSObject>(exec, JSTestNodePrototypeTable, thisObject, propertyName, slot);
-}
</del><ins>+const ClassInfo JSTestNode::s_info = { "TestNode", &Base::s_info, &JSTestNodeTable, 0 , CREATE_METHOD_TABLE(JSTestNode) };
</ins><span class="cx">
</span><del>-const ClassInfo JSTestNode::s_info = { "TestNode", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSTestNode) };
-
</del><span class="cx"> JSTestNode::JSTestNode(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestNode> impl)
</span><span class="cx"> : JSNode(structure, globalObject, impl)
</span><span class="cx"> {
</span><span class="lines">@@ -116,14 +118,12 @@
</span><span class="cx"> {
</span><span class="cx"> JSTestNode* thisObject = jsCast<JSTestNode*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSTestNode, Base>(exec, JSTestNodeTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestNodeConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestNodeConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestNodePrototype* domObject = jsDynamicCast<JSTestNodePrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestNode* domObject = jsDynamicCast<JSTestNode*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestNode::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -73,7 +73,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -82,7 +81,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSTestNodePrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::OverridesVisitChildren | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = JSC::OverridesVisitChildren | Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestNodeConstructor : public DOMConstructorObject {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -77,9 +77,55 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestObjTableValues[] =
</span><span class="cx"> {
</span><ins>+ { "readOnlyLongAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "readOnlyStringAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "readOnlyTestObjAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyTestObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { "TestSubObjEnabledBySetting", DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTestSubObjEnabledBySettingConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTestSubObjEnabledBySettingConstructor) },
</span><ins>+ { "enumAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjEnumAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjEnumAttr) },
+ { "byteAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjByteAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjByteAttr) },
+ { "octetAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjOctetAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjOctetAttr) },
+ { "shortAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjShortAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjShortAttr) },
+ { "unsignedShortAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedShortAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjUnsignedShortAttr) },
+ { "longAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjLongAttr) },
+ { "longLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjLongLongAttr) },
+ { "unsignedLongLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjUnsignedLongLongAttr) },
+ { "stringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttr) },
+ { "testObjAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTestObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTestObjAttr) },
+ { "XMLObjAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjXMLObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjXMLObjAttr) },
+ { "create", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCreate), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjCreate) },
+ { "reflectedStringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) },
+ { "reflectedIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedIntegralAttr) },
+ { "reflectedUnsignedIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedUnsignedIntegralAttr) },
+ { "reflectedBooleanAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedBooleanAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedBooleanAttr) },
+ { "reflectedURLAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedURLAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedURLAttr) },
+ { "reflectedStringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) },
+ { "reflectedCustomIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomIntegralAttr) },
+ { "reflectedCustomBooleanAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomBooleanAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomBooleanAttr) },
+ { "reflectedCustomURLAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomURLAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomURLAttr) },
+ { "typedArrayAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTypedArrayAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTypedArrayAttr) },
+ { "attrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttrWithGetterException) },
+ { "attrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttrWithSetterException) },
+ { "stringAttrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrWithGetterException) },
+ { "stringAttrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrWithSetterException) },
</ins><span class="cx"> { "customAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCustomAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjCustomAttr) },
</span><ins>+ { "withScriptStateAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptStateAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptStateAttribute) },
+ { "withScriptExecutionContextAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAttribute) },
+ { "withScriptStateAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptStateAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptStateAttributeRaises) },
+ { "withScriptExecutionContextAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAttributeRaises) },
+ { "withScriptExecutionContextAndScriptStateAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateAttribute) },
+ { "withScriptExecutionContextAndScriptStateAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises) },
+ { "withScriptExecutionContextAndScriptStateWithSpacesAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute) },
+ { "withScriptArgumentsAndCallStackAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptArgumentsAndCallStackAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptArgumentsAndCallStackAttribute) },
</ins><span class="cx"> #if ENABLE(Condition1)
</span><ins>+ { "conditionalAttr1", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr1) },
+#endif
+#if ENABLE(Condition1) && ENABLE(Condition2)
+ { "conditionalAttr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr2) },
+#endif
+#if ENABLE(Condition1) || ENABLE(Condition2)
+ { "conditionalAttr3", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr3) },
+#endif
+#if ENABLE(Condition1)
</ins><span class="cx"> { "conditionalAttr4", DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr4Constructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr4Constructor) },
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(Condition1) && ENABLE(Condition2)
</span><span class="lines">@@ -88,11 +134,31 @@
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><span class="cx"> { "conditionalAttr6", DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr6Constructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr6Constructor) },
</span><span class="cx"> #endif
</span><ins>+ { "cachedAttribute1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCachedAttribute1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "cachedAttribute2", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCachedAttribute2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "anyAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAnyAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAnyAttribute) },
</ins><span class="cx"> { "contentDocument", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjContentDocument), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><ins>+ { "mutablePoint", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjMutablePoint), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjMutablePoint) },
+ { "immutablePoint", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjImmutablePoint), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjImmutablePoint) },
+ { "strawberry", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStrawberry), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStrawberry) },
+ { "strictFloat", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStrictFloat), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStrictFloat) },
+ { "description", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjDescription), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "id", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjId), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjId) },
+ { "hash", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjHash), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "replaceableAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReplaceableAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReplaceableAttribute) },
+ { "nullableDoubleAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableDoubleAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "nullableLongAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableLongAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "nullableBooleanAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableBooleanAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "nullableStringAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableStringAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "nullableLongSettableAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableLongSettableAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjNullableLongSettableAttribute) },
+ { "nullableStringValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableStringValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjNullableStringValue) },
+ { "attribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "attributeWithReservedEnumType", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttributeWithReservedEnumType), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttributeWithReservedEnumType) },
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestObjTable = { 17, 15, true, JSTestObjTableValues, 0 };
</del><ins>+static const HashTable JSTestObjTable = { 266, 255, true, JSTestObjTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestObjConstructorTableValues[] =
</span><span class="lines">@@ -188,73 +254,7 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestObjPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "readOnlyLongAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "readOnlyStringAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "readOnlyTestObjAttr", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyTestObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "enumAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjEnumAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjEnumAttr) },
- { "byteAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjByteAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjByteAttr) },
- { "octetAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjOctetAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjOctetAttr) },
- { "shortAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjShortAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjShortAttr) },
- { "unsignedShortAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedShortAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjUnsignedShortAttr) },
- { "longAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjLongAttr) },
- { "longLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjLongLongAttr) },
- { "unsignedLongLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjUnsignedLongLongAttr) },
- { "stringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttr) },
- { "testObjAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTestObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTestObjAttr) },
- { "XMLObjAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjXMLObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjXMLObjAttr) },
- { "create", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCreate), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjCreate) },
- { "reflectedStringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) },
- { "reflectedIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedIntegralAttr) },
- { "reflectedUnsignedIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedUnsignedIntegralAttr) },
- { "reflectedBooleanAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedBooleanAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedBooleanAttr) },
- { "reflectedURLAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedURLAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedURLAttr) },
- { "reflectedStringAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) },
- { "reflectedCustomIntegralAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomIntegralAttr) },
- { "reflectedCustomBooleanAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomBooleanAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomBooleanAttr) },
- { "reflectedCustomURLAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomURLAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedCustomURLAttr) },
- { "typedArrayAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTypedArrayAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjTypedArrayAttr) },
- { "attrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttrWithGetterException) },
- { "attrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttrWithSetterException) },
- { "stringAttrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrWithGetterException) },
- { "stringAttrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrWithSetterException) },
- { "withScriptStateAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptStateAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptStateAttribute) },
- { "withScriptExecutionContextAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAttribute) },
- { "withScriptStateAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptStateAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptStateAttributeRaises) },
- { "withScriptExecutionContextAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAttributeRaises) },
- { "withScriptExecutionContextAndScriptStateAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateAttribute) },
- { "withScriptExecutionContextAndScriptStateAttributeRaises", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises) },
- { "withScriptExecutionContextAndScriptStateWithSpacesAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute) },
- { "withScriptArgumentsAndCallStackAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjWithScriptArgumentsAndCallStackAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjWithScriptArgumentsAndCallStackAttribute) },
</del><span class="cx"> #if ENABLE(Condition1)
</span><del>- { "conditionalAttr1", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr1) },
-#endif
-#if ENABLE(Condition1) && ENABLE(Condition2)
- { "conditionalAttr2", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr2) },
-#endif
-#if ENABLE(Condition1) || ENABLE(Condition2)
- { "conditionalAttr3", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr3), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionalAttr3) },
-#endif
- { "cachedAttribute1", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCachedAttribute1), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "cachedAttribute2", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCachedAttribute2), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "anyAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAnyAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAnyAttribute) },
- { "mutablePoint", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjMutablePoint), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjMutablePoint) },
- { "immutablePoint", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjImmutablePoint), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjImmutablePoint) },
- { "strawberry", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStrawberry), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStrawberry) },
- { "strictFloat", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStrictFloat), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStrictFloat) },
- { "description", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjDescription), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "id", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjId), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjId) },
- { "hash", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjHash), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "replaceableAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReplaceableAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReplaceableAttribute) },
- { "nullableDoubleAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableDoubleAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "nullableLongAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableLongAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "nullableBooleanAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableBooleanAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "nullableStringAttribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableStringAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "nullableLongSettableAttribute", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableLongSettableAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjNullableLongSettableAttribute) },
- { "nullableStringValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjNullableStringValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjNullableStringValue) },
- { "attribute", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "attributeWithReservedEnumType", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttributeWithReservedEnumType), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjAttributeWithReservedEnumType) },
-#if ENABLE(Condition1)
</del><span class="cx"> { "CONDITIONAL_CONST", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONDITIONAL_CONST), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="cx"> #endif
</span><span class="cx"> { "CONST_VALUE_0", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_0), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</span><span class="lines">@@ -341,7 +341,7 @@
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestObjPrototypeTable = { 530, 511, true, JSTestObjPrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestObjPrototypeTable = { 267, 255, true, JSTestObjPrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestObjPrototype::s_info = { "TestObjectPrototype", &Base::s_info, &JSTestObjPrototypeTable, 0, CREATE_METHOD_TABLE(JSTestObjPrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestObjPrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -1307,11 +1307,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestObjConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestObjConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestObjPrototype* domObject = jsDynamicCast<JSTestObjPrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestObj* domObject = jsDynamicCast<JSTestObj*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestObj::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -34,6 +34,15 @@
</span><span class="cx">
</span><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><ins>+static const HashTableValue JSTestOverloadedConstructorsTableValues[] =
+{
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestOverloadedConstructorsConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSTestOverloadedConstructorsTable = { 2, 1, true, JSTestOverloadedConstructorsTableValues, 0 };
+/* Hash table for constructor */
+
</ins><span class="cx"> static const HashTableValue JSTestOverloadedConstructorsConstructorTableValues[] =
</span><span class="cx"> {
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="lines">@@ -135,11 +144,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestOverloadedConstructorsPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestOverloadedConstructorsConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestOverloadedConstructorsPrototypeTable = { 2, 1, true, JSTestOverloadedConstructorsPrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestOverloadedConstructorsPrototypeTable = { 1, 0, false, JSTestOverloadedConstructorsPrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestOverloadedConstructorsPrototype::s_info = { "TestOverloadedConstructorsPrototype", &Base::s_info, &JSTestOverloadedConstructorsPrototypeTable, 0, CREATE_METHOD_TABLE(JSTestOverloadedConstructorsPrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestOverloadedConstructorsPrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -147,14 +155,8 @@
</span><span class="cx"> return getDOMPrototype<JSTestOverloadedConstructors>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestOverloadedConstructorsPrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSTestOverloadedConstructorsPrototype* thisObject = jsCast<JSTestOverloadedConstructorsPrototype*>(object);
- return getStaticPropertySlot<JSTestOverloadedConstructorsPrototype, JSObject>(exec, JSTestOverloadedConstructorsPrototypeTable, thisObject, propertyName, slot);
-}
</del><ins>+const ClassInfo JSTestOverloadedConstructors::s_info = { "TestOverloadedConstructors", &Base::s_info, &JSTestOverloadedConstructorsTable, 0 , CREATE_METHOD_TABLE(JSTestOverloadedConstructors) };
</ins><span class="cx">
</span><del>-const ClassInfo JSTestOverloadedConstructors::s_info = { "TestOverloadedConstructors", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSTestOverloadedConstructors) };
-
</del><span class="cx"> JSTestOverloadedConstructors::JSTestOverloadedConstructors(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestOverloadedConstructors> impl)
</span><span class="cx"> : JSDOMWrapper(structure, globalObject)
</span><span class="cx"> , m_impl(impl.leakRef())
</span><span class="lines">@@ -187,14 +189,12 @@
</span><span class="cx"> {
</span><span class="cx"> JSTestOverloadedConstructors* thisObject = jsCast<JSTestOverloadedConstructors*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSTestOverloadedConstructors, Base>(exec, JSTestOverloadedConstructorsTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsTestOverloadedConstructorsConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestOverloadedConstructorsConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestOverloadedConstructorsPrototype* domObject = jsDynamicCast<JSTestOverloadedConstructorsPrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestOverloadedConstructors* domObject = jsDynamicCast<JSTestOverloadedConstructors*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestOverloadedConstructors::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -102,7 +102,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -111,7 +110,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSTestOverloadedConstructorsPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestOverloadedConstructorsConstructor : public DOMConstructorObject {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -35,6 +35,20 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><ins>+/* Hash table */
+
+static const HashTableValue JSTestSerializedScriptValueInterfaceTableValues[] =
+{
+ { "value", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestSerializedScriptValueInterfaceValue) },
+ { "readonlyValue", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceReadonlyValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "cachedValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceCachedValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestSerializedScriptValueInterfaceCachedValue) },
+ { "ports", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfacePorts), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "cachedReadonlyValue", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceCachedReadonlyValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSTestSerializedScriptValueInterfaceTable = { 17, 15, true, JSTestSerializedScriptValueInterfaceTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestSerializedScriptValueInterfaceConstructorTableValues[] =
</span><span class="lines">@@ -67,16 +81,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestSerializedScriptValueInterfacePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "value", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestSerializedScriptValueInterfaceValue) },
- { "readonlyValue", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceReadonlyValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "cachedValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceCachedValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestSerializedScriptValueInterfaceCachedValue) },
- { "ports", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfacePorts), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "cachedReadonlyValue", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestSerializedScriptValueInterfaceCachedReadonlyValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestSerializedScriptValueInterfacePrototypeTable = { 17, 15, true, JSTestSerializedScriptValueInterfacePrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestSerializedScriptValueInterfacePrototypeTable = { 1, 0, false, JSTestSerializedScriptValueInterfacePrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestSerializedScriptValueInterfacePrototype::s_info = { "TestSerializedScriptValueInterfacePrototype", &Base::s_info, &JSTestSerializedScriptValueInterfacePrototypeTable, 0, CREATE_METHOD_TABLE(JSTestSerializedScriptValueInterfacePrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestSerializedScriptValueInterfacePrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -84,14 +92,8 @@
</span><span class="cx"> return getDOMPrototype<JSTestSerializedScriptValueInterface>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSTestSerializedScriptValueInterfacePrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSTestSerializedScriptValueInterfacePrototype* thisObject = jsCast<JSTestSerializedScriptValueInterfacePrototype*>(object);
- return getStaticPropertySlot<JSTestSerializedScriptValueInterfacePrototype, JSObject>(exec, JSTestSerializedScriptValueInterfacePrototypeTable, thisObject, propertyName, slot);
-}
</del><ins>+const ClassInfo JSTestSerializedScriptValueInterface::s_info = { "TestSerializedScriptValueInterface", &Base::s_info, &JSTestSerializedScriptValueInterfaceTable, 0 , CREATE_METHOD_TABLE(JSTestSerializedScriptValueInterface) };
</ins><span class="cx">
</span><del>-const ClassInfo JSTestSerializedScriptValueInterface::s_info = { "TestSerializedScriptValueInterface", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSTestSerializedScriptValueInterface) };
-
</del><span class="cx"> JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestSerializedScriptValueInterface> impl)
</span><span class="cx"> : JSDOMWrapper(structure, globalObject)
</span><span class="cx"> , m_impl(impl.leakRef())
</span><span class="lines">@@ -124,7 +126,7 @@
</span><span class="cx"> {
</span><span class="cx"> JSTestSerializedScriptValueInterface* thisObject = jsCast<JSTestSerializedScriptValueInterface*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSTestSerializedScriptValueInterface, Base>(exec, JSTestSerializedScriptValueInterfaceTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> EncodedJSValue jsTestSerializedScriptValueInterfaceValue(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="lines">@@ -198,11 +200,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestSerializedScriptValueInterfaceConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestSerializedScriptValueInterfacePrototype* domObject = jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestSerializedScriptValueInterface* domObject = jsDynamicCast<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestSerializedScriptValueInterface::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -108,7 +108,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -117,7 +116,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSTestSerializedScriptValueInterfacePrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::OverridesVisitChildren | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = JSC::OverridesVisitChildren | Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestSerializedScriptValueInterfaceConstructor : public DOMConstructorObject {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -47,10 +47,17 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestTypedefsTableValues[] =
</span><span class="cx"> {
</span><ins>+ { "unsignedLongLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsUnsignedLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsUnsignedLongLongAttr) },
+ { "immutableSerializedScriptValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsImmutableSerializedScriptValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsImmutableSerializedScriptValue) },
+ { "attrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsAttrWithGetterException) },
+ { "attrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsAttrWithSetterException) },
+ { "stringAttrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsStringAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsStringAttrWithGetterException) },
+ { "stringAttrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsStringAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsStringAttrWithSetterException) },
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</ins><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestTypedefsTable = { 2, 1, false, JSTestTypedefsTableValues, 0 };
</del><ins>+static const HashTable JSTestTypedefsTable = { 18, 15, true, JSTestTypedefsTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestTypedefsConstructorTableValues[] =
</span><span class="lines">@@ -105,13 +112,6 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSTestTypedefsPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "unsignedLongLongAttr", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsUnsignedLongLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsUnsignedLongLongAttr) },
- { "immutableSerializedScriptValue", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsImmutableSerializedScriptValue), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsImmutableSerializedScriptValue) },
- { "attrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsAttrWithGetterException) },
- { "attrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsAttrWithSetterException) },
- { "stringAttrWithGetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsStringAttrWithGetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsStringAttrWithGetterException) },
- { "stringAttrWithSetterException", DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestTypedefsStringAttrWithSetterException), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestTypedefsStringAttrWithSetterException) },
</del><span class="cx"> { "func", JSC::Function, NoIntrinsic, (intptr_t)static_cast<NativeFunction>(jsTestTypedefsPrototypeFunctionFunc), (intptr_t) (0) },
</span><span class="cx"> { "setShadow", JSC::Function, NoIntrinsic, (intptr_t)static_cast<NativeFunction>(jsTestTypedefsPrototypeFunctionSetShadow), (intptr_t) (3) },
</span><span class="cx"> { "methodWithSequenceArg", JSC::Function, NoIntrinsic, (intptr_t)static_cast<NativeFunction>(jsTestTypedefsPrototypeFunctionMethodWithSequenceArg), (intptr_t) (1) },
</span><span class="lines">@@ -125,7 +125,7 @@
</span><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSTestTypedefsPrototypeTable = { 66, 63, true, JSTestTypedefsPrototypeTableValues, 0 };
</del><ins>+static const HashTable JSTestTypedefsPrototypeTable = { 33, 31, false, JSTestTypedefsPrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSTestTypedefsPrototype::s_info = { "TestTypedefsPrototype", &Base::s_info, &JSTestTypedefsPrototypeTable, 0, CREATE_METHOD_TABLE(JSTestTypedefsPrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSTestTypedefsPrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx"> bool JSTestTypedefsPrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
</span><span class="cx"> {
</span><span class="cx"> JSTestTypedefsPrototype* thisObject = jsCast<JSTestTypedefsPrototype*>(object);
</span><del>- return getStaticPropertySlot<JSTestTypedefsPrototype, JSObject>(exec, JSTestTypedefsPrototypeTable, thisObject, propertyName, slot);
</del><ins>+ return getStaticFunctionSlot<JSObject>(exec, JSTestTypedefsPrototypeTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const ClassInfo JSTestTypedefs::s_info = { "TestTypedefs", &Base::s_info, &JSTestTypedefsTable, 0 , CREATE_METHOD_TABLE(JSTestTypedefs) };
</span><span class="lines">@@ -266,11 +266,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsTestTypedefsConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsTestTypedefsConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSTestTypedefsPrototype* domObject = jsDynamicCast<JSTestTypedefsPrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSTestTypedefs* domObject = jsDynamicCast<JSTestTypedefs*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSTestTypedefs::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -30,6 +30,16 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><ins>+/* Hash table */
+
+static const HashTableValue JSattributeTableValues[] =
+{
+ { "readonly", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsattributeReadonly), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsattributeConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSattributeTable = { 4, 3, true, JSattributeTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSattributeConstructorTableValues[] =
</span><span class="lines">@@ -62,12 +72,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSattributePrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsattributeConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
- { "readonly", DontDelete | ReadOnly | CustomAccessor, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsattributeReadonly), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSattributePrototypeTable = { 4, 3, true, JSattributePrototypeTableValues, 0 };
</del><ins>+static const HashTable JSattributePrototypeTable = { 1, 0, false, JSattributePrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSattributePrototype::s_info = { "attributePrototype", &Base::s_info, &JSattributePrototypeTable, 0, CREATE_METHOD_TABLE(JSattributePrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSattributePrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -75,14 +83,8 @@
</span><span class="cx"> return getDOMPrototype<JSattribute>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSattributePrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSattributePrototype* thisObject = jsCast<JSattributePrototype*>(object);
- return getStaticPropertySlot<JSattributePrototype, JSObject>(exec, JSattributePrototypeTable, thisObject, propertyName, slot);
-}
</del><ins>+const ClassInfo JSattribute::s_info = { "attribute", &Base::s_info, &JSattributeTable, 0 , CREATE_METHOD_TABLE(JSattribute) };
</ins><span class="cx">
</span><del>-const ClassInfo JSattribute::s_info = { "attribute", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSattribute) };
-
</del><span class="cx"> JSattribute::JSattribute(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<attribute> impl)
</span><span class="cx"> : JSDOMWrapper(structure, globalObject)
</span><span class="cx"> , m_impl(impl.leakRef())
</span><span class="lines">@@ -115,7 +117,7 @@
</span><span class="cx"> {
</span><span class="cx"> JSattribute* thisObject = jsCast<JSattribute*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSattribute, Base>(exec, JSattributeTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> EncodedJSValue jsattributeReadonly(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="lines">@@ -131,11 +133,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-EncodedJSValue jsattributeConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsattributeConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSattributePrototype* domObject = jsDynamicCast<JSattributePrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSattribute* domObject = jsDynamicCast<JSattribute*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSattribute::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -102,7 +102,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -111,7 +110,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSattributePrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSattributeConstructor : public DOMConstructorObject {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -28,6 +28,15 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><ins>+/* Hash table */
+
+static const HashTableValue JSreadonlyTableValues[] =
+{
+ { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsreadonlyConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
+ { 0, 0, NoIntrinsic, 0, 0 }
+};
+
+static const HashTable JSreadonlyTable = { 2, 1, true, JSreadonlyTableValues, 0 };
</ins><span class="cx"> /* Hash table for constructor */
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSreadonlyConstructorTableValues[] =
</span><span class="lines">@@ -60,11 +69,10 @@
</span><span class="cx">
</span><span class="cx"> static const HashTableValue JSreadonlyPrototypeTableValues[] =
</span><span class="cx"> {
</span><del>- { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsreadonlyConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
</del><span class="cx"> { 0, 0, NoIntrinsic, 0, 0 }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-static const HashTable JSreadonlyPrototypeTable = { 2, 1, true, JSreadonlyPrototypeTableValues, 0 };
</del><ins>+static const HashTable JSreadonlyPrototypeTable = { 1, 0, false, JSreadonlyPrototypeTableValues, 0 };
</ins><span class="cx"> const ClassInfo JSreadonlyPrototype::s_info = { "readonlyPrototype", &Base::s_info, &JSreadonlyPrototypeTable, 0, CREATE_METHOD_TABLE(JSreadonlyPrototype) };
</span><span class="cx">
</span><span class="cx"> JSObject* JSreadonlyPrototype::self(VM& vm, JSGlobalObject* globalObject)
</span><span class="lines">@@ -72,14 +80,8 @@
</span><span class="cx"> return getDOMPrototype<JSreadonly>(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool JSreadonlyPrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- JSreadonlyPrototype* thisObject = jsCast<JSreadonlyPrototype*>(object);
- return getStaticPropertySlot<JSreadonlyPrototype, JSObject>(exec, JSreadonlyPrototypeTable, thisObject, propertyName, slot);
-}
</del><ins>+const ClassInfo JSreadonly::s_info = { "readonly", &Base::s_info, &JSreadonlyTable, 0 , CREATE_METHOD_TABLE(JSreadonly) };
</ins><span class="cx">
</span><del>-const ClassInfo JSreadonly::s_info = { "readonly", &Base::s_info, 0, 0 , CREATE_METHOD_TABLE(JSreadonly) };
-
</del><span class="cx"> JSreadonly::JSreadonly(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<readonly> impl)
</span><span class="cx"> : JSDOMWrapper(structure, globalObject)
</span><span class="cx"> , m_impl(impl.leakRef())
</span><span class="lines">@@ -112,14 +114,12 @@
</span><span class="cx"> {
</span><span class="cx"> JSreadonly* thisObject = jsCast<JSreadonly*>(object);
</span><span class="cx"> ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>- return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</del><ins>+ return getStaticValueSlot<JSreadonly, Base>(exec, JSreadonlyTable, thisObject, propertyName, slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-EncodedJSValue jsreadonlyConstructor(ExecState* exec, EncodedJSValue baseValue, EncodedJSValue thisValue, PropertyName)
</del><ins>+EncodedJSValue jsreadonlyConstructor(ExecState* exec, EncodedJSValue, EncodedJSValue thisValue, PropertyName)
</ins><span class="cx"> {
</span><del>- UNUSED_PARAM(baseValue);
- UNUSED_PARAM(thisValue);
- JSreadonlyPrototype* domObject = jsDynamicCast<JSreadonlyPrototype*>(JSValue::decode(baseValue));
</del><ins>+ JSreadonly* domObject = jsDynamicCast<JSreadonly*>(JSValue::decode(thisValue));
</ins><span class="cx"> if (!domObject)
</span><span class="cx"> return throwVMTypeError(exec);
</span><span class="cx"> return JSValue::encode(JSreadonly::getConstructor(exec->vm(), domObject->globalObject()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.h (163412 => 163413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.h 2014-02-04 23:55:20 UTC (rev 163412)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.h 2014-02-04 23:57:22 UTC (rev 163413)
</span><span class="lines">@@ -102,7 +102,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span><del>- static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
</del><span class="cx"> static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><span class="cx"> return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</span><span class="lines">@@ -111,7 +110,7 @@
</span><span class="cx"> private:
</span><span class="cx"> JSreadonlyPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
</span><span class="cx"> protected:
</span><del>- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</del><ins>+ static const unsigned StructureFlags = Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSreadonlyConstructor : public DOMConstructorObject {
</span></span></pre>
</div>
</div>
</body>
</html>