| OLD | NEW | 
|     1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |     1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 
|     2 // Redistribution and use in source and binary forms, with or without |     2 // Redistribution and use in source and binary forms, with or without | 
|     3 // modification, are permitted provided that the following conditions are |     3 // modification, are permitted provided that the following conditions are | 
|     4 // met: |     4 // met: | 
|     5 // |     5 // | 
|     6 //     * Redistributions of source code must retain the above copyright |     6 //     * Redistributions of source code must retain the above copyright | 
|     7 //       notice, this list of conditions and the following disclaimer. |     7 //       notice, this list of conditions and the following disclaimer. | 
|     8 //     * Redistributions in binary form must reproduce the above |     8 //     * Redistributions in binary form must reproduce the above | 
|     9 //       copyright notice, this list of conditions and the following |     9 //       copyright notice, this list of conditions and the following | 
|    10 //       disclaimer in the documentation and/or other materials provided |    10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   661   Print(" "); |   661   Print(" "); | 
|   662   PrintLiteral(value, quote); |   662   PrintLiteral(value, quote); | 
|   663   Print("\n"); |   663   Print("\n"); | 
|   664 } |   664 } | 
|   665  |   665  | 
|   666  |   666  | 
|   667 void AstPrinter::PrintLiteralWithModeIndented(const char* info, |   667 void AstPrinter::PrintLiteralWithModeIndented(const char* info, | 
|   668                                               Variable* var, |   668                                               Variable* var, | 
|   669                                               Handle<Object> value, |   669                                               Handle<Object> value, | 
|   670                                               StaticType* type, |   670                                               StaticType* type, | 
|   671                                               int num) { |   671                                               int num, | 
 |   672                                               bool is_primitive) { | 
|   672   if (var == NULL) { |   673   if (var == NULL) { | 
|   673     PrintLiteralIndented(info, value, true); |   674     PrintLiteralIndented(info, value, true); | 
|   674   } else { |   675   } else { | 
|   675     EmbeddedVector<char, 256> buf; |   676     EmbeddedVector<char, 256> buf; | 
|   676     int pos = OS::SNPrintF(buf, "%s (mode = %s", info, |   677     int pos = OS::SNPrintF(buf, "%s (mode = %s", info, | 
|   677                            Variable::Mode2String(var->mode())); |   678                            Variable::Mode2String(var->mode())); | 
|   678     if (type->IsKnown()) { |   679     if (type->IsKnown()) { | 
|   679       pos += OS::SNPrintF(buf + pos, ", type = %s", |   680       pos += OS::SNPrintF(buf + pos, ", type = %s", | 
|   680                           StaticType::Type2String(type)); |   681                           StaticType::Type2String(type)); | 
|   681     } |   682     } | 
|   682     if (num != AstNode::kNoNumber) { |   683     if (num != AstNode::kNoNumber) { | 
|   683       pos += OS::SNPrintF(buf + pos, ", num = %d", num); |   684       pos += OS::SNPrintF(buf + pos, ", num = %d", num); | 
|   684     } |   685     } | 
 |   686     pos += OS::SNPrintF(buf + pos, | 
 |   687                         is_primitive ? ", primitive" : ", non-primitive"); | 
|   685     OS::SNPrintF(buf + pos, ")"); |   688     OS::SNPrintF(buf + pos, ")"); | 
|   686     PrintLiteralIndented(buf.start(), value, true); |   689     PrintLiteralIndented(buf.start(), value, true); | 
|   687   } |   690   } | 
|   688 } |   691 } | 
|   689  |   692  | 
|   690  |   693  | 
|   691 void AstPrinter::PrintLabelsIndented(const char* info, ZoneStringList* labels) { |   694 void AstPrinter::PrintLabelsIndented(const char* info, ZoneStringList* labels) { | 
|   692   if (labels != NULL && labels->length() > 0) { |   695   if (labels != NULL && labels->length() > 0) { | 
|   693     if (info == NULL) { |   696     if (info == NULL) { | 
|   694       PrintIndented("LABELS "); |   697       PrintIndented("LABELS "); | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   733 } |   736 } | 
|   734  |   737  | 
|   735  |   738  | 
|   736 void AstPrinter::PrintParameters(Scope* scope) { |   739 void AstPrinter::PrintParameters(Scope* scope) { | 
|   737   if (scope->num_parameters() > 0) { |   740   if (scope->num_parameters() > 0) { | 
|   738     IndentedScope indent("PARAMS"); |   741     IndentedScope indent("PARAMS"); | 
|   739     for (int i = 0; i < scope->num_parameters(); i++) { |   742     for (int i = 0; i < scope->num_parameters(); i++) { | 
|   740       PrintLiteralWithModeIndented("VAR", scope->parameter(i), |   743       PrintLiteralWithModeIndented("VAR", scope->parameter(i), | 
|   741                                    scope->parameter(i)->name(), |   744                                    scope->parameter(i)->name(), | 
|   742                                    scope->parameter(i)->type(), |   745                                    scope->parameter(i)->type(), | 
|   743                                    AstNode::kNoNumber); |   746                                    AstNode::kNoNumber, | 
 |   747                                    false); | 
|   744     } |   748     } | 
|   745   } |   749   } | 
|   746 } |   750 } | 
|   747  |   751  | 
|   748  |   752  | 
|   749 void AstPrinter::PrintStatements(ZoneList<Statement*>* statements) { |   753 void AstPrinter::PrintStatements(ZoneList<Statement*>* statements) { | 
|   750   for (int i = 0; i < statements->length(); i++) { |   754   for (int i = 0; i < statements->length(); i++) { | 
|   751     Visit(statements->at(i)); |   755     Visit(statements->at(i)); | 
|   752   } |   756   } | 
|   753 } |   757 } | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
|   779 } |   783 } | 
|   780  |   784  | 
|   781  |   785  | 
|   782 void AstPrinter::VisitDeclaration(Declaration* node) { |   786 void AstPrinter::VisitDeclaration(Declaration* node) { | 
|   783   if (node->fun() == NULL) { |   787   if (node->fun() == NULL) { | 
|   784     // var or const declarations |   788     // var or const declarations | 
|   785     PrintLiteralWithModeIndented(Variable::Mode2String(node->mode()), |   789     PrintLiteralWithModeIndented(Variable::Mode2String(node->mode()), | 
|   786                                  node->proxy()->AsVariable(), |   790                                  node->proxy()->AsVariable(), | 
|   787                                  node->proxy()->name(), |   791                                  node->proxy()->name(), | 
|   788                                  node->proxy()->AsVariable()->type(), |   792                                  node->proxy()->AsVariable()->type(), | 
|   789                                  AstNode::kNoNumber); |   793                                  AstNode::kNoNumber, | 
 |   794                                  node->proxy()->IsPrimitive()); | 
|   790   } else { |   795   } else { | 
|   791     // function declarations |   796     // function declarations | 
|   792     PrintIndented("FUNCTION "); |   797     PrintIndented("FUNCTION "); | 
|   793     PrintLiteral(node->proxy()->name(), true); |   798     PrintLiteral(node->proxy()->name(), true); | 
|   794     Print(" = function "); |   799     Print(" = function "); | 
|   795     PrintLiteral(node->fun()->name(), false); |   800     PrintLiteral(node->fun()->name(), false); | 
|   796     Print("\n"); |   801     Print("\n"); | 
|   797   } |   802   } | 
|   798 } |   803 } | 
|   799  |   804  | 
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1015       break; |  1020       break; | 
|  1016     default: |  1021     default: | 
|  1017       UNREACHABLE(); |  1022       UNREACHABLE(); | 
|  1018   } |  1023   } | 
|  1019   Print("\n"); |  1024   Print("\n"); | 
|  1020 } |  1025 } | 
|  1021  |  1026  | 
|  1022  |  1027  | 
|  1023 void AstPrinter::VisitVariableProxy(VariableProxy* node) { |  1028 void AstPrinter::VisitVariableProxy(VariableProxy* node) { | 
|  1024   PrintLiteralWithModeIndented("VAR PROXY", node->AsVariable(), node->name(), |  1029   PrintLiteralWithModeIndented("VAR PROXY", node->AsVariable(), node->name(), | 
|  1025                                node->type(), node->num()); |  1030                                node->type(), node->num(), node->IsPrimitive()); | 
|  1026   Variable* var = node->var(); |  1031   Variable* var = node->var(); | 
|  1027   if (var != NULL && var->rewrite() != NULL) { |  1032   if (var != NULL && var->rewrite() != NULL) { | 
|  1028     IndentedScope indent; |  1033     IndentedScope indent; | 
|  1029     Visit(var->rewrite()); |  1034     Visit(var->rewrite()); | 
|  1030   } |  1035   } | 
|  1031 } |  1036 } | 
|  1032  |  1037  | 
|  1033  |  1038  | 
|  1034 void AstPrinter::VisitAssignment(Assignment* node) { |  1039 void AstPrinter::VisitAssignment(Assignment* node) { | 
|  1035   IndentedScope indent(Token::Name(node->op()), node); |  1040   IndentedScope indent(Token::Name(node->op()), node); | 
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1517     AddAttribute("mode", Variable::Mode2String(decl->mode())); |  1522     AddAttribute("mode", Variable::Mode2String(decl->mode())); | 
|  1518   } |  1523   } | 
|  1519   Visit(decl->proxy()); |  1524   Visit(decl->proxy()); | 
|  1520   if (decl->fun() != NULL) Visit(decl->fun()); |  1525   if (decl->fun() != NULL) Visit(decl->fun()); | 
|  1521 } |  1526 } | 
|  1522  |  1527  | 
|  1523  |  1528  | 
|  1524 #endif  // DEBUG |  1529 #endif  // DEBUG | 
|  1525  |  1530  | 
|  1526 } }  // namespace v8::internal |  1531 } }  // namespace v8::internal | 
| OLD | NEW |