<!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>[171939] trunk/Source</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/171939">171939</a></dd>
<dt>Author</dt> <dd>akling@apple.com</dd>
<dt>Date</dt> <dd>2014-08-01 11:57:39 -0700 (Fri, 01 Aug 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove the JSC::OverridesVisitChildren flag.
&lt;https://webkit.org/b/135489&gt;

Source/JavaScriptCore:
Except for 3 special classes, the visitChildren() call is always
dispatched through the method table (see SlotVisitor.cpp.)

The OverridesVisitChildren flag doesn't actually do anything.
It could be used to implement a non-virtual direct call to
JSCell::visitChildren, bypassing the method table for some objects,
but such a micro-optimization seems like a weak trade for all this
code complexity. Instead, just remove the flag.

This change frees up an inline flag bit in JSCell.

Reviewed by Geoffrey Garen.

* API/JSAPIWrapperObject.h:
* API/JSAPIWrapperObject.mm:
(JSC::JSAPIWrapperObject::visitChildren):
* API/JSCallbackObject.h:
(JSC::JSCallbackObject::visitChildren):
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedCodeBlock::visitChildren):
(JSC::UnlinkedProgramCodeBlock::visitChildren):
* bytecode/UnlinkedCodeBlock.h:
* debugger/DebuggerScope.cpp:
(JSC::DebuggerScope::visitChildren):
* debugger/DebuggerScope.h:
* jsc.cpp:
* runtime/Arguments.cpp:
(JSC::Arguments::visitChildren):
* runtime/Arguments.h:
* runtime/Executable.cpp:
(JSC::EvalExecutable::visitChildren):
(JSC::ProgramExecutable::visitChildren):
(JSC::FunctionExecutable::visitChildren):
* runtime/Executable.h:
* runtime/GetterSetter.cpp:
(JSC::GetterSetter::visitChildren):
* runtime/GetterSetter.h:
(JSC::GetterSetter::createStructure):
* runtime/JSAPIValueWrapper.h:
(JSC::JSAPIValueWrapper::createStructure):
* runtime/JSActivation.cpp:
(JSC::JSActivation::visitChildren):
* runtime/JSActivation.h:
* runtime/JSArrayIterator.cpp:
(JSC::JSArrayIterator::visitChildren):
* runtime/JSArrayIterator.h:
* runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::visitChildren):
* runtime/JSBoundFunction.h:
* runtime/JSCellInlines.h:
(JSC::JSCell::setStructure):
* runtime/JSFunction.cpp:
(JSC::JSFunction::visitChildren):
* runtime/JSFunction.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
* runtime/JSMap.h:
* runtime/JSMapIterator.cpp:
(JSC::JSMapIterator::visitChildren):
* runtime/JSMapIterator.h:
* runtime/JSNameScope.cpp:
(JSC::JSNameScope::visitChildren):
* runtime/JSNameScope.h:
* runtime/JSPromise.cpp:
(JSC::JSPromise::visitChildren):
* runtime/JSPromise.h:
* runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::visitChildren):
* runtime/JSPromiseDeferred.h:
* runtime/JSPromiseReaction.cpp:
(JSC::JSPromiseReaction::visitChildren):
* runtime/JSPromiseReaction.h:
* runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::visitChildren):
* runtime/JSPropertyNameIterator.h:
* runtime/JSProxy.cpp:
(JSC::JSProxy::visitChildren):
* runtime/JSProxy.h:
* runtime/JSScope.cpp:
(JSC::JSScope::visitChildren):
* runtime/JSScope.h:
* runtime/JSSegmentedVariableObject.cpp:
(JSC::JSSegmentedVariableObject::visitChildren):
* runtime/JSSegmentedVariableObject.h:
* runtime/JSSet.h:
* runtime/JSSetIterator.cpp:
(JSC::JSSetIterator::visitChildren):
* runtime/JSSetIterator.h:
* runtime/JSSymbolTableObject.cpp:
(JSC::JSSymbolTableObject::visitChildren):
* runtime/JSSymbolTableObject.h:
* runtime/JSTypeInfo.h:
(JSC::TypeInfo::overridesVisitChildren): Deleted.
* runtime/JSWeakMap.h:
* runtime/JSWithScope.cpp:
(JSC::JSWithScope::visitChildren):
* runtime/JSWithScope.h:
* runtime/JSWrapperObject.cpp:
(JSC::JSWrapperObject::visitChildren):
* runtime/JSWrapperObject.h:
* runtime/MapData.h:
* runtime/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor::visitChildren):
* runtime/NativeErrorConstructor.h:
* runtime/PropertyMapHashTable.h:
* runtime/PropertyTable.cpp:
(JSC::PropertyTable::visitChildren):
* runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::visitChildren):
* runtime/RegExpConstructor.h:
* runtime/RegExpMatchesArray.cpp:
(JSC::RegExpMatchesArray::visitChildren):
* runtime/RegExpMatchesArray.h:
* runtime/RegExpObject.cpp:
(JSC::RegExpObject::visitChildren):
* runtime/RegExpObject.h:
* runtime/SparseArrayValueMap.h:
* runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::visitChildren):
* runtime/StructureChain.cpp:
(JSC::StructureChain::visitChildren):
* runtime/StructureChain.h:
* runtime/StructureRareData.cpp:
(JSC::StructureRareData::visitChildren):
* runtime/StructureRareData.h:
* runtime/WeakMapData.h:

Source/WebCore:
Tweak the bindings code generator to stop spitting out the flag.

Reviewed by Geoffrey Garen.

* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::visitChildren):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreAPIJSAPIWrapperObjecth">trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreAPIJSAPIWrapperObjectmm">trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.mm</a></li>
<li><a href="#trunkSourceJavaScriptCoreAPIJSCallbackObjecth">trunk/Source/JavaScriptCore/API/JSCallbackObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeUnlinkedCodeBlockcpp">trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeUnlinkedCodeBlockh">trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredebuggerDebuggerScopecpp">trunk/Source/JavaScriptCore/debugger/DebuggerScope.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredebuggerDebuggerScopeh">trunk/Source/JavaScriptCore/debugger/DebuggerScope.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejsccpp">trunk/Source/JavaScriptCore/jsc.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArgumentscpp">trunk/Source/JavaScriptCore/runtime/Arguments.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArgumentsh">trunk/Source/JavaScriptCore/runtime/Arguments.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeExecutablecpp">trunk/Source/JavaScriptCore/runtime/Executable.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeExecutableh">trunk/Source/JavaScriptCore/runtime/Executable.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeGetterSettercpp">trunk/Source/JavaScriptCore/runtime/GetterSetter.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeGetterSetterh">trunk/Source/JavaScriptCore/runtime/GetterSetter.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSAPIValueWrapperh">trunk/Source/JavaScriptCore/runtime/JSAPIValueWrapper.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSActivationcpp">trunk/Source/JavaScriptCore/runtime/JSActivation.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSActivationh">trunk/Source/JavaScriptCore/runtime/JSActivation.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArrayIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArrayIteratorh">trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSBoundFunctioncpp">trunk/Source/JavaScriptCore/runtime/JSBoundFunction.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSBoundFunctionh">trunk/Source/JavaScriptCore/runtime/JSBoundFunction.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCellInlinesh">trunk/Source/JavaScriptCore/runtime/JSCellInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSFunctioncpp">trunk/Source/JavaScriptCore/runtime/JSFunction.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSFunctionh">trunk/Source/JavaScriptCore/runtime/JSFunction.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjecth">trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSMaph">trunk/Source/JavaScriptCore/runtime/JSMap.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSMapIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSMapIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSMapIteratorh">trunk/Source/JavaScriptCore/runtime/JSMapIterator.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSNameScopecpp">trunk/Source/JavaScriptCore/runtime/JSNameScope.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSNameScopeh">trunk/Source/JavaScriptCore/runtime/JSNameScope.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromisecpp">trunk/Source/JavaScriptCore/runtime/JSPromise.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseh">trunk/Source/JavaScriptCore/runtime/JSPromise.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseDeferredcpp">trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseDeferredh">trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseReactioncpp">trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseReactionh">trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPropertyNameIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPropertyNameIteratorh">trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSProxycpp">trunk/Source/JavaScriptCore/runtime/JSProxy.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSProxyh">trunk/Source/JavaScriptCore/runtime/JSProxy.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSScopecpp">trunk/Source/JavaScriptCore/runtime/JSScope.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSScopeh">trunk/Source/JavaScriptCore/runtime/JSScope.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSegmentedVariableObjectcpp">trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSegmentedVariableObjecth">trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSeth">trunk/Source/JavaScriptCore/runtime/JSSet.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSetIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSSetIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSetIteratorh">trunk/Source/JavaScriptCore/runtime/JSSetIterator.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSymbolTableObjectcpp">trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSymbolTableObjecth">trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSTypeInfoh">trunk/Source/JavaScriptCore/runtime/JSTypeInfo.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSWeakMaph">trunk/Source/JavaScriptCore/runtime/JSWeakMap.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSWithScopecpp">trunk/Source/JavaScriptCore/runtime/JSWithScope.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSWithScopeh">trunk/Source/JavaScriptCore/runtime/JSWithScope.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSWrapperObjectcpp">trunk/Source/JavaScriptCore/runtime/JSWrapperObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSWrapperObjecth">trunk/Source/JavaScriptCore/runtime/JSWrapperObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeMapDatah">trunk/Source/JavaScriptCore/runtime/MapData.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeNativeErrorConstructorcpp">trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeNativeErrorConstructorh">trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertyMapHashTableh">trunk/Source/JavaScriptCore/runtime/PropertyMapHashTable.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertyTablecpp">trunk/Source/JavaScriptCore/runtime/PropertyTable.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpConstructorcpp">trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpConstructorh">trunk/Source/JavaScriptCore/runtime/RegExpConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpMatchesArraycpp">trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpMatchesArrayh">trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpObjectcpp">trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpObjecth">trunk/Source/JavaScriptCore/runtime/RegExpObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSparseArrayValueMaph">trunk/Source/JavaScriptCore/runtime/SparseArrayValueMap.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructurecpp">trunk/Source/JavaScriptCore/runtime/Structure.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructureChaincpp">trunk/Source/JavaScriptCore/runtime/StructureChain.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructureChainh">trunk/Source/JavaScriptCore/runtime/StructureChain.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructureRareDatacpp">trunk/Source/JavaScriptCore/runtime/StructureRareData.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructureRareDatah">trunk/Source/JavaScriptCore/runtime/StructureRareData.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeWeakMapDatah">trunk/Source/JavaScriptCore/runtime/WeakMapData.h</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="#trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp">trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</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="#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="#trunkSourceWebCorebindingsscriptstestJSJSTestObjh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.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>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreAPIJSAPIWrapperObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -45,8 +45,6 @@
</span><span class="cx">     void setWrappedObject(void*);
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-    
</del><span class="cx">     JSAPIWrapperObject(VM&amp;, Structure*);
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreAPIJSAPIWrapperObjectmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.mm (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.mm        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.mm        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -99,7 +99,6 @@
</span><span class="cx"> void JSAPIWrapperObject::visitChildren(JSCell* cell, JSC::SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><span class="cx">     JSAPIWrapperObject* thisObject = JSC::jsCast&lt;JSAPIWrapperObject*&gt;(cell);
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
</del><span class="cx">     Base::visitChildren(cell, visitor);
</span><span class="cx"> 
</span><span class="cx">     if (thisObject-&gt;wrappedObject())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreAPIJSCallbackObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSCallbackObject.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSCallbackObject.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/API/JSCallbackObject.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx">     using Parent::methodTable;
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = ProhibitsPropertyCaching | OverridesGetOwnPropertySlot | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | ImplementsHasInstance | OverridesHasInstance | OverridesVisitChildren | OverridesGetPropertyNames | Parent::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = ProhibitsPropertyCaching | OverridesGetOwnPropertySlot | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | ImplementsHasInstance | OverridesHasInstance | OverridesGetPropertyNames | Parent::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     static String className(const JSObject*);
</span><span class="lines">@@ -196,8 +196,6 @@
</span><span class="cx">     {
</span><span class="cx">         JSCallbackObject* thisObject = jsCast&lt;JSCallbackObject*&gt;(cell);
</span><span class="cx">         ASSERT_GC_OBJECT_INHERITS((static_cast&lt;Parent*&gt;(thisObject)), JSCallbackObject&lt;Parent&gt;::info());
</span><del>-        COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-        ASSERT(thisObject-&gt;Parent::structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">         Parent::visitChildren(thisObject, visitor);
</span><span class="cx">         thisObject-&gt;m_callbackObjectData-&gt;visitChildren(visitor);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -1,3 +1,138 @@
</span><ins>+2014-07-31  Andreas Kling  &lt;akling@apple.com&gt;
+
+        Remove the JSC::OverridesVisitChildren flag.
+        &lt;https://webkit.org/b/135489&gt;
+
+        Except for 3 special classes, the visitChildren() call is always
+        dispatched through the method table (see SlotVisitor.cpp.)
+
+        The OverridesVisitChildren flag doesn't actually do anything.
+        It could be used to implement a non-virtual direct call to
+        JSCell::visitChildren, bypassing the method table for some objects,
+        but such a micro-optimization seems like a weak trade for all this
+        code complexity. Instead, just remove the flag.
+
+        This change frees up an inline flag bit in JSCell.
+
+        Reviewed by Geoffrey Garen.
+
+        * API/JSAPIWrapperObject.h:
+        * API/JSAPIWrapperObject.mm:
+        (JSC::JSAPIWrapperObject::visitChildren):
+        * API/JSCallbackObject.h:
+        (JSC::JSCallbackObject::visitChildren):
+        * bytecode/UnlinkedCodeBlock.cpp:
+        (JSC::UnlinkedFunctionExecutable::visitChildren):
+        (JSC::UnlinkedCodeBlock::visitChildren):
+        (JSC::UnlinkedProgramCodeBlock::visitChildren):
+        * bytecode/UnlinkedCodeBlock.h:
+        * debugger/DebuggerScope.cpp:
+        (JSC::DebuggerScope::visitChildren):
+        * debugger/DebuggerScope.h:
+        * jsc.cpp:
+        * runtime/Arguments.cpp:
+        (JSC::Arguments::visitChildren):
+        * runtime/Arguments.h:
+        * runtime/Executable.cpp:
+        (JSC::EvalExecutable::visitChildren):
+        (JSC::ProgramExecutable::visitChildren):
+        (JSC::FunctionExecutable::visitChildren):
+        * runtime/Executable.h:
+        * runtime/GetterSetter.cpp:
+        (JSC::GetterSetter::visitChildren):
+        * runtime/GetterSetter.h:
+        (JSC::GetterSetter::createStructure):
+        * runtime/JSAPIValueWrapper.h:
+        (JSC::JSAPIValueWrapper::createStructure):
+        * runtime/JSActivation.cpp:
+        (JSC::JSActivation::visitChildren):
+        * runtime/JSActivation.h:
+        * runtime/JSArrayIterator.cpp:
+        (JSC::JSArrayIterator::visitChildren):
+        * runtime/JSArrayIterator.h:
+        * runtime/JSBoundFunction.cpp:
+        (JSC::JSBoundFunction::visitChildren):
+        * runtime/JSBoundFunction.h:
+        * runtime/JSCellInlines.h:
+        (JSC::JSCell::setStructure):
+        * runtime/JSFunction.cpp:
+        (JSC::JSFunction::visitChildren):
+        * runtime/JSFunction.h:
+        * runtime/JSGlobalObject.cpp:
+        (JSC::JSGlobalObject::visitChildren):
+        * runtime/JSGlobalObject.h:
+        * runtime/JSMap.h:
+        * runtime/JSMapIterator.cpp:
+        (JSC::JSMapIterator::visitChildren):
+        * runtime/JSMapIterator.h:
+        * runtime/JSNameScope.cpp:
+        (JSC::JSNameScope::visitChildren):
+        * runtime/JSNameScope.h:
+        * runtime/JSPromise.cpp:
+        (JSC::JSPromise::visitChildren):
+        * runtime/JSPromise.h:
+        * runtime/JSPromiseDeferred.cpp:
+        (JSC::JSPromiseDeferred::visitChildren):
+        * runtime/JSPromiseDeferred.h:
+        * runtime/JSPromiseReaction.cpp:
+        (JSC::JSPromiseReaction::visitChildren):
+        * runtime/JSPromiseReaction.h:
+        * runtime/JSPropertyNameIterator.cpp:
+        (JSC::JSPropertyNameIterator::visitChildren):
+        * runtime/JSPropertyNameIterator.h:
+        * runtime/JSProxy.cpp:
+        (JSC::JSProxy::visitChildren):
+        * runtime/JSProxy.h:
+        * runtime/JSScope.cpp:
+        (JSC::JSScope::visitChildren):
+        * runtime/JSScope.h:
+        * runtime/JSSegmentedVariableObject.cpp:
+        (JSC::JSSegmentedVariableObject::visitChildren):
+        * runtime/JSSegmentedVariableObject.h:
+        * runtime/JSSet.h:
+        * runtime/JSSetIterator.cpp:
+        (JSC::JSSetIterator::visitChildren):
+        * runtime/JSSetIterator.h:
+        * runtime/JSSymbolTableObject.cpp:
+        (JSC::JSSymbolTableObject::visitChildren):
+        * runtime/JSSymbolTableObject.h:
+        * runtime/JSTypeInfo.h:
+        (JSC::TypeInfo::overridesVisitChildren): Deleted.
+        * runtime/JSWeakMap.h:
+        * runtime/JSWithScope.cpp:
+        (JSC::JSWithScope::visitChildren):
+        * runtime/JSWithScope.h:
+        * runtime/JSWrapperObject.cpp:
+        (JSC::JSWrapperObject::visitChildren):
+        * runtime/JSWrapperObject.h:
+        * runtime/MapData.h:
+        * runtime/NativeErrorConstructor.cpp:
+        (JSC::NativeErrorConstructor::visitChildren):
+        * runtime/NativeErrorConstructor.h:
+        * runtime/PropertyMapHashTable.h:
+        * runtime/PropertyTable.cpp:
+        (JSC::PropertyTable::visitChildren):
+        * runtime/RegExpConstructor.cpp:
+        (JSC::RegExpConstructor::visitChildren):
+        * runtime/RegExpConstructor.h:
+        * runtime/RegExpMatchesArray.cpp:
+        (JSC::RegExpMatchesArray::visitChildren):
+        * runtime/RegExpMatchesArray.h:
+        * runtime/RegExpObject.cpp:
+        (JSC::RegExpObject::visitChildren):
+        * runtime/RegExpObject.h:
+        * runtime/SparseArrayValueMap.h:
+        * runtime/Structure.cpp:
+        (JSC::Structure::Structure):
+        (JSC::Structure::visitChildren):
+        * runtime/StructureChain.cpp:
+        (JSC::StructureChain::visitChildren):
+        * runtime/StructureChain.h:
+        * runtime/StructureRareData.cpp:
+        (JSC::StructureRareData::visitChildren):
+        * runtime/StructureRareData.h:
+        * runtime/WeakMapData.h:
+
</ins><span class="cx"> 2014-07-31  Mark Lam  &lt;mark.lam@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         JSCell::classInfo() belongs in JSCellInlines.h.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeUnlinkedCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -113,8 +113,6 @@
</span><span class="cx"> {
</span><span class="cx">     UnlinkedFunctionExecutable* thisObject = jsCast&lt;UnlinkedFunctionExecutable*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_codeBlockForCall);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_codeBlockForConstruct);
</span><span class="lines">@@ -231,8 +229,6 @@
</span><span class="cx"> {
</span><span class="cx">     UnlinkedCodeBlock* thisObject = jsCast&lt;UnlinkedCodeBlock*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_symbolTable);
</span><span class="cx">     for (FunctionExpressionVector::iterator ptr = thisObject-&gt;m_functionDecls.begin(), end = thisObject-&gt;m_functionDecls.end(); ptr != end; ++ptr)
</span><span class="lines">@@ -408,8 +404,6 @@
</span><span class="cx"> {
</span><span class="cx">     UnlinkedProgramCodeBlock* thisObject = jsCast&lt;UnlinkedProgramCodeBlock*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     for (size_t i = 0, end = thisObject-&gt;m_functionDeclarations.size(); i != end; i++)
</span><span class="cx">         visitor.append(&amp;thisObject-&gt;m_functionDeclarations[i].second);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeUnlinkedCodeBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -205,7 +205,7 @@
</span><span class="cx">         return Structure::create(vm, globalObject, proto, TypeInfo(UnlinkedFunctionExecutableType, StructureFlags), info());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | StructureIsImmortal | JSCell::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = StructureIsImmortal | JSCell::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     DECLARE_EXPORT_INFO;
</span><span class="cx"> };
</span><span class="lines">@@ -578,7 +578,7 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | StructureIsImmortal | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = StructureIsImmortal | Base::StructureFlags;
</ins><span class="cx">     static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span><span class="cx"> public:
</span><span class="lines">@@ -595,8 +595,6 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -647,8 +645,6 @@
</span><span class="cx">         return Structure::create(vm, globalObject, proto, TypeInfo(UnlinkedProgramCodeBlockType, StructureFlags), info());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -689,8 +685,6 @@
</span><span class="cx">         return Structure::create(vm, globalObject, proto, TypeInfo(UnlinkedEvalCodeBlockType, StructureFlags), info());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -718,8 +712,6 @@
</span><span class="cx">         return Structure::create(vm, globalObject, proto, TypeInfo(UnlinkedFunctionCodeBlockType, StructureFlags), info());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-
</del><span class="cx">     DECLARE_INFO;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredebuggerDebuggerScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/debugger/DebuggerScope.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/debugger/DebuggerScope.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/debugger/DebuggerScope.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -52,9 +52,6 @@
</span><span class="cx"> {
</span><span class="cx">     DebuggerScope* thisObject = jsCast&lt;DebuggerScope*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     JSObject::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_activation);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredebuggerDebuggerScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/debugger/DebuggerScope.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/debugger/DebuggerScope.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/debugger/DebuggerScope.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesVisitChildren | JSObject::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | JSObject::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     JS_EXPORT_PRIVATE void finishCreation(VM&amp;, JSObject* activation);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejsccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jsc.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jsc.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/jsc.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -272,7 +272,7 @@
</span><span class="cx">             m_delegate.set(vm, this, delegate);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = JSC::HasImpureGetOwnPropertySlot | JSC::OverridesGetOwnPropertySlot | JSC::OverridesVisitChildren | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = JSC::HasImpureGetOwnPropertySlot | JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     static bool getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName name, PropertySlot&amp; slot)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArgumentscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Arguments.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Arguments.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/Arguments.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -44,8 +44,6 @@
</span><span class="cx"> {
</span><span class="cx">     Arguments* thisObject = jsCast&lt;Arguments*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     JSObject::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span><span class="cx">     if (thisObject-&gt;m_registerArray) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArgumentsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Arguments.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Arguments.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/Arguments.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | OverridesVisitChildren | OverridesGetPropertyNames | JSObject::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | OverridesGetPropertyNames | JSObject::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     void finishCreation(CallFrame*);
</span><span class="cx">     void finishCreation(CallFrame*, InlineCallFrame*);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeExecutablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Executable.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Executable.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/Executable.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -413,8 +413,6 @@
</span><span class="cx"> {
</span><span class="cx">     EvalExecutable* thisObject = jsCast&lt;EvalExecutable*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     ScriptExecutable::visitChildren(thisObject, visitor);
</span><span class="cx">     if (thisObject-&gt;m_evalCodeBlock)
</span><span class="cx">         thisObject-&gt;m_evalCodeBlock-&gt;visitAggregate(visitor);
</span><span class="lines">@@ -498,8 +496,6 @@
</span><span class="cx"> {
</span><span class="cx">     ProgramExecutable* thisObject = jsCast&lt;ProgramExecutable*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     ScriptExecutable::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_unlinkedProgramCodeBlock);
</span><span class="cx">     if (thisObject-&gt;m_programCodeBlock)
</span><span class="lines">@@ -531,8 +527,6 @@
</span><span class="cx"> {
</span><span class="cx">     FunctionExecutable* thisObject = jsCast&lt;FunctionExecutable*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     ScriptExecutable::visitChildren(thisObject, visitor);
</span><span class="cx">     if (thisObject-&gt;m_codeBlockForCall)
</span><span class="cx">         thisObject-&gt;m_codeBlockForCall-&gt;visitAggregate(visitor);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeExecutableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Executable.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Executable.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/Executable.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -493,7 +493,6 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     friend class ScriptExecutable;
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | ScriptExecutable::StructureFlags;
</del><span class="cx">     EvalExecutable(ExecState*, const SourceCode&amp;, bool);
</span><span class="cx"> 
</span><span class="cx">     static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="lines">@@ -546,8 +545,6 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     friend class ScriptExecutable;
</span><del>-    
-    static const unsigned StructureFlags = OverridesVisitChildren | ScriptExecutable::StructureFlags;
</del><span class="cx"> 
</span><span class="cx">     ProgramExecutable(ExecState*, const SourceCode&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -672,7 +669,6 @@
</span><span class="cx"> 
</span><span class="cx">     friend class ScriptExecutable;
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | ScriptExecutable::StructureFlags;
</del><span class="cx">     WriteBarrier&lt;UnlinkedFunctionExecutable&gt; m_unlinkedExecutable;
</span><span class="cx">     RefPtr&lt;FunctionCodeBlock&gt; m_codeBlockForCall;
</span><span class="cx">     RefPtr&lt;FunctionCodeBlock&gt; m_codeBlockForConstruct;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeGetterSettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/GetterSetter.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/GetterSetter.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/GetterSetter.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx"> {
</span><span class="cx">     GetterSetter* thisObject = jsCast&lt;GetterSetter*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     JSCell::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_getter);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeGetterSetterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/GetterSetter.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/GetterSetter.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/GetterSetter.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">         void setSetter(VM&amp; vm, JSObject* setter) { m_setter.setMayBeNull(vm, this, setter); }
</span><span class="cx">         static Structure* createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
</span><span class="cx">         {
</span><del>-            return Structure::create(vm, globalObject, prototype, TypeInfo(GetterSetterType, OverridesVisitChildren), info());
</del><ins>+            return Structure::create(vm, globalObject, prototype, TypeInfo(GetterSetterType), info());
</ins><span class="cx">         }
</span><span class="cx">         
</span><span class="cx">         static ptrdiff_t offsetOfGetter()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSAPIValueWrapperh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSAPIValueWrapper.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSAPIValueWrapper.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSAPIValueWrapper.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx">         static Structure* createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
</span><span class="cx">         {
</span><del>-            return Structure::create(vm, globalObject, prototype, TypeInfo(APIValueWrapperType, OverridesVisitChildren | OverridesGetPropertyNames), info());
</del><ins>+            return Structure::create(vm, globalObject, prototype, TypeInfo(APIValueWrapperType, OverridesGetPropertyNames), info());
</ins><span class="cx">         }
</span><span class="cx">         
</span><span class="cx">         DECLARE_EXPORT_INFO;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSActivationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSActivation.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSActivation.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSActivation.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -44,8 +44,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSActivation* thisObject = jsCast&lt;JSActivation*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span><span class="cx">     // No need to mark our registers if they're still in the JSStack.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSActivationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSActivation.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSActivation.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSActivation.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">     static int registersOffset(SymbolTable*);
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesVisitChildren | OverridesGetPropertyNames | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesGetPropertyNames | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool symbolTableGet(PropertyName, PropertySlot&amp;);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArrayIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -64,12 +64,8 @@
</span><span class="cx"> {
</span><span class="cx">     JSArrayIterator* thisObject = jsCast&lt;JSArrayIterator*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-        
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_iteratedObject);
</span><del>-
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static EncodedJSValue createIteratorResult(CallFrame* callFrame, ArrayIterationKind kind, size_t index, JSValue result, bool done)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArrayIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -71,9 +71,6 @@
</span><span class="cx">     static ptrdiff_t offsetOfNextIndex() { return OBJECT_OFFSETOF(JSArrayIterator, m_nextIndex); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-
-    static const unsigned StructureFlags = Base::StructureFlags | OverridesVisitChildren;
-
</del><span class="cx">     JSArrayIterator(VM&amp; vm, Structure* structure)
</span><span class="cx">         : Base(vm, structure)
</span><span class="cx">         , m_nextIndex(0)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSBoundFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSBoundFunction.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSBoundFunction.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSBoundFunction.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -117,8 +117,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSBoundFunction* thisObject = jsCast&lt;JSBoundFunction*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_targetFunction);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSBoundFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSBoundFunction.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSBoundFunction.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSBoundFunction.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     DECLARE_INFO;
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    const static unsigned StructureFlags = OverridesHasInstance | OverridesVisitChildren | Base::StructureFlags;
</del><ins>+    const static unsigned StructureFlags = OverridesHasInstance | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCellInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCellInlines.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCellInlines.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSCellInlines.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -174,7 +174,6 @@
</span><span class="cx"> 
</span><span class="cx"> inline void JSCell::setStructure(VM&amp; vm, Structure* structure)
</span><span class="cx"> {
</span><del>-    ASSERT(structure-&gt;typeInfo().overridesVisitChildren() == this-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     ASSERT(structure-&gt;classInfo() == this-&gt;structure()-&gt;classInfo());
</span><span class="cx">     ASSERT(!this-&gt;structure()
</span><span class="cx">         || this-&gt;structure()-&gt;transitionWatchpointSetHasBeenInvalidated()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSFunction.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSFunction.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSFunction.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -178,8 +178,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSFunction* thisObject = jsCast&lt;JSFunction*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_scope);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSFunction.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSFunction.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSFunction.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -153,7 +153,7 @@
</span><span class="cx">         JS_EXPORT_PRIVATE bool isHostFunctionNonInline() const;
</span><span class="cx"> 
</span><span class="cx">     protected:
</span><del>-        const static unsigned StructureFlags = OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesVisitChildren | OverridesGetPropertyNames | JSObject::StructureFlags;
</del><ins>+        const static unsigned StructureFlags = OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesGetPropertyNames | JSObject::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">         JS_EXPORT_PRIVATE JSFunction(VM&amp;, JSGlobalObject*, Structure*);
</span><span class="cx">         JSFunction(VM&amp;, FunctionExecutable*, JSScope*);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -632,8 +632,6 @@
</span><span class="cx"> { 
</span><span class="cx">     JSGlobalObject* thisObject = jsCast&lt;JSGlobalObject*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_globalThis);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -576,7 +576,7 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesVisitChildren | OverridesGetPropertyNames | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesGetPropertyNames | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     struct GlobalPropertyInfo {
</span><span class="cx">         GlobalPropertyInfo(const Identifier&amp; i, JSValue v, unsigned a)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSMap.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSMap.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSMap.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -58,8 +58,6 @@
</span><span class="cx">     MapData* mapData() { return m_mapData.get(); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-
</del><span class="cx">     JSMap(VM&amp; vm, Structure* structure)
</span><span class="cx">         : Base(vm, structure)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSMapIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSMapIterator.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSMapIterator.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSMapIterator.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -45,10 +45,7 @@
</span><span class="cx"> void JSMapIterator::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><span class="cx">     JSMapIterator* thisObject = jsCast&lt;JSMapIterator*&gt;(cell);
</span><del>-    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-        
</del><ins>+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());        
</ins><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_iteratedObjectData);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSMapIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSMapIterator.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSMapIterator.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSMapIterator.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -71,9 +71,6 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-
-    static const unsigned StructureFlags = Base::StructureFlags | OverridesVisitChildren;
-
</del><span class="cx">     JSMapIterator(VM&amp; vm, Structure* structure, JSMap* iteratedObject, MapIterationKind kind)
</span><span class="cx">         : Base(vm, structure)
</span><span class="cx">         , m_iterator(iteratedObject-&gt;mapData()-&gt;begin())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSNameScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSNameScope.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSNameScope.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSNameScope.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -37,9 +37,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSNameScope* thisObject = jsCast&lt;JSNameScope*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_registerStore);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSNameScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSNameScope.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSNameScope.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSNameScope.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx">         symbolTable()-&gt;add(identifier.impl(), SymbolTableEntry(-1, attributes));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesVisitChildren | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     JSNameScope(VM&amp; vm, JSGlobalObject* globalObject, JSScope* next)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromisecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromise.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromise.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSPromise.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -78,8 +78,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSPromise* thisObject = jsCast&lt;JSPromise*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx"> 
</span><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromise.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromise.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSPromise.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -75,7 +75,6 @@
</span><span class="cx"> private:
</span><span class="cx">     JSPromise(VM&amp;, Structure*);
</span><span class="cx">     void finishCreation(VM&amp;, JSPromiseConstructor*);
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | JSObject::StructureFlags;
</del><span class="cx">     static void destroy(JSCell*);
</span><span class="cx">     static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseDeferredcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -78,8 +78,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSPromiseDeferred* thisObject = jsCast&lt;JSPromiseDeferred*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx"> 
</span><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseDeferredh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -56,7 +56,6 @@
</span><span class="cx"> private:
</span><span class="cx">     JSPromiseDeferred(VM&amp;);
</span><span class="cx">     void finishCreation(VM&amp;, JSObject*, JSValue, JSValue);
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
</del><span class="cx">     static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span><span class="cx">     WriteBarrier&lt;JSObject&gt; m_promise;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseReactioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -148,8 +148,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSPromiseReaction* thisObject = jsCast&lt;JSPromiseReaction*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx"> 
</span><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseReactionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -56,7 +56,6 @@
</span><span class="cx"> private:
</span><span class="cx">     JSPromiseReaction(VM&amp;);
</span><span class="cx">     void finishCreation(VM&amp;, JSPromiseDeferred*, JSValue);
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
</del><span class="cx">     static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span><span class="cx">     WriteBarrier&lt;JSPromiseDeferred&gt; m_deferred;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPropertyNameIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -106,7 +106,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSPropertyNameIterator* thisObject = jsCast&lt;JSPropertyNameIterator*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     visitor.appendValues(thisObject-&gt;m_jsStrings.get(), thisObject-&gt;m_jsStringsSize);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_cachedPrototypeChain);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPropertyNameIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx">         DECLARE_EXPORT_INFO;
</span><span class="cx"> 
</span><span class="cx">     protected:
</span><del>-        static const unsigned StructureFlags = OverridesVisitChildren | StructureIsImmortal;
</del><ins>+        static const unsigned StructureFlags = StructureIsImmortal;
</ins><span class="cx"> 
</span><span class="cx">         void finishCreation(VM&amp; vm, PropertyNameArrayData* propertyNameArrayData, JSObject* object)
</span><span class="cx">         {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSProxy.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSProxy.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSProxy.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -39,10 +39,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSProxy* thisObject = jsCast&lt;JSProxy*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-
-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_target);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSProxy.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSProxy.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSProxy.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx">         m_target.set(vm, this, target);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | OverridesGetOwnPropertySlot | OverridesGetPropertyNames | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesGetPropertyNames | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSScope.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSScope.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSScope.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -40,9 +40,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSScope* thisObject = jsCast&lt;JSScope*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_next);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSScope.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSScope.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSScope.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -168,7 +168,6 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     JSScope(VM&amp;, Structure*, JSScope* next);
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
</del><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     WriteBarrier&lt;JSScope&gt; m_next;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSegmentedVariableObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -65,8 +65,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSSegmentedVariableObject* thisObject = jsCast&lt;JSSegmentedVariableObject*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     JSSymbolTableObject::visitChildren(thisObject, slotVisitor);
</span><span class="cx">     
</span><span class="cx">     for (unsigned i = thisObject-&gt;m_registers.size(); i--;)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSegmentedVariableObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -79,8 +79,6 @@
</span><span class="cx">     JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | JSSymbolTableObject::StructureFlags;
-
</del><span class="cx">     JSSegmentedVariableObject(VM&amp; vm, Structure* structure, JSScope* scope)
</span><span class="cx">         : JSSymbolTableObject(vm, structure, scope)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSet.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSet.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSSet.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -58,9 +58,6 @@
</span><span class="cx">     MapData* mapData() { return m_mapData.get(); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-
-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-
</del><span class="cx">     JSSet(VM&amp; vm, Structure* structure)
</span><span class="cx">         : Base(vm, structure)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSetIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSetIterator.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSetIterator.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSSetIterator.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -45,10 +45,7 @@
</span><span class="cx"> void JSSetIterator::visitChildren(JSCell* cell, SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><span class="cx">     JSSetIterator* thisObject = jsCast&lt;JSSetIterator*&gt;(cell);
</span><del>-    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-        
</del><ins>+    ASSERT_GC_OBJECT_INHERITS(thisObject, info());        
</ins><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_iteratedObjectData);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSetIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSetIterator.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSetIterator.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSSetIterator.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -69,9 +69,6 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-
-    static const unsigned StructureFlags = Base::StructureFlags | OverridesVisitChildren;
-
</del><span class="cx">     JSSetIterator(VM&amp; vm, Structure* structure, JSSet* iteratedObject, SetIterationKind kind)
</span><span class="cx">         : Base(vm, structure)
</span><span class="cx">         , m_iterator(iteratedObject-&gt;mapData()-&gt;begin())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSymbolTableObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -41,9 +41,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSSymbolTableObject* thisObject = jsCast&lt;JSSymbolTableObject*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_symbolTable);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSymbolTableObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">     JS_EXPORT_PRIVATE static void getOwnNonIndexPropertyNames(JSObject*, ExecState*, PropertyNameArray&amp;, EnumerationMode);
</span><span class="cx">     
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = IsEnvironmentRecord | OverridesVisitChildren | OverridesGetPropertyNames | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = IsEnvironmentRecord | OverridesGetPropertyNames | Base::StructureFlags;
</ins><span class="cx">     
</span><span class="cx">     JSSymbolTableObject(VM&amp; vm, Structure* structure, JSScope* scope, SymbolTable* symbolTable = 0)
</span><span class="cx">         : Base(vm, structure, scope)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSTypeInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSTypeInfo.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSTypeInfo.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSTypeInfo.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -43,7 +43,6 @@
</span><span class="cx">     static const unsigned IsEnvironmentRecord = 1 &lt;&lt; 4;
</span><span class="cx">     static const unsigned OverridesGetOwnPropertySlot = 1 &lt;&lt; 5;
</span><span class="cx">     static const unsigned InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero = 1 &lt;&lt; 6;
</span><del>-    static const unsigned OverridesVisitChildren = 1 &lt;&lt; 7;
</del><span class="cx"> 
</span><span class="cx">     static const unsigned OverridesGetPropertyNames = 1 &lt;&lt; 8;
</span><span class="cx">     static const unsigned ProhibitsPropertyCaching = 1 &lt;&lt; 9;
</span><span class="lines">@@ -89,7 +88,6 @@
</span><span class="cx">         bool overridesGetOwnPropertySlot() const { return overridesGetOwnPropertySlot(inlineTypeFlags()); }
</span><span class="cx">         static bool overridesGetOwnPropertySlot(InlineTypeFlags flags) { return flags &amp; OverridesGetOwnPropertySlot; }
</span><span class="cx">         bool interceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero() const { return isSetOnFlags1(InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero); }
</span><del>-        bool overridesVisitChildren() const { return isSetOnFlags1(OverridesVisitChildren); }
</del><span class="cx">         bool overridesGetPropertyNames() const { return isSetOnFlags2(OverridesGetPropertyNames); }
</span><span class="cx">         bool prohibitsPropertyCaching() const { return isSetOnFlags2(ProhibitsPropertyCaching); }
</span><span class="cx">         bool hasImpureGetOwnPropertySlot() const { return isSetOnFlags2(HasImpureGetOwnPropertySlot); }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSWeakMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSWeakMap.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSWeakMap.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSWeakMap.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -65,8 +65,6 @@
</span><span class="cx">     void clear(CallFrame*);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-
</del><span class="cx">     JSWeakMap(VM&amp; vm, Structure* structure)
</span><span class="cx">         : Base(vm, structure)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSWithScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSWithScope.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSWithScope.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSWithScope.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -36,9 +36,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSWithScope* thisObject = jsCast&lt;JSWithScope*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_object);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSWithScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSWithScope.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSWithScope.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSWithScope.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -59,9 +59,6 @@
</span><span class="cx"> 
</span><span class="cx">     DECLARE_EXPORT_INFO;
</span><span class="cx"> 
</span><del>-protected:
-    static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
-
</del><span class="cx"> private:
</span><span class="cx">     JSWithScope(ExecState* exec, JSObject* object)
</span><span class="cx">         : Base(
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSWrapperObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSWrapperObject.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSWrapperObject.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSWrapperObject.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -32,9 +32,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSWrapperObject* thisObject = jsCast&lt;JSWrapperObject*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     JSObject::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_internalValue);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSWrapperObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSWrapperObject.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSWrapperObject.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/JSWrapperObject.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -58,7 +58,6 @@
</span><span class="cx"> 
</span><span class="cx">     protected:
</span><span class="cx">         explicit JSWrapperObject(VM&amp;, Structure*);
</span><del>-        static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags;
</del><span class="cx"> 
</span><span class="cx">         JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeMapDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/MapData.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/MapData.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/MapData.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx">     void clear();
</span><span class="cx"> 
</span><span class="cx">     DECLARE_INFO;
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | StructureIsImmortal | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = StructureIsImmortal | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     typedef WTF::UnsignedWithZeroKeyHashTraits&lt;int32_t&gt; IndexTraits;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeNativeErrorConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -56,10 +56,7 @@
</span><span class="cx"> {
</span><span class="cx">     NativeErrorConstructor* thisObject = jsCast&lt;NativeErrorConstructor*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
-    InternalFunction::visitChildren(thisObject, visitor);
</del><ins>+    Base::visitChildren(thisObject, visitor);
</ins><span class="cx">     visitor.append(&amp;thisObject-&gt;m_errorStructure);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeNativeErrorConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -55,7 +55,6 @@
</span><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         NativeErrorConstructor(VM&amp;, Structure*);
</span><del>-        static const unsigned StructureFlags = OverridesVisitChildren | InternalFunction::StructureFlags;
</del><span class="cx">         static ConstructType getConstructData(JSCell*, ConstructData&amp;);
</span><span class="cx">         static CallType getCallData(JSCell*, CallData&amp;);
</span><span class="cx">         static void visitChildren(JSCell*, SlotVisitor&amp;);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertyMapHashTableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertyMapHashTable.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertyMapHashTable.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/PropertyMapHashTable.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -210,7 +210,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | StructureIsImmortal;
</del><ins>+    static const unsigned StructureFlags = StructureIsImmortal;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     PropertyTable(VM&amp;, unsigned initialCapacity);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertyTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertyTable.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertyTable.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/PropertyTable.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -136,7 +136,6 @@
</span><span class="cx"> {
</span><span class="cx">     PropertyTable* thisObject = jsCast&lt;PropertyTable*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx"> 
</span><span class="cx">     JSCell::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -110,9 +110,6 @@
</span><span class="cx"> {
</span><span class="cx">     RegExpConstructor* thisObject = jsCast&lt;RegExpConstructor*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     thisObject-&gt;m_cachedResult.visitChildren(visitor);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpConstructor.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpConstructor.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/RegExpConstructor.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> 
</span><span class="cx">     protected:
</span><span class="cx">         void finishCreation(VM&amp;, RegExpPrototype*);
</span><del>-        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesVisitChildren | Base::StructureFlags;
</del><ins>+        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         RegExpConstructor(VM&amp;, Structure*, RegExpPrototype*);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpMatchesArraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -61,9 +61,6 @@
</span><span class="cx"> {
</span><span class="cx">     RegExpMatchesArray* thisObject = jsCast&lt;RegExpMatchesArray*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_input);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_regExp);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpMatchesArrayh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     protected:
</span><span class="cx">         void finishCreation(VM&amp;);
</span><span class="cx"> 
</span><del>-        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesVisitChildren | OverridesGetPropertyNames | Base::StructureFlags;
</del><ins>+        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesGetPropertyNames | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         ALWAYS_INLINE void reifyAllPropertiesIfNecessary(ExecState* exec)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -81,9 +81,6 @@
</span><span class="cx"> {
</span><span class="cx">     RegExpObject* thisObject = jsCast&lt;RegExpObject*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
-
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_regExp);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_lastIndex);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpObject.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpObject.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/RegExpObject.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">         JS_EXPORT_PRIVATE RegExpObject(VM&amp;, Structure*, RegExp*);
</span><span class="cx">         JS_EXPORT_PRIVATE void finishCreation(VM&amp;);
</span><span class="cx"> 
</span><del>-        static const unsigned StructureFlags = OverridesVisitChildren | OverridesGetOwnPropertySlot | Base::StructureFlags;
</del><ins>+        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">         static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSparseArrayValueMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/SparseArrayValueMap.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/SparseArrayValueMap.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/SparseArrayValueMap.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">     
</span><span class="cx">     void finishCreation(VM&amp;);
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | StructureIsImmortal | JSCell::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = StructureIsImmortal | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx"> public:
</span><span class="cx">     DECLARE_EXPORT_INFO;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructurecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Structure.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Structure.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/Structure.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">     setStaticFunctionsReified(false);
</span><span class="cx">     setHasRareData(false);
</span><span class="cx">  
</span><del>-    TypeInfo typeInfo = TypeInfo(CellType, OverridesVisitChildren | StructureIsImmortal);
</del><ins>+    TypeInfo typeInfo = TypeInfo(CellType, StructureIsImmortal);
</ins><span class="cx">     m_blob = StructureIDBlob(vm.heap.structureIDTable().allocateID(this), 0, typeInfo);
</span><span class="cx">     m_outOfLineTypeFlags = typeInfo.outOfLineTypeFlags();
</span><span class="cx"> 
</span><span class="lines">@@ -1027,7 +1027,6 @@
</span><span class="cx"> {
</span><span class="cx">     Structure* thisObject = jsCast&lt;Structure*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx"> 
</span><span class="cx">     JSCell::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_globalObject);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructureChaincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StructureChain.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StructureChain.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/StructureChain.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -49,7 +49,6 @@
</span><span class="cx"> {
</span><span class="cx">     StructureChain* thisObject = jsCast&lt;StructureChain*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     size_t i = 0;
</span><span class="cx">     while (thisObject-&gt;m_vector[i])
</span><span class="cx">         visitor.append(&amp;thisObject-&gt;m_vector[i++]);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructureChainh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StructureChain.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StructureChain.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/StructureChain.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">         static void destroy(JSCell*);
</span><span class="cx"> 
</span><span class="cx">     protected:
</span><del>-        static const unsigned StructureFlags = OverridesVisitChildren | StructureIsImmortal;
</del><ins>+        static const unsigned StructureFlags = StructureIsImmortal;
</ins><span class="cx"> 
</span><span class="cx">         void finishCreation(VM&amp; vm, Structure* head)
</span><span class="cx">         {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructureRareDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StructureRareData.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StructureRareData.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/StructureRareData.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -73,7 +73,6 @@
</span><span class="cx"> {
</span><span class="cx">     StructureRareData* thisObject = jsCast&lt;StructureRareData*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx"> 
</span><span class="cx">     JSCell::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_previous);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructureRareDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StructureRareData.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StructureRareData.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/StructureRareData.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     StructureRareData(VM&amp;, Structure*);
</span><span class="cx">     StructureRareData(VM&amp;, const StructureRareData*);
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | JSCell::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = JSCell::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx">     WriteBarrier&lt;Structure&gt; m_previous;
</span><span class="cx">     WriteBarrier&lt;JSString&gt; m_objectToStringValue;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeWeakMapDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/WeakMapData.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/WeakMapData.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/JavaScriptCore/runtime/WeakMapData.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> 
</span><span class="cx">     DECLARE_INFO;
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = OverridesVisitChildren | StructureIsImmortal | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = StructureIsImmortal | Base::StructureFlags;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     WeakMapData(VM&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/ChangeLog        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2014-07-31  Andreas Kling  &lt;akling@apple.com&gt;
+
+        Remove the JSC::OverridesVisitChildren flag.
+        &lt;https://webkit.org/b/135489&gt;
+
+        Tweak the bindings code generator to stop spitting out the flag.
+
+        Reviewed by Geoffrey Garen.
+
+        * bindings/js/JSDOMBinding.h:
+        * bindings/js/JSDOMGlobalObject.cpp:
+        (WebCore::JSDOMGlobalObject::visitChildren):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateHeader):
+        (GenerateImplementation):
+
</ins><span class="cx"> 2014-08-01  Jer Noble  &lt;jer.noble@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [MSE][Mac] Volume is not remembered between items in a YouTube playlist
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    static const unsigned StructureFlags = JSC::ImplementsHasInstance | JSC::OverridesVisitChildren | JSDOMWrapper::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = JSC::ImplementsHasInstance | JSDOMWrapper::StructureFlags;
</ins><span class="cx">     DOMConstructorObject(JSC::Structure* structure, JSDOMGlobalObject* globalObject)
</span><span class="cx">         : JSDOMWrapper(structure, globalObject)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -87,8 +87,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSDOMGlobalObject* thisObject = jsCast&lt;JSDOMGlobalObject*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; structure : thisObject-&gt;structures().values())
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -1006,7 +1006,6 @@
</span><span class="cx">         push(@headerContent, &quot;    static void visitChildren(JSCell*, JSC::SlotVisitor&amp;);\n&quot;);
</span><span class="cx">         push(@headerContent, &quot;    void visitAdditionalChildren(JSC::SlotVisitor&amp;);\n&quot;) if $interface-&gt;extendedAttributes-&gt;{&quot;JSCustomMarkFunction&quot;};
</span><span class="cx">         push(@headerContent, &quot;\n&quot;);
</span><del>-        $structureFlags{&quot;JSC::OverridesVisitChildren&quot;} = 1;
</del><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if ($numCustomAttributes &gt; 0) {
</span><span class="lines">@@ -2863,8 +2862,6 @@
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    ${className}* thisObject = jsCast&lt;${className}*&gt;(cell);\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><del>-        push(@implContent, &quot;    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);\n&quot;);
-        push(@implContent, &quot;    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());\n&quot;);
</del><span class="cx">         push(@implContent, &quot;    Base::visitChildren(thisObject, visitor);\n&quot;);
</span><span class="cx">         if ($interface-&gt;extendedAttributes-&gt;{&quot;EventTarget&quot;} || $interface-&gt;name eq &quot;EventTarget&quot;) {
</span><span class="cx">             push(@implContent, &quot;    thisObject-&gt;impl().visitJSEventListeners(visitor);\n&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -307,8 +307,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSTestEventTarget* thisObject = jsCast&lt;JSTestEventTarget*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     thisObject-&gt;impl().visitJSEventListeners(visitor);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">         ASSERT(inherits(info()));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = JSC::HasImpureGetOwnPropertySlot | JSC::InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | JSC::MasqueradesAsUndefined | JSC::OverridesGetOwnPropertySlot | JSC::OverridesGetPropertyNames | JSC::OverridesVisitChildren | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = JSC::HasImpureGetOwnPropertySlot | JSC::InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | JSC::MasqueradesAsUndefined | JSC::OverridesGetOwnPropertySlot | JSC::OverridesGetPropertyNames | Base::StructureFlags;
</ins><span class="cx"> private:
</span><span class="cx">     static bool canGetItemsForName(JSC::ExecState*, TestEventTarget*, JSC::PropertyName);
</span><span class="cx">     static JSC::EncodedJSValue nameGetter(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -161,8 +161,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSTestNode* thisObject = jsCast&lt;JSTestNode*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     thisObject-&gt;impl().visitJSEventListeners(visitor);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -62,7 +62,6 @@
</span><span class="cx">         ASSERT(inherits(info()));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = JSC::OverridesVisitChildren | Base::StructureFlags;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -4378,8 +4378,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSTestObj* thisObject = jsCast&lt;JSTestObj*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_cachedAttribute1);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_cachedAttribute2);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">         ASSERT(inherits(info()));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = JSC::InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | JSC::OverridesGetOwnPropertySlot | JSC::OverridesVisitChildren | Base::StructureFlags;
</del><ins>+    static const unsigned StructureFlags = JSC::InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class JSTestObjOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -306,8 +306,6 @@
</span><span class="cx"> {
</span><span class="cx">     JSTestSerializedScriptValueInterface* thisObject = jsCast&lt;JSTestSerializedScriptValueInterface*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><del>-    COMPILE_ASSERT(StructureFlags &amp; OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
-    ASSERT(thisObject-&gt;structure()-&gt;typeInfo().overridesVisitChildren());
</del><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_cachedValue);
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_cachedReadonlyValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h (171938 => 171939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h        2014-08-01 18:54:28 UTC (rev 171938)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h        2014-08-01 18:57:39 UTC (rev 171939)
</span><span class="lines">@@ -77,7 +77,6 @@
</span><span class="cx">         ASSERT(inherits(info()));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static const unsigned StructureFlags = JSC::OverridesVisitChildren | Base::StructureFlags;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class JSTestSerializedScriptValueInterfaceOwner : public JSC::WeakHandleOwner {
</span></span></pre>
</div>
</div>

</body>
</html>