Index: src/compiler/ast-graph-builder.cc |
diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc |
index 25cde42670d6d68494f3e1d80024a922758d9e89..1877a681154fa5b047d26a70c15e5a319e9f58cf 100644 |
--- a/src/compiler/ast-graph-builder.cc |
+++ b/src/compiler/ast-graph-builder.cc |
@@ -956,7 +956,8 @@ void AstGraphBuilder::VisitObjectLiteral(ObjectLiteral* expr) { |
Node* attr = jsgraph()->Constant(NONE); |
const Operator* op = |
javascript()->Runtime(Runtime::kDefineAccessorPropertyUnchecked, 5); |
- NewNode(op, literal, name, getter, setter, attr); |
+ Node* call = NewNode(op, literal, name, getter, setter, attr); |
+ PrepareFrameState(call, it->first->id()); |
} |
// Transform literals that contain functions to fast properties. |
@@ -1421,8 +1422,10 @@ void AstGraphBuilder::VisitCountOperation(CountOperation* expr) { |
switch (assign_type) { |
case VARIABLE: { |
Variable* variable = expr->expression()->AsVariableProxy()->var(); |
+ environment()->Push(value); |
BuildVariableAssignment(variable, value, expr->op(), |
expr->AssignmentId()); |
+ environment()->Pop(); |
break; |
} |
case NAMED_PROPERTY: { |
@@ -1431,7 +1434,9 @@ void AstGraphBuilder::VisitCountOperation(CountOperation* expr) { |
MakeUnique(property->key()->AsLiteral()->AsPropertyName()); |
Node* store = |
NewNode(javascript()->StoreNamed(strict_mode(), name), object, value); |
+ environment()->Push(value); |
PrepareFrameState(store, expr->AssignmentId()); |
+ environment()->Pop(); |
break; |
} |
case KEYED_PROPERTY: { |
@@ -1439,7 +1444,9 @@ void AstGraphBuilder::VisitCountOperation(CountOperation* expr) { |
Node* object = environment()->Pop(); |
Node* store = NewNode(javascript()->StoreProperty(strict_mode()), object, |
key, value); |
+ environment()->Push(value); |
PrepareFrameState(store, expr->AssignmentId()); |
+ environment()->Pop(); |
break; |
} |
} |