| Index: src/factory.cc
 | 
| diff --git a/src/factory.cc b/src/factory.cc
 | 
| index 5dac6a1ada3454980e348caf6a76b8268d51ee0d..6eb27d62ceca4c07e06c080a27e3da46494a7b37 100644
 | 
| --- a/src/factory.cc
 | 
| +++ b/src/factory.cc
 | 
| @@ -1427,8 +1427,11 @@ Handle<Code> Factory::NewCode(const CodeDesc& desc,
 | 
|                                int prologue_offset,
 | 
|                                bool is_debug) {
 | 
|    Handle<ByteArray> reloc_info = NewByteArray(desc.reloc_size, TENURED);
 | 
| -  Handle<ConstantPoolArray> constant_pool =
 | 
| -      desc.origin->NewConstantPool(isolate());
 | 
| +  Handle<ConstantPoolArray> constant_pool;
 | 
| +
 | 
| +  if (FLAG_enable_ool_constant_pool) {
 | 
| +    constant_pool = desc.origin->NewConstantPool(isolate());
 | 
| +  }
 | 
|  
 | 
|    // Compute size.
 | 
|    int body_size = RoundUp(desc.instr_size, kObjectAlignment);
 | 
| @@ -1455,6 +1458,9 @@ Handle<Code> Factory::NewCode(const CodeDesc& desc,
 | 
|    code->set_next_code_link(*undefined_value());
 | 
|    code->set_handler_table(*empty_fixed_array(), SKIP_WRITE_BARRIER);
 | 
|    code->set_prologue_offset(prologue_offset);
 | 
| +  if (FLAG_enable_embedded_constant_pool) {
 | 
| +    code->set_constant_pool_offset(desc.instr_size - desc.constant_pool_size);
 | 
| +  }
 | 
|    if (code->kind() == Code::OPTIMIZED_FUNCTION) {
 | 
|      code->set_marked_for_deoptimization(false);
 | 
|    }
 | 
| @@ -1464,8 +1470,10 @@ Handle<Code> Factory::NewCode(const CodeDesc& desc,
 | 
|      code->set_has_debug_break_slots(true);
 | 
|    }
 | 
|  
 | 
| -  desc.origin->PopulateConstantPool(*constant_pool);
 | 
| -  code->set_constant_pool(*constant_pool);
 | 
| +  if (FLAG_enable_ool_constant_pool) {
 | 
| +    desc.origin->PopulateConstantPool(*constant_pool);
 | 
| +    code->set_constant_pool(*constant_pool);
 | 
| +  }
 | 
|  
 | 
|    // Allow self references to created code object by patching the handle to
 | 
|    // point to the newly allocated Code object.
 | 
| 
 |