| Index: src/interpreter/interpreter.cc
|
| diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
|
| index ba1c701c556977e0f5a4d8a95d1fc2d733ff5470..aca34fd6857342c15b4eed5bd02749021afa31cc 100644
|
| --- a/src/interpreter/interpreter.cc
|
| +++ b/src/interpreter/interpreter.cc
|
| @@ -1821,6 +1821,22 @@ void Interpreter::DoCreateFunctionContext(InterpreterAssembler* assembler) {
|
| __ Dispatch();
|
| }
|
|
|
| +// CreateCatchContext <exception> <index>
|
| +//
|
| +// Creates a new context for a catch block with the |exception| in a register,
|
| +// the variable name at |index| and the closure in the accumulator.
|
| +void Interpreter::DoCreateCatchContext(InterpreterAssembler* assembler) {
|
| + Node* exception_reg = __ BytecodeOperandReg(0);
|
| + Node* exception = __ LoadRegister(exception_reg);
|
| + Node* index = __ BytecodeOperandIdx(1);
|
| + Node* name = __ LoadConstantPoolEntry(index);
|
| + Node* closure = __ GetAccumulator();
|
| + Node* context = __ GetContext();
|
| + __ SetAccumulator(__ CallRuntime(Runtime::kPushCatchContext, context, name,
|
| + exception, closure));
|
| + __ Dispatch();
|
| +}
|
| +
|
| // CreateMappedArguments
|
| //
|
| // Creates a new mapped arguments object.
|
|
|