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