Chromium Code Reviews| 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. |