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

Unified Diff: src/ast-numbering.cc

Issue 1309813007: [es6] implement destructuring assignment (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: An implementation Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: src/ast-numbering.cc
diff --git a/src/ast-numbering.cc b/src/ast-numbering.cc
index 8479191b5e9b44cfd00cf1b5010401f4f666966b..f9f7438f572dfaa7dac43869eaf892cb9b8aa471 100644
--- a/src/ast-numbering.cc
+++ b/src/ast-numbering.cc
@@ -348,6 +348,12 @@ void AstNumberingVisitor::VisitProperty(Property* node) {
void AstNumberingVisitor::VisitAssignment(Assignment* node) {
IncrementNodeCount();
node->set_base_id(ReserveIdRange(Assignment::num_ids()));
+
+ AssignmentPattern* pattern = node->target()->AsAssignmentPattern();
+ if (pattern && pattern->is_rewritten()) {
+ return Visit(pattern->expression());
+ }
+
if (node->is_compound()) VisitBinaryOperation(node->binary_operation());
VisitReference(node->target());
Visit(node->value());
@@ -473,6 +479,12 @@ void AstNumberingVisitor::VisitClassLiteral(ClassLiteral* node) {
}
+void AstNumberingVisitor::VisitAssignmentPattern(AssignmentPattern* node) {
+ IncrementNodeCount();
+ Visit(node->expression());
+}
+
+
void AstNumberingVisitor::VisitObjectLiteral(ObjectLiteral* node) {
IncrementNodeCount();
node->set_base_id(ReserveIdRange(node->num_ids()));

Powered by Google App Engine
This is Rietveld 408576698