| Index: src/interpreter/interpreter.cc | 
| diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc | 
| index 48b0f3ad12e74b18edb18e48621dce2e9911ad76..130c045ce7a3f8328d364cb58f39f63861f198b6 100644 | 
| --- a/src/interpreter/interpreter.cc | 
| +++ b/src/interpreter/interpreter.cc | 
| @@ -1316,10 +1316,11 @@ void Interpreter::DoJumpIfUndefinedConstant( | 
|  | 
| void Interpreter::DoCreateLiteral(Runtime::FunctionId function_id, | 
| compiler::InterpreterAssembler* assembler) { | 
| -  Node* constant_elements = __ GetAccumulator(); | 
| -  Node* literal_index_raw = __ BytecodeOperandIdx(0); | 
| +  Node* index = __ BytecodeOperandIdx(0); | 
| +  Node* constant_elements = __ LoadConstantPoolEntry(index); | 
| +  Node* literal_index_raw = __ BytecodeOperandIdx(1); | 
| Node* literal_index = __ SmiTag(literal_index_raw); | 
| -  Node* flags_raw = __ BytecodeOperandImm(1); | 
| +  Node* flags_raw = __ BytecodeOperandImm(2); | 
| Node* flags = __ SmiTag(flags_raw); | 
| Node* closure = __ LoadRegister(Register::function_closure()); | 
| Node* result = __ CallRuntime(function_id, closure, literal_index, | 
| @@ -1329,36 +1330,66 @@ void Interpreter::DoCreateLiteral(Runtime::FunctionId function_id, | 
| } | 
|  | 
|  | 
| -// CreateRegExpLiteral <idx> <flags> | 
| +// CreateRegExpLiteral <pattern_idx> <literal_idx> <flags> | 
| // | 
| -// Creates a regular expression literal for literal index <idx> with <flags> and | 
| -// the pattern in the accumulator. | 
| +// Creates a regular expression literal for literal index <literal_idx> with | 
| +// <flags> and the pattern in <pattern_idx>. | 
| void Interpreter::DoCreateRegExpLiteral( | 
| compiler::InterpreterAssembler* assembler) { | 
| DoCreateLiteral(Runtime::kCreateRegExpLiteral, assembler); | 
| } | 
|  | 
|  | 
| -// CreateArrayLiteral <idx> <flags> | 
| +// CreateRegExpLiteralWide <pattern_idx> <literal_idx> <flags> | 
| +// | 
| +// Creates a regular expression literal for literal index <literal_idx> with | 
| +// <flags> and the pattern in <pattern_idx>. | 
| +void Interpreter::DoCreateRegExpLiteralWide( | 
| +    compiler::InterpreterAssembler* assembler) { | 
| +  DoCreateLiteral(Runtime::kCreateRegExpLiteral, assembler); | 
| +} | 
| + | 
| + | 
| +// CreateArrayLiteral <element_idx> <literal_idx> <flags> | 
| // | 
| -// Creates an array literal for literal index <idx> with flags <flags> and | 
| -// constant elements in the accumulator. | 
| +// Creates an array literal for literal index <literal_idx> with flags <flags> | 
| +// and constant elements in <element_idx>. | 
| void Interpreter::DoCreateArrayLiteral( | 
| compiler::InterpreterAssembler* assembler) { | 
| DoCreateLiteral(Runtime::kCreateArrayLiteral, assembler); | 
| } | 
|  | 
|  | 
| -// CreateObjectLiteral <idx> <flags> | 
| +// CreateArrayLiteralWide <element_idx> <literal_idx> <flags> | 
| // | 
| -// Creates an object literal for literal index <idx> with flags <flags> and | 
| -// constant elements in the accumulator. | 
| +// Creates an array literal for literal index <literal_idx> with flags <flags> | 
| +// and constant elements in <element_idx>. | 
| +void Interpreter::DoCreateArrayLiteralWide( | 
| +    compiler::InterpreterAssembler* assembler) { | 
| +  DoCreateLiteral(Runtime::kCreateArrayLiteral, assembler); | 
| +} | 
| + | 
| + | 
| +// CreateObjectLiteral <element_idx> <literal_idx> <flags> | 
| +// | 
| +// Creates an object literal for literal index <literal_idx> with flags <flags> | 
| +// and constant elements in <element_idx>. | 
| void Interpreter::DoCreateObjectLiteral( | 
| compiler::InterpreterAssembler* assembler) { | 
| DoCreateLiteral(Runtime::kCreateObjectLiteral, assembler); | 
| } | 
|  | 
|  | 
| +// CreateObjectLiteralWide <element_idx> <literal_idx> <flags> | 
| +// | 
| +// Creates an object literal for literal index <literal_idx> with flags <flags> | 
| +// and constant elements in <element_idx>. | 
| +void Interpreter::DoCreateObjectLiteralWide( | 
| +    compiler::InterpreterAssembler* assembler) { | 
| +  DoCreateLiteral(Runtime::kCreateObjectLiteral, assembler); | 
| +} | 
| + | 
| + | 
| // CreateClosure <index> <tenured> | 
| // | 
| // Creates a new closure for SharedFunctionInfo at position |index| in the | 
|  |