| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 6220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6231 case INTERCEPTOR: return "INTERCEPTOR"; | 6231 case INTERCEPTOR: return "INTERCEPTOR"; |
| 6232 case MAP_TRANSITION: return "MAP_TRANSITION"; | 6232 case MAP_TRANSITION: return "MAP_TRANSITION"; |
| 6233 case CONSTANT_TRANSITION: return "CONSTANT_TRANSITION"; | 6233 case CONSTANT_TRANSITION: return "CONSTANT_TRANSITION"; |
| 6234 case NULL_DESCRIPTOR: return "NULL_DESCRIPTOR"; | 6234 case NULL_DESCRIPTOR: return "NULL_DESCRIPTOR"; |
| 6235 } | 6235 } |
| 6236 UNREACHABLE(); | 6236 UNREACHABLE(); |
| 6237 return NULL; | 6237 return NULL; |
| 6238 } | 6238 } |
| 6239 | 6239 |
| 6240 | 6240 |
| 6241 void Code::PrintExtraICState(FILE* out, Kind kind, ExtraICState extra) { |
| 6242 const char* name = NULL; |
| 6243 switch (kind) { |
| 6244 case CALL_IC: |
| 6245 if (extra == STRING_INDEX_OUT_OF_BOUNDS) { |
| 6246 name = "STRING_INDEX_OUT_OF_BOUNDS"; |
| 6247 } |
| 6248 break; |
| 6249 case STORE_IC: |
| 6250 if (extra == StoreIC::kStoreICStrict) { |
| 6251 name = "STRICT"; |
| 6252 } |
| 6253 break; |
| 6254 default: |
| 6255 break; |
| 6256 } |
| 6257 if (name != NULL) { |
| 6258 PrintF(out, "extra_ic_state = %s\n", name); |
| 6259 } else { |
| 6260 PrintF(out, "etra_ic_state = %d\n", extra); |
| 6261 } |
| 6262 } |
| 6263 |
| 6264 |
| 6241 void Code::Disassemble(const char* name, FILE* out) { | 6265 void Code::Disassemble(const char* name, FILE* out) { |
| 6242 PrintF(out, "kind = %s\n", Kind2String(kind())); | 6266 PrintF(out, "kind = %s\n", Kind2String(kind())); |
| 6243 if (is_inline_cache_stub()) { | 6267 if (is_inline_cache_stub()) { |
| 6244 PrintF(out, "ic_state = %s\n", ICState2String(ic_state())); | 6268 PrintF(out, "ic_state = %s\n", ICState2String(ic_state())); |
| 6269 PrintExtraICState(out, kind(), extra_ic_state()); |
| 6245 PrintF(out, "ic_in_loop = %d\n", ic_in_loop() == IN_LOOP); | 6270 PrintF(out, "ic_in_loop = %d\n", ic_in_loop() == IN_LOOP); |
| 6246 if (ic_state() == MONOMORPHIC) { | 6271 if (ic_state() == MONOMORPHIC) { |
| 6247 PrintF(out, "type = %s\n", PropertyType2String(type())); | 6272 PrintF(out, "type = %s\n", PropertyType2String(type())); |
| 6248 } | 6273 } |
| 6249 } | 6274 } |
| 6250 if ((name != NULL) && (name[0] != '\0')) { | 6275 if ((name != NULL) && (name[0] != '\0')) { |
| 6251 PrintF(out, "name = %s\n", name); | 6276 PrintF(out, "name = %s\n", name); |
| 6252 } | 6277 } |
| 6253 if (kind() == OPTIMIZED_FUNCTION) { | 6278 if (kind() == OPTIMIZED_FUNCTION) { |
| 6254 PrintF(out, "stack_slots = %d\n", stack_slots()); | 6279 PrintF(out, "stack_slots = %d\n", stack_slots()); |
| (...skipping 3673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9928 if (break_point_objects()->IsUndefined()) return 0; | 9953 if (break_point_objects()->IsUndefined()) return 0; |
| 9929 // Single beak point. | 9954 // Single beak point. |
| 9930 if (!break_point_objects()->IsFixedArray()) return 1; | 9955 if (!break_point_objects()->IsFixedArray()) return 1; |
| 9931 // Multiple break points. | 9956 // Multiple break points. |
| 9932 return FixedArray::cast(break_point_objects())->length(); | 9957 return FixedArray::cast(break_point_objects())->length(); |
| 9933 } | 9958 } |
| 9934 #endif | 9959 #endif |
| 9935 | 9960 |
| 9936 | 9961 |
| 9937 } } // namespace v8::internal | 9962 } } // namespace v8::internal |
| OLD | NEW |