| Index: src/interpreter/interpreter.cc
|
| diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
|
| index 1d12bfbc17c838bf50af90056852489f2aa7e3e0..496644a31bcf9bd2680296a05b6e3ac2eaefc137 100644
|
| --- a/src/interpreter/interpreter.cc
|
| +++ b/src/interpreter/interpreter.cc
|
| @@ -1618,7 +1618,7 @@ void Interpreter::DoCreateObjectLiteral(InterpreterAssembler* assembler) {
|
|
|
| // Check if we can do a fast clone or have to call the runtime.
|
| Label if_fast_clone(assembler),
|
| - if_not_fast_clone(assembler, Label::kDeferred);
|
| + if_not_fast_clone(assembler, Label::kDeferred), dispatch(assembler);
|
| Node* fast_clone_properties_count =
|
| __ BitFieldDecode<CreateObjectLiteralFlags::FastClonePropertiesCountBits>(
|
| bytecode_flags);
|
| @@ -1631,7 +1631,7 @@ void Interpreter::DoCreateObjectLiteral(InterpreterAssembler* assembler) {
|
| assembler, &if_not_fast_clone, closure, literal_index,
|
| fast_clone_properties_count);
|
| __ SetAccumulator(result);
|
| - __ Dispatch();
|
| + __ Goto(&dispatch);
|
| }
|
|
|
| __ Bind(&if_not_fast_clone);
|
| @@ -1651,8 +1651,10 @@ void Interpreter::DoCreateObjectLiteral(InterpreterAssembler* assembler) {
|
| __ CallRuntime(Runtime::kCreateObjectLiteral, context, closure,
|
| literal_index, constant_elements, flags);
|
| __ SetAccumulator(result);
|
| - __ Dispatch();
|
| + __ Goto(&dispatch);
|
| }
|
| + __ Bind(&dispatch);
|
| + __ Dispatch();
|
| }
|
|
|
| // CreateClosure <index> <tenured>
|
| @@ -1694,6 +1696,7 @@ void Interpreter::DoCreateMappedArguments(InterpreterAssembler* assembler) {
|
|
|
| Label if_duplicate_parameters(assembler, Label::kDeferred);
|
| Label if_not_duplicate_parameters(assembler);
|
| + Label dispatch(assembler);
|
|
|
| // Check if function has duplicate parameters.
|
| // TODO(rmcilroy): Remove this check when FastNewSloppyArgumentsStub supports
|
| @@ -1715,7 +1718,7 @@ void Interpreter::DoCreateMappedArguments(InterpreterAssembler* assembler) {
|
| Node* target = __ HeapConstant(callable.code());
|
| Node* result = __ CallStub(callable.descriptor(), target, context, closure);
|
| __ SetAccumulator(result);
|
| - __ Dispatch();
|
| + __ Goto(&dispatch);
|
| }
|
|
|
| __ Bind(&if_duplicate_parameters);
|
| @@ -1723,8 +1726,10 @@ void Interpreter::DoCreateMappedArguments(InterpreterAssembler* assembler) {
|
| Node* result =
|
| __ CallRuntime(Runtime::kNewSloppyArguments_Generic, context, closure);
|
| __ SetAccumulator(result);
|
| - __ Dispatch();
|
| + __ Goto(&dispatch);
|
| }
|
| + __ Bind(&dispatch);
|
| + __ Dispatch();
|
| }
|
|
|
| // CreateUnmappedArguments
|
|
|