| Index: src/interpreter/interpreter.cc
|
| diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
|
| index e089a5d475e8c224af759d7fff98f2753e3b2bb1..79e3d740fbfbfc9dfcd3da8deb87c7176e1dc69e 100644
|
| --- a/src/interpreter/interpreter.cc
|
| +++ b/src/interpreter/interpreter.cc
|
| @@ -882,22 +882,37 @@ void Interpreter::DoDeletePropertySloppy(
|
| }
|
|
|
|
|
| -// Call <callable> <receiver> <arg_count>
|
| -//
|
| -// Call a JSfunction or Callable in |callable| with the |receiver| and
|
| -// |arg_count| arguments in subsequent registers.
|
| -void Interpreter::DoCall(compiler::InterpreterAssembler* assembler) {
|
| +void Interpreter::DoJSCall(compiler::InterpreterAssembler* assembler) {
|
| Node* function_reg = __ BytecodeOperandReg(0);
|
| Node* function = __ LoadRegister(function_reg);
|
| Node* receiver_reg = __ BytecodeOperandReg(1);
|
| Node* first_arg = __ RegisterLocation(receiver_reg);
|
| Node* args_count = __ BytecodeOperandCount(2);
|
| + // TODO(rmcilroy): Use the call type feedback slot to call via CallIC.
|
| Node* result = __ CallJS(function, first_arg, args_count);
|
| __ SetAccumulator(result);
|
| __ Dispatch();
|
| }
|
|
|
|
|
| +// Call <callable> <receiver> <arg_count>
|
| +//
|
| +// Call a JSfunction or Callable in |callable| with the |receiver| and
|
| +// |arg_count| arguments in subsequent registers.
|
| +void Interpreter::DoCall(compiler::InterpreterAssembler* assembler) {
|
| + DoJSCall(assembler);
|
| +}
|
| +
|
| +
|
| +// CallWide <callable> <receiver> <arg_count>
|
| +//
|
| +// Call a JSfunction or Callable in |callable| with the |receiver| and
|
| +// |arg_count| arguments in subsequent registers.
|
| +void Interpreter::DoCallWide(compiler::InterpreterAssembler* assembler) {
|
| + DoJSCall(assembler);
|
| +}
|
| +
|
| +
|
| // CallRuntime <function_id> <first_arg> <arg_count>
|
| //
|
| // Call the runtime function |function_id| with the first argument in
|
|
|