Improved pretty printing of VAR PROXY and some control flow AST nodes.
Review URL: http://codereview.chromium.org/7866041 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
db2bac3847
commit
130b9d7858
@ -633,17 +633,14 @@ void AstPrinter::PrintLiteralWithModeIndented(const char* info,
|
||||
|
||||
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 +926,25 @@ void AstPrinter::VisitArrayLiteral(ArrayLiteral* node) {
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user