Reviewers: danno,

Description:
Improved pretty printing of VAR PROXY and some control flow AST nodes.

Please review this at http://codereview.chromium.org/7866041/

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
  M     src/prettyprinter.cc


Index: src/prettyprinter.cc
===================================================================
--- src/prettyprinter.cc        (revision 9224)
+++ src/prettyprinter.cc        (working copy)
@@ -616,6 +616,7 @@
 }


+
 void AstPrinter::PrintLiteralWithModeIndented(const char* info,
                                               Variable* var,
                                               Handle<Object> value) {
@@ -633,17 +634,14 @@

void AstPrinter::PrintLabelsIndented(const char* info, ZoneStringList* labels) {
   if (labels != NULL && labels->length() > 0) {
-    if (info == NULL) {
-      PrintIndented("LABELS ");
-    } else {
-      PrintIndented(info);
-      Print(" ");
-    }
+    PrintIndented(info == NULL ? "LABELS" : info);
+    Print(" ");
     PrintLabels(labels);
+    Print("\n");
   } else if (info != NULL) {
     PrintIndented(info);
-  }
-  Print("\n");
+    Print("\n");
+   }
 }


@@ -929,25 +927,25 @@

 void AstPrinter::VisitVariableProxy(VariableProxy* node) {
   Variable* var = node->var();
-  PrintLiteralWithModeIndented("VAR PROXY", var, node->name());
-  { IndentedScope indent(this);
-    switch (var->location()) {
-      case Variable::UNALLOCATED:
-        break;
-      case Variable::PARAMETER:
-        Print("parameter[%d]", var->index());
-        break;
-      case Variable::LOCAL:
-        Print("local[%d]", var->index());
-        break;
-      case Variable::CONTEXT:
-        Print("context[%d]", var->index());
-        break;
-      case Variable::LOOKUP:
-        Print("lookup");
-        break;
-    }
+  EmbeddedVector<char, 128> buf;
+  int pos = OS::SNPrintF(buf, "VAR PROXY");
+  switch (var->location()) {
+    case Variable::UNALLOCATED:
+      break;
+    case Variable::PARAMETER:
+      OS::SNPrintF(buf + pos, " parameter[%d]", var->index());
+      break;
+    case Variable::LOCAL:
+      OS::SNPrintF(buf + pos, " local[%d]", var->index());
+      break;
+    case Variable::CONTEXT:
+      OS::SNPrintF(buf + pos, " context[%d]", var->index());
+      break;
+    case Variable::LOOKUP:
+      OS::SNPrintF(buf + pos, " lookup");
+      break;
   }
+  PrintLiteralWithModeIndented(buf.start(), var, node->name());
 }




--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to