<!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>[205666] trunk/Source/JavaScriptCore</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/205666">205666</a></dd>
<dt>Author</dt> <dd>fpizlo@apple.com</dd>
<dt>Date</dt> <dd>2016-09-08 15:12:05 -0700 (Thu, 08 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove CopiedSpace and use MarkedSpace instead
https://bugs.webkit.org/show_bug.cgi?id=159658

Reviewed by Keith Miller.
        
This removes the final client of CopiedSpace, the overrides array of DirectArguments. That
is a simple change.
        
Then this stubs out some remaining internal debugging code that referenced CopiedSpace in
JSDollarVM and HeapVerifier. I filed FIXMEs to restore that debugging functionality.
        
The rest of this patch is deleting CopiedSpace.

* API/JSObjectRef.cpp:
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGOperations.cpp:
* heap/ConservativeRoots.cpp:
(JSC::ConservativeRoots::genericAddPointer):
* heap/CopiedAllocator.h: Removed.
* heap/CopiedBlock.cpp: Removed.
* heap/CopiedBlock.h: Removed.
* heap/CopiedBlockInlines.h: Removed.
* heap/CopiedSpace.cpp: Removed.
* heap/CopiedSpace.h: Removed.
* heap/CopiedSpaceInlines.h: Removed.
* heap/CopyBarrier.h: Removed.
* heap/CopyToken.h: Removed.
* heap/CopyVisitor.cpp: Removed.
* heap/CopyVisitor.h: Removed.
* heap/CopyVisitorInlines.h: Removed.
* heap/CopyWorkList.h: Removed.
* heap/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::isPagedOut):
(JSC::Heap::updateObjectCounts):
(JSC::Heap::size):
(JSC::Heap::capacity):
(JSC::Heap::collectImpl):
(JSC::Heap::stopAllocation):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::copyBackingStores): Deleted.
(JSC::Heap::threadBytesCopied): Deleted.
* heap/Heap.h:
(JSC::Heap::objectSpace):
(JSC::Heap::allocatorForAuxiliaryData):
(JSC::Heap::storageSpace): Deleted.
(JSC::Heap::storageAllocator): Deleted.
* heap/HeapCellInlines.h:
* heap/HeapInlines.h:
(JSC::Heap::tryAllocateStorage): Deleted.
(JSC::Heap::tryReallocateStorage): Deleted.
* heap/HeapVerifier.cpp:
(JSC::HeapVerifier::verifyButterflyIsInStorageSpace):
(JSC::HeapVerifier::reportObject):
(JSC::getButterflyDetails): Deleted.
* heap/SlotVisitor.cpp:
(JSC::SlotVisitor::copyLater): Deleted.
* heap/SlotVisitor.h:
* jit/AssemblyHelpers.h:
* jit/JITOpcodes.cpp:
* jsc.cpp:
* runtime/ArrayConstructor.cpp:
* runtime/ArrayPrototype.cpp:
* runtime/Butterfly.h:
* runtime/ButterflyInlines.h:
(JSC::Butterfly::createUninitializedDuringCollection): Deleted.
* runtime/ClassInfo.h:
* runtime/DirectArguments.cpp:
(JSC::DirectArguments::visitChildren):
(JSC::DirectArguments::overrideThings):
(JSC::DirectArguments::copyBackingStore): Deleted.
* runtime/DirectArguments.h:
* runtime/JSArray.cpp:
* runtime/JSCell.cpp:
(JSC::JSCell::copyBackingStore): Deleted.
* runtime/JSCell.h:
* runtime/JSLexicalEnvironment.h:
* runtime/JSObject.cpp:
* runtime/JSTypedArrays.cpp:
* runtime/LiteralParser.cpp:
* runtime/ObjectConstructor.cpp:
* runtime/RegExpObject.cpp:
* runtime/StringPrototype.cpp:
* runtime/WeakMapData.cpp:
* tools/JSDollarVMPrototype.cpp:
(JSC::JSDollarVMPrototype::isInStorageSpace):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreAPIJSObjectRefcpp">trunk/Source/JavaScriptCore/API/JSObjectRef.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreCMakeListstxt">trunk/Source/JavaScriptCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOperationscpp">trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapConservativeRootscpp">trunk/Source/JavaScriptCore/heap/ConservativeRoots.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeapcpp">trunk/Source/JavaScriptCore/heap/Heap.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeaph">trunk/Source/JavaScriptCore/heap/Heap.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeapCellInlinesh">trunk/Source/JavaScriptCore/heap/HeapCellInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeapInlinesh">trunk/Source/JavaScriptCore/heap/HeapInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapHeapVerifiercpp">trunk/Source/JavaScriptCore/heap/HeapVerifier.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapSlotVisitorcpp">trunk/Source/JavaScriptCore/heap/SlotVisitor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapSlotVisitorh">trunk/Source/JavaScriptCore/heap/SlotVisitor.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitAssemblyHelpersh">trunk/Source/JavaScriptCore/jit/AssemblyHelpers.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOpcodescpp">trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejsccpp">trunk/Source/JavaScriptCore/jsc.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArrayConstructorcpp">trunk/Source/JavaScriptCore/runtime/ArrayConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArrayPrototypecpp">trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeAuxiliaryBarrierh">trunk/Source/JavaScriptCore/runtime/AuxiliaryBarrier.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeButterflyh">trunk/Source/JavaScriptCore/runtime/Butterfly.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeButterflyInlinesh">trunk/Source/JavaScriptCore/runtime/ButterflyInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeClassInfoh">trunk/Source/JavaScriptCore/runtime/ClassInfo.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeDirectArgumentscpp">trunk/Source/JavaScriptCore/runtime/DirectArguments.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeDirectArgumentsh">trunk/Source/JavaScriptCore/runtime/DirectArguments.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArraycpp">trunk/Source/JavaScriptCore/runtime/JSArray.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCellcpp">trunk/Source/JavaScriptCore/runtime/JSCell.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCellh">trunk/Source/JavaScriptCore/runtime/JSCell.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSLexicalEnvironmenth">trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSObjectcpp">trunk/Source/JavaScriptCore/runtime/JSObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSTypedArrayscpp">trunk/Source/JavaScriptCore/runtime/JSTypedArrays.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeLiteralParsercpp">trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeObjectConstructorcpp">trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpObjectcpp">trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStringPrototypecpp">trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeWeakMapDatacpp">trunk/Source/JavaScriptCore/runtime/WeakMapData.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoretoolsJSDollarVMPrototypecpp">trunk/Source/JavaScriptCore/tools/JSDollarVMPrototype.cpp</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreheapCopiedAllocatorh">trunk/Source/JavaScriptCore/heap/CopiedAllocator.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopiedBlockcpp">trunk/Source/JavaScriptCore/heap/CopiedBlock.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopiedBlockh">trunk/Source/JavaScriptCore/heap/CopiedBlock.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopiedBlockInlinesh">trunk/Source/JavaScriptCore/heap/CopiedBlockInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopiedSpacecpp">trunk/Source/JavaScriptCore/heap/CopiedSpace.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopiedSpaceh">trunk/Source/JavaScriptCore/heap/CopiedSpace.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopiedSpaceInlinesh">trunk/Source/JavaScriptCore/heap/CopiedSpaceInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopyBarrierh">trunk/Source/JavaScriptCore/heap/CopyBarrier.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopyTokenh">trunk/Source/JavaScriptCore/heap/CopyToken.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopyVisitorcpp">trunk/Source/JavaScriptCore/heap/CopyVisitor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopyVisitorh">trunk/Source/JavaScriptCore/heap/CopyVisitor.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopyVisitorInlinesh">trunk/Source/JavaScriptCore/heap/CopyVisitorInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreheapCopyWorkListh">trunk/Source/JavaScriptCore/heap/CopyWorkList.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreAPIJSObjectRefcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSObjectRef.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSObjectRef.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/API/JSObjectRef.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;APIUtils.h&quot;
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;DateConstructor.h&quot;
</span><span class="cx"> #include &quot;ErrorConstructor.h&quot;
</span><span class="cx"> #include &quot;Exception.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -441,9 +441,6 @@
</span><span class="cx">     heap/AllocatorAttributes.cpp
</span><span class="cx">     heap/CodeBlockSet.cpp
</span><span class="cx">     heap/ConservativeRoots.cpp
</span><del>-    heap/CopiedBlock.cpp
-    heap/CopiedSpace.cpp
-    heap/CopyVisitor.cpp
</del><span class="cx">     heap/DeferGC.cpp
</span><span class="cx">     heap/DestructionMode.cpp
</span><span class="cx">     heap/EdenGCActivityCallback.cpp
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,5 +1,95 @@
</span><span class="cx"> 2016-09-08  Filip Pizlo  &lt;fpizlo@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Remove CopiedSpace and use MarkedSpace instead
+        https://bugs.webkit.org/show_bug.cgi?id=159658
+
+        Reviewed by Keith Miller.
+        
+        This removes the final client of CopiedSpace, the overrides array of DirectArguments. That
+        is a simple change.
+        
+        Then this stubs out some remaining internal debugging code that referenced CopiedSpace in
+        JSDollarVM and HeapVerifier. I filed FIXMEs to restore that debugging functionality.
+        
+        The rest of this patch is deleting CopiedSpace.
+
+        * API/JSObjectRef.cpp:
+        * CMakeLists.txt:
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+        * dfg/DFGOperations.cpp:
+        * heap/ConservativeRoots.cpp:
+        (JSC::ConservativeRoots::genericAddPointer):
+        * heap/CopiedAllocator.h: Removed.
+        * heap/CopiedBlock.cpp: Removed.
+        * heap/CopiedBlock.h: Removed.
+        * heap/CopiedBlockInlines.h: Removed.
+        * heap/CopiedSpace.cpp: Removed.
+        * heap/CopiedSpace.h: Removed.
+        * heap/CopiedSpaceInlines.h: Removed.
+        * heap/CopyBarrier.h: Removed.
+        * heap/CopyToken.h: Removed.
+        * heap/CopyVisitor.cpp: Removed.
+        * heap/CopyVisitor.h: Removed.
+        * heap/CopyVisitorInlines.h: Removed.
+        * heap/CopyWorkList.h: Removed.
+        * heap/Heap.cpp:
+        (JSC::Heap::Heap):
+        (JSC::Heap::isPagedOut):
+        (JSC::Heap::updateObjectCounts):
+        (JSC::Heap::size):
+        (JSC::Heap::capacity):
+        (JSC::Heap::collectImpl):
+        (JSC::Heap::stopAllocation):
+        (JSC::Heap::updateAllocationLimits):
+        (JSC::Heap::copyBackingStores): Deleted.
+        (JSC::Heap::threadBytesCopied): Deleted.
+        * heap/Heap.h:
+        (JSC::Heap::objectSpace):
+        (JSC::Heap::allocatorForAuxiliaryData):
+        (JSC::Heap::storageSpace): Deleted.
+        (JSC::Heap::storageAllocator): Deleted.
+        * heap/HeapCellInlines.h:
+        * heap/HeapInlines.h:
+        (JSC::Heap::tryAllocateStorage): Deleted.
+        (JSC::Heap::tryReallocateStorage): Deleted.
+        * heap/HeapVerifier.cpp:
+        (JSC::HeapVerifier::verifyButterflyIsInStorageSpace):
+        (JSC::HeapVerifier::reportObject):
+        (JSC::getButterflyDetails): Deleted.
+        * heap/SlotVisitor.cpp:
+        (JSC::SlotVisitor::copyLater): Deleted.
+        * heap/SlotVisitor.h:
+        * jit/AssemblyHelpers.h:
+        * jit/JITOpcodes.cpp:
+        * jsc.cpp:
+        * runtime/ArrayConstructor.cpp:
+        * runtime/ArrayPrototype.cpp:
+        * runtime/Butterfly.h:
+        * runtime/ButterflyInlines.h:
+        (JSC::Butterfly::createUninitializedDuringCollection): Deleted.
+        * runtime/ClassInfo.h:
+        * runtime/DirectArguments.cpp:
+        (JSC::DirectArguments::visitChildren):
+        (JSC::DirectArguments::overrideThings):
+        (JSC::DirectArguments::copyBackingStore): Deleted.
+        * runtime/DirectArguments.h:
+        * runtime/JSArray.cpp:
+        * runtime/JSCell.cpp:
+        (JSC::JSCell::copyBackingStore): Deleted.
+        * runtime/JSCell.h:
+        * runtime/JSLexicalEnvironment.h:
+        * runtime/JSObject.cpp:
+        * runtime/JSTypedArrays.cpp:
+        * runtime/LiteralParser.cpp:
+        * runtime/ObjectConstructor.cpp:
+        * runtime/RegExpObject.cpp:
+        * runtime/StringPrototype.cpp:
+        * runtime/WeakMapData.cpp:
+        * tools/JSDollarVMPrototype.cpp:
+        (JSC::JSDollarVMPrototype::isInStorageSpace):
+
+2016-09-08  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
</ins><span class="cx">         Heap version should be 32-bit
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=161751
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -408,7 +408,6 @@
</span><span class="cx">                 0F5874EE194FEB1200AAB2C1 /* DFGMayExit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5874EC194FEB1200AAB2C1 /* DFGMayExit.h */; };
</span><span class="cx">                 0F5A1273192D9FDF008764A3 /* DFGDoesGC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F5A1271192D9FDF008764A3 /* DFGDoesGC.cpp */; };
</span><span class="cx">                 0F5A1274192D9FDF008764A3 /* DFGDoesGC.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5A1272192D9FDF008764A3 /* DFGDoesGC.h */; };
</span><del>-                0F5A52D017ADD717008ECB2D /* CopyToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5A52CF17ADD717008ECB2D /* CopyToken.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 0F5A6283188C98D40072C9DF /* FTLValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F5A6281188C98D40072C9DF /* FTLValueRange.cpp */; };
</span><span class="cx">                 0F5A6284188C98D40072C9DF /* FTLValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5A6282188C98D40072C9DF /* FTLValueRange.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0F5B4A331C84F0D600F1B17E /* SlowPathReturnType.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5B4A321C84F0D600F1B17E /* SlowPathReturnType.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -496,7 +495,6 @@
</span><span class="cx">                 0F79085619A290B200F6310C /* DFGStructureRegistrationPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F79085419A290B200F6310C /* DFGStructureRegistrationPhase.h */; };
</span><span class="cx">                 0F7B294B14C3CD2F007C3DB1 /* DFGCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD82E1F14172C2F00179C94 /* DFGCapabilities.h */; };
</span><span class="cx">                 0F7B294D14C3CD4C007C3DB1 /* DFGCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FC0977E1469EBC400CF2442 /* DFGCommon.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                0F7C11AD1BC3862C00C74CDB /* CopyBarrier.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7C11AC1BC3862C00C74CDB /* CopyBarrier.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 0F7C39FB1C8F629300480151 /* RegExpInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7C39FA1C8F629300480151 /* RegExpInlines.h */; };
</span><span class="cx">                 0F7C39FD1C8F659500480151 /* RegExpObjectInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7C39FC1C8F659500480151 /* RegExpObjectInlines.h */; };
</span><span class="cx">                 0F7C39FF1C90C55B00480151 /* DFGOpInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7C39FE1C90C55B00480151 /* DFGOpInfo.h */; };
</span><span class="lines">@@ -626,7 +624,6 @@
</span><span class="cx">                 0FB7F39C15ED8E4600F167B2 /* PropertyStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FB7F39015ED8E3800F167B2 /* PropertyStorage.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0FB7F39D15ED8E4600F167B2 /* Reject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FB7F39115ED8E3800F167B2 /* Reject.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0FB7F39E15ED8E4600F167B2 /* SparseArrayValueMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FB7F39215ED8E3800F167B2 /* SparseArrayValueMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                0FBADF541BD1F4B800E073C1 /* CopiedBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FBADF531BD1F4B800E073C1 /* CopiedBlock.cpp */; };
</del><span class="cx">                 0FBC0AE71496C7C400D4FBDD /* DFGExitProfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FBC0AE41496C7C100D4FBDD /* DFGExitProfile.cpp */; };
</span><span class="cx">                 0FBC0AE81496C7C700D4FBDD /* DFGExitProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FBC0AE51496C7C100D4FBDD /* DFGExitProfile.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0FBD7E691447999600481315 /* CodeOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FBD7E671447998F00481315 /* CodeOrigin.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1965,13 +1962,8 @@
</span><span class="cx">                 C20BA92D16BB1C1500B3AEA2 /* StructureRareDataInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = C20BA92C16BB1C1500B3AEA2 /* StructureRareDataInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 C2160FE715F7E95E00942DFC /* SlotVisitorInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCB408515C0A3C30048932B /* SlotVisitorInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 C2181FC218A948FB0025A235 /* JSExportTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = C2181FC118A948FB0025A235 /* JSExportTests.mm */; };
</span><del>-                C218D1401655CFD50062BB81 /* CopyWorkList.h in Headers */ = {isa = PBXBuildFile; fileRef = C218D13F1655CFD50062BB81 /* CopyWorkList.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                C2239D1716262BDD005AC5FD /* CopyVisitor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2239D1216262BDD005AC5FD /* CopyVisitor.cpp */; };
-                C2239D1816262BDD005AC5FD /* CopyVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = C2239D1316262BDD005AC5FD /* CopyVisitor.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                C2239D1916262BDD005AC5FD /* CopyVisitorInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = C2239D1416262BDD005AC5FD /* CopyVisitorInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 C225494315F7DBAA0065E898 /* SlotVisitor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C225494215F7DBAA0065E898 /* SlotVisitor.cpp */; };
</span><span class="cx">                 C22B31B9140577D700DB475A /* SamplingCounter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F77008E1402FDD60078EB39 /* SamplingCounter.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                C240305514B404E60079EB64 /* CopiedSpace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C240305314B404C90079EB64 /* CopiedSpace.cpp */; };
</del><span class="cx">                 C24D31E2161CD695002AA4DB /* HeapStatistics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C24D31E0161CD695002AA4DB /* HeapStatistics.cpp */; };
</span><span class="cx">                 C24D31E3161CD695002AA4DB /* HeapStatistics.h in Headers */ = {isa = PBXBuildFile; fileRef = C24D31E1161CD695002AA4DB /* HeapStatistics.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 C25D709B16DE99F400FCA6BC /* JSManagedValue.mm in Sources */ = {isa = PBXBuildFile; fileRef = C25D709916DE99F400FCA6BC /* JSManagedValue.mm */; };
</span><span class="lines">@@ -1990,17 +1982,12 @@
</span><span class="cx">                 C2B916C514DA040C00CBAC86 /* MarkedAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2B916C414DA040C00CBAC86 /* MarkedAllocator.cpp */; };
</span><span class="cx">                 C2C0F7CD17BBFC5B00464FE4 /* DFGDesiredTransitions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2C0F7CB17BBFC5B00464FE4 /* DFGDesiredTransitions.cpp */; };
</span><span class="cx">                 C2C0F7CE17BBFC5B00464FE4 /* DFGDesiredTransitions.h in Headers */ = {isa = PBXBuildFile; fileRef = C2C0F7CC17BBFC5B00464FE4 /* DFGDesiredTransitions.h */; };
</span><del>-                C2C8D02D14A3C6E000578E65 /* CopiedSpaceInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = C2C8D02B14A3C6B200578E65 /* CopiedSpaceInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                C2C8D03014A3CEFC00578E65 /* CopiedBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = C2C8D02E14A3CEFC00578E65 /* CopiedBlock.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 C2CF39C116E15A8100DD69BE /* JSAPIWrapperObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = C2CF39BF16E15A8100DD69BE /* JSAPIWrapperObject.mm */; };
</span><span class="cx">                 C2CF39C216E15A8100DD69BE /* JSAPIWrapperObject.h in Headers */ = {isa = PBXBuildFile; fileRef = C2CF39C016E15A8100DD69BE /* JSAPIWrapperObject.h */; };
</span><span class="cx">                 C2DA778318E259990066FCB6 /* HeapInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = C2DA778218E259990066FCB6 /* HeapInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 C2E526BD1590EF000054E48D /* HeapTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2E526BB1590EF000054E48D /* HeapTimer.cpp */; };
</span><span class="cx">                 C2E526BE1590EF000054E48D /* HeapTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = C2E526BC1590EF000054E48D /* HeapTimer.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                C2EAA3FA149A835E00FCE112 /* CopiedSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = C2EAA3F8149A830800FCE112 /* CopiedSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                C2EAD2FC14F0249800A4B159 /* CopiedAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = C2EAD2FB14F0249800A4B159 /* CopiedAllocator.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 C2F0F2D116BAEEE900187C19 /* StructureRareData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2F0F2D016BAEEE900187C19 /* StructureRareData.cpp */; };
</span><del>-                C2FC9BD316644DFB00810D33 /* CopiedBlockInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = C2FC9BD216644DFB00810D33 /* CopiedBlockInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 C2FCAE1017A9C24E0034C735 /* BytecodeBasicBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2FCAE0C17A9C24E0034C735 /* BytecodeBasicBlock.cpp */; };
</span><span class="cx">                 C2FCAE1117A9C24E0034C735 /* BytecodeBasicBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = C2FCAE0D17A9C24E0034C735 /* BytecodeBasicBlock.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 C2FCAE1217A9C24E0034C735 /* BytecodeLivenessAnalysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2FCAE0E17A9C24E0034C735 /* BytecodeLivenessAnalysis.cpp */; };
</span><span class="lines">@@ -2654,7 +2641,6 @@
</span><span class="cx">                 0F5874EC194FEB1200AAB2C1 /* DFGMayExit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGMayExit.h; path = dfg/DFGMayExit.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F5A1271192D9FDF008764A3 /* DFGDoesGC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGDoesGC.cpp; path = dfg/DFGDoesGC.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F5A1272192D9FDF008764A3 /* DFGDoesGC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGDoesGC.h; path = dfg/DFGDoesGC.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                0F5A52CF17ADD717008ECB2D /* CopyToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopyToken.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 0F5A6281188C98D40072C9DF /* FTLValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FTLValueRange.cpp; path = ftl/FTLValueRange.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F5A6282188C98D40072C9DF /* FTLValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FTLValueRange.h; path = ftl/FTLValueRange.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F5B4A321C84F0D600F1B17E /* SlowPathReturnType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SlowPathReturnType.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -2742,7 +2728,6 @@
</span><span class="cx">                 0F7700911402FF280078EB39 /* SamplingCounter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SamplingCounter.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F79085319A290B200F6310C /* DFGStructureRegistrationPhase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGStructureRegistrationPhase.cpp; path = dfg/DFGStructureRegistrationPhase.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F79085419A290B200F6310C /* DFGStructureRegistrationPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGStructureRegistrationPhase.h; path = dfg/DFGStructureRegistrationPhase.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                0F7C11AC1BC3862C00C74CDB /* CopyBarrier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopyBarrier.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 0F7C39FA1C8F629300480151 /* RegExpInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegExpInlines.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F7C39FC1C8F659500480151 /* RegExpObjectInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegExpObjectInlines.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F7C39FE1C90C55B00480151 /* DFGOpInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGOpInfo.h; path = dfg/DFGOpInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -2881,7 +2866,6 @@
</span><span class="cx">                 0FB7F39015ED8E3800F167B2 /* PropertyStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PropertyStorage.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0FB7F39115ED8E3800F167B2 /* Reject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reject.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0FB7F39215ED8E3800F167B2 /* SparseArrayValueMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SparseArrayValueMap.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                0FBADF531BD1F4B800E073C1 /* CopiedBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CopiedBlock.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 0FBC0AE41496C7C100D4FBDD /* DFGExitProfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DFGExitProfile.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0FBC0AE51496C7C100D4FBDD /* DFGExitProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DFGExitProfile.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0FBD7E671447998F00481315 /* CodeOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodeOrigin.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -4250,12 +4234,7 @@
</span><span class="cx">                 C211B574176A224D000E2A23 /* APICallbackFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APICallbackFunction.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2181FC018A948FB0025A235 /* JSExportTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSExportTests.h; path = API/tests/JSExportTests.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2181FC118A948FB0025A235 /* JSExportTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = JSExportTests.mm; path = API/tests/JSExportTests.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                C218D13F1655CFD50062BB81 /* CopyWorkList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopyWorkList.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                C2239D1216262BDD005AC5FD /* CopyVisitor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CopyVisitor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                C2239D1316262BDD005AC5FD /* CopyVisitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopyVisitor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                C2239D1416262BDD005AC5FD /* CopyVisitorInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopyVisitorInlines.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 C225494215F7DBAA0065E898 /* SlotVisitor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SlotVisitor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                C240305314B404C90079EB64 /* CopiedSpace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CopiedSpace.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 C24D31E0161CD695002AA4DB /* HeapStatistics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeapStatistics.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C24D31E1161CD695002AA4DB /* HeapStatistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeapStatistics.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C25D709916DE99F400FCA6BC /* JSManagedValue.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = JSManagedValue.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -4276,17 +4255,12 @@
</span><span class="cx">                 C2B916C414DA040C00CBAC86 /* MarkedAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MarkedAllocator.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2C0F7CB17BBFC5B00464FE4 /* DFGDesiredTransitions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGDesiredTransitions.cpp; path = dfg/DFGDesiredTransitions.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2C0F7CC17BBFC5B00464FE4 /* DFGDesiredTransitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGDesiredTransitions.h; path = dfg/DFGDesiredTransitions.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                C2C8D02B14A3C6B200578E65 /* CopiedSpaceInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopiedSpaceInlines.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                C2C8D02E14A3CEFC00578E65 /* CopiedBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopiedBlock.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 C2CF39BF16E15A8100DD69BE /* JSAPIWrapperObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = JSAPIWrapperObject.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2CF39C016E15A8100DD69BE /* JSAPIWrapperObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAPIWrapperObject.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2DA778218E259990066FCB6 /* HeapInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeapInlines.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2E526BB1590EF000054E48D /* HeapTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeapTimer.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2E526BC1590EF000054E48D /* HeapTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeapTimer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                C2EAA3F8149A830800FCE112 /* CopiedSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopiedSpace.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                C2EAD2FB14F0249800A4B159 /* CopiedAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopiedAllocator.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 C2F0F2D016BAEEE900187C19 /* StructureRareData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StructureRareData.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                C2FC9BD216644DFB00810D33 /* CopiedBlockInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CopiedBlockInlines.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 C2FCAE0C17A9C24E0034C735 /* BytecodeBasicBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BytecodeBasicBlock.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2FCAE0D17A9C24E0034C735 /* BytecodeBasicBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BytecodeBasicBlock.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 C2FCAE0E17A9C24E0034C735 /* BytecodeLivenessAnalysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BytecodeLivenessAnalysis.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -5290,19 +5264,6 @@
</span><span class="cx">                                 0FD8A31217D4326C00CA2C40 /* CodeBlockSet.h */,
</span><span class="cx">                                 146B14DB12EB5B12001BEC1B /* ConservativeRoots.cpp */,
</span><span class="cx">                                 149DAAF212EB559D0083B12B /* ConservativeRoots.h */,
</span><del>-                                C2EAD2FB14F0249800A4B159 /* CopiedAllocator.h */,
-                                0FBADF531BD1F4B800E073C1 /* CopiedBlock.cpp */,
-                                C2C8D02E14A3CEFC00578E65 /* CopiedBlock.h */,
-                                C2FC9BD216644DFB00810D33 /* CopiedBlockInlines.h */,
-                                C240305314B404C90079EB64 /* CopiedSpace.cpp */,
-                                C2EAA3F8149A830800FCE112 /* CopiedSpace.h */,
-                                C2C8D02B14A3C6B200578E65 /* CopiedSpaceInlines.h */,
-                                0F7C11AC1BC3862C00C74CDB /* CopyBarrier.h */,
-                                0F5A52CF17ADD717008ECB2D /* CopyToken.h */,
-                                C2239D1216262BDD005AC5FD /* CopyVisitor.cpp */,
-                                C2239D1316262BDD005AC5FD /* CopyVisitor.h */,
-                                C2239D1416262BDD005AC5FD /* CopyVisitorInlines.h */,
-                                C218D13F1655CFD50062BB81 /* CopyWorkList.h */,
</del><span class="cx">                                 2A7A58EE1808A4C40020BDF7 /* DeferGC.cpp */,
</span><span class="cx">                                 0F136D4B174AD69B0075B354 /* DeferGC.h */,
</span><span class="cx">                                 0F9630371D4192C3005609D9 /* DestructionMode.cpp */,
</span><span class="lines">@@ -7393,17 +7354,7 @@
</span><span class="cx">                                 BC18C3F60E16F5CD00B34460 /* ConstructData.h in Headers */,
</span><span class="cx">                                 A57D23F21891B5B40031C7FA /* ContentSearchUtilities.h in Headers */,
</span><span class="cx">                                 52678F911A04177C006A306D /* ControlFlowProfiler.h in Headers */,
</span><del>-                                C2EAD2FC14F0249800A4B159 /* CopiedAllocator.h in Headers */,
-                                C2C8D03014A3CEFC00578E65 /* CopiedBlock.h in Headers */,
-                                C2FC9BD316644DFB00810D33 /* CopiedBlockInlines.h in Headers */,
-                                C2EAA3FA149A835E00FCE112 /* CopiedSpace.h in Headers */,
-                                C2C8D02D14A3C6E000578E65 /* CopiedSpaceInlines.h in Headers */,
-                                0F7C11AD1BC3862C00C74CDB /* CopyBarrier.h in Headers */,
-                                0F5A52D017ADD717008ECB2D /* CopyToken.h in Headers */,
-                                C2239D1816262BDD005AC5FD /* CopyVisitor.h in Headers */,
</del><span class="cx">                                 53486BB71C1795C300F6F3AF /* JSTypedArray.h in Headers */,
</span><del>-                                C2239D1916262BDD005AC5FD /* CopyVisitorInlines.h in Headers */,
-                                C218D1401655CFD50062BB81 /* CopyWorkList.h in Headers */,
</del><span class="cx">                                 C4F4B6F41A05C944005CAB76 /* cpp_generator.py in Headers */,
</span><span class="cx">                                 0F338E1C1BF286EA0013C88F /* B3BlockInsertionSet.h in Headers */,
</span><span class="cx">                                 0F9495881C57F47500413A48 /* B3StackSlot.h in Headers */,
</span><span class="lines">@@ -9045,11 +8996,8 @@
</span><span class="cx">                                 1428082E107EC0570013E7B2 /* ConstructData.cpp in Sources */,
</span><span class="cx">                                 A57D23F11891B5B40031C7FA /* ContentSearchUtilities.cpp in Sources */,
</span><span class="cx">                                 52B717B51A0597E1007AF4F3 /* ControlFlowProfiler.cpp in Sources */,
</span><del>-                                0FBADF541BD1F4B800E073C1 /* CopiedBlock.cpp in Sources */,
</del><span class="cx">                                 A5FC84B31D1DDAD9006B5C46 /* DebuggerLocation.cpp in Sources */,
</span><del>-                                C240305514B404E60079EB64 /* CopiedSpace.cpp in Sources */,
</del><span class="cx">                                 0F6183301C45BF070072450B /* AirLowerMacros.cpp in Sources */,
</span><del>-                                C2239D1716262BDD005AC5FD /* CopyVisitor.cpp in Sources */,
</del><span class="cx">                                 2A111245192FCE79005EE18D /* CustomGetterSetter.cpp in Sources */,
</span><span class="cx">                                 62E3D5F01B8D0B7300B868BB /* DataFormat.cpp in Sources */,
</span><span class="cx">                                 0F2B66DE17B6B5AB00A7AE3F /* DataView.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include &quot;ClonedArguments.h&quot;
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><span class="cx"> #include &quot;CommonSlowPaths.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;DFGDriver.h&quot;
</span><span class="cx"> #include &quot;DFGJITCode.h&quot;
</span><span class="cx"> #include &quot;DFGOSRExit.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapConservativeRootscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/ConservativeRoots.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/ConservativeRoots.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/ConservativeRoots.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -28,8 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><span class="cx"> #include &quot;CodeBlockSet.h&quot;
</span><del>-#include &quot;CopiedSpace.h&quot;
-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;HeapInlines.h&quot;
</span><span class="cx"> #include &quot;HeapUtil.h&quot;
</span><span class="cx"> #include &quot;JITStubRoutineSet.h&quot;
</span><span class="lines">@@ -71,8 +69,6 @@
</span><span class="cx"> {
</span><span class="cx">     markHook.mark(p);
</span><span class="cx"> 
</span><del>-    m_heap.storageSpace().pinIfNecessary(p);
-
</del><span class="cx">     HeapUtil::findGCObjectPointersForMarking(
</span><span class="cx">         m_heap, version, filter, p,
</span><span class="cx">         [&amp;] (void* p) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopiedAllocatorh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopiedAllocator.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopiedAllocator.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopiedAllocator.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,165 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifndef CopiedAllocator_h
-#define CopiedAllocator_h
-
-#include &quot;CopiedBlock.h&quot;
-#include &lt;wtf/CheckedBoolean.h&gt;
-
-namespace JSC {
-
-class CopiedAllocator {
-public:
-    CopiedAllocator();
-    
-    bool fastPathShouldSucceed(size_t bytes) const;
-    CheckedBoolean tryAllocate(size_t bytes, void** outPtr);
-    CheckedBoolean tryAllocateDuringCopying(size_t bytes, void** outPtr);
-    CheckedBoolean tryReallocate(void *oldPtr, size_t oldBytes, size_t newBytes);
-    void* forceAllocate(size_t bytes);
-    CopiedBlock* resetCurrentBlock();
-    void setCurrentBlock(CopiedBlock*);
-    size_t currentCapacity();
-    
-    bool isValid() const { return !!m_currentBlock; }
-
-    CopiedBlock* currentBlock() { return m_currentBlock; }
-
-    // Yes, these are public. No, that doesn't mean you can play with them.
-    // If I had made them private then I'd have to list off all of the JIT
-    // classes and functions that are entitled to modify these directly, and
-    // that would have been gross.
-    size_t m_currentRemaining;
-    char* m_currentPayloadEnd;
-    CopiedBlock* m_currentBlock; 
-};
-
-inline CopiedAllocator::CopiedAllocator()
-    : m_currentRemaining(0)
-    , m_currentPayloadEnd(0)
-    , m_currentBlock(0)
-{
-}
-
-inline bool CopiedAllocator::fastPathShouldSucceed(size_t bytes) const
-{
-    ASSERT(is8ByteAligned(reinterpret_cast&lt;void*&gt;(bytes)));
-    
-    return bytes &lt;= m_currentRemaining;
-}
-
-inline CheckedBoolean CopiedAllocator::tryAllocate(size_t bytes, void** outPtr)
-{
-    ASSERT(is8ByteAligned(reinterpret_cast&lt;void*&gt;(bytes)));
-    
-    // This code is written in a gratuitously low-level manner, in order to
-    // serve as a kind of template for what the JIT would do. Note that the
-    // way it's written it ought to only require one register, which doubles
-    // as the result, provided that the compiler does a minimal amount of
-    // control flow simplification and the bytes argument is a constant.
-    
-    size_t currentRemaining = m_currentRemaining;
-    if (bytes &gt; currentRemaining)
-        return false;
-    currentRemaining -= bytes;
-    m_currentRemaining = currentRemaining;
-    *outPtr = m_currentPayloadEnd - currentRemaining - bytes;
-
-    ASSERT(is8ByteAligned(*outPtr));
-
-    return true;
-}
-
-inline CheckedBoolean CopiedAllocator::tryAllocateDuringCopying(size_t bytes, void** outPtr)
-{
-    if (!tryAllocate(bytes, outPtr))
-        return false;
-    m_currentBlock-&gt;reportLiveBytesDuringCopying(bytes);
-    return true;
-}
-
-inline CheckedBoolean CopiedAllocator::tryReallocate(
-    void* oldPtr, size_t oldBytes, size_t newBytes)
-{
-    ASSERT(is8ByteAligned(oldPtr));
-    ASSERT(is8ByteAligned(reinterpret_cast&lt;void*&gt;(oldBytes)));
-    ASSERT(is8ByteAligned(reinterpret_cast&lt;void*&gt;(newBytes)));
-    
-    ASSERT(newBytes &gt; oldBytes);
-    
-    size_t additionalBytes = newBytes - oldBytes;
-    
-    size_t currentRemaining = m_currentRemaining;
-    if (m_currentPayloadEnd - currentRemaining - oldBytes != static_cast&lt;char*&gt;(oldPtr))
-        return false;
-    
-    if (additionalBytes &gt; currentRemaining)
-        return false;
-    
-    m_currentRemaining = currentRemaining - additionalBytes;
-    
-    return true;
-}
-
-inline void* CopiedAllocator::forceAllocate(size_t bytes)
-{
-    void* result = 0; // Needed because compilers don't realize this will always be assigned.
-    CheckedBoolean didSucceed = tryAllocate(bytes, &amp;result);
-    ASSERT(didSucceed);
-    return result;
-}
-
-inline CopiedBlock* CopiedAllocator::resetCurrentBlock()
-{
-    CopiedBlock* result = m_currentBlock;
-    if (result) {
-        result-&gt;m_remaining = m_currentRemaining;
-        m_currentBlock = 0;
-        m_currentRemaining = 0;
-        m_currentPayloadEnd = 0;
-    }
-    return result;
-}
-
-inline void CopiedAllocator::setCurrentBlock(CopiedBlock* newBlock)
-{
-    ASSERT(!m_currentBlock);
-    m_currentBlock = newBlock;
-    ASSERT(newBlock);
-    m_currentRemaining = newBlock-&gt;m_remaining;
-    m_currentPayloadEnd = newBlock-&gt;payloadEnd();
-}
-
-inline size_t CopiedAllocator::currentCapacity()
-{
-    if (!m_currentBlock)
-        return 0;
-    return m_currentBlock-&gt;capacity();
-}
-
-} // namespace JSC
-
-#endif
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopiedBlockcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopiedBlock.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopiedBlock.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopiedBlock.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,94 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#include &quot;config.h&quot;
-#include &quot;CopiedBlock.h&quot;
-
-#include &quot;JSCInlines.h&quot;
-
-namespace JSC {
-
-static const bool computeBalance = false;
-static size_t balance;
-
-CopiedBlock* CopiedBlock::createNoZeroFill(Heap&amp; heap, size_t capacity)
-{
-    if (computeBalance) {
-        balance++;
-        if (!(balance % 10))
-            dataLog(&quot;CopiedBlock Balance: &quot;, balance, &quot;\n&quot;);
-    }
-    CopiedBlock* block = new (NotNull, fastAlignedMalloc(CopiedBlock::blockSize, capacity)) CopiedBlock(capacity);
-    heap.didAllocateBlock(capacity);
-    return block;
-}
-
-void CopiedBlock::destroy(Heap&amp; heap, CopiedBlock* copiedBlock)
-{
-    if (computeBalance) {
-        balance--;
-        if (!(balance % 10))
-            dataLog(&quot;CopiedBlock Balance: &quot;, balance, &quot;\n&quot;);
-    }
-    size_t capacity = copiedBlock-&gt;capacity();
-    copiedBlock-&gt;~CopiedBlock();
-    fastAlignedFree(copiedBlock);
-    heap.didFreeBlock(capacity);
-}
-
-CopiedBlock* CopiedBlock::create(Heap&amp; heap, size_t capacity)
-{
-    CopiedBlock* newBlock = createNoZeroFill(heap, capacity);
-    newBlock-&gt;zeroFillWilderness();
-    return newBlock;
-}
-
-void CopiedBlock::zeroFillWilderness()
-{
-#if USE(JSVALUE64)
-    memset(wilderness(), 0, wildernessSize());
-#else
-    JSValue emptyValue;
-    JSValue* limit = reinterpret_cast_ptr&lt;JSValue*&gt;(wildernessEnd());
-    for (JSValue* currentValue = reinterpret_cast_ptr&lt;JSValue*&gt;(wilderness()); currentValue &lt; limit; currentValue++)
-        *currentValue = emptyValue;
-#endif
-}
-
-CopiedBlock::CopiedBlock(size_t capacity)
-    : DoublyLinkedListNode&lt;CopiedBlock&gt;()
-    , m_capacity(capacity)
-    , m_remaining(payloadCapacity())
-    , m_isPinned(false)
-    , m_isOld(false)
-    , m_liveBytes(0)
-#ifndef NDEBUG
-    , m_liveObjects(0)
-#endif
-{
-    ASSERT(is8ByteAligned(reinterpret_cast&lt;void*&gt;(m_remaining)));
-}
-
-} // namespace JSC
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopiedBlockh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopiedBlock.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopiedBlock.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopiedBlock.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,253 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011, 2015 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifndef CopiedBlock_h
-#define CopiedBlock_h
-
-#include &quot;CopyWorkList.h&quot;
-#include &quot;JSCJSValue.h&quot;
-#include &quot;Options.h&quot;
-#include &lt;wtf/DoublyLinkedList.h&gt;
-#include &lt;wtf/Lock.h&gt;
-
-namespace JSC {
-
-class CopiedSpace;
-
-class CopiedBlock : public DoublyLinkedListNode&lt;CopiedBlock&gt; {
-    friend class WTF::DoublyLinkedListNode&lt;CopiedBlock&gt;;
-    friend class CopiedSpace;
-    friend class CopiedAllocator;
-public:
-    static CopiedBlock* create(Heap&amp;, size_t = blockSize);
-    static CopiedBlock* createNoZeroFill(Heap&amp;, size_t = blockSize);
-    static void destroy(Heap&amp;, CopiedBlock*);
-
-    void pin();
-    bool isPinned();
-
-    bool isOld();
-    bool isOversize();
-    void didPromote();
-
-    unsigned liveBytes();
-    void reportLiveBytes(LockHolder&amp;, JSCell*, CopyToken, unsigned);
-    void reportLiveBytesDuringCopying(unsigned);
-    void didSurviveGC();
-    void didEvacuateBytes(unsigned);
-    bool shouldEvacuate();
-    bool canBeRecycled();
-
-    // The payload is the region of the block that is usable for allocations.
-    char* payload();
-    char* payloadEnd();
-    size_t payloadCapacity();
-    
-    // The data is the region of the block that has been used for allocations.
-    char* data();
-    char* dataEnd();
-    size_t dataSize();
-    
-    // The wilderness is the region of the block that is usable for allocations
-    // but has not been so used.
-    char* wilderness();
-    char* wildernessEnd();
-    size_t wildernessSize();
-    
-    size_t size();
-    size_t capacity();
-
-    static const size_t blockSize = 64 * KB;
-
-    bool hasWorkList();
-    CopyWorkList&amp; workList();
-    Lock&amp; workListLock() { return m_workListLock; }
-
-private:
-    CopiedBlock(size_t);
-    void zeroFillWilderness(); // Can be called at any time to zero-fill to the end of the block.
-
-    void checkConsistency();
-
-    CopiedBlock* m_prev;
-    CopiedBlock* m_next;
-
-    size_t m_capacity;
-
-    Lock m_workListLock;
-    std::unique_ptr&lt;CopyWorkList&gt; m_workList;
-
-    size_t m_remaining;
-    bool m_isPinned : 1;
-    bool m_isOld : 1;
-    unsigned m_liveBytes;
-#ifndef NDEBUG
-    unsigned m_liveObjects;
-#endif
-};
-
-inline void CopiedBlock::didSurviveGC()
-{
-    checkConsistency();
-    ASSERT(isOld());
-    m_liveBytes = 0;
-#ifndef NDEBUG
-    m_liveObjects = 0;
-#endif
-    m_isPinned = false;
-    if (m_workList)
-        m_workList = nullptr;
-}
-
-inline void CopiedBlock::didEvacuateBytes(unsigned bytes)
-{
-    ASSERT(m_liveBytes &gt;= bytes);
-    ASSERT(m_liveObjects);
-    checkConsistency();
-    m_liveBytes -= bytes;
-#ifndef NDEBUG
-    m_liveObjects--;
-#endif
-    checkConsistency();
-}
-
-inline bool CopiedBlock::canBeRecycled()
-{
-    checkConsistency();
-    return !m_liveBytes;
-}
-
-inline bool CopiedBlock::shouldEvacuate()
-{
-    checkConsistency();
-    return static_cast&lt;double&gt;(m_liveBytes) / static_cast&lt;double&gt;(payloadCapacity()) &lt;= Options::minCopiedBlockUtilization();
-}
-
-inline void CopiedBlock::pin()
-{
-    m_isPinned = true;
-    if (m_workList)
-        m_workList = nullptr;
-}
-
-inline bool CopiedBlock::isPinned()
-{
-    return m_isPinned;
-}
-
-inline bool CopiedBlock::isOld()
-{
-    return m_isOld;
-}
-
-inline void CopiedBlock::didPromote()
-{
-    m_isOld = true;
-}
-
-inline bool CopiedBlock::isOversize()
-{
-    return m_capacity != blockSize;
-}
-
-inline unsigned CopiedBlock::liveBytes()
-{
-    checkConsistency();
-    return m_liveBytes;
-}
-
-inline char* CopiedBlock::payload()
-{
-    return reinterpret_cast&lt;char*&gt;(this) + WTF::roundUpToMultipleOf&lt;sizeof(double)&gt;(sizeof(CopiedBlock));
-}
-
-inline char* CopiedBlock::payloadEnd()
-{
-    return reinterpret_cast&lt;char*&gt;(this) + m_capacity;
-}
-
-inline size_t CopiedBlock::payloadCapacity()
-{
-    return payloadEnd() - payload();
-}
-
-inline char* CopiedBlock::data()
-{
-    return payload();
-}
-
-inline char* CopiedBlock::dataEnd()
-{
-    return payloadEnd() - m_remaining;
-}
-
-inline size_t CopiedBlock::dataSize()
-{
-    return dataEnd() - data();
-}
-
-inline char* CopiedBlock::wilderness()
-{
-    return dataEnd();
-}
-
-inline char* CopiedBlock::wildernessEnd()
-{
-    return payloadEnd();
-}
-
-inline size_t CopiedBlock::wildernessSize()
-{
-    return wildernessEnd() - wilderness();
-}
-
-inline size_t CopiedBlock::size()
-{
-    return dataSize();
-}
-
-inline size_t CopiedBlock::capacity()
-{
-    return m_capacity;
-}
-
-inline bool CopiedBlock::hasWorkList()
-{
-    return !!m_workList;
-}
-
-inline CopyWorkList&amp; CopiedBlock::workList()
-{
-    return *m_workList;
-}
-
-inline void CopiedBlock::checkConsistency()
-{
-    ASSERT(!!m_liveBytes == !!m_liveObjects);
-}
-
-} // namespace JSC
-
-#endif
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopiedBlockInlinesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopiedBlockInlines.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopiedBlockInlines.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopiedBlockInlines.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, 2013, 2015 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CopiedBlockInlines_h
-#define CopiedBlockInlines_h
-
-#include &quot;CopiedBlock.h&quot;
-#include &quot;Heap.h&quot;
-
-namespace JSC {
-
-inline void CopiedBlock::reportLiveBytes(LockHolder&amp;, JSCell* owner, CopyToken token, unsigned bytes)
-{
-    checkConsistency();
-#ifndef NDEBUG
-    m_liveObjects++;
-#endif
-    m_liveBytes += bytes;
-    checkConsistency();
-    ASSERT(m_liveBytes &lt;= m_capacity);
-
-    if (isPinned())
-        return;
-
-    if (!shouldEvacuate()) {
-        pin();
-        return;
-    }
-
-    if (!m_workList)
-        m_workList = std::make_unique&lt;CopyWorkList&gt;();
-
-    m_workList-&gt;append(CopyWorklistItem(owner, token));
-}
-
-inline void CopiedBlock::reportLiveBytesDuringCopying(unsigned bytes)
-{
-    checkConsistency();
-    // This doesn't need to be locked because the thread that calls this function owns the current block.
-    m_isOld = true;
-#ifndef NDEBUG
-    m_liveObjects++;
-#endif
-    m_liveBytes += bytes;
-    checkConsistency();
-    ASSERT(m_liveBytes &lt;= CopiedBlock::blockSize);
-}
-
-} // namespace JSC
-
-#endif // CopiedBlockInlines_h
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopiedSpacecpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopiedSpace.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopiedSpace.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopiedSpace.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,350 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#include &quot;config.h&quot;
-#include &quot;CopiedSpace.h&quot;
-
-#include &quot;CopiedSpaceInlines.h&quot;
-#include &quot;GCActivityCallback.h&quot;
-#include &quot;JSCInlines.h&quot;
-
-namespace JSC {
-
-CopiedSpace::CopiedSpace(Heap* heap)
-    : m_heap(heap)
-    , m_inCopyingPhase(false)
-    , m_shouldDoCopyPhase(false)
-    , m_numberOfLoanedBlocks(0)
-    , m_bytesRemovedFromOldSpaceDueToReallocation(0)
-{
-}
-
-CopiedSpace::~CopiedSpace()
-{
-    while (!m_oldGen.toSpace-&gt;isEmpty())
-        CopiedBlock::destroy(*heap(), m_oldGen.toSpace-&gt;removeHead());
-
-    while (!m_oldGen.fromSpace-&gt;isEmpty())
-        CopiedBlock::destroy(*heap(), m_oldGen.fromSpace-&gt;removeHead());
-
-    while (!m_oldGen.oversizeBlocks.isEmpty())
-        CopiedBlock::destroy(*heap(), m_oldGen.oversizeBlocks.removeHead());
-
-    while (!m_newGen.toSpace-&gt;isEmpty())
-        CopiedBlock::destroy(*heap(), m_newGen.toSpace-&gt;removeHead());
-
-    while (!m_newGen.fromSpace-&gt;isEmpty())
-        CopiedBlock::destroy(*heap(), m_newGen.fromSpace-&gt;removeHead());
-
-    while (!m_newGen.oversizeBlocks.isEmpty())
-        CopiedBlock::destroy(*heap(), m_newGen.oversizeBlocks.removeHead());
-
-    ASSERT(m_oldGen.toSpace-&gt;isEmpty());
-    ASSERT(m_oldGen.fromSpace-&gt;isEmpty());
-    ASSERT(m_oldGen.oversizeBlocks.isEmpty());
-    ASSERT(m_newGen.toSpace-&gt;isEmpty());
-    ASSERT(m_newGen.fromSpace-&gt;isEmpty());
-    ASSERT(m_newGen.oversizeBlocks.isEmpty());
-}
-
-void CopiedSpace::init()
-{
-    m_oldGen.toSpace = &amp;m_oldGen.blocks1;
-    m_oldGen.fromSpace = &amp;m_oldGen.blocks2;
-    
-    m_newGen.toSpace = &amp;m_newGen.blocks1;
-    m_newGen.fromSpace = &amp;m_newGen.blocks2;
-
-    allocateBlock();
-}   
-
-CheckedBoolean CopiedSpace::tryAllocateSlowCase(size_t bytes, void** outPtr)
-{
-    if (isOversize(bytes))
-        return tryAllocateOversize(bytes, outPtr);
-    
-    ASSERT(m_heap-&gt;vm()-&gt;currentThreadIsHoldingAPILock());
-    m_heap-&gt;didAllocate(m_allocator.currentCapacity());
-
-    allocateBlock();
-
-    *outPtr = m_allocator.forceAllocate(bytes);
-    return true;
-}
-
-CheckedBoolean CopiedSpace::tryAllocateOversize(size_t bytes, void** outPtr)
-{
-    ASSERT(isOversize(bytes));
-    
-    CopiedBlock* block = CopiedBlock::create(*m_heap, WTF::roundUpToMultipleOf&lt;sizeof(double)&gt;(sizeof(CopiedBlock) + bytes));
-    m_newGen.oversizeBlocks.push(block);
-    m_newGen.blockFilter.add(reinterpret_cast&lt;Bits&gt;(block));
-    m_blockSet.add(block);
-    ASSERT(!block-&gt;isOld());
-    
-    CopiedAllocator allocator;
-    allocator.setCurrentBlock(block);
-    *outPtr = allocator.forceAllocate(bytes);
-    allocator.resetCurrentBlock();
-
-    m_heap-&gt;didAllocate(block-&gt;capacity());
-
-    return true;
-}
-
-CheckedBoolean CopiedSpace::tryReallocate(void** ptr, size_t oldSize, size_t newSize)
-{
-    if (oldSize &gt;= newSize)
-        return true;
-    
-    void* oldPtr = *ptr;
-    ASSERT(!m_heap-&gt;vm()-&gt;isInitializingObject());
-    
-    if (CopiedSpace::blockFor(oldPtr)-&gt;isOversize() || isOversize(newSize))
-        return tryReallocateOversize(ptr, oldSize, newSize);
-    
-    if (m_allocator.tryReallocate(oldPtr, oldSize, newSize))
-        return true;
-
-    void* result = 0;
-    if (!tryAllocate(newSize, &amp;result)) {
-        *ptr = 0;
-        return false;
-    }
-    memcpy(result, oldPtr, oldSize);
-    *ptr = result;
-    return true;
-}
-
-CheckedBoolean CopiedSpace::tryReallocateOversize(void** ptr, size_t oldSize, size_t newSize)
-{
-    ASSERT(isOversize(oldSize) || isOversize(newSize));
-    ASSERT(newSize &gt; oldSize);
-
-    void* oldPtr = *ptr;
-    
-    void* newPtr = 0;
-    if (!tryAllocateOversize(newSize, &amp;newPtr)) {
-        *ptr = 0;
-        return false;
-    }
-
-    memcpy(newPtr, oldPtr, oldSize);
-
-    CopiedBlock* oldBlock = CopiedSpace::blockFor(oldPtr);
-    if (oldBlock-&gt;isOversize()) {
-        // FIXME: Eagerly deallocating the old space block probably buys more confusion than
-        // value.
-        // https://bugs.webkit.org/show_bug.cgi?id=144750
-        if (oldBlock-&gt;isOld()) {
-            m_bytesRemovedFromOldSpaceDueToReallocation += oldBlock-&gt;size();
-            m_oldGen.oversizeBlocks.remove(oldBlock);
-        } else
-            m_newGen.oversizeBlocks.remove(oldBlock);
-        m_blockSet.remove(oldBlock);
-        CopiedBlock::destroy(*heap(), oldBlock);
-    }
-    
-    *ptr = newPtr;
-    return true;
-}
-
-void CopiedSpace::doneFillingBlock(CopiedBlock* block, CopiedBlock** exchange)
-{
-    ASSERT(m_inCopyingPhase);
-    
-    if (exchange)
-        *exchange = allocateBlockForCopyingPhase();
-
-    if (!block)
-        return;
-
-    if (!block-&gt;dataSize()) {
-        recycleBorrowedBlock(block);
-        return;
-    }
-
-    block-&gt;zeroFillWilderness();
-
-    {
-        // Always put the block into the old gen because it's being promoted!
-        LockHolder locker(&amp;m_toSpaceLock);
-        m_oldGen.toSpace-&gt;push(block);
-        m_blockSet.add(block);
-        m_oldGen.blockFilter.add(reinterpret_cast&lt;Bits&gt;(block));
-    }
-
-    {
-        LockHolder locker(m_loanedBlocksLock);
-        ASSERT(m_numberOfLoanedBlocks &gt; 0);
-        ASSERT(m_inCopyingPhase);
-        m_numberOfLoanedBlocks--;
-    }
-}
-
-void CopiedSpace::didStartFullCollection()
-{
-    ASSERT(heap()-&gt;operationInProgress() == FullCollection);
-    ASSERT(m_oldGen.fromSpace-&gt;isEmpty());
-    ASSERT(m_newGen.fromSpace-&gt;isEmpty());
-
-#ifndef NDEBUG
-    for (CopiedBlock* block = m_newGen.toSpace-&gt;head(); block; block = block-&gt;next())
-        ASSERT(!block-&gt;liveBytes());
-
-    for (CopiedBlock* block = m_newGen.oversizeBlocks.head(); block; block = block-&gt;next())
-        ASSERT(!block-&gt;liveBytes());
-#endif
-
-    for (CopiedBlock* block = m_oldGen.toSpace-&gt;head(); block; block = block-&gt;next())
-        block-&gt;didSurviveGC();
-
-    for (CopiedBlock* block = m_oldGen.oversizeBlocks.head(); block; block = block-&gt;next())
-        block-&gt;didSurviveGC();
-}
-
-void CopiedSpace::doneCopying()
-{
-    RELEASE_ASSERT(!m_numberOfLoanedBlocks);
-    RELEASE_ASSERT(m_inCopyingPhase == m_shouldDoCopyPhase);
-    m_inCopyingPhase = false;
-
-    DoublyLinkedList&lt;CopiedBlock&gt;* toSpace;
-    DoublyLinkedList&lt;CopiedBlock&gt;* fromSpace;
-    TinyBloomFilter* blockFilter;
-    if (heap()-&gt;operationInProgress() == FullCollection) {
-        toSpace = m_oldGen.toSpace;
-        fromSpace = m_oldGen.fromSpace;
-        blockFilter = &amp;m_oldGen.blockFilter;
-    } else {
-        toSpace = m_newGen.toSpace;
-        fromSpace = m_newGen.fromSpace;
-        blockFilter = &amp;m_newGen.blockFilter;
-    }
-
-    while (!fromSpace-&gt;isEmpty()) {
-        CopiedBlock* block = fromSpace-&gt;removeHead();
-        // We don't add the block to the blockSet because it was never removed.
-        ASSERT(m_blockSet.contains(block));
-        blockFilter-&gt;add(reinterpret_cast&lt;Bits&gt;(block));
-        block-&gt;didSurviveGC();
-        toSpace-&gt;push(block);
-    }
-
-    if (heap()-&gt;operationInProgress() == EdenCollection) {
-        m_oldGen.toSpace-&gt;append(*m_newGen.toSpace);
-        m_oldGen.oversizeBlocks.append(m_newGen.oversizeBlocks);
-        m_oldGen.blockFilter.add(m_newGen.blockFilter);
-        m_newGen.blockFilter.reset();
-    }
-
-    ASSERT(m_newGen.toSpace-&gt;isEmpty());
-    ASSERT(m_newGen.fromSpace-&gt;isEmpty());
-    ASSERT(m_newGen.oversizeBlocks.isEmpty());
-
-    allocateBlock();
-
-    m_shouldDoCopyPhase = false;
-}
-
-size_t CopiedSpace::size()
-{
-    size_t calculatedSize = 0;
-
-    for (CopiedBlock* block = m_oldGen.toSpace-&gt;head(); block; block = block-&gt;next())
-        calculatedSize += block-&gt;size();
-
-    for (CopiedBlock* block = m_oldGen.fromSpace-&gt;head(); block; block = block-&gt;next())
-        calculatedSize += block-&gt;size();
-
-    for (CopiedBlock* block = m_oldGen.oversizeBlocks.head(); block; block = block-&gt;next())
-        calculatedSize += block-&gt;size();
-
-    for (CopiedBlock* block = m_newGen.toSpace-&gt;head(); block; block = block-&gt;next())
-        calculatedSize += block-&gt;size();
-
-    for (CopiedBlock* block = m_newGen.fromSpace-&gt;head(); block; block = block-&gt;next())
-        calculatedSize += block-&gt;size();
-
-    for (CopiedBlock* block = m_newGen.oversizeBlocks.head(); block; block = block-&gt;next())
-        calculatedSize += block-&gt;size();
-
-    return calculatedSize;
-}
-
-size_t CopiedSpace::capacity()
-{
-    size_t calculatedCapacity = 0;
-
-    for (CopiedBlock* block = m_oldGen.toSpace-&gt;head(); block; block = block-&gt;next())
-        calculatedCapacity += block-&gt;capacity();
-
-    for (CopiedBlock* block = m_oldGen.fromSpace-&gt;head(); block; block = block-&gt;next())
-        calculatedCapacity += block-&gt;capacity();
-
-    for (CopiedBlock* block = m_oldGen.oversizeBlocks.head(); block; block = block-&gt;next())
-        calculatedCapacity += block-&gt;capacity();
-
-    for (CopiedBlock* block = m_newGen.toSpace-&gt;head(); block; block = block-&gt;next())
-        calculatedCapacity += block-&gt;capacity();
-
-    for (CopiedBlock* block = m_newGen.fromSpace-&gt;head(); block; block = block-&gt;next())
-        calculatedCapacity += block-&gt;capacity();
-
-    for (CopiedBlock* block = m_newGen.oversizeBlocks.head(); block; block = block-&gt;next())
-        calculatedCapacity += block-&gt;capacity();
-
-    return calculatedCapacity;
-}
-
-static bool isBlockListPagedOut(double deadline, DoublyLinkedList&lt;CopiedBlock&gt;* list)
-{
-    unsigned itersSinceLastTimeCheck = 0;
-    CopiedBlock* current = list-&gt;head();
-    while (current) {
-        current = current-&gt;next();
-        ++itersSinceLastTimeCheck;
-        if (itersSinceLastTimeCheck &gt;= Heap::s_timeCheckResolution) {
-            double currentTime = WTF::monotonicallyIncreasingTime();
-            if (currentTime &gt; deadline)
-                return true;
-            itersSinceLastTimeCheck = 0;
-        }
-    }
-
-    return false;
-}
-
-bool CopiedSpace::isPagedOut(double deadline)
-{
-    return isBlockListPagedOut(deadline, m_oldGen.toSpace) 
-        || isBlockListPagedOut(deadline, m_oldGen.fromSpace) 
-        || isBlockListPagedOut(deadline, &amp;m_oldGen.oversizeBlocks)
-        || isBlockListPagedOut(deadline, m_newGen.toSpace) 
-        || isBlockListPagedOut(deadline, m_newGen.fromSpace) 
-        || isBlockListPagedOut(deadline, &amp;m_newGen.oversizeBlocks);
-}
-
-} // namespace JSC
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopiedSpaceh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopiedSpace.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopiedSpace.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopiedSpace.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,146 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifndef CopiedSpace_h
-#define CopiedSpace_h
-
-#include &quot;CopiedAllocator.h&quot;
-#include &quot;HeapOperation.h&quot;
-#include &quot;TinyBloomFilter.h&quot;
-#include &lt;wtf/Assertions.h&gt;
-#include &lt;wtf/CheckedBoolean.h&gt;
-#include &lt;wtf/DoublyLinkedList.h&gt;
-#include &lt;wtf/HashSet.h&gt;
-#include &lt;wtf/Lock.h&gt;
-
-namespace JSC {
-
-class Heap;
-class CopiedBlock;
-
-class CopiedSpace {
-    friend class CopyVisitor;
-    friend class Heap;
-    friend class SlotVisitor;
-    friend class JIT;
-public:
-    CopiedSpace(Heap*);
-    ~CopiedSpace();
-    void init();
-
-    CheckedBoolean tryAllocate(size_t, void**);
-    CheckedBoolean tryReallocate(void**, size_t, size_t);
-    
-    CopiedAllocator&amp; allocator() { return m_allocator; }
-
-    void didStartFullCollection();
-
-    template &lt;HeapOperation collectionType&gt;
-    void startedCopying();
-    void doneCopying();
-    bool isInCopyPhase() const { return m_inCopyingPhase; }
-
-    void pin(CopiedBlock*);
-    bool isPinned(void*);
-
-    bool contains(CopiedBlock*);
-    bool contains(void*, CopiedBlock*&amp;);
-    
-    void pinIfNecessary(void* pointer);
-
-    size_t size();
-    size_t capacity();
-
-    bool isPagedOut(double deadline);
-    bool shouldDoCopyPhase() const { return m_shouldDoCopyPhase; }
-
-    static CopiedBlock* blockFor(void*);
-
-    Heap* heap() const { return m_heap; }
-    
-    size_t takeBytesRemovedFromOldSpaceDueToReallocation()
-    {
-        size_t result = 0;
-        std::swap(m_bytesRemovedFromOldSpaceDueToReallocation, result);
-        return result;
-    }
-
-private:
-    static bool isOversize(size_t);
-
-    JS_EXPORT_PRIVATE CheckedBoolean tryAllocateSlowCase(size_t, void**);
-    CheckedBoolean tryAllocateOversize(size_t, void**);
-    CheckedBoolean tryReallocateOversize(void**, size_t, size_t);
-    
-    void allocateBlock();
-    CopiedBlock* allocateBlockForCopyingPhase();
-
-    void doneFillingBlock(CopiedBlock*, CopiedBlock**);
-    void recycleEvacuatedBlock(CopiedBlock*, HeapOperation collectionType);
-    void recycleBorrowedBlock(CopiedBlock*);
-
-    Heap* m_heap;
-
-    CopiedAllocator m_allocator;
-
-    HashSet&lt;CopiedBlock*&gt; m_blockSet;
-
-    Lock m_toSpaceLock;
-
-    struct CopiedGeneration {
-        CopiedGeneration()
-            : toSpace(0)
-            , fromSpace(0)
-        {
-        }
-
-        DoublyLinkedList&lt;CopiedBlock&gt;* toSpace;
-        DoublyLinkedList&lt;CopiedBlock&gt;* fromSpace;
-        
-        DoublyLinkedList&lt;CopiedBlock&gt; blocks1;
-        DoublyLinkedList&lt;CopiedBlock&gt; blocks2;
-        DoublyLinkedList&lt;CopiedBlock&gt; oversizeBlocks;
-
-        TinyBloomFilter blockFilter;
-    };
-
-    CopiedGeneration m_oldGen;
-    CopiedGeneration m_newGen;
-
-    bool m_inCopyingPhase;
-    bool m_shouldDoCopyPhase;
-
-    Lock m_loanedBlocksLock;
-    size_t m_numberOfLoanedBlocks;
-    
-    size_t m_bytesRemovedFromOldSpaceDueToReallocation;
-
-    static const size_t s_maxAllocationSize = CopiedBlock::blockSize / 2;
-    static const size_t s_blockMask = ~(CopiedBlock::blockSize - 1);
-};
-
-} // namespace JSC
-
-#endif
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopiedSpaceInlinesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopiedSpaceInlines.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopiedSpaceInlines.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopiedSpaceInlines.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,258 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifndef CopiedSpaceInlines_h
-#define CopiedSpaceInlines_h
-
-#include &quot;CopiedBlock.h&quot;
-#include &quot;CopiedSpace.h&quot;
-#include &quot;Heap.h&quot;
-#include &quot;VM.h&quot;
-
-namespace JSC {
-
-inline bool CopiedSpace::contains(CopiedBlock* block)
-{
-    return (!m_newGen.blockFilter.ruleOut(reinterpret_cast&lt;Bits&gt;(block)) || !m_oldGen.blockFilter.ruleOut(reinterpret_cast&lt;Bits&gt;(block)))
-        &amp;&amp; m_blockSet.contains(block);
-}
-
-inline bool CopiedSpace::contains(void* ptr, CopiedBlock*&amp; result)
-{
-    CopiedBlock* block = blockFor(ptr);
-    if (contains(block)) {
-        result = block;
-        return true;
-    }
-    result = 0;
-    return false;
-}
-
-inline void CopiedSpace::pin(CopiedBlock* block)
-{
-    block-&gt;pin();
-}
-
-inline void CopiedSpace::pinIfNecessary(void* opaquePointer)
-{
-    // Pointers into the copied space come in the following varieties:
-    // 1)  Pointers to the start of a span of memory. This is the most
-    //     natural though not necessarily the most common.
-    // 2)  Pointers to one value-sized (8 byte) word past the end of
-    //     a span of memory. This currently occurs with semi-butterflies
-    //     and should be fixed soon, once the other half of the
-    //     butterfly lands.
-    // 3)  Pointers to the innards arising from loop induction variable
-    //     optimizations (either manual ones or automatic, by the
-    //     compiler).
-    // 4)  Pointers to the end of a span of memory in arising from
-    //     induction variable optimizations combined with the
-    //     GC-to-compiler contract laid out in the C spec: a pointer to
-    //     the end of a span of memory must be considered to be a
-    //     pointer to that memory.
-    
-    EncodedJSValue* pointer = reinterpret_cast&lt;EncodedJSValue*&gt;(opaquePointer);
-    CopiedBlock* block;
-
-    // Handle (1) and (3).
-    if (contains(pointer, block))
-        pin(block);
-    
-    // Handle (4). We don't have to explicitly check and pin the block under this
-    // pointer because it cannot possibly point to something that cases (1) and
-    // (3) above or case (2) below wouldn't already catch.
-    pointer--;
-    
-    // Handle (2)
-    pointer--;
-    if (contains(pointer, block))
-        pin(block);
-}
-
-inline void CopiedSpace::recycleEvacuatedBlock(CopiedBlock* block, HeapOperation collectionType)
-{
-    ASSERT(block);
-    ASSERT(block-&gt;canBeRecycled());
-    ASSERT(!block-&gt;m_isPinned);
-    {
-        LockHolder locker(&amp;m_toSpaceLock);
-        m_blockSet.remove(block);
-        if (collectionType == EdenCollection)
-            m_newGen.fromSpace-&gt;remove(block);
-        else
-            m_oldGen.fromSpace-&gt;remove(block);
-    }
-    CopiedBlock::destroy(*heap(), block);
-}
-
-inline void CopiedSpace::recycleBorrowedBlock(CopiedBlock* block)
-{
-    CopiedBlock::destroy(*heap(), block);
-
-    {
-        LockHolder locker(m_loanedBlocksLock);
-        ASSERT(m_numberOfLoanedBlocks &gt; 0);
-        ASSERT(m_inCopyingPhase);
-        m_numberOfLoanedBlocks--;
-    }
-}
-
-inline CopiedBlock* CopiedSpace::allocateBlockForCopyingPhase()
-{
-    ASSERT(m_inCopyingPhase);
-    CopiedBlock* block = CopiedBlock::createNoZeroFill(*m_heap);
-
-    {
-        LockHolder locker(m_loanedBlocksLock);
-        m_numberOfLoanedBlocks++;
-    }
-
-    ASSERT(!block-&gt;dataSize());
-    return block;
-}
-
-inline void CopiedSpace::allocateBlock()
-{
-    m_heap-&gt;collectIfNecessaryOrDefer();
-
-    m_allocator.resetCurrentBlock();
-    
-    CopiedBlock* block = CopiedBlock::create(*m_heap);
-        
-    m_newGen.toSpace-&gt;push(block);
-    m_newGen.blockFilter.add(reinterpret_cast&lt;Bits&gt;(block));
-    m_blockSet.add(block);
-    m_allocator.setCurrentBlock(block);
-}
-
-inline CheckedBoolean CopiedSpace::tryAllocate(size_t bytes, void** outPtr)
-{
-    ASSERT(!m_heap-&gt;vm()-&gt;isInitializingObject());
-    ASSERT(bytes);
-
-    if (!m_allocator.tryAllocate(bytes, outPtr))
-        return tryAllocateSlowCase(bytes, outPtr);
-    
-    ASSERT(*outPtr);
-    return true;
-}
-
-inline bool CopiedSpace::isOversize(size_t bytes)
-{
-    return bytes &gt; s_maxAllocationSize;
-}
-
-inline bool CopiedSpace::isPinned(void* ptr)
-{
-    return blockFor(ptr)-&gt;m_isPinned;
-}
-
-inline CopiedBlock* CopiedSpace::blockFor(void* ptr)
-{
-    return reinterpret_cast&lt;CopiedBlock*&gt;(reinterpret_cast&lt;size_t&gt;(ptr) &amp; s_blockMask);
-}
-
-template &lt;HeapOperation collectionType&gt;
-inline void CopiedSpace::startedCopying()
-{
-    DoublyLinkedList&lt;CopiedBlock&gt;* fromSpace;
-    DoublyLinkedList&lt;CopiedBlock&gt;* oversizeBlocks;
-    TinyBloomFilter* blockFilter;
-    if (collectionType == FullCollection) {
-        ASSERT(m_oldGen.fromSpace-&gt;isEmpty());
-        ASSERT(m_newGen.fromSpace-&gt;isEmpty());
-
-        m_oldGen.toSpace-&gt;append(*m_newGen.toSpace);
-        m_oldGen.oversizeBlocks.append(m_newGen.oversizeBlocks);
-
-        ASSERT(m_newGen.toSpace-&gt;isEmpty());
-        ASSERT(m_newGen.fromSpace-&gt;isEmpty());
-        ASSERT(m_newGen.oversizeBlocks.isEmpty());
-
-        std::swap(m_oldGen.fromSpace, m_oldGen.toSpace);
-        fromSpace = m_oldGen.fromSpace;
-        oversizeBlocks = &amp;m_oldGen.oversizeBlocks;
-        blockFilter = &amp;m_oldGen.blockFilter;
-    } else {
-        std::swap(m_newGen.fromSpace, m_newGen.toSpace);
-        fromSpace = m_newGen.fromSpace;
-        oversizeBlocks = &amp;m_newGen.oversizeBlocks;
-        blockFilter = &amp;m_newGen.blockFilter;
-    }
-
-    blockFilter-&gt;reset();
-    m_allocator.resetCurrentBlock();
-
-    CopiedBlock* next = 0;
-    size_t totalLiveBytes = 0;
-    size_t totalUsableBytes = 0;
-    for (CopiedBlock* block = fromSpace-&gt;head(); block; block = next) {
-        next = block-&gt;next();
-        if (!block-&gt;isPinned() &amp;&amp; block-&gt;canBeRecycled()) {
-            recycleEvacuatedBlock(block, collectionType);
-            continue;
-        }
-        ASSERT(block-&gt;liveBytes() &lt;= CopiedBlock::blockSize);
-        totalLiveBytes += block-&gt;liveBytes();
-        totalUsableBytes += block-&gt;payloadCapacity();
-        block-&gt;didPromote();
-    }
-
-    CopiedBlock* block = oversizeBlocks-&gt;head();
-    while (block) {
-        CopiedBlock* next = block-&gt;next();
-        if (block-&gt;isPinned()) {
-            blockFilter-&gt;add(reinterpret_cast&lt;Bits&gt;(block));
-            totalLiveBytes += block-&gt;payloadCapacity();
-            totalUsableBytes += block-&gt;payloadCapacity();
-            block-&gt;didPromote();
-        } else {
-            oversizeBlocks-&gt;remove(block);
-            m_blockSet.remove(block);
-            CopiedBlock::destroy(*heap(), block);
-        } 
-        block = next;
-    }
-
-    double markedSpaceBytes = m_heap-&gt;objectSpace().capacity();
-    double totalUtilization = static_cast&lt;double&gt;(totalLiveBytes + markedSpaceBytes) / static_cast&lt;double&gt;(totalUsableBytes + markedSpaceBytes);
-    m_shouldDoCopyPhase = m_heap-&gt;operationInProgress() == EdenCollection || totalUtilization &lt;= Options::minHeapUtilization();
-    if (!m_shouldDoCopyPhase) {
-        if (Options::logGC())
-            dataLog(&quot;Skipped copying, &quot;);
-        return;
-    }
-
-    if (Options::logGC())
-        dataLogF(&quot;Did copy, &quot;);
-    ASSERT(m_shouldDoCopyPhase);
-    ASSERT(!m_numberOfLoanedBlocks);
-    ASSERT(!m_inCopyingPhase);
-    m_inCopyingPhase = true;
-}
-
-} // namespace JSC
-
-#endif // CopiedSpaceInlines_h
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopyBarrierh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopyBarrier.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopyBarrier.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopyBarrier.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,106 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014-2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CopyBarrier_h
-#define CopyBarrier_h
-
-#include &quot;Heap.h&quot;
-#include &quot;VM.h&quot;
-
-namespace JSC {
-
-class CopyBarrierBase {
-public:
-    CopyBarrierBase()
-        : m_value(nullptr)
-    {
-    }
-    
-    explicit operator bool() const { return m_value; }
-
-    void* get() const
-    {
-        return m_value;
-    }
-
-    void clear() { m_value = nullptr; }
-
-protected:
-    CopyBarrierBase(VM&amp; vm, const JSCell* owner, void* value)
-    {
-        this-&gt;set(vm, owner, value);
-    }
-    
-    void set(VM&amp; vm, const JSCell* owner, void* value)
-    {
-        this-&gt;m_value = value;
-        vm.heap.writeBarrier(owner);
-    }
-    
-    void setWithoutBarrier(void* value)
-    {
-        this-&gt;m_value = value;
-    }
-
-private:
-    mutable void* m_value;
-};
-
-template &lt;typename T&gt;
-class CopyBarrier : public CopyBarrierBase {
-public:
-    CopyBarrier()
-    {
-    }
-    
-    CopyBarrier(VM&amp; vm, const JSCell* owner, T&amp; value)
-        : CopyBarrierBase(vm, owner, &amp;value)
-    {
-    }
-    
-    CopyBarrier(VM&amp; vm, const JSCell* owner, T* value)
-        : CopyBarrierBase(vm, owner, value)
-    {
-    }
-
-    T* get() const
-    {
-        return bitwise_cast&lt;T*&gt;(CopyBarrierBase::get());
-    }
-
-    void set(VM&amp; vm, const JSCell* owner, T* value)
-    {
-        CopyBarrierBase::set(vm, owner, value);
-    }
-    
-    void setWithoutBarrier(T* value)
-    {
-        CopyBarrierBase::setWithoutBarrier(value);
-    }
-};
-
-} // namespace JSC
-
-#endif // CopyBarrier_h
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopyTokenh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopyToken.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopyToken.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopyToken.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013, 2015-2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CopyToken_h
-#define CopyToken_h
-
-namespace JSC {
-
-enum CopyToken {
-    DirectArgumentsOverridesCopyToken
-};
-
-} // namespace JSC
-
-#endif // CopyToken_h
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopyVisitorcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopyVisitor.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopyVisitor.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopyVisitor.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,51 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, 2015 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;CopyVisitor.h&quot;
-
-#include &quot;CopiedSpaceInlines.h&quot;
-#include &quot;CopyVisitorInlines.h&quot;
-
-namespace JSC {
-
-CopyVisitor::CopyVisitor(Heap&amp; heap)
-    : m_heap(heap)
-{
-    ASSERT(!m_copiedAllocator.isValid());
-    CopiedBlock* block = nullptr;
-    m_heap.m_storageSpace.doneFillingBlock(nullptr, &amp;block);
-    m_copiedAllocator.setCurrentBlock(block);
-}
-
-CopyVisitor::~CopyVisitor()
-{
-    if (m_copiedAllocator.isValid())
-        m_heap.m_storageSpace.doneFillingBlock(m_copiedAllocator.resetCurrentBlock(), nullptr);
-    
-    WTF::releaseFastMallocFreeMemoryForThisThread();
-}
-
-} // namespace JSC
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopyVisitorh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopyVisitor.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopyVisitor.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopyVisitor.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,61 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, 2015 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CopyVisitor_h
-#define CopyVisitor_h
-
-#include &quot;CopiedSpace.h&quot;
-#include &lt;wtf/Noncopyable.h&gt;
-
-namespace JSC {
-
-class Heap;
-
-class CopyVisitor {
-    WTF_MAKE_NONCOPYABLE(CopyVisitor);
-public:
-    CopyVisitor(Heap&amp;);
-    ~CopyVisitor();
-
-    void copyFromShared();
-
-    // Low-level API for copying, appropriate for cases where the object's heap references
-    // are discontiguous or if the object occurs frequently enough that you need to focus on
-    // performance. Use this with care as it is easy to shoot yourself in the foot.
-    bool checkIfShouldCopy(void*);
-    void* allocateNewSpace(size_t);
-    void didCopy(void*, size_t);
-
-private:
-    void* allocateNewSpaceSlow(size_t);
-    void visitItem(CopyWorklistItem);
-
-    Heap&amp; m_heap;
-    CopiedAllocator m_copiedAllocator;
-};
-
-} // namespace JSC
-
-#endif
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopyVisitorInlinesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopyVisitorInlines.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopyVisitorInlines.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopyVisitorInlines.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,78 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CopyVisitorInlines_h
-#define CopyVisitorInlines_h
-
-#include &quot;CopyVisitor.h&quot;
-#include &quot;Heap.h&quot;
-
-namespace JSC {
-
-inline bool CopyVisitor::checkIfShouldCopy(void* oldPtr)
-{
-    if (!oldPtr)
-        return false;
-    CopiedBlock* block = CopiedSpace::blockFor(oldPtr);
-    if (block-&gt;isOversize() || block-&gt;isPinned())
-        return false;
-    return true;
-}
-
-inline void* CopyVisitor::allocateNewSpace(size_t bytes)
-{
-    void* result = 0; // Compilers don't realize that this will be assigned.
-    if (LIKELY(m_copiedAllocator.tryAllocateDuringCopying(bytes, &amp;result)))
-        return result;
-    
-    result = allocateNewSpaceSlow(bytes);
-    ASSERT(result);
-    return result;
-}       
-
-inline void* CopyVisitor::allocateNewSpaceSlow(size_t bytes)
-{
-    CopiedBlock* newBlock = 0;
-    m_heap.m_storageSpace.doneFillingBlock(m_copiedAllocator.resetCurrentBlock(), &amp;newBlock);
-    m_copiedAllocator.setCurrentBlock(newBlock);
-
-    void* result = 0;
-    CheckedBoolean didSucceed = m_copiedAllocator.tryAllocateDuringCopying(bytes, &amp;result);
-    ASSERT(didSucceed);
-    return result;
-}
-
-inline void CopyVisitor::didCopy(void* ptr, size_t bytes)
-{
-    CopiedBlock* block = CopiedSpace::blockFor(ptr);
-    ASSERT(!block-&gt;isOversize());
-    ASSERT(!block-&gt;isPinned());
-
-    block-&gt;didEvacuateBytes(bytes);
-}
-
-} // namespace JSC
-
-#endif // CopyVisitorInlines_h
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapCopyWorkListh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/heap/CopyWorkList.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/CopyWorkList.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/CopyWorkList.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -1,198 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CopyWorkList_h
-#define CopyWorkList_h
-
-#include &quot;CopyToken.h&quot;
-#include &lt;wtf/DoublyLinkedList.h&gt;
-
-namespace JSC {
-
-class JSCell;
-
-class CopyWorklistItem {
-public:
-    CopyWorklistItem()
-        : m_value(0)
-    {
-    }
-
-    CopyWorklistItem(JSCell* cell, CopyToken token)
-        : m_value(bitwise_cast&lt;uintptr_t&gt;(cell) | static_cast&lt;uintptr_t&gt;(token))
-    {
-        ASSERT(!(bitwise_cast&lt;uintptr_t&gt;(cell) &amp; static_cast&lt;uintptr_t&gt;(mask)));
-        ASSERT(static_cast&lt;uintptr_t&gt;(token) &lt;= mask);
-    }
-    
-    JSCell* cell() const { return bitwise_cast&lt;JSCell*&gt;(m_value &amp; ~static_cast&lt;uintptr_t&gt;(mask)); }
-    CopyToken token() const { return static_cast&lt;CopyToken&gt;(m_value &amp; mask); }
-    
-private:
-    static const unsigned requiredAlignment = 8;
-    static const unsigned mask = requiredAlignment - 1;
-    
-    uintptr_t m_value;
-};
-
-class CopyWorkListSegment : public DoublyLinkedListNode&lt;CopyWorkListSegment&gt; {
-    friend class WTF::DoublyLinkedListNode&lt;CopyWorkListSegment&gt;;
-public:
-    static CopyWorkListSegment* create()
-    {
-        return new (NotNull, fastMalloc(blockSize)) CopyWorkListSegment();
-    }
-    
-    static void destroy(CopyWorkListSegment* segment)
-    {
-        segment-&gt;~CopyWorkListSegment();
-        fastFree(segment);
-    }
-
-    size_t size() { return m_size; }
-    bool isFull() { return reinterpret_cast&lt;char*&gt;(&amp;data()[size()]) &gt;= endOfBlock(); }
-    CopyWorklistItem get(size_t index) { return data()[index]; }
-
-    void append(CopyWorklistItem item)
-    {
-        ASSERT(!isFull());
-        data()[m_size] = item;
-        m_size += 1;
-    }
-
-    static const size_t blockSize = 512;
-
-private:
-    CopyWorkListSegment()
-        : DoublyLinkedListNode&lt;CopyWorkListSegment&gt;()
-        , m_size(0)
-    {
-    }
-
-    CopyWorklistItem* data() { return reinterpret_cast&lt;CopyWorklistItem*&gt;(this + 1); }
-    char* endOfBlock() { return reinterpret_cast&lt;char*&gt;(this) + blockSize; }
-
-    CopyWorkListSegment* m_prev;
-    CopyWorkListSegment* m_next;
-    size_t m_size;
-};
-
-class CopyWorkListIterator {
-    friend class CopyWorkList;
-public:
-    CopyWorklistItem get() { return m_currentSegment-&gt;get(m_currentIndex); }
-    CopyWorklistItem operator*() { return get(); }
-    CopyWorklistItem operator-&gt;() { return get(); }
-
-    CopyWorkListIterator&amp; operator++()
-    {
-        m_currentIndex++;
-
-        if (m_currentIndex &gt;= m_currentSegment-&gt;size()) {
-            m_currentIndex = 0;
-            m_currentSegment = m_currentSegment-&gt;next();
-        
-            ASSERT(!m_currentSegment || m_currentSegment-&gt;size());
-        }
-
-        return *this;
-    }
-
-    bool operator==(const CopyWorkListIterator&amp; other) const
-    {
-        return m_currentSegment == other.m_currentSegment &amp;&amp; m_currentIndex == other.m_currentIndex;
-    }
-    
-    bool operator!=(const CopyWorkListIterator&amp; other) const
-    {
-        return !(*this == other);
-    }
-
-    CopyWorkListIterator()
-        : m_currentSegment(0)
-        , m_currentIndex(0)
-    {
-    }
-
-private:
-    CopyWorkListIterator(CopyWorkListSegment* startSegment, size_t startIndex)
-        : m_currentSegment(startSegment)
-        , m_currentIndex(startIndex)
-    {
-    }
-    
-    CopyWorkListSegment* m_currentSegment;
-    size_t m_currentIndex;
-};
-
-class CopyWorkList {
-    WTF_MAKE_FAST_ALLOCATED;
-public:
-    typedef CopyWorkListIterator iterator;
-
-    CopyWorkList();
-    ~CopyWorkList();
-
-    void append(CopyWorklistItem);
-    iterator begin();
-    iterator end();
-
-private:
-    DoublyLinkedList&lt;CopyWorkListSegment&gt; m_segments;
-};
-
-inline CopyWorkList::CopyWorkList()
-{
-}
-
-inline CopyWorkList::~CopyWorkList()
-{
-    while (!m_segments.isEmpty())
-        CopyWorkListSegment::destroy(m_segments.removeHead());
-}
-
-inline void CopyWorkList::append(CopyWorklistItem item)
-{
-    if (m_segments.isEmpty() || m_segments.tail()-&gt;isFull())
-        m_segments.append(CopyWorkListSegment::create());
-
-    ASSERT(!m_segments.tail()-&gt;isFull());
-
-    m_segments.tail()-&gt;append(item);
-}
-
-inline CopyWorkList::iterator CopyWorkList::begin()
-{
-    return CopyWorkListIterator(m_segments.head(), 0);
-}
-
-inline CopyWorkList::iterator CopyWorkList::end()
-{
-    return CopyWorkListIterator();
-}
-
-} // namespace JSC
-
-#endif // CopyWorkList_h
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/Heap.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/Heap.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/Heap.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -23,9 +23,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><span class="cx"> #include &quot;ConservativeRoots.h&quot;
</span><del>-#include &quot;CopiedSpace.h&quot;
-#include &quot;CopiedSpaceInlines.h&quot;
-#include &quot;CopyVisitorInlines.h&quot;
</del><span class="cx"> #include &quot;DFGWorklist.h&quot;
</span><span class="cx"> #include &quot;EdenGCActivityCallback.h&quot;
</span><span class="cx"> #include &quot;FullGCActivityCallback.h&quot;
</span><span class="lines">@@ -202,10 +199,8 @@
</span><span class="cx">     , m_maxHeapSize(m_minBytesPerCycle)
</span><span class="cx">     , m_shouldDoFullCollection(false)
</span><span class="cx">     , m_totalBytesVisited(0)
</span><del>-    , m_totalBytesCopied(0)
</del><span class="cx">     , m_operationInProgress(NoOperation)
</span><span class="cx">     , m_objectSpace(this)
</span><del>-    , m_storageSpace(this)
</del><span class="cx">     , m_extraMemorySize(0)
</span><span class="cx">     , m_deprecatedExtraMemorySize(0)
</span><span class="cx">     , m_machineThreads(this)
</span><span class="lines">@@ -233,7 +228,6 @@
</span><span class="cx"> #endif
</span><span class="cx">     , m_helperClient(&amp;heapHelperPool())
</span><span class="cx"> {
</span><del>-    m_storageSpace.init();
</del><span class="cx">     if (Options::verifyHeap())
</span><span class="cx">         m_verifier = std::make_unique&lt;HeapVerifier&gt;(this, Options::numberOfGCCyclesToRecordForVerification());
</span><span class="cx"> }
</span><span class="lines">@@ -246,7 +240,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool Heap::isPagedOut(double deadline)
</span><span class="cx"> {
</span><del>-    return m_objectSpace.isPagedOut(deadline) || m_storageSpace.isPagedOut(deadline);
</del><ins>+    return m_objectSpace.isPagedOut(deadline);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // The VM is being destroyed and the collector will never run again.
</span><span class="lines">@@ -496,58 +490,6 @@
</span><span class="cx">     resetVisitors();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Heap::copyBackingStores()
-{
-    SuperSamplerScope superSamplerScope(false);
-    if (m_operationInProgress == EdenCollection)
-        m_storageSpace.startedCopying&lt;EdenCollection&gt;();
-    else {
-        ASSERT(m_operationInProgress == FullCollection);
-        m_storageSpace.startedCopying&lt;FullCollection&gt;();
-    }
-
-    if (m_storageSpace.shouldDoCopyPhase()) {
-        if (m_operationInProgress == EdenCollection) {
-            // Reset the vector to be empty, but don't throw away the backing store.
-            m_blocksToCopy.shrink(0);
-            for (CopiedBlock* block = m_storageSpace.m_newGen.fromSpace-&gt;head(); block; block = block-&gt;next())
-                m_blocksToCopy.append(block);
-        } else {
-            ASSERT(m_operationInProgress == FullCollection);
-            WTF::copyToVector(m_storageSpace.m_blockSet, m_blocksToCopy);
-        }
-
-        ParallelVectorIterator&lt;Vector&lt;CopiedBlock*&gt;&gt; iterator(
-            m_blocksToCopy, s_blockFragmentLength);
-
-        // Note that it's safe to use the [&amp;] capture list here, even though we're creating a task
-        // that other threads run. That's because after runFunctionInParallel() returns, the task
-        // we have created is not going to be running anymore. Hence, everything on the stack here
-        // outlives the task.
-        m_helperClient.runFunctionInParallel(
-            [&amp;] () {
-                CopyVisitor copyVisitor(*this);
-                
-                iterator.iterate(
-                    [&amp;] (CopiedBlock* block) {
-                        if (!block-&gt;hasWorkList())
-                            return;
-                        
-                        CopyWorkList&amp; workList = block-&gt;workList();
-                        for (CopyWorklistItem item : workList) {
-                            item.cell()-&gt;methodTable()-&gt;copyBackingStore(
-                                item.cell(), copyVisitor, item.token());
-                        }
-                        
-                        ASSERT(!block-&gt;liveBytes());
-                        m_storageSpace.recycleEvacuatedBlock(block, m_operationInProgress);
-                    });
-            });
-    }
-    
-    m_storageSpace.doneCopying();
-}
-
</del><span class="cx"> void Heap::gatherStackRoots(ConservativeRoots&amp; roots, void* stackOrigin, void* stackTop, MachineThreads::RegisterState&amp; calleeSavedRegisters)
</span><span class="cx"> {
</span><span class="cx">     m_jitStubRoutines-&gt;clearMarks();
</span><span class="lines">@@ -822,20 +764,12 @@
</span><span class="cx">         dataLogF(&quot;\nNumber of live Objects after GC %lu, took %.6f secs\n&quot;, static_cast&lt;unsigned long&gt;(visitCount), WTF::monotonicallyIncreasingTime() - gcStartTime);
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    size_t bytesRemovedFromOldSpaceDueToReallocation =
-        m_storageSpace.takeBytesRemovedFromOldSpaceDueToReallocation();
-    
-    if (m_operationInProgress == FullCollection) {
</del><ins>+    if (m_operationInProgress == FullCollection)
</ins><span class="cx">         m_totalBytesVisited = 0;
</span><del>-        m_totalBytesCopied = 0;
-    } else
-        m_totalBytesCopied -= bytesRemovedFromOldSpaceDueToReallocation;
</del><span class="cx"> 
</span><span class="cx">     m_totalBytesVisitedThisCycle = m_slotVisitor.bytesVisited() + threadBytesVisited();
</span><del>-    m_totalBytesCopiedThisCycle = m_slotVisitor.bytesCopied() + threadBytesCopied();
</del><span class="cx">     
</span><span class="cx">     m_totalBytesVisited += m_totalBytesVisitedThisCycle;
</span><del>-    m_totalBytesCopied += m_totalBytesCopiedThisCycle;
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Heap::resetVisitors()
</span><span class="lines">@@ -861,12 +795,12 @@
</span><span class="cx"> 
</span><span class="cx"> size_t Heap::size()
</span><span class="cx"> {
</span><del>-    return m_objectSpace.size() + m_storageSpace.size() + extraMemorySize();
</del><ins>+    return m_objectSpace.size() + extraMemorySize();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> size_t Heap::capacity()
</span><span class="cx"> {
</span><del>-    return m_objectSpace.capacity() + m_storageSpace.capacity() + extraMemorySize();
</del><ins>+    return m_objectSpace.capacity() + extraMemorySize();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> size_t Heap::protectedGlobalObjectCount()
</span><span class="lines">@@ -1107,7 +1041,6 @@
</span><span class="cx">     pruneStaleEntriesFromWeakGCMaps();
</span><span class="cx">     sweepArrayBuffers();
</span><span class="cx">     snapshotMarkedSpace();
</span><del>-    copyBackingStores();
</del><span class="cx">     finalizeUnconditionalFinalizers();
</span><span class="cx">     removeDeadCompilerWorklistEntries();
</span><span class="cx">     deleteUnmarkedCompiledCode();
</span><span class="lines">@@ -1205,8 +1138,6 @@
</span><span class="cx"> void Heap::stopAllocation()
</span><span class="cx"> {
</span><span class="cx">     m_objectSpace.stopAllocating();
</span><del>-    if (m_operationInProgress == FullCollection)
-        m_storageSpace.didStartFullCollection();
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Heap::prepareForMarking()
</span><span class="lines">@@ -1310,9 +1241,7 @@
</span><span class="cx">     // run another collection. This isn't the same as either size() or capacity(), though it should
</span><span class="cx">     // be somewhere between the two. The key is to match the size calculations involved calls to
</span><span class="cx">     // didAllocate(), while never dangerously underestimating capacity(). In extreme cases of
</span><del>-    // fragmentation, we may have size() much smaller than capacity(). Our collector sometimes
-    // temporarily allows very high fragmentation because it doesn't defragment old blocks in copied
-    // space.
</del><ins>+    // fragmentation, we may have size() much smaller than capacity().
</ins><span class="cx">     size_t currentHeapSize = 0;
</span><span class="cx"> 
</span><span class="cx">     // For marked space, we use the total number of bytes visited. This matches the logic for
</span><span class="lines">@@ -1324,23 +1253,6 @@
</span><span class="cx">     if (verbose)
</span><span class="cx">         dataLog(&quot;totalBytesVisited = &quot;, m_totalBytesVisited, &quot;, currentHeapSize = &quot;, currentHeapSize, &quot;\n&quot;);
</span><span class="cx"> 
</span><del>-    // For copied space, we use the capacity of storage space. This is because copied space may get
-    // badly fragmented between full collections. This arises when each eden collection evacuates
-    // much less than one CopiedBlock's worth of stuff. It can also happen when CopiedBlocks get
-    // pinned due to very short-lived objects. In such a case, we want to get to a full collection
-    // sooner rather than later. If we used m_totalBytesCopied, then for for each CopiedBlock that an
-    // eden allocation promoted, we would only deduct the one object's size from eden size. This
-    // would mean that we could &quot;leak&quot; many CopiedBlocks before we did a full collection and
-    // defragmented all of them. It would be great to use m_totalBytesCopied, but we'd need to
-    // augment it with something that accounts for those fragmented blocks.
-    // FIXME: Make it possible to compute heap size using m_totalBytesCopied rather than
-    // m_storageSpace.capacity()
-    // https://bugs.webkit.org/show_bug.cgi?id=150268
-    ASSERT(m_totalBytesCopied &lt;= m_storageSpace.size());
-    currentHeapSize += m_storageSpace.capacity();
-    if (verbose)
-        dataLog(&quot;storageSpace.capacity() = &quot;, m_storageSpace.capacity(), &quot;, currentHeapSize = &quot;, currentHeapSize, &quot;\n&quot;);
-
</del><span class="cx">     // It's up to the user to ensure that extraMemorySize() ends up corresponding to allocation-time
</span><span class="cx">     // extra memory reporting.
</span><span class="cx">     currentHeapSize += extraMemorySize();
</span><span class="lines">@@ -1646,14 +1558,6 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-size_t Heap::threadBytesCopied()
-{       
-    size_t result = 0;
-    for (auto&amp; parallelVisitor : m_parallelSlotVisitors)
-        result += parallelVisitor-&gt;bytesCopied();
-    return result;
-}
-
</del><span class="cx"> void Heap::forEachCodeBlockImpl(const ScopedLambda&lt;bool(CodeBlock*)&gt;&amp; func)
</span><span class="cx"> {
</span><span class="cx">     // We don't know the full set of CodeBlocks until compilation has terminated.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/Heap.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/Heap.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/Heap.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> #define Heap_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ArrayBuffer.h&quot;
</span><del>-#include &quot;CopyVisitor.h&quot;
</del><span class="cx"> #include &quot;GCIncomingRefCountedSet.h&quot;
</span><span class="cx"> #include &quot;HandleSet.h&quot;
</span><span class="cx"> #include &quot;HandleStack.h&quot;
</span><span class="lines">@@ -52,7 +51,6 @@
</span><span class="cx"> 
</span><span class="cx"> class CodeBlock;
</span><span class="cx"> class CodeBlockSet;
</span><del>-class CopiedSpace;
</del><span class="cx"> class EdenGCActivityCallback;
</span><span class="cx"> class ExecutableBase;
</span><span class="cx"> class FullGCActivityCallback;
</span><span class="lines">@@ -120,7 +118,6 @@
</span><span class="cx"> 
</span><span class="cx">     VM* vm() const { return m_vm; }
</span><span class="cx">     MarkedSpace&amp; objectSpace() { return m_objectSpace; }
</span><del>-    CopiedSpace&amp; storageSpace() { return m_storageSpace; }
</del><span class="cx">     MachineThreads&amp; machineThreads() { return m_machineThreads; }
</span><span class="cx"> 
</span><span class="cx">     const SlotVisitor&amp; slotVisitor() const { return m_slotVisitor; }
</span><span class="lines">@@ -150,12 +147,9 @@
</span><span class="cx">     MarkedAllocator* allocatorForObjectWithDestructor(size_t bytes) { return m_objectSpace.destructorAllocatorFor(bytes); }
</span><span class="cx">     template&lt;typename ClassType&gt; MarkedAllocator* allocatorForObjectOfType(size_t bytes);
</span><span class="cx">     MarkedAllocator* allocatorForAuxiliaryData(size_t bytes) { return m_objectSpace.auxiliaryAllocatorFor(bytes); }
</span><del>-    CopiedAllocator&amp; storageAllocator() { return m_storageSpace.allocator(); }
</del><span class="cx">     void* allocateAuxiliary(JSCell* intendedOwner, size_t);
</span><span class="cx">     void* tryAllocateAuxiliary(JSCell* intendedOwner, size_t);
</span><span class="cx">     void* tryReallocateAuxiliary(JSCell* intendedOwner, void* oldBase, size_t oldSize, size_t newSize);
</span><del>-    CheckedBoolean tryAllocateStorage(JSCell* intendedOwner, size_t, void**);
-    CheckedBoolean tryReallocateStorage(JSCell* intendedOwner, void**, size_t, size_t);
</del><span class="cx">     void ascribeOwner(JSCell* intendedOwner, void*);
</span><span class="cx"> 
</span><span class="cx">     typedef void (*Finalizer)(JSCell*);
</span><span class="lines">@@ -263,7 +257,6 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     friend class CodeBlock;
</span><del>-    friend class CopiedBlock;
</del><span class="cx">     friend class DeferGC;
</span><span class="cx">     friend class DeferGCForAWhile;
</span><span class="cx">     friend class GCAwareJITStubRoutine;
</span><span class="lines">@@ -277,8 +270,6 @@
</span><span class="cx">     friend class MarkedSpace;
</span><span class="cx">     friend class MarkedAllocator;
</span><span class="cx">     friend class MarkedBlock;
</span><del>-    friend class CopiedSpace;
-    friend class CopyVisitor;
</del><span class="cx">     friend class SlotVisitor;
</span><span class="cx">     friend class IncrementalSweeper;
</span><span class="cx">     friend class HeapStatistics;
</span><span class="lines">@@ -343,7 +334,6 @@
</span><span class="cx">     void notifyIncrementalSweeper();
</span><span class="cx">     void writeBarrierCurrentlyExecutingCodeBlocks();
</span><span class="cx">     void resetAllocators();
</span><del>-    void copyBackingStores();
</del><span class="cx">     void harvestWeakReferences();
</span><span class="cx">     void finalizeUnconditionalFinalizers();
</span><span class="cx">     void clearUnmarkedExecutables();
</span><span class="lines">@@ -368,7 +358,6 @@
</span><span class="cx"> 
</span><span class="cx">     size_t threadVisitCount();
</span><span class="cx">     size_t threadBytesVisited();
</span><del>-    size_t threadBytesCopied();
</del><span class="cx">     
</span><span class="cx">     void forEachCodeBlockImpl(const ScopedLambda&lt;bool(CodeBlock*)&gt;&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -388,13 +377,10 @@
</span><span class="cx">     bool m_shouldDoFullCollection;
</span><span class="cx">     size_t m_totalBytesVisited;
</span><span class="cx">     size_t m_totalBytesVisitedThisCycle;
</span><del>-    size_t m_totalBytesCopied;
-    size_t m_totalBytesCopiedThisCycle;
</del><span class="cx">     
</span><span class="cx">     HeapOperation m_operationInProgress;
</span><span class="cx">     StructureIDTable m_structureIDTable;
</span><span class="cx">     MarkedSpace m_objectSpace;
</span><del>-    CopiedSpace m_storageSpace;
</del><span class="cx">     GCIncomingRefCountedSet&lt;ArrayBuffer&gt; m_arrayBuffers;
</span><span class="cx">     size_t m_extraMemorySize;
</span><span class="cx">     size_t m_deprecatedExtraMemorySize;
</span><span class="lines">@@ -464,7 +450,6 @@
</span><span class="cx">     Lock m_opaqueRootsMutex;
</span><span class="cx">     HashSet&lt;void*&gt; m_opaqueRoots;
</span><span class="cx"> 
</span><del>-    Vector&lt;CopiedBlock*&gt; m_blocksToCopy;
</del><span class="cx">     static const size_t s_blockFragmentLength = 32;
</span><span class="cx"> 
</span><span class="cx">     ListableHandler&lt;WeakReferenceHarvester&gt;::List m_weakReferenceHarvesters;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeapCellInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/HeapCellInlines.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/HeapCellInlines.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/HeapCellInlines.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &quot;HeapCell.h&quot;
</span><span class="cx"> #include &quot;LargeAllocation.h&quot;
</span><span class="cx"> #include &quot;MarkedBlock.h&quot;
</span><ins>+#include &quot;VM.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeapInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/HeapInlines.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/HeapInlines.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/HeapInlines.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #ifndef HeapInlines_h
</span><span class="cx"> #define HeapInlines_h
</span><span class="cx"> 
</span><del>-#include &quot;CopyBarrier.h&quot;
</del><span class="cx"> #include &quot;Heap.h&quot;
</span><span class="cx"> #include &quot;HeapCellInlines.h&quot;
</span><span class="cx"> #include &quot;IndexingHeader.h&quot;
</span><span class="lines">@@ -294,31 +293,6 @@
</span><span class="cx">     return newBase;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline CheckedBoolean Heap::tryAllocateStorage(JSCell* intendedOwner, size_t bytes, void** outPtr)
-{
-    CheckedBoolean result = m_storageSpace.tryAllocate(bytes, outPtr);
-#if ENABLE(ALLOCATION_LOGGING)
-    dataLogF(&quot;JSC GC allocating %lu bytes of storage for %p: %p.\n&quot;, bytes, intendedOwner, *outPtr);
-#else
-    UNUSED_PARAM(intendedOwner);
-#endif
-    return result;
-}
-
-inline CheckedBoolean Heap::tryReallocateStorage(JSCell* intendedOwner, void** ptr, size_t oldSize, size_t newSize)
-{
-#if ENABLE(ALLOCATION_LOGGING)
-    void* oldPtr = *ptr;
-#endif
-    CheckedBoolean result = m_storageSpace.tryReallocate(ptr, oldSize, newSize);
-#if ENABLE(ALLOCATION_LOGGING)
-    dataLogF(&quot;JSC GC reallocating %lu -&gt; %lu bytes of storage for %p: %p -&gt; %p.\n&quot;, oldSize, newSize, intendedOwner, oldPtr, *ptr);
-#else
-    UNUSED_PARAM(intendedOwner);
-#endif
-    return result;
-}
-
</del><span class="cx"> inline void Heap::ascribeOwner(JSCell* intendedOwner, void* storage)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(ALLOCATION_LOGGING)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapHeapVerifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/HeapVerifier.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/HeapVerifier.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/HeapVerifier.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #include &quot;HeapVerifier.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;HeapIterationScope.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> #include &quot;JSObject.h&quot;
</span><span class="lines">@@ -77,27 +76,6 @@
</span><span class="cx">     return nullptr; // Silencing a compiler warning.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void getButterflyDetails(JSObject* obj, void*&amp; butterflyBase, size_t&amp; butterflyCapacityInBytes, CopiedBlock*&amp; butterflyBlock)
-{
-    Structure* structure = obj-&gt;structure();
-    Butterfly* butterfly = obj-&gt;butterfly();
-    butterflyBase = butterfly-&gt;base(structure);
-    butterflyBlock = CopiedSpace::blockFor(butterflyBase);
-
-    size_t propertyCapacity = structure-&gt;outOfLineCapacity();
-    size_t preCapacity;
-    size_t indexingPayloadSizeInBytes;
-    bool hasIndexingHeader = obj-&gt;hasIndexingHeader();
-    if (UNLIKELY(hasIndexingHeader)) {
-        preCapacity = butterfly-&gt;indexingHeader()-&gt;preCapacity(structure);
-        indexingPayloadSizeInBytes = butterfly-&gt;indexingHeader()-&gt;indexingPayloadSizeInBytes(structure);
-    } else {
-        preCapacity = 0;
-        indexingPayloadSizeInBytes = 0;
-    }
-    butterflyCapacityInBytes = Butterfly::totalSize(preCapacity, propertyCapacity, hasIndexingHeader, indexingPayloadSizeInBytes);
-}
-
</del><span class="cx"> void HeapVerifier::initializeGCCycle()
</span><span class="cx"> {
</span><span class="cx">     Heap* heap = m_heap;
</span><span class="lines">@@ -197,42 +175,10 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool HeapVerifier::verifyButterflyIsInStorageSpace(Phase phase, LiveObjectList&amp; list)
</del><ins>+bool HeapVerifier::verifyButterflyIsInStorageSpace(Phase, LiveObjectList&amp;)
</ins><span class="cx"> {
</span><del>-    auto&amp; liveObjects = list.liveObjects;
-
-    CopiedSpace&amp; storageSpace = m_heap-&gt;m_storageSpace;
-    bool listNamePrinted = false;
-    bool success = true;
-    for (size_t i = 0; i &lt; liveObjects.size(); i++) {
-        LiveObjectData&amp; objectData = liveObjects[i];
-        if (objectData.isConfirmedDead)
-            continue;
-
-        JSObject* obj = objectData.obj;
-        Butterfly* butterfly = obj-&gt;butterfly();
-        if (butterfly) {
-            void* butterflyBase;
-            size_t butterflyCapacityInBytes;
-            CopiedBlock* butterflyBlock;
-            getButterflyDetails(obj, butterflyBase, butterflyCapacityInBytes, butterflyBlock);
-
-            if (!storageSpace.contains(butterflyBlock)) {
-                if (!listNamePrinted) {
-                    dataLogF(&quot;Verification @ phase %s FAILED in object list '%s' (size %zu)\n&quot;,
-                        phaseName(phase), list.name, liveObjects.size());
-                    listNamePrinted = true;
-                }
-
-                Structure* structure = obj-&gt;structure();
-                const char* structureClassName = structure-&gt;classInfo()-&gt;className;
-                dataLogF(&quot;    butterfly %p (base %p size %zu block %p) NOT in StorageSpace | obj %p type '%s'\n&quot;,
-                    butterfly, butterflyBase, butterflyCapacityInBytes, butterflyBlock, obj, structureClassName);
-                success = false;
-            }
-        }
-    }
-    return success;
</del><ins>+    // FIXME: Make this work again. https://bugs.webkit.org/show_bug.cgi?id=161752
+    return true;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HeapVerifier::verify(HeapVerifier::Phase phase)
</span><span class="lines">@@ -254,14 +200,11 @@
</span><span class="cx"> 
</span><span class="cx">     Structure* structure = obj-&gt;structure();
</span><span class="cx">     Butterfly* butterfly = obj-&gt;butterfly();
</span><del>-    void* butterflyBase;
-    size_t butterflyCapacityInBytes;
-    CopiedBlock* butterflyBlock;
-    getButterflyDetails(obj, butterflyBase, butterflyCapacityInBytes, butterflyBlock);
</del><ins>+    void* butterflyBase = butterfly-&gt;base(structure);
</ins><span class="cx"> 
</span><del>-    dataLogF(&quot;FOUND obj %p type '%s' butterfly %p (base %p size %zu block %p) in GC[%d] %s list '%s'\n&quot;,
</del><ins>+    dataLogF(&quot;FOUND obj %p type '%s' butterfly %p (base %p) in GC[%d] %s list '%s'\n&quot;,
</ins><span class="cx">         obj, structure-&gt;classInfo()-&gt;className,
</span><del>-        butterfly, butterflyBase, butterflyCapacityInBytes, butterflyBlock,
</del><ins>+        butterfly, butterflyBase,
</ins><span class="cx">         cycleIndex, cycle.collectionTypeName(), list.name);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapSlotVisitorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/SlotVisitor.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/SlotVisitor.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/SlotVisitor.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -28,9 +28,6 @@
</span><span class="cx"> #include &quot;SlotVisitorInlines.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ConservativeRoots.h&quot;
</span><del>-#include &quot;CopiedBlockInlines.h&quot;
-#include &quot;CopiedSpace.h&quot;
-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;HeapCellInlines.h&quot;
</span><span class="cx"> #include &quot;HeapProfiler.h&quot;
</span><span class="cx"> #include &quot;HeapSnapshotBuilder.h&quot;
</span><span class="lines">@@ -492,36 +489,6 @@
</span><span class="cx">     drain();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SlotVisitor::copyLater(JSCell* owner, CopyToken token, void* ptr, size_t bytes)
-{
-    ASSERT(bytes);
-    CopiedBlock* block = CopiedSpace::blockFor(ptr);
-    if (block-&gt;isOversize()) {
-        ASSERT(bytes &lt;= block-&gt;size());
-        // FIXME: We should be able to shrink the allocation if bytes went below the block size.
-        // For now, we just make sure that our accounting of how much memory we are actually using
-        // is correct.
-        // https://bugs.webkit.org/show_bug.cgi?id=144749
-        bytes = block-&gt;size();
-        m_heap.m_storageSpace.pin(block);
-    }
-
-    ASSERT(heap()-&gt;m_storageSpace.contains(block));
-
-    LockHolder locker(&amp;block-&gt;workListLock());
-    // We always report live bytes, except if during an eden collection we see an old object pointing to an
-    // old backing store and the old object is being marked because of the remembered set. Note that if we
-    // ask the object itself, it will always tell us that it's an old black object - because even during an
-    // eden collection we have already indicated that the object is old. That's why we use the
-    // SlotVisitor's cache of the object's old state.
-    if (heap()-&gt;operationInProgress() == FullCollection
-        || !block-&gt;isOld()
-        || m_currentObjectCellStateBeforeVisiting != CellState::OldGrey) {
-        m_bytesCopied += bytes;
-        block-&gt;reportLiveBytes(locker, owner, token, bytes);
-    }
-}
-    
</del><span class="cx"> void SlotVisitor::mergeOpaqueRoots()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!m_opaqueRoots.isEmpty()); // Should only be called when opaque roots are non-empty.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreheapSlotVisitorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/heap/SlotVisitor.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/heap/SlotVisitor.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/heap/SlotVisitor.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #define SlotVisitor_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CellState.h&quot;
</span><del>-#include &quot;CopyToken.h&quot;
</del><span class="cx"> #include &quot;HandleTypes.h&quot;
</span><span class="cx"> #include &quot;MarkStack.h&quot;
</span><span class="cx"> #include &quot;OpaqueRootSet.h&quot;
</span><span class="lines">@@ -113,8 +112,6 @@
</span><span class="cx">     // this then the space will be freed at end of GC.
</span><span class="cx">     void markAuxiliary(const void* base);
</span><span class="cx"> 
</span><del>-    void copyLater(JSCell*, CopyToken, void*, size_t);
-    
</del><span class="cx">     void reportExtraMemoryVisited(size_t);
</span><span class="cx"> #if ENABLE(RESOURCE_USAGE)
</span><span class="cx">     void reportExternalMemoryVisited(size_t);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitAssemblyHelpersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/AssemblyHelpers.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/AssemblyHelpers.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/jit/AssemblyHelpers.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><del>-#include &quot;CopyBarrier.h&quot;
</del><span class="cx"> #include &quot;FPRInfo.h&quot;
</span><span class="cx"> #include &quot;GPRInfo.h&quot;
</span><span class="cx"> #include &quot;Heap.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOpcodescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #include &quot;JIT.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BasicBlockLocation.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;Exception.h&quot;
</span><span class="cx"> #include &quot;Heap.h&quot;
</span><span class="cx"> #include &quot;Interpreter.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejsccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jsc.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jsc.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/jsc.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><span class="cx"> #include &quot;Completion.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;Disassembler.h&quot;
</span><span class="cx"> #include &quot;Exception.h&quot;
</span><span class="cx"> #include &quot;ExceptionHelpers.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArrayConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ArrayConstructor.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ArrayConstructor.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/ArrayConstructor.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ArrayPrototype.h&quot;
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;ExceptionHelpers.h&quot;
</span><span class="cx"> #include &quot;GetterSetter.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArrayPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #include &quot;BuiltinNames.h&quot;
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;GetterSetter.h&quot;
</span><span class="cx"> #include &quot;Interpreter.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeAuxiliaryBarrierh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/AuxiliaryBarrier.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/AuxiliaryBarrier.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/AuxiliaryBarrier.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> template&lt;typename T&gt;
</span><span class="cx"> class AuxiliaryBarrier {
</span><span class="cx"> public:
</span><ins>+    // This doesn't initialize m_value because I worry about performance on PLT, or something.
</ins><span class="cx">     AuxiliaryBarrier() { }
</span><span class="cx">     
</span><span class="cx">     template&lt;typename U&gt;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeButterflyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Butterfly.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Butterfly.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/Butterfly.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -114,7 +114,6 @@
</span><span class="cx"> 
</span><span class="cx">     static Butterfly* create(VM&amp;, JSCell* intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader&amp;, size_t indexingPayloadSizeInBytes);
</span><span class="cx">     static Butterfly* create(VM&amp;, JSCell* intendedOwner, Structure*);
</span><del>-    static Butterfly* createUninitializedDuringCollection(CopyVisitor&amp;, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes);
</del><span class="cx">     
</span><span class="cx">     IndexingHeader* indexingHeader() { return IndexingHeader::from(this); }
</span><span class="cx">     const IndexingHeader* indexingHeader() const { return IndexingHeader::from(this); }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeButterflyInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ButterflyInlines.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ButterflyInlines.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/ButterflyInlines.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -28,8 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ArrayStorage.h&quot;
</span><span class="cx"> #include &quot;Butterfly.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
-#include &quot;CopyVisitor.h&quot;
</del><span class="cx"> #include &quot;VM.h&quot;
</span><span class="cx"> #include &quot;Structure.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -87,15 +85,6 @@
</span><span class="cx">         structure-&gt;hasIndexingHeader(intendedOwner), IndexingHeader(), 0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Butterfly* Butterfly::createUninitializedDuringCollection(CopyVisitor&amp; visitor, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes)
-{
-    size_t size = totalSize(preCapacity, propertyCapacity, hasIndexingHeader, indexingPayloadSizeInBytes);
-    Butterfly* result = fromBase(
-        visitor.allocateNewSpace(size),
-        preCapacity, propertyCapacity);
-    return result;
-}
-
</del><span class="cx"> inline void* Butterfly::base(Structure* structure)
</span><span class="cx"> {
</span><span class="cx">     return base(indexingHeader()-&gt;preCapacity(structure), structure-&gt;outOfLineCapacity());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeClassInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ClassInfo.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ClassInfo.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/ClassInfo.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -25,7 +25,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CallFrame.h&quot;
</span><span class="cx"> #include &quot;ConstructData.h&quot;
</span><del>-#include &quot;CopyToken.h&quot;
</del><span class="cx"> #include &quot;JSCell.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="lines">@@ -41,9 +40,6 @@
</span><span class="cx">     typedef void (*VisitChildrenFunctionPtr)(JSCell*, SlotVisitor&amp;);
</span><span class="cx">     VisitChildrenFunctionPtr visitChildren;
</span><span class="cx"> 
</span><del>-    typedef void (*CopyBackingStoreFunctionPtr)(JSCell*, CopyVisitor&amp;, CopyToken);
-    CopyBackingStoreFunctionPtr copyBackingStore;
-
</del><span class="cx">     typedef CallType (*GetCallDataFunctionPtr)(JSCell*, CallData&amp;);
</span><span class="cx">     GetCallDataFunctionPtr getCallData;
</span><span class="cx"> 
</span><span class="lines">@@ -151,7 +147,6 @@
</span><span class="cx"> #define CREATE_METHOD_TABLE(ClassName) { \
</span><span class="cx">         &amp;ClassName::destroy, \
</span><span class="cx">         &amp;ClassName::visitChildren, \
</span><del>-        &amp;ClassName::copyBackingStore, \
</del><span class="cx">         &amp;ClassName::getCallData, \
</span><span class="cx">         &amp;ClassName::getConstructData, \
</span><span class="cx">         &amp;ClassName::put, \
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeDirectArgumentscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/DirectArguments.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/DirectArguments.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/DirectArguments.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -27,8 +27,6 @@
</span><span class="cx"> #include &quot;DirectArguments.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><del>-#include &quot;CopiedBlockInlines.h&quot;
-#include &quot;CopyVisitorInlines.h&quot;
</del><span class="cx"> #include &quot;GenericArgumentsInlines.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -43,6 +41,8 @@
</span><span class="cx">     , m_length(length)
</span><span class="cx">     , m_minCapacity(capacity)
</span><span class="cx"> {
</span><ins>+    m_overrides.clear();
+    
</ins><span class="cx">     // When we construct the object from C++ code, we expect the capacity to be at least as large as
</span><span class="cx">     // length. JIT-allocated DirectArguments objects play evil tricks, though.
</span><span class="cx">     ASSERT(capacity &gt;= length);
</span><span class="lines">@@ -101,29 +101,10 @@
</span><span class="cx">     visitor.appendValues(thisObject-&gt;storage(), std::max(thisObject-&gt;m_length, thisObject-&gt;m_minCapacity));
</span><span class="cx">     visitor.append(&amp;thisObject-&gt;m_callee);
</span><span class="cx">     
</span><del>-    if (thisObject-&gt;m_overrides) {
-        visitor.copyLater(
-            thisObject, DirectArgumentsOverridesCopyToken,
-            thisObject-&gt;m_overrides.get(), thisObject-&gt;overridesSize());
-    }
</del><ins>+    if (thisObject-&gt;m_overrides)
+        visitor.markAuxiliary(thisObject-&gt;m_overrides.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DirectArguments::copyBackingStore(JSCell* thisCell, CopyVisitor&amp; visitor, CopyToken token)
-{
-    DirectArguments* thisObject = static_cast&lt;DirectArguments*&gt;(thisCell);
-    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
-    
-    RELEASE_ASSERT(token == DirectArgumentsOverridesCopyToken);
-    
-    void* oldOverrides = thisObject-&gt;m_overrides.get();
-    if (visitor.checkIfShouldCopy(oldOverrides)) {
-        bool* newOverrides = static_cast&lt;bool*&gt;(visitor.allocateNewSpace(thisObject-&gt;overridesSize()));
-        memcpy(newOverrides, oldOverrides, thisObject-&gt;m_length);
-        thisObject-&gt;m_overrides.setWithoutBarrier(newOverrides);
-        visitor.didCopy(oldOverrides, thisObject-&gt;overridesSize());
-    }
-}
-
</del><span class="cx"> Structure* DirectArguments::createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
</span><span class="cx"> {
</span><span class="cx">     return Structure::create(vm, globalObject, prototype, TypeInfo(DirectArgumentsType, StructureFlags), info());
</span><span class="lines">@@ -137,8 +118,8 @@
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;callee, m_callee.get(), DontEnum);
</span><span class="cx">     putDirect(vm, vm.propertyNames-&gt;iteratorSymbol, globalObject()-&gt;arrayProtoValuesFunction(), DontEnum);
</span><span class="cx">     
</span><del>-    void* backingStore;
-    RELEASE_ASSERT(vm.heap.tryAllocateStorage(this, overridesSize(), &amp;backingStore));
</del><ins>+    void* backingStore = vm.heap.tryAllocateAuxiliary(this, overridesSize());
+    RELEASE_ASSERT(backingStore);
</ins><span class="cx">     bool* overrides = static_cast&lt;bool*&gt;(backingStore);
</span><span class="cx">     m_overrides.set(vm, this, overrides);
</span><span class="cx">     for (unsigned i = m_length; i--;)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeDirectArgumentsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/DirectArguments.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/DirectArguments.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/DirectArguments.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #ifndef DirectArguments_h
</span><span class="cx"> #define DirectArguments_h
</span><span class="cx"> 
</span><del>-#include &quot;CopyBarrier.h&quot;
</del><ins>+#include &quot;AuxiliaryBarrier.h&quot;
</ins><span class="cx"> #include &quot;DirectArgumentsOffset.h&quot;
</span><span class="cx"> #include &quot;GenericArguments.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -59,7 +59,6 @@
</span><span class="cx"> 
</span><span class="cx">     static size_t estimatedSize(JSCell*);
</span><span class="cx">     static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><del>-    static void copyBackingStore(JSCell*, CopyVisitor&amp;, CopyToken);
</del><span class="cx">     
</span><span class="cx">     uint32_t internalLength() const
</span><span class="cx">     {
</span><span class="lines">@@ -150,7 +149,7 @@
</span><span class="cx">     WriteBarrier&lt;JSFunction&gt; m_callee;
</span><span class="cx">     uint32_t m_length; // Always the actual length of captured arguments and never what was stored into the length property.
</span><span class="cx">     uint32_t m_minCapacity; // The max of this and length determines the capacity of this object. It may be the actual capacity, or maybe something smaller. We arrange it this way to be kind to the JITs.
</span><del>-    CopyBarrier&lt;bool&gt; m_overrides; // If non-null, it means that length, callee, and caller are fully materialized properties.
</del><ins>+    AuxiliaryBarrier&lt;bool*&gt; m_overrides; // If non-null, it means that length, callee, and caller are fully materialized properties.
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArray.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArray.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/JSArray.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #include &quot;ArrayPrototype.h&quot;
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><del>-#include &quot;CopiedSpace.h&quot;
</del><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><span class="cx"> #include &quot;GetterSetter.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCell.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCell.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/JSCell.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -61,10 +61,6 @@
</span><span class="cx">     return cell-&gt;cellSize();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSCell::copyBackingStore(JSCell*, CopyVisitor&amp;, CopyToken)
-{
-}
-
</del><span class="cx"> void JSCell::heapSnapshot(JSCell*, HeapSnapshotBuilder&amp;)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCellh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCell.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCell.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/JSCell.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -138,7 +138,6 @@
</span><span class="cx">     JS_EXPORT_PRIVATE static size_t estimatedSize(JSCell*);
</span><span class="cx"> 
</span><span class="cx">     static void visitChildren(JSCell*, SlotVisitor&amp;);
</span><del>-    JS_EXPORT_PRIVATE static void copyBackingStore(JSCell*, CopyVisitor&amp;, CopyToken);
</del><span class="cx"> 
</span><span class="cx">     JS_EXPORT_PRIVATE static void heapSnapshot(JSCell*, HeapSnapshotBuilder&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSLexicalEnvironmenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.h (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.h        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.h        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> #define JSLexicalEnvironment_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;JSEnvironmentRecord.h&quot;
</span><span class="cx"> #include &quot;SymbolTable.h&quot;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -25,10 +25,6 @@
</span><span class="cx"> #include &quot;JSObject.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><del>-#include &quot;CopiedBlockInlines.h&quot;
-#include &quot;CopiedSpaceInlines.h&quot;
-#include &quot;CopyVisitor.h&quot;
-#include &quot;CopyVisitorInlines.h&quot;
</del><span class="cx"> #include &quot;CustomGetterSetter.h&quot;
</span><span class="cx"> #include &quot;DatePrototype.h&quot;
</span><span class="cx"> #include &quot;ErrorConstructor.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSTypedArrayscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSTypedArrays.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSTypedArrays.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/JSTypedArrays.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -26,8 +26,6 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;JSTypedArrays.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;CopiedBlockInlines.h&quot;
-#include &quot;CopyVisitorInlines.h&quot;
</del><span class="cx"> #include &quot;GenericTypedArrayViewInlines.h&quot;
</span><span class="cx"> #include &quot;JSGenericTypedArrayViewInlines.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeLiteralParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;JSArray.h&quot;
</span><span class="cx"> #include &quot;JSString.h&quot;
</span><span class="cx"> #include &quot;Lexer.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeObjectConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinNames.h&quot;
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;ExceptionHelpers.h&quot;
</span><span class="cx"> #include &quot;JSArray.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -22,7 +22,6 @@
</span><span class="cx"> #include &quot;RegExpObject.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;ExceptionHelpers.h&quot;
</span><span class="cx"> #include &quot;JSArray.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStringPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #include &quot;BuiltinNames.h&quot;
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><span class="cx"> #include &quot;CachedCall.h&quot;
</span><del>-#include &quot;CopiedSpaceInlines.h&quot;
</del><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><span class="cx"> #include &quot;IntlObject.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeWeakMapDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/WeakMapData.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/WeakMapData.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/runtime/WeakMapData.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -26,8 +26,6 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WeakMapData.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;CopiedAllocator.h&quot;
-#include &quot;CopyVisitorInlines.h&quot;
</del><span class="cx"> #include &quot;ExceptionHelpers.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoretoolsJSDollarVMPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/tools/JSDollarVMPrototype.cpp (205665 => 205666)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/tools/JSDollarVMPrototype.cpp        2016-09-08 22:02:39 UTC (rev 205665)
+++ trunk/Source/JavaScriptCore/tools/JSDollarVMPrototype.cpp        2016-09-08 22:12:05 UTC (rev 205666)
</span><span class="lines">@@ -155,10 +155,11 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool JSDollarVMPrototype::isInStorageSpace(Heap* heap, void* ptr)
</del><ins>+bool JSDollarVMPrototype::isInStorageSpace(Heap*, void*)
</ins><span class="cx"> {
</span><del>-    CopiedBlock* candidate = CopiedSpace::blockFor(ptr);
-    return heap-&gt;storageSpace().contains(candidate);
</del><ins>+    // FIXME: Do something with this.
+    // https://bugs.webkit.org/show_bug.cgi?id=161753
+    return false;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> struct CellAddressCheckFunctor : MarkedBlock::CountFunctor {
</span></span></pre>
</div>
</div>

</body>
</html>