| Index: src/factory.cc
 | 
| diff --git a/src/factory.cc b/src/factory.cc
 | 
| index 3c5f4161fd00f8c162a8c0c21903cceeb8e9260f..456dba7fccf81fb36f879e65eb6f7818b56cade8 100644
 | 
| --- a/src/factory.cc
 | 
| +++ b/src/factory.cc
 | 
| @@ -1426,9 +1426,18 @@ Handle<Code> Factory::NewCode(const CodeDesc& desc,
 | 
|                                bool is_debug) {
 | 
|    Handle<ByteArray> reloc_info = NewByteArray(desc.reloc_size, TENURED);
 | 
|  
 | 
| +  bool has_unwinding_info = desc.unwinding_info != nullptr;
 | 
| +  DCHECK((has_unwinding_info && desc.unwinding_info_size > 0) ||
 | 
| +         (!has_unwinding_info && desc.unwinding_info_size == 0));
 | 
| +
 | 
|    // Compute size.
 | 
| -  int body_size = RoundUp(desc.instr_size, kObjectAlignment);
 | 
| -  int obj_size = Code::SizeFor(body_size);
 | 
| +  int body_size = desc.instr_size;
 | 
| +  int unwinding_info_size_field_size = kInt64Size;
 | 
| +  if (has_unwinding_info) {
 | 
| +    body_size = RoundUp(body_size, kInt64Size) + desc.unwinding_info_size +
 | 
| +                unwinding_info_size_field_size;
 | 
| +  }
 | 
| +  int obj_size = Code::SizeFor(RoundUp(body_size, kObjectAlignment));
 | 
|  
 | 
|    Handle<Code> code = NewCodeRaw(obj_size, immovable);
 | 
|    DCHECK(!isolate()->heap()->memory_allocator()->code_range()->valid() ||
 | 
| @@ -1444,6 +1453,7 @@ Handle<Code> Factory::NewCode(const CodeDesc& desc,
 | 
|    code->set_instruction_size(desc.instr_size);
 | 
|    code->set_relocation_info(*reloc_info);
 | 
|    code->set_flags(flags);
 | 
| +  code->set_has_unwinding_info(has_unwinding_info);
 | 
|    code->set_raw_kind_specific_flags1(0);
 | 
|    code->set_raw_kind_specific_flags2(0);
 | 
|    code->set_is_crankshafted(crankshafted);
 | 
| 
 |