| Index: src/full-codegen.cc
 | 
| diff --git a/src/full-codegen.cc b/src/full-codegen.cc
 | 
| index 61a6eac6349a73896b88b5676b8660552affb151..bf41935dc8e3e8bd90ea591e304acbcd3458b322 100644
 | 
| --- a/src/full-codegen.cc
 | 
| +++ b/src/full-codegen.cc
 | 
| @@ -333,7 +333,7 @@ bool FullCodeGenerator::MakeCode(CompilationInfo* info) {
 | 
|                          !info->function()->dont_optimize() &&
 | 
|                          info->function()->scope()->AllowsLazyCompilation());
 | 
|    cgen.PopulateDeoptimizationData(code);
 | 
| -  cgen.PopulateTypeFeedbackInfo(code);
 | 
| +  cgen.PopulateTypeFeedbackInfo(code, info->feedback_vector());
 | 
|    code->set_has_deoptimization_support(info->HasDeoptimizationSupport());
 | 
|    code->set_handler_table(*cgen.handler_table());
 | 
|    code->set_compiled_optimizable(info->IsOptimizable());
 | 
| @@ -367,11 +367,22 @@ unsigned FullCodeGenerator::EmitBackEdgeTable() {
 | 
|  
 | 
|  void FullCodeGenerator::EnsureSlotContainsAllocationSite(
 | 
|      FeedbackVectorSlot slot) {
 | 
| -  Handle<FixedArray> vector = FeedbackVector();
 | 
| -  if (!vector->get(slot.ToInt())->IsAllocationSite()) {
 | 
| +  Handle<TypeFeedbackVector> vector = FeedbackVector();
 | 
| +  if (!vector->Get(slot)->IsAllocationSite()) {
 | 
|      Handle<AllocationSite> allocation_site =
 | 
|          isolate()->factory()->NewAllocationSite();
 | 
| -    vector->set(slot.ToInt(), *allocation_site);
 | 
| +    vector->Set(slot, *allocation_site);
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +
 | 
| +void FullCodeGenerator::EnsureSlotContainsAllocationSite(
 | 
| +    FeedbackVectorICSlot slot) {
 | 
| +  Handle<TypeFeedbackVector> vector = FeedbackVector();
 | 
| +  if (!vector->Get(slot)->IsAllocationSite()) {
 | 
| +    Handle<AllocationSite> allocation_site =
 | 
| +        isolate()->factory()->NewAllocationSite();
 | 
| +    vector->Set(slot, *allocation_site);
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -391,8 +402,10 @@ void FullCodeGenerator::PopulateDeoptimizationData(Handle<Code> code) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void FullCodeGenerator::PopulateTypeFeedbackInfo(Handle<Code> code) {
 | 
| -  Handle<TypeFeedbackInfo> info = isolate()->factory()->NewTypeFeedbackInfo();
 | 
| +void FullCodeGenerator::PopulateTypeFeedbackInfo(
 | 
| +    Handle<Code> code, Handle<TypeFeedbackVector> vector) {
 | 
| +  Handle<TypeFeedbackInfo> info =
 | 
| +      isolate()->factory()->NewTypeFeedbackInfo(vector);
 | 
|    info->set_ic_total_count(ic_total_count_);
 | 
|    DCHECK(!isolate()->heap()->InNewSpace(*info));
 | 
|    code->set_type_feedback_info(*info);
 | 
| 
 |