| Index: src/interpreter/bytecode-peephole-optimizer.cc
 | 
| diff --git a/src/interpreter/bytecode-peephole-optimizer.cc b/src/interpreter/bytecode-peephole-optimizer.cc
 | 
| index 11aebb6ddb3ef1f3d85ac36196e0b57f37e4aef9..c87d31c39f04aef43254e8643af83c2672b1d8c6 100644
 | 
| --- a/src/interpreter/bytecode-peephole-optimizer.cc
 | 
| +++ b/src/interpreter/bytecode-peephole-optimizer.cc
 | 
| @@ -13,17 +13,17 @@ namespace interpreter {
 | 
|  
 | 
|  BytecodePeepholeOptimizer::BytecodePeepholeOptimizer(
 | 
|      BytecodePipelineStage* next_stage)
 | 
| -    : next_stage_(next_stage) {
 | 
| +    : next_stage_(next_stage), last_(Bytecode::kIllegal) {
 | 
|    InvalidateLast();
 | 
|  }
 | 
|  
 | 
|  // override
 | 
|  Handle<BytecodeArray> BytecodePeepholeOptimizer::ToBytecodeArray(
 | 
| -    Isolate* isolate, int fixed_register_count, int parameter_count,
 | 
| +    Isolate* isolate, int register_count, int parameter_count,
 | 
|      Handle<FixedArray> handler_table) {
 | 
|    Flush();
 | 
| -  return next_stage_->ToBytecodeArray(isolate, fixed_register_count,
 | 
| -                                      parameter_count, handler_table);
 | 
| +  return next_stage_->ToBytecodeArray(isolate, register_count, parameter_count,
 | 
| +                                      handler_table);
 | 
|  }
 | 
|  
 | 
|  // override
 | 
| @@ -142,7 +142,7 @@ void TransformLdaSmiBinaryOpToBinaryOpWithSmi(Bytecode new_bytecode,
 | 
|    current->set_bytecode(new_bytecode, last->operand(0), current->operand(0),
 | 
|                          current->operand(1));
 | 
|    if (last->source_info().is_valid()) {
 | 
| -    current->source_info().Clone(last->source_info());
 | 
| +    current->source_info_ptr()->Clone(last->source_info());
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -153,7 +153,7 @@ void TransformLdaZeroBinaryOpToBinaryOpWithZero(Bytecode new_bytecode,
 | 
|    current->set_bytecode(new_bytecode, 0, current->operand(0),
 | 
|                          current->operand(1));
 | 
|    if (last->source_info().is_valid()) {
 | 
| -    current->source_info().Clone(last->source_info());
 | 
| +    current->source_info_ptr()->Clone(last->source_info());
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -223,7 +223,7 @@ void BytecodePeepholeOptimizer::ElideLastAction(
 | 
|        // |node| can not have a valid source position if the source
 | 
|        // position of last() is valid (per rules in
 | 
|        // CanElideLastBasedOnSourcePosition()).
 | 
| -      node->source_info().Clone(last()->source_info());
 | 
| +      node->source_info_ptr()->Clone(last()->source_info());
 | 
|      }
 | 
|      SetLast(node);
 | 
|    } else {
 | 
| @@ -314,7 +314,7 @@ void BytecodePeepholeOptimizer::ElideLastBeforeJumpAction(
 | 
|    if (!CanElideLastBasedOnSourcePosition(node)) {
 | 
|      next_stage()->Write(last());
 | 
|    } else if (!node->source_info().is_valid()) {
 | 
| -    node->source_info().Clone(last()->source_info());
 | 
| +    node->source_info_ptr()->Clone(last()->source_info());
 | 
|    }
 | 
|    InvalidateLast();
 | 
|  }
 | 
| 
 |