| Index: src/interpreter/interpreter.cc
 | 
| diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
 | 
| index 98d9b33fb864a5a0019ec380db936aa80c34204f..b687f1430f30f6ff10052f8679239e0ad926ae45 100644
 | 
| --- a/src/interpreter/interpreter.cc
 | 
| +++ b/src/interpreter/interpreter.cc
 | 
| @@ -349,8 +349,8 @@ void Interpreter::DoKeyedStoreICStrict(
 | 
|  
 | 
|  // KeyedStoreICGeneric <object> <key>
 | 
|  //
 | 
| -// Calls the generic KeyStoreIC for <object> and the key <key> with the value in
 | 
| -// the accumulator.
 | 
| +// Calls the generic KeyedStoreIC for <object> and the key <key> with the value
 | 
| +// in the accumulator.
 | 
|  void Interpreter::DoKeyedStoreICGeneric(
 | 
|      compiler::InterpreterAssembler* assembler) {
 | 
|    Callable ic =
 | 
| @@ -656,6 +656,17 @@ void Interpreter::DoToBoolean(compiler::InterpreterAssembler* assembler) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| +// ToName
 | 
| +//
 | 
| +// Cast the object referenced by the accumulator to a name.
 | 
| +void Interpreter::DoToName(compiler::InterpreterAssembler* assembler) {
 | 
| +  Node* accumulator = __ GetAccumulator();
 | 
| +  Node* result = __ CallRuntime(Runtime::kToName, accumulator);
 | 
| +  __ SetAccumulator(result);
 | 
| +  __ Dispatch();
 | 
| +}
 | 
| +
 | 
| +
 | 
|  // Jump <imm8>
 | 
|  //
 | 
|  // Jump by number of bytes represented by the immediate operand |imm8|.
 | 
| @@ -730,12 +741,8 @@ void Interpreter::DoJumpIfFalseConstant(
 | 
|  }
 | 
|  
 | 
|  
 | 
| -// CreateArrayLiteral <idx> <flags>
 | 
| -//
 | 
| -// Creates an array literal for literal index <idx> with flags <flags> and
 | 
| -// constant elements in the accumulator.
 | 
| -void Interpreter::DoCreateArrayLiteral(
 | 
| -    compiler::InterpreterAssembler* assembler) {
 | 
| +void Interpreter::DoCreateLiteral(Runtime::FunctionId function_id,
 | 
| +                                  compiler::InterpreterAssembler* assembler) {
 | 
|    Node* constant_elements = __ GetAccumulator();
 | 
|    Node* literal_index_raw = __ BytecodeOperandIdx8(0);
 | 
|    Node* literal_index = __ SmiTag(literal_index_raw);
 | 
| @@ -744,13 +751,33 @@ void Interpreter::DoCreateArrayLiteral(
 | 
|    Node* closure = __ LoadRegister(Register::function_closure());
 | 
|    Node* literals_array =
 | 
|        __ LoadObjectField(closure, JSFunction::kLiteralsOffset);
 | 
| -  Node* result = __ CallRuntime(Runtime::kCreateArrayLiteral, literals_array,
 | 
| -                                literal_index, constant_elements, flags);
 | 
| +  Node* result = __ CallRuntime(function_id, literals_array, literal_index,
 | 
| +                                constant_elements, flags);
 | 
|    __ SetAccumulator(result);
 | 
|    __ Dispatch();
 | 
|  }
 | 
|  
 | 
|  
 | 
| +// CreateArrayLiteral <idx> <flags>
 | 
| +//
 | 
| +// Creates an array literal for literal index <idx> with flags <flags> and
 | 
| +// constant elements in the accumulator.
 | 
| +void Interpreter::DoCreateArrayLiteral(
 | 
| +    compiler::InterpreterAssembler* assembler) {
 | 
| +  DoCreateLiteral(Runtime::kCreateArrayLiteral, assembler);
 | 
| +}
 | 
| +
 | 
| +
 | 
| +// CreateObjectLiteral <idx> <flags>
 | 
| +//
 | 
| +// Creates an object literal for literal index <idx> with flags <flags> and
 | 
| +// constant elements in the accumulator.
 | 
| +void Interpreter::DoCreateObjectLiteral(
 | 
| +    compiler::InterpreterAssembler* assembler) {
 | 
| +  DoCreateLiteral(Runtime::kCreateObjectLiteral, assembler);
 | 
| +}
 | 
| +
 | 
| +
 | 
|  // CreateClosure <tenured>
 | 
|  //
 | 
|  // Creates a new closure for SharedFunctionInfo in the accumulator with the
 | 
| 
 |