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

Unified Diff: src/prettyprinter.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, 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
« src/preparser.h ('K') | « src/preparser.h ('k') | src/typing-asm.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/prettyprinter.cc
diff --git a/src/prettyprinter.cc b/src/prettyprinter.cc
index be241162dd73f99a15b5598ef1d3627b1f7fd9e7..642e2793a74c97481d04fde94c31e17d3a1cd1ac 100644
--- a/src/prettyprinter.cc
+++ b/src/prettyprinter.cc
@@ -13,6 +13,15 @@
namespace v8 {
namespace internal {
+#define RETURN_IF_FIND_NODE(node) \
+ do { \
+ AstNode* tmp = node; \
+ if (tmp != nullptr) { \
+ Find(tmp); \
+ return; \
+ } \
+ } while (false)
+
CallPrinter::CallPrinter(Isolate* isolate) {
output_ = NULL;
size_ = 0;
@@ -274,6 +283,7 @@ void CallPrinter::VisitVariableProxy(VariableProxy* node) {
void CallPrinter::VisitAssignment(Assignment* node) {
+ RETURN_IF_FIND_NODE(node->destructuring_assignment());
Find(node->target());
Find(node->value());
}
@@ -780,6 +790,7 @@ void PrettyPrinter::VisitVariableProxy(VariableProxy* node) {
void PrettyPrinter::VisitAssignment(Assignment* node) {
+ RETURN_IF_VISIT_NODE(node->destructuring_assignment());
Visit(node->target());
Print(" %s ", Token::String(node->op()));
Visit(node->value());
@@ -1529,6 +1540,7 @@ void AstPrinter::VisitVariableProxy(VariableProxy* node) {
void AstPrinter::VisitAssignment(Assignment* node) {
IndentedScope indent(this, Token::Name(node->op()), node->position());
+ RETURN_IF_VISIT_NODE(node->destructuring_assignment());
Visit(node->target());
Visit(node->value());
}
« src/preparser.h ('K') | « src/preparser.h ('k') | src/typing-asm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698