| OLD | NEW | 
|    1 // Copyright 2012 the V8 project authors. All rights reserved. |    1 // Copyright 2012 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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   48   } |   48   } | 
|   49  |   49  | 
|   50   PrintF(out, "LookupResult:\n"); |   50   PrintF(out, "LookupResult:\n"); | 
|   51   PrintF(out, " -cacheable = %s\n", IsCacheable() ? "true" : "false"); |   51   PrintF(out, " -cacheable = %s\n", IsCacheable() ? "true" : "false"); | 
|   52   PrintF(out, " -attributes = %x\n", GetAttributes()); |   52   PrintF(out, " -attributes = %x\n", GetAttributes()); | 
|   53   switch (type()) { |   53   switch (type()) { | 
|   54     case NORMAL: |   54     case NORMAL: | 
|   55       PrintF(out, " -type = normal\n"); |   55       PrintF(out, " -type = normal\n"); | 
|   56       PrintF(out, " -entry = %d", GetDictionaryEntry()); |   56       PrintF(out, " -entry = %d", GetDictionaryEntry()); | 
|   57       break; |   57       break; | 
|   58     case MAP_TRANSITION: |  | 
|   59       PrintF(out, " -type = map transition\n"); |  | 
|   60       PrintF(out, " -map:\n"); |  | 
|   61       GetTransitionMap()->Print(out); |  | 
|   62       PrintF(out, "\n"); |  | 
|   63       break; |  | 
|   64     case CONSTANT_FUNCTION: |   58     case CONSTANT_FUNCTION: | 
|   65       PrintF(out, " -type = constant function\n"); |   59       PrintF(out, " -type = constant function\n"); | 
|   66       PrintF(out, " -function:\n"); |   60       PrintF(out, " -function:\n"); | 
|   67       GetConstantFunction()->Print(out); |   61       GetConstantFunction()->Print(out); | 
|   68       PrintF(out, "\n"); |   62       PrintF(out, "\n"); | 
|   69       break; |   63       break; | 
|   70     case FIELD: |   64     case FIELD: | 
|   71       PrintF(out, " -type = field\n"); |   65       PrintF(out, " -type = field\n"); | 
|   72       PrintF(out, " -index = %d", GetFieldIndex()); |   66       PrintF(out, " -index = %d", GetFieldIndex()); | 
|   73       PrintF(out, "\n"); |   67       PrintF(out, "\n"); | 
|   74       break; |   68       break; | 
|   75     case CALLBACKS: |   69     case CALLBACKS: | 
|   76       PrintF(out, " -type = call backs\n"); |   70       PrintF(out, " -type = call backs\n"); | 
|   77       PrintF(out, " -callback object:\n"); |   71       PrintF(out, " -callback object:\n"); | 
|   78       GetCallbackObject()->Print(out); |   72       GetCallbackObject()->Print(out); | 
|   79       break; |   73       break; | 
|   80     case HANDLER: |   74     case HANDLER: | 
|   81       PrintF(out, " -type = lookup proxy\n"); |   75       PrintF(out, " -type = lookup proxy\n"); | 
|   82       break; |   76       break; | 
|   83     case INTERCEPTOR: |   77     case INTERCEPTOR: | 
|   84       PrintF(out, " -type = lookup interceptor\n"); |   78       PrintF(out, " -type = lookup interceptor\n"); | 
|   85       break; |   79       break; | 
|   86     case CONSTANT_TRANSITION: |   80     case TRANSITION: | 
|   87       PrintF(out, " -type = constant property transition\n"); |   81       switch (GetTransitionDetails().type()) { | 
|   88       PrintF(out, " -map:\n"); |   82         case FIELD: | 
|   89       GetTransitionMap()->Print(out); |   83           PrintF(out, " -type = map transition\n"); | 
|   90       PrintF(out, "\n"); |   84           PrintF(out, " -map:\n"); | 
|   91       break; |   85           GetTransitionMap()->Print(out); | 
 |   86           PrintF(out, "\n"); | 
 |   87           return; | 
 |   88         case CONSTANT_FUNCTION: | 
 |   89           PrintF(out, " -type = constant property transition\n"); | 
 |   90           PrintF(out, " -map:\n"); | 
 |   91           GetTransitionMap()->Print(out); | 
 |   92           PrintF(out, "\n"); | 
 |   93           return; | 
 |   94         case CALLBACKS: | 
 |   95           PrintF(out, " -type = callbacks transition\n"); | 
 |   96           PrintF(out, " -callback object:\n"); | 
 |   97           GetCallbackObject()->Print(out); | 
 |   98           return; | 
 |   99         default: | 
 |  100           UNREACHABLE(); | 
 |  101           return; | 
 |  102       } | 
|   92     case NONEXISTENT: |  103     case NONEXISTENT: | 
|   93       UNREACHABLE(); |  104       UNREACHABLE(); | 
|   94       break; |  105       break; | 
|   95   } |  106   } | 
|   96 } |  107 } | 
|   97  |  108  | 
|   98  |  109  | 
|   99 void Descriptor::Print(FILE* out) { |  110 void Descriptor::Print(FILE* out) { | 
|  100   PrintF(out, "Descriptor "); |  111   PrintF(out, "Descriptor "); | 
|  101   GetKey()->ShortPrint(out); |  112   GetKey()->ShortPrint(out); | 
|  102   PrintF(out, " @ "); |  113   PrintF(out, " @ "); | 
|  103   GetValue()->ShortPrint(out); |  114   GetValue()->ShortPrint(out); | 
|  104   PrintF(out, " %d\n", GetDetails().index()); |  115   PrintF(out, " %d\n", GetDetails().index()); | 
|  105 } |  116 } | 
|  106  |  117  | 
|  107  |  118  | 
|  108 #endif |  119 #endif | 
|  109  |  120  | 
|  110  |  121  | 
|  111 bool Descriptor::ContainsTransition() { |  | 
|  112   switch (details_.type()) { |  | 
|  113     case MAP_TRANSITION: |  | 
|  114     case CONSTANT_TRANSITION: |  | 
|  115       return true; |  | 
|  116     case CALLBACKS: { |  | 
|  117       if (!value_->IsAccessorPair()) return false; |  | 
|  118       AccessorPair* accessors = AccessorPair::cast(value_); |  | 
|  119       return accessors->getter()->IsMap() || accessors->setter()->IsMap(); |  | 
|  120     } |  | 
|  121     case NORMAL: |  | 
|  122     case FIELD: |  | 
|  123     case CONSTANT_FUNCTION: |  | 
|  124     case HANDLER: |  | 
|  125     case INTERCEPTOR: |  | 
|  126       return false; |  | 
|  127     case NONEXISTENT: |  | 
|  128       UNREACHABLE(); |  | 
|  129       break; |  | 
|  130   } |  | 
|  131   UNREACHABLE();  // Keep the compiler happy. |  | 
|  132   return false; |  | 
|  133 } |  | 
|  134  |  | 
|  135  |  | 
|  136 } }  // namespace v8::internal |  122 } }  // namespace v8::internal | 
| OLD | NEW |