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

Side by Side Diff: src/ast/prettyprinter.cc

Issue 1309813007: [es6] implement destructuring assignment (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add explicit placeholder RewritableExpression for rewriting 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/ast/prettyprinter.h" 5 #include "src/ast/prettyprinter.h"
6 6
7 #include <stdarg.h> 7 #include <stdarg.h>
8 8
9 #include "src/ast/ast-value-factory.h" 9 #include "src/ast/ast-value-factory.h"
10 #include "src/ast/scopes.h" 10 #include "src/ast/scopes.h"
11 #include "src/base/platform/platform.h" 11 #include "src/base/platform/platform.h"
12 12
13 namespace v8 { 13 namespace v8 {
14 namespace internal { 14 namespace internal {
15 15
16 #define RETURN_IF_FIND_NODE(node) \
17 do { \
18 AstNode* tmp = node; \
19 if (tmp != nullptr) { \
20 Find(tmp); \
21 return; \
22 } \
23 } while (false)
24
16 CallPrinter::CallPrinter(Isolate* isolate) { 25 CallPrinter::CallPrinter(Isolate* isolate) {
17 output_ = NULL; 26 output_ = NULL;
18 size_ = 0; 27 size_ = 0;
19 pos_ = 0; 28 pos_ = 0;
20 position_ = 0; 29 position_ = 0;
21 found_ = false; 30 found_ = false;
22 done_ = false; 31 done_ = false;
23 InitializeAstVisitor(isolate); 32 InitializeAstVisitor(isolate);
24 } 33 }
25 34
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 399
391 400
392 void CallPrinter::VisitSuperPropertyReference(SuperPropertyReference* node) {} 401 void CallPrinter::VisitSuperPropertyReference(SuperPropertyReference* node) {}
393 402
394 403
395 void CallPrinter::VisitSuperCallReference(SuperCallReference* node) { 404 void CallPrinter::VisitSuperCallReference(SuperCallReference* node) {
396 Print("super"); 405 Print("super");
397 } 406 }
398 407
399 408
409 void CallPrinter::VisitRewritableExpression(RewritableExpression* node) {
410 Find(node->expression());
411 }
412
413
400 void CallPrinter::FindStatements(ZoneList<Statement*>* statements) { 414 void CallPrinter::FindStatements(ZoneList<Statement*>* statements) {
401 if (statements == NULL) return; 415 if (statements == NULL) return;
402 for (int i = 0; i < statements->length(); i++) { 416 for (int i = 0; i < statements->length(); i++) {
403 Find(statements->at(i)); 417 Find(statements->at(i));
404 } 418 }
405 } 419 }
406 420
407 421
408 void CallPrinter::FindArguments(ZoneList<Expression*>* arguments) { 422 void CallPrinter::FindArguments(ZoneList<Expression*>* arguments) {
409 if (found_) return; 423 if (found_) return;
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
901 void PrettyPrinter::VisitSuperPropertyReference(SuperPropertyReference* node) { 915 void PrettyPrinter::VisitSuperPropertyReference(SuperPropertyReference* node) {
902 Print("<super-property-reference>"); 916 Print("<super-property-reference>");
903 } 917 }
904 918
905 919
906 void PrettyPrinter::VisitSuperCallReference(SuperCallReference* node) { 920 void PrettyPrinter::VisitSuperCallReference(SuperCallReference* node) {
907 Print("<super-call-reference>"); 921 Print("<super-call-reference>");
908 } 922 }
909 923
910 924
925 void PrettyPrinter::VisitRewritableExpression(RewritableExpression* node) {
926 Visit(node->expression());
927 }
928
929
911 const char* PrettyPrinter::Print(AstNode* node) { 930 const char* PrettyPrinter::Print(AstNode* node) {
912 Init(); 931 Init();
913 Visit(node); 932 Visit(node);
914 return output_; 933 return output_;
915 } 934 }
916 935
917 936
918 const char* PrettyPrinter::PrintExpression(FunctionLiteral* program) { 937 const char* PrettyPrinter::PrintExpression(FunctionLiteral* program) {
919 Init(); 938 Init();
920 ExpressionStatement* statement = 939 ExpressionStatement* statement =
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after
1652 void AstPrinter::VisitSuperPropertyReference(SuperPropertyReference* node) { 1671 void AstPrinter::VisitSuperPropertyReference(SuperPropertyReference* node) {
1653 IndentedScope indent(this, "SUPER-PROPERTY-REFERENCE", node->position()); 1672 IndentedScope indent(this, "SUPER-PROPERTY-REFERENCE", node->position());
1654 } 1673 }
1655 1674
1656 1675
1657 void AstPrinter::VisitSuperCallReference(SuperCallReference* node) { 1676 void AstPrinter::VisitSuperCallReference(SuperCallReference* node) {
1658 IndentedScope indent(this, "SUPER-CALL-REFERENCE", node->position()); 1677 IndentedScope indent(this, "SUPER-CALL-REFERENCE", node->position());
1659 } 1678 }
1660 1679
1661 1680
1681 void AstPrinter::VisitRewritableExpression(RewritableExpression* node) {
1682 Visit(node->expression());
1683 }
1684
1685
1662 #endif // DEBUG 1686 #endif // DEBUG
1663 1687
1664 } // namespace internal 1688 } // namespace internal
1665 } // namespace v8 1689 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698