Index: test/cctest/test-heap.cc |
=================================================================== |
--- test/cctest/test-heap.cc (revision 11658) |
+++ test/cctest/test-heap.cc (working copy) |
@@ -1579,10 +1579,13 @@ |
*v8::Handle<v8::Object>::Cast( |
v8::Context::GetCurrent()->Global()->Get(v8_str("base")))); |
- // Verify that only dead prototype transitions are cleared. |
- CHECK_EQ(10, baseObject->map()->NumberOfProtoTransitions()); |
+ // Verify that only dead prototype transitions are cleared. There is an |
+ // extra, 11th, prototype transition on the Object map, which is the |
+ // transition to a map with the used_for_prototype flag set (the key is |
+ // the_hole). |
+ CHECK_EQ(11, baseObject->map()->NumberOfProtoTransitions()); |
HEAP->CollectAllGarbage(Heap::kNoGCFlags); |
- CHECK_EQ(10 - 3, baseObject->map()->NumberOfProtoTransitions()); |
+ CHECK_EQ(11 - 3, baseObject->map()->NumberOfProtoTransitions()); |
// Verify that prototype transitions array was compacted. |
FixedArray* trans = baseObject->map()->prototype_transitions(); |
@@ -1590,7 +1593,8 @@ |
int j = Map::kProtoTransitionHeaderSize + |
i * Map::kProtoTransitionElementsPerEntry; |
CHECK(trans->get(j + Map::kProtoTransitionMapOffset)->IsMap()); |
- CHECK(trans->get(j + Map::kProtoTransitionPrototypeOffset)->IsJSObject()); |
+ Object* proto = trans->get(j + Map::kProtoTransitionPrototypeOffset); |
+ CHECK(proto == trans->GetHeap()->the_hole_value() || proto->IsJSObject()); |
Michael Starzinger
2012/05/30 14:08:03
Can we just use proto->IsTheHole() here, that's mo
Erik Corry
2012/05/30 15:24:13
Done.
|
} |
// Make sure next prototype is placed on an old-space evacuation candidate. |