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 |