Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index 1ccdf3b4a51f7d88e7b0f0a3303ebb06b95fe64e..3302a176318d609afb85d57f170a8223d48642d4 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -1359,6 +1359,11 @@ void Heap::MarkCompactPrologue() { |
} |
+void Heap::MigrateMixedObjectInNewSpaceEpilog(HeapObject* dst) { |
+ DCHECK(dst->MayContainMixedValues()); |
+} |
+ |
+ |
// Helper class for copying HeapObjects |
class ScavengeVisitor : public ObjectVisitor { |
public: |
@@ -2124,6 +2129,10 @@ class ScavengingVisitor : public StaticVisitorBase { |
// Copy the content of source to target. |
heap->CopyBlock(target->address(), source->address(), size); |
+ if (target->MayContainMixedValues()) { |
+ heap->MigrateMixedObjectInNewSpaceEpilog(target); |
+ } |
+ |
// Set the forwarding address. |
source->set_map_word(MapWord::FromForwardingAddress(target)); |