Chromium Code Reviews| 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(); |
|
rmcilroy
2016/07/19 10:03:56
Can we do this change separately (if at all) - as
klaasb
2016/07/19 14:24:13
Done.
|
| } |
| // 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(); |
|
rmcilroy
2016/07/19 10:03:56
Ditto (same will apply once we can inline FastNewS
klaasb
2016/07/19 14:24:13
Done.
|
| } |
| // CreateUnmappedArguments |