| Index: src/hydrogen.cc
 | 
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
 | 
| index 6e6eb9c7d686ee0183844508c5936afa7af4bfc9..c79a8170b64ddfa0b8b3125fb6f4977db993ae6d 100644
 | 
| --- a/src/hydrogen.cc
 | 
| +++ b/src/hydrogen.cc
 | 
| @@ -5406,8 +5406,11 @@
 | 
|                                      variable->name(),
 | 
|                                      ast_context()->is_for_typeof());
 | 
|          if (FLAG_vector_ics) {
 | 
| -          instr->SetVectorAndSlot(handle(current_feedback_vector(), isolate()),
 | 
| -                                  expr->VariableFeedbackSlot());
 | 
| +          Handle<SharedFunctionInfo> current_shared =
 | 
| +              function_state()->compilation_info()->shared_info();
 | 
| +          instr->SetVectorAndSlot(
 | 
| +              handle(current_shared->feedback_vector(), isolate()),
 | 
| +              expr->VariableFeedbackSlot());
 | 
|          }
 | 
|          return ast_context()->ReturnInstruction(instr, expr->id());
 | 
|        }
 | 
| @@ -6898,8 +6901,10 @@
 | 
|      HLoadNamedGeneric* result =
 | 
|          New<HLoadNamedGeneric>(object, name, PREMONOMORPHIC);
 | 
|      if (FLAG_vector_ics) {
 | 
| +      Handle<SharedFunctionInfo> current_shared =
 | 
| +          function_state()->compilation_info()->shared_info();
 | 
|        Handle<TypeFeedbackVector> vector =
 | 
| -          handle(current_feedback_vector(), isolate());
 | 
| +          handle(current_shared->feedback_vector(), isolate());
 | 
|        FeedbackVectorICSlot slot = expr->AsProperty()->PropertyFeedbackSlot();
 | 
|        result->SetVectorAndSlot(vector, slot);
 | 
|      }
 | 
| @@ -6919,10 +6924,16 @@
 | 
|      HValue* key,
 | 
|      HValue* value) {
 | 
|    if (access_type == LOAD) {
 | 
| -    // HLoadKeyedGeneric with vector ics benefits from being encoded as
 | 
| -    // MEGAMORPHIC because the vector/slot combo becomes unnecessary.
 | 
| -    HLoadKeyedGeneric* result = New<HLoadKeyedGeneric>(
 | 
| -        object, key, FLAG_vector_ics ? MEGAMORPHIC : PREMONOMORPHIC);
 | 
| +    HLoadKeyedGeneric* result =
 | 
| +        New<HLoadKeyedGeneric>(object, key, PREMONOMORPHIC);
 | 
| +    if (FLAG_vector_ics) {
 | 
| +      Handle<SharedFunctionInfo> current_shared =
 | 
| +          function_state()->compilation_info()->shared_info();
 | 
| +      Handle<TypeFeedbackVector> vector =
 | 
| +          handle(current_shared->feedback_vector(), isolate());
 | 
| +      FeedbackVectorICSlot slot = expr->AsProperty()->PropertyFeedbackSlot();
 | 
| +      result->SetVectorAndSlot(vector, slot);
 | 
| +    }
 | 
|      return result;
 | 
|    } else {
 | 
|      return New<HStoreKeyedGeneric>(object, key, value, function_language_mode(),
 | 
| @@ -9314,8 +9325,10 @@
 | 
|            expr->IsUsingCallFeedbackICSlot(isolate())) {
 | 
|          // We've never seen this call before, so let's have Crankshaft learn
 | 
|          // through the type vector.
 | 
| +        Handle<SharedFunctionInfo> current_shared =
 | 
| +            function_state()->compilation_info()->shared_info();
 | 
|          Handle<TypeFeedbackVector> vector =
 | 
| -            handle(current_feedback_vector(), isolate());
 | 
| +            handle(current_shared->feedback_vector(), isolate());
 | 
|          FeedbackVectorICSlot slot = expr->CallFeedbackICSlot();
 | 
|          call_function->SetVectorAndSlot(vector, slot);
 | 
|        }
 | 
| 
 |