| Index: src/compiler/ast-graph-builder.cc
|
| diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc
|
| index 7b5abd191cfe4c12dd2651d953516099833bc168..805afc5a3c515c1d28118e2160c6bca6424807be 100644
|
| --- a/src/compiler/ast-graph-builder.cc
|
| +++ b/src/compiler/ast-graph-builder.cc
|
| @@ -1173,8 +1173,8 @@ void AstGraphBuilder::VisitAssignment(Assignment* expr) {
|
| switch (assign_type) {
|
| case VARIABLE: {
|
| Variable* variable = expr->target()->AsVariableProxy()->var();
|
| - BuildVariableAssignment(variable, value, expr->op(),
|
| - expr->AssignmentId());
|
| + BuildVariableAssignment(variable, value, expr->op(), expr->AssignmentId(),
|
| + ast_context()->GetStateCombine());
|
| break;
|
| }
|
| case NAMED_PROPERTY: {
|
| @@ -1183,7 +1183,8 @@ void AstGraphBuilder::VisitAssignment(Assignment* expr) {
|
| MakeUnique(property->key()->AsLiteral()->AsPropertyName());
|
| Node* store =
|
| NewNode(javascript()->StoreNamed(strict_mode(), name), object, value);
|
| - PrepareFrameState(store, expr->AssignmentId());
|
| + PrepareFrameState(store, expr->AssignmentId(),
|
| + ast_context()->GetStateCombine());
|
| break;
|
| }
|
| case KEYED_PROPERTY: {
|
| @@ -1191,7 +1192,8 @@ void AstGraphBuilder::VisitAssignment(Assignment* expr) {
|
| Node* object = environment()->Pop();
|
| Node* store = NewNode(javascript()->StoreProperty(strict_mode()), object,
|
| key, value);
|
| - PrepareFrameState(store, expr->AssignmentId());
|
| + PrepareFrameState(store, expr->AssignmentId(),
|
| + ast_context()->GetStateCombine());
|
| break;
|
| }
|
| }
|
| @@ -1957,9 +1959,9 @@ Node* AstGraphBuilder::BuildVariableDelete(
|
| }
|
|
|
|
|
| -Node* AstGraphBuilder::BuildVariableAssignment(Variable* variable, Node* value,
|
| - Token::Value op,
|
| - BailoutId bailout_id) {
|
| +Node* AstGraphBuilder::BuildVariableAssignment(
|
| + Variable* variable, Node* value, Token::Value op, BailoutId bailout_id,
|
| + OutputFrameStateCombine combine) {
|
| Node* the_hole = jsgraph()->TheHoleConstant();
|
| VariableMode mode = variable->mode();
|
| switch (variable->location()) {
|
| @@ -1969,7 +1971,7 @@ Node* AstGraphBuilder::BuildVariableAssignment(Variable* variable, Node* value,
|
| Unique<Name> name = MakeUnique(variable->name());
|
| const Operator* op = javascript()->StoreNamed(strict_mode(), name);
|
| Node* store = NewNode(op, global, value);
|
| - PrepareFrameState(store, bailout_id);
|
| + PrepareFrameState(store, bailout_id, combine);
|
| return store;
|
| }
|
| case Variable::PARAMETER:
|
| @@ -2035,7 +2037,7 @@ Node* AstGraphBuilder::BuildVariableAssignment(Variable* variable, Node* value,
|
| const Operator* op =
|
| javascript()->CallRuntime(Runtime::kStoreLookupSlot, 4);
|
| Node* store = NewNode(op, value, current_context(), name, strict);
|
| - PrepareFrameState(store, bailout_id);
|
| + PrepareFrameState(store, bailout_id, combine);
|
| return store;
|
| }
|
| }
|
|
|