OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/compiler/ast-graph-builder.h" | 5 #include "src/compiler/ast-graph-builder.h" |
6 | 6 |
7 #include "src/compiler.h" | 7 #include "src/compiler.h" |
8 #include "src/compiler/ast-loop-assignment-analyzer.h" | 8 #include "src/compiler/ast-loop-assignment-analyzer.h" |
9 #include "src/compiler/control-builders.h" | 9 #include "src/compiler/control-builders.h" |
10 #include "src/compiler/linkage.h" | 10 #include "src/compiler/linkage.h" |
(...skipping 2047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2058 Node* store = BuildKeyedSuperStore(receiver, home_object, key, value); | 2058 Node* store = BuildKeyedSuperStore(receiver, home_object, key, value); |
2059 states.AddToNode(store, bailout_id_after, | 2059 states.AddToNode(store, bailout_id_after, |
2060 OutputFrameStateCombine::Ignore()); | 2060 OutputFrameStateCombine::Ignore()); |
2061 break; | 2061 break; |
2062 } | 2062 } |
2063 } | 2063 } |
2064 } | 2064 } |
2065 | 2065 |
2066 | 2066 |
2067 void AstGraphBuilder::VisitAssignment(Assignment* expr) { | 2067 void AstGraphBuilder::VisitAssignment(Assignment* expr) { |
| 2068 RETURN_IF_VISIT_NODE(expr->destructuring_assignment()); |
2068 DCHECK(expr->target()->IsValidReferenceExpressionOrThis()); | 2069 DCHECK(expr->target()->IsValidReferenceExpressionOrThis()); |
2069 | 2070 |
2070 // Left-hand side can only be a property, a global or a variable slot. | 2071 // Left-hand side can only be a property, a global or a variable slot. |
2071 Property* property = expr->target()->AsProperty(); | 2072 Property* property = expr->target()->AsProperty(); |
2072 LhsKind assign_type = Property::GetAssignType(property); | 2073 LhsKind assign_type = Property::GetAssignType(property); |
2073 bool needs_frame_state_before = true; | 2074 bool needs_frame_state_before = true; |
2074 | 2075 |
2075 // Evaluate LHS expression. | 2076 // Evaluate LHS expression. |
2076 switch (assign_type) { | 2077 switch (assign_type) { |
2077 case VARIABLE: { | 2078 case VARIABLE: { |
(...skipping 2232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4310 // Phi does not exist yet, introduce one. | 4311 // Phi does not exist yet, introduce one. |
4311 value = NewPhi(inputs, value, control); | 4312 value = NewPhi(inputs, value, control); |
4312 value->ReplaceInput(inputs - 1, other); | 4313 value->ReplaceInput(inputs - 1, other); |
4313 } | 4314 } |
4314 return value; | 4315 return value; |
4315 } | 4316 } |
4316 | 4317 |
4317 } // namespace compiler | 4318 } // namespace compiler |
4318 } // namespace internal | 4319 } // namespace internal |
4319 } // namespace v8 | 4320 } // namespace v8 |
OLD | NEW |