 Chromium Code Reviews
 Chromium Code Reviews Issue 10448011:
  Keep track of which maps are associated with prototype objects  (Closed) 
  Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
    
  
    Issue 10448011:
  Keep track of which maps are associated with prototype objects  (Closed) 
  Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/| 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. |