Index: src/prettyprinter.cc |
diff --git a/src/prettyprinter.cc b/src/prettyprinter.cc |
index b03429341e3817ed0a4c85af813b858b07ef7836..2a415923312bd6713d79ac770095da3824a64e45 100644 |
--- a/src/prettyprinter.cc |
+++ b/src/prettyprinter.cc |
@@ -284,28 +284,6 @@ void PrettyPrinter::VisitArrayLiteral(ArrayLiteral* node) { |
} |
-void PrettyPrinter::VisitSlot(Slot* node) { |
- switch (node->type()) { |
- case Slot::PARAMETER: |
- Print("parameter[%d]", node->index()); |
- break; |
- case Slot::LOCAL: |
- Print("local[%d]", node->index()); |
- break; |
- case Slot::CONTEXT: |
- Print("context[%d]", node->index()); |
- break; |
- case Slot::LOOKUP: |
- Print("lookup["); |
- PrintLiteral(node->var()->name(), false); |
- Print("]"); |
- break; |
- default: |
- UNREACHABLE(); |
- } |
-} |
- |
- |
void PrettyPrinter::VisitVariableProxy(VariableProxy* node) { |
PrintLiteral(node->name(), false); |
} |
@@ -751,7 +729,7 @@ void AstPrinter::VisitDeclaration(Declaration* node) { |
if (node->fun() == NULL) { |
// var or const declarations |
PrintLiteralWithModeIndented(Variable::Mode2String(node->mode()), |
- node->proxy()->AsVariable(), |
+ node->proxy()->var(), |
node->proxy()->name()); |
} else { |
// function declarations |
@@ -959,19 +937,26 @@ void AstPrinter::VisitArrayLiteral(ArrayLiteral* node) { |
} |
-void AstPrinter::VisitSlot(Slot* node) { |
- PrintIndented("SLOT "); |
- PrettyPrinter::VisitSlot(node); |
- Print("\n"); |
-} |
- |
- |
void AstPrinter::VisitVariableProxy(VariableProxy* node) { |
- PrintLiteralWithModeIndented("VAR PROXY", node->AsVariable(), node->name()); |
Variable* var = node->var(); |
- if (var != NULL && var->rewrite() != NULL) { |
- IndentedScope indent(this); |
- Visit(var->rewrite()); |
+ 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; |
+ } |
} |
} |
@@ -1287,39 +1272,32 @@ void JsonAstBuilder::VisitConditional(Conditional* expr) { |
} |
-void JsonAstBuilder::VisitSlot(Slot* expr) { |
- TagScope tag(this, "Slot"); |
+void JsonAstBuilder::VisitVariableProxy(VariableProxy* expr) { |
+ TagScope tag(this, "Variable"); |
{ |
AttributesScope attributes(this); |
- switch (expr->type()) { |
- case Slot::PARAMETER: |
- AddAttribute("type", "PARAMETER"); |
+ Variable* var = expr->var(); |
+ AddAttribute("name", var->name()); |
+ switch (var->location()) { |
+ case Variable::UNALLOCATED: |
+ AddAttribute("location", "UNALLOCATED"); |
break; |
- case Slot::LOCAL: |
- AddAttribute("type", "LOCAL"); |
+ case Variable::PARAMETER: |
+ AddAttribute("location", "PARAMETER"); |
+ AddAttribute("index", var->index()); |
break; |
- case Slot::CONTEXT: |
- AddAttribute("type", "CONTEXT"); |
+ case Variable::LOCAL: |
+ AddAttribute("location", "LOCAL"); |
+ AddAttribute("index", var->index()); |
break; |
- case Slot::LOOKUP: |
- AddAttribute("type", "LOOKUP"); |
+ case Variable::CONTEXT: |
+ AddAttribute("location", "CONTEXT"); |
+ AddAttribute("index", var->index()); |
+ break; |
+ case Variable::LOOKUP: |
+ AddAttribute("location", "LOOKUP"); |
break; |
} |
- AddAttribute("index", expr->index()); |
- } |
-} |
- |
- |
-void JsonAstBuilder::VisitVariableProxy(VariableProxy* expr) { |
- if (expr->var()->rewrite() == NULL) { |
- TagScope tag(this, "VariableProxy"); |
- { |
- AttributesScope attributes(this); |
- AddAttribute("name", expr->name()); |
- AddAttribute("mode", Variable::Mode2String(expr->var()->mode())); |
- } |
- } else { |
- Visit(expr->var()->rewrite()); |
} |
} |