| Index: src/compiler.cc | 
| diff --git a/src/compiler.cc b/src/compiler.cc | 
| index 4e944f7fcda41fdde7cbd60e7f5931be9dfc69bd..f46167811b68296ff52414bc711fea58c64426a0 100644 | 
| --- a/src/compiler.cc | 
| +++ b/src/compiler.cc | 
| @@ -478,9 +478,23 @@ bool Renumber(ParseInfo* parse_info, | 
| Compiler::EagerInnerFunctionLiterals* eager_literals) { | 
| RuntimeCallTimerScope runtimeTimer(parse_info->isolate(), | 
| &RuntimeCallStats::CompileRenumber); | 
| + | 
| +  // CollectTypeProfile uses its own feedback slots. If we have existing | 
| +  // FeedbackMetadata, we can only collect type profile, if the feedback vector | 
| +  // has the appropriate slots. | 
| +  bool collect_type_profile; | 
| +  if (parse_info->shared_info().is_null() || | 
| +      parse_info->shared_info()->feedback_metadata()->length() == 0) { | 
| +    collect_type_profile = FLAG_type_profile; | 
| +  } else { | 
| +    collect_type_profile = | 
| +        parse_info->shared_info()->feedback_metadata()->HasTypeProfileSlot(); | 
| +  } | 
| + | 
| if (!AstNumbering::Renumber( | 
| parse_info->isolate()->stack_guard()->real_climit(), | 
| -          parse_info->zone(), parse_info->literal(), eager_literals)) { | 
| +          parse_info->zone(), parse_info->literal(), eager_literals, | 
| +          collect_type_profile)) { | 
| return false; | 
| } | 
| if (!parse_info->shared_info().is_null()) { | 
|  |