Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(721)

Side by Side Diff: src/crankshaft/hydrogen.cc

Issue 1309813007: [es6] implement destructuring assignment (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Cache te right scope in DeclareAndInitializeVariables() Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/crankshaft/hydrogen.h" 5 #include "src/crankshaft/hydrogen.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/allocation-site-scopes.h" 9 #include "src/allocation-site-scopes.h"
10 #include "src/ast-numbering.h" 10 #include "src/ast-numbering.h"
(...skipping 7032 matching lines...) Expand 10 before | Expand all | Expand 10 after
7043 } else { 7043 } else {
7044 return Bailout(kInvalidLhsInCompoundAssignment); 7044 return Bailout(kInvalidLhsInCompoundAssignment);
7045 } 7045 }
7046 } 7046 }
7047 7047
7048 7048
7049 void HOptimizedGraphBuilder::VisitAssignment(Assignment* expr) { 7049 void HOptimizedGraphBuilder::VisitAssignment(Assignment* expr) {
7050 DCHECK(!HasStackOverflow()); 7050 DCHECK(!HasStackOverflow());
7051 DCHECK(current_block() != NULL); 7051 DCHECK(current_block() != NULL);
7052 DCHECK(current_block()->HasPredecessor()); 7052 DCHECK(current_block()->HasPredecessor());
7053 RETURN_IF_VISIT_NODE(expr->destructuring_assignment());
7054
7053 VariableProxy* proxy = expr->target()->AsVariableProxy(); 7055 VariableProxy* proxy = expr->target()->AsVariableProxy();
7054 Property* prop = expr->target()->AsProperty(); 7056 Property* prop = expr->target()->AsProperty();
7055 DCHECK(proxy == NULL || prop == NULL); 7057 DCHECK(proxy == NULL || prop == NULL);
7056 7058
7057 if (expr->is_compound()) { 7059 if (expr->is_compound()) {
7058 HandleCompoundAssignment(expr); 7060 HandleCompoundAssignment(expr);
7059 return; 7061 return;
7060 } 7062 }
7061 7063
7062 if (prop != NULL) { 7064 if (prop != NULL) {
(...skipping 6572 matching lines...) Expand 10 before | Expand all | Expand 10 after
13635 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 13637 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
13636 } 13638 }
13637 13639
13638 #ifdef DEBUG 13640 #ifdef DEBUG
13639 graph_->Verify(false); // No full verify. 13641 graph_->Verify(false); // No full verify.
13640 #endif 13642 #endif
13641 } 13643 }
13642 13644
13643 } // namespace internal 13645 } // namespace internal
13644 } // namespace v8 13646 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698