| Index: test/cctest/test-heap.cc | 
| diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc | 
| index ee476db6cdc4729b1a65a560fe03734a65f2bfdb..5d370077381c4bb5e9be7198117b4a8d14fa487a 100644 | 
| --- a/test/cctest/test-heap.cc | 
| +++ b/test/cctest/test-heap.cc | 
| @@ -1464,6 +1464,9 @@ TEST(TestInternalWeakLists) { | 
|  | 
| // Mark compact handles the weak references. | 
| isolate->compilation_cache()->Clear(); | 
| +    // We have to collect twice because the type feedback vector | 
| +    // could be strongly walked before we clear ICs in it. | 
| +    heap->CollectAllGarbage(Heap::kNoGCFlags); | 
| heap->CollectAllGarbage(Heap::kNoGCFlags); | 
| CHECK_EQ(opt ? 4 : 0, CountOptimizedUserFunctions(ctx[i])); | 
|  | 
| @@ -3138,7 +3141,7 @@ TEST(IncrementalMarkingClearsTypeFeedbackInfo) { | 
| // originating from two different native contexts. | 
| CcTest::global()->Set(v8_str("fun1"), fun1); | 
| CcTest::global()->Set(v8_str("fun2"), fun2); | 
| -  CompileRun("function f(a, b) { a(); b(); } f(fun1, fun2);"); | 
| +  CompileRun("function f(a, b) { new a(); new b(); } f(fun1, fun2);"); | 
|  | 
| Handle<JSFunction> f = | 
| v8::Utils::OpenHandle( | 
| @@ -3147,20 +3150,18 @@ TEST(IncrementalMarkingClearsTypeFeedbackInfo) { | 
|  | 
| Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector()); | 
|  | 
| -  int expected_length = FLAG_vector_ics ? 4 : 2; | 
| -  CHECK_EQ(expected_length, feedback_vector->length()); | 
| -  for (int i = 0; i < expected_length; i++) { | 
| -    if ((i % 2) == 1) { | 
| -      CHECK(feedback_vector->get(i)->IsJSFunction()); | 
| -    } | 
| +  int expected_slots = 2; | 
| +  CHECK_EQ(expected_slots, feedback_vector->Slots()); | 
| +  for (int i = 0; i < expected_slots; i++) { | 
| +    CHECK(feedback_vector->Get(FeedbackVectorSlot(i))->IsJSFunction()); | 
| } | 
|  | 
| SimulateIncrementalMarking(CcTest::heap()); | 
| CcTest::heap()->CollectAllGarbage(Heap::kNoGCFlags); | 
|  | 
| -  CHECK_EQ(expected_length, feedback_vector->length()); | 
| -  for (int i = 0; i < expected_length; i++) { | 
| -    CHECK_EQ(feedback_vector->get(i), | 
| +  CHECK_EQ(expected_slots, feedback_vector->Slots()); | 
| +  for (int i = 0; i < expected_slots; i++) { | 
| +    CHECK_EQ(feedback_vector->Get(FeedbackVectorSlot(i)), | 
| *TypeFeedbackVector::UninitializedSentinel(CcTest::i_isolate())); | 
| } | 
| } | 
|  |