<!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>[169954] trunk/Source/WebCore</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/169954">169954</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2014-06-13 15:52:50 -0700 (Fri, 13 Jun 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Constructors should eagerly reify their properties too
https://bugs.webkit.org/show_bug.cgi?id=133822

Reviewed by Andreas Kling.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDeclaration):
Constructors should never need to use the lazy property HashTable, so we can just
remove its getOwnPropertySlot completely.

(ConstructorHasProperties):
Add helper to determine if we need to reify any properties.

(GenerateConstructorHelperMethods):
Reify if needed, and remove the implementation of getOwnPropertySlot.

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.h:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
* bindings/scripts/test/JS/JSTestNondeterministic.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSattribute.h:
* bindings/scripts/test/JS/JSreadonly.cpp:
* bindings/scripts/test/JS/JSreadonly.h:
Update tests.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjecth">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGetterh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h</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="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargeth">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h</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="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenerh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h</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="#trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministich">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h</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="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefsh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h</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="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/ChangeLog        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -1,3 +1,57 @@
</span><ins>+2014-06-12  Sam Weinig  &lt;sam@webkit.org&gt;
+
+        Constructors should eagerly reify their properties too
+        https://bugs.webkit.org/show_bug.cgi?id=133822
+
+        Reviewed by Andreas Kling.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateConstructorDeclaration):
+        Constructors should never need to use the lazy property HashTable, so we can just
+        remove its getOwnPropertySlot completely.
+
+        (ConstructorHasProperties):
+        Add helper to determine if we need to reify any properties.
+
+        (GenerateConstructorHelperMethods):
+        Reify if needed, and remove the implementation of getOwnPropertySlot.
+
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
+        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestEventConstructor.h:
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+        * bindings/scripts/test/JS/JSTestEventTarget.h:
+        * bindings/scripts/test/JS/JSTestException.cpp:
+        * bindings/scripts/test/JS/JSTestException.h:
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        * bindings/scripts/test/JS/JSTestInterface.h:
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
+        * bindings/scripts/test/JS/JSTestNode.cpp:
+        * bindings/scripts/test/JS/JSTestNode.h:
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+        * bindings/scripts/test/JS/JSTestNondeterministic.h:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        * bindings/scripts/test/JS/JSTestObj.h:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        * bindings/scripts/test/JS/JSTestTypedefs.h:
+        * bindings/scripts/test/JS/JSattribute.cpp:
+        * bindings/scripts/test/JS/JSattribute.h:
+        * bindings/scripts/test/JS/JSreadonly.cpp:
+        * bindings/scripts/test/JS/JSreadonly.h:
+        Update tests.
+
</ins><span class="cx"> 2014-06-13  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Make css jit allocator smarter.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -4304,7 +4304,6 @@
</span><span class="cx">     push(@$outputArray, &quot;        return ptr;\n&quot;);
</span><span class="cx">     push(@$outputArray, &quot;    }\n\n&quot;);
</span><span class="cx"> 
</span><del>-    push(@$outputArray, &quot;    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);\n&quot;);
</del><span class="cx">     push(@$outputArray, &quot;    DECLARE_INFO;\n&quot;);
</span><span class="cx"> 
</span><span class="cx">     push(@$outputArray, &quot;    static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)\n&quot;);
</span><span class="lines">@@ -4585,6 +4584,27 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub ConstructorHasProperties
+{
+    my $interface = shift;
+
+    foreach my $constant (@{$interface-&gt;constants}) {
+        return 1;
+    }
+
+    foreach my $attribute (@{$interface-&gt;attributes}) {
+        next unless ($attribute-&gt;isStatic);
+        return 1;
+    }
+
+    foreach my $function (@{$interface-&gt;functions}) {
+        next unless ($function-&gt;isStatic);
+        return 1;
+    }
+
+    return 0;
+}
+
</ins><span class="cx"> sub GenerateConstructorHelperMethods
</span><span class="cx"> {
</span><span class="cx">     my $outputArray = shift;
</span><span class="lines">@@ -4627,7 +4647,6 @@
</span><span class="cx">         } else {
</span><span class="cx">             push(@$outputArray, &quot;const ClassInfo ${constructorClassName}::s_info = { \&quot;${visibleInterfaceName}Constructor\&quot;, &amp;Base::s_info, &amp;${constructorClassName}Table, 0, CREATE_METHOD_TABLE($constructorClassName) };\n\n&quot;);
</span><span class="cx">         }
</span><del>-
</del><span class="cx">         push(@$outputArray, &quot;${constructorClassName}::${constructorClassName}(Structure* structure, JSDOMGlobalObject* globalObject)\n&quot;);
</span><span class="cx">         push(@$outputArray, &quot;    : DOMConstructorObject(structure, globalObject)\n&quot;);
</span><span class="cx">         push(@$outputArray, &quot;{\n}\n\n&quot;);
</span><span class="lines">@@ -4649,25 +4668,10 @@
</span><span class="cx">         push(@$outputArray, &quot;    putDirect(vm, vm.propertyNames-&gt;prototype, ${protoClassName}::self(vm, globalObject), DontDelete | ReadOnly);\n&quot;);
</span><span class="cx">     }
</span><span class="cx">     push(@$outputArray, &quot;    putDirect(vm, vm.propertyNames-&gt;length, jsNumber(${leastConstructorLength}), ReadOnly | DontDelete | DontEnum);\n&quot;) if defined $leastConstructorLength;
</span><ins>+    push(@$outputArray, &quot;    reifyStaticProperties(vm, ${className}ConstructorTableValues, *this);\n&quot;) if ConstructorHasProperties($interface);
+
</ins><span class="cx">     push(@$outputArray, &quot;}\n\n&quot;);
</span><span class="cx"> 
</span><del>-    if (!$generatingNamedConstructor) {
-        my $hasStaticFunctions = 0;
-        foreach my $function (@{$interface-&gt;functions}) {
-            if ($function-&gt;isStatic) {
-                $hasStaticFunctions = 1;
-                last;
-            }
-        }
-
-        my $kind = $hasStaticFunctions ? &quot;Property&quot; : &quot;Value&quot;;
-
-        push(@$outputArray, &quot;bool ${constructorClassName}::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)\n&quot;);
-        push(@$outputArray, &quot;{\n&quot;);
-        push(@$outputArray, &quot;    return getStatic${kind}Slot&lt;${constructorClassName}, JSDOMWrapper&gt;(exec, &quot; . constructorHashTableAccessor($interface-&gt;extendedAttributes-&gt;{&quot;JSNoStaticTables&quot;}, $constructorClassName) . &quot;, jsCast&lt;${constructorClassName}*&gt;(object), propertyName, slot);\n&quot;);
-        push(@$outputArray, &quot;}\n\n&quot;);
-    }
-
</del><span class="cx">     if (IsConstructable($interface)) {
</span><span class="cx">         if (!$interface-&gt;extendedAttributes-&gt;{&quot;NamedConstructor&quot;} || $generatingNamedConstructor) {
</span><span class="cx">             my $conditionalString = $codeGenerator-&gt;GenerateConstructorConditionalString($interface);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -78,11 +78,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestActiveDOMObjectConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestActiveDOMObjectConstructor, JSDOMWrapper&gt;(exec, JSTestActiveDOMObjectConstructorTable, jsCast&lt;JSTestActiveDOMObjectConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSTestActiveDOMObjectPrototypeTableIndex[4] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -134,7 +134,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -74,11 +74,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestCustomNamedGetterConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestCustomNamedGetterConstructor, JSDOMWrapper&gt;(exec, JSTestCustomNamedGetterConstructorTable, jsCast&lt;JSTestCustomNamedGetterConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSTestCustomNamedGetterPrototypeTableIndex[2] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGetterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -138,7 +138,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -99,11 +99,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestEventConstructorConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestEventConstructorConstructor, JSDOMWrapper&gt;(exec, JSTestEventConstructorConstructorTable, jsCast&lt;JSTestEventConstructorConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> ConstructType JSTestEventConstructorConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
</span><span class="cx"> {
</span><span class="cx">     constructData.native.function = constructJSTestEventConstructor;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -135,7 +135,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -80,11 +80,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestEventTargetConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestEventTargetConstructor, JSDOMWrapper&gt;(exec, JSTestEventTargetConstructorTable, jsCast&lt;JSTestEventTargetConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSTestEventTargetPrototypeTableIndex[8] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -142,7 +142,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -73,11 +73,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestExceptionConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestExceptionConstructor, JSDOMWrapper&gt;(exec, JSTestExceptionConstructorTable, jsCast&lt;JSTestExceptionConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSTestExceptionPrototypeTableIndex[2] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -134,7 +134,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -56,11 +56,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestGenerateIsReachableConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestGenerateIsReachableConstructor, JSDOMWrapper&gt;(exec, JSTestGenerateIsReachableConstructorTable, jsCast&lt;JSTestGenerateIsReachableConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSTestGenerateIsReachablePrototypeTableIndex[2] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -133,7 +133,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -195,13 +195,9 @@
</span><span class="cx">     ASSERT(inherits(info()));
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;prototype, JSTestInterfacePrototype::self(vm, globalObject), DontDelete | ReadOnly);
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontDelete | DontEnum);
</span><ins>+    reifyStaticProperties(vm, JSTestInterfaceConstructorTableValues, *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestInterfaceConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticPropertySlot&lt;JSTestInterfaceConstructor, JSDOMWrapper&gt;(exec, JSTestInterfaceConstructorTable, jsCast&lt;JSTestInterfaceConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> #if ENABLE(TEST_INTERFACE)
</span><span class="cx"> ConstructType JSTestInterfaceConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -161,7 +161,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -60,11 +60,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestMediaQueryListListenerConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestMediaQueryListListenerConstructor, JSDOMWrapper&gt;(exec, JSTestMediaQueryListListenerConstructorTable, jsCast&lt;JSTestMediaQueryListListenerConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSTestMediaQueryListListenerPrototypeTableIndex[4] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -133,7 +133,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -59,11 +59,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestNamedConstructorConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestNamedConstructorConstructor, JSDOMWrapper&gt;(exec, JSTestNamedConstructorConstructorTable, jsCast&lt;JSTestNamedConstructorConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> EncodedJSValue JSC_HOST_CALL JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor(ExecState* exec)
</span><span class="cx"> {
</span><span class="cx">     JSTestNamedConstructorNamedConstructor* castedThis = jsCast&lt;JSTestNamedConstructorNamedConstructor*&gt;(exec-&gt;callee());
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -135,7 +135,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -66,11 +66,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestNodeConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestNodeConstructor, JSDOMWrapper&gt;(exec, JSTestNodeConstructorTable, jsCast&lt;JSTestNodeConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> ConstructType JSTestNodeConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
</span><span class="cx"> {
</span><span class="cx">     constructData.native.function = constructJSTestNode;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -104,7 +104,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -68,11 +68,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestNondeterministicConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestNondeterministicConstructor, JSDOMWrapper&gt;(exec, JSTestNondeterministicConstructorTable, jsCast&lt;JSTestNondeterministicConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSTestNondeterministicPrototypeTableIndex[17] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministich"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -133,7 +133,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -244,13 +244,9 @@
</span><span class="cx">     ASSERT(inherits(info()));
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;prototype, JSTestObjPrototype::self(vm, globalObject), DontDelete | ReadOnly);
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontDelete | DontEnum);
</span><ins>+    reifyStaticProperties(vm, JSTestObjConstructorTableValues, *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestObjConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticPropertySlot&lt;JSTestObjConstructor, JSDOMWrapper&gt;(exec, JSTestObjConstructorTable, jsCast&lt;JSTestObjConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> ConstructType JSTestObjConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
</span><span class="cx"> {
</span><span class="cx">     constructData.native.function = constructJSTestObj;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -147,7 +147,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -125,11 +125,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestOverloadedConstructorsConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestOverloadedConstructorsConstructor, JSDOMWrapper&gt;(exec, JSTestOverloadedConstructorsConstructorTable, jsCast&lt;JSTestOverloadedConstructorsConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> ConstructType JSTestOverloadedConstructorsConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
</span><span class="cx"> {
</span><span class="cx">     constructData.native.function = constructJSTestOverloadedConstructors;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -133,7 +133,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -64,11 +64,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestSerializedScriptValueInterfaceConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestSerializedScriptValueInterfaceConstructor, JSDOMWrapper&gt;(exec, JSTestSerializedScriptValueInterfaceConstructorTable, jsCast&lt;JSTestSerializedScriptValueInterfaceConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSTestSerializedScriptValueInterfacePrototypeTableIndex[17] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -139,7 +139,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -99,13 +99,9 @@
</span><span class="cx">     ASSERT(inherits(info()));
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;prototype, JSTestTypedefsPrototype::self(vm, globalObject), DontDelete | ReadOnly);
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(2), ReadOnly | DontDelete | DontEnum);
</span><ins>+    reifyStaticProperties(vm, JSTestTypedefsConstructorTableValues, *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSTestTypedefsConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSTestTypedefsConstructor, JSDOMWrapper&gt;(exec, JSTestTypedefsConstructorTable, jsCast&lt;JSTestTypedefsConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> ConstructType JSTestTypedefsConstructor::getConstructData(JSCell*, ConstructData&amp; constructData)
</span><span class="cx"> {
</span><span class="cx">     constructData.native.function = constructJSTestTypedefs;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -134,7 +134,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -59,11 +59,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSattributeConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSattributeConstructor, JSDOMWrapper&gt;(exec, JSattributeConstructorTable, jsCast&lt;JSattributeConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSattributePrototypeTableIndex[4] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSattributeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -133,7 +133,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -56,11 +56,6 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSreadonlyConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot&amp; slot)
-{
-    return getStaticValueSlot&lt;JSreadonlyConstructor, JSDOMWrapper&gt;(exec, JSreadonlyConstructorTable, jsCast&lt;JSreadonlyConstructor*&gt;(object), propertyName, slot);
-}
-
</del><span class="cx"> /* Hash table for prototype */
</span><span class="cx"> 
</span><span class="cx"> static const struct CompactHashIndex JSreadonlyPrototypeTableIndex[2] = {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSreadonlyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.h (169953 => 169954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.h        2014-06-13 22:26:52 UTC (rev 169953)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.h        2014-06-13 22:52:50 UTC (rev 169954)
</span><span class="lines">@@ -133,7 +133,6 @@
</span><span class="cx">         return ptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;);
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx">     static JSC::Structure* createStructure(JSC::VM&amp; vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
</span><span class="cx">     {
</span></span></pre>
</div>
</div>

</body>
</html>