| 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 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 break; | 145 break; |
| 146 case CODE_TYPE: | 146 case CODE_TYPE: |
| 147 Code::cast(this)->CodePrint(); | 147 Code::cast(this)->CodePrint(); |
| 148 break; | 148 break; |
| 149 case PROXY_TYPE: | 149 case PROXY_TYPE: |
| 150 Proxy::cast(this)->ProxyPrint(); | 150 Proxy::cast(this)->ProxyPrint(); |
| 151 break; | 151 break; |
| 152 case SHARED_FUNCTION_INFO_TYPE: | 152 case SHARED_FUNCTION_INFO_TYPE: |
| 153 SharedFunctionInfo::cast(this)->SharedFunctionInfoPrint(); | 153 SharedFunctionInfo::cast(this)->SharedFunctionInfoPrint(); |
| 154 break; | 154 break; |
| 155 | 155 case JS_GLOBAL_PROPERTY_CELL_TYPE: |
| 156 JSGlobalPropertyCell::cast(this)->JSGlobalPropertyCellPrint(); |
| 157 break; |
| 156 #define MAKE_STRUCT_CASE(NAME, Name, name) \ | 158 #define MAKE_STRUCT_CASE(NAME, Name, name) \ |
| 157 case NAME##_TYPE: \ | 159 case NAME##_TYPE: \ |
| 158 Name::cast(this)->Name##Print(); \ | 160 Name::cast(this)->Name##Print(); \ |
| 159 break; | 161 break; |
| 160 STRUCT_LIST(MAKE_STRUCT_CASE) | 162 STRUCT_LIST(MAKE_STRUCT_CASE) |
| 161 #undef MAKE_STRUCT_CASE | 163 #undef MAKE_STRUCT_CASE |
| 162 | 164 |
| 163 default: | 165 default: |
| 164 PrintF("UNKNOWN TYPE %d", map()->instance_type()); | 166 PrintF("UNKNOWN TYPE %d", map()->instance_type()); |
| 165 UNREACHABLE(); | 167 UNREACHABLE(); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 break; | 209 break; |
| 208 case JS_GLOBAL_PROXY_TYPE: | 210 case JS_GLOBAL_PROXY_TYPE: |
| 209 JSGlobalProxy::cast(this)->JSGlobalProxyVerify(); | 211 JSGlobalProxy::cast(this)->JSGlobalProxyVerify(); |
| 210 break; | 212 break; |
| 211 case JS_GLOBAL_OBJECT_TYPE: | 213 case JS_GLOBAL_OBJECT_TYPE: |
| 212 JSGlobalObject::cast(this)->JSGlobalObjectVerify(); | 214 JSGlobalObject::cast(this)->JSGlobalObjectVerify(); |
| 213 break; | 215 break; |
| 214 case JS_BUILTINS_OBJECT_TYPE: | 216 case JS_BUILTINS_OBJECT_TYPE: |
| 215 JSBuiltinsObject::cast(this)->JSBuiltinsObjectVerify(); | 217 JSBuiltinsObject::cast(this)->JSBuiltinsObjectVerify(); |
| 216 break; | 218 break; |
| 219 case JS_GLOBAL_PROPERTY_CELL_TYPE: |
| 220 JSGlobalPropertyCell::cast(this)->JSGlobalPropertyCellVerify(); |
| 221 break; |
| 217 case JS_ARRAY_TYPE: | 222 case JS_ARRAY_TYPE: |
| 218 JSArray::cast(this)->JSArrayVerify(); | 223 JSArray::cast(this)->JSArrayVerify(); |
| 219 break; | 224 break; |
| 220 case JS_REGEXP_TYPE: | 225 case JS_REGEXP_TYPE: |
| 221 JSRegExp::cast(this)->JSRegExpVerify(); | 226 JSRegExp::cast(this)->JSRegExpVerify(); |
| 222 break; | 227 break; |
| 223 case FILLER_TYPE: | 228 case FILLER_TYPE: |
| 224 break; | 229 break; |
| 225 case PROXY_TYPE: | 230 case PROXY_TYPE: |
| 226 Proxy::cast(this)->ProxyVerify(); | 231 Proxy::cast(this)->ProxyVerify(); |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 case LONG_EXTERNAL_ASCII_STRING_TYPE: | 390 case LONG_EXTERNAL_ASCII_STRING_TYPE: |
| 386 case SHORT_EXTERNAL_STRING_TYPE: | 391 case SHORT_EXTERNAL_STRING_TYPE: |
| 387 case MEDIUM_EXTERNAL_STRING_TYPE: | 392 case MEDIUM_EXTERNAL_STRING_TYPE: |
| 388 case LONG_EXTERNAL_STRING_TYPE: return "EXTERNAL_STRING"; | 393 case LONG_EXTERNAL_STRING_TYPE: return "EXTERNAL_STRING"; |
| 389 case FIXED_ARRAY_TYPE: return "FIXED_ARRAY"; | 394 case FIXED_ARRAY_TYPE: return "FIXED_ARRAY"; |
| 390 case BYTE_ARRAY_TYPE: return "BYTE_ARRAY"; | 395 case BYTE_ARRAY_TYPE: return "BYTE_ARRAY"; |
| 391 case FILLER_TYPE: return "FILLER"; | 396 case FILLER_TYPE: return "FILLER"; |
| 392 case JS_OBJECT_TYPE: return "JS_OBJECT"; | 397 case JS_OBJECT_TYPE: return "JS_OBJECT"; |
| 393 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: return "JS_CONTEXT_EXTENSION_OBJECT"; | 398 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: return "JS_CONTEXT_EXTENSION_OBJECT"; |
| 394 case ODDBALL_TYPE: return "ODDBALL"; | 399 case ODDBALL_TYPE: return "ODDBALL"; |
| 400 case JS_GLOBAL_PROPERTY_CELL_TYPE: return "JS_GLOBAL_PROPERTY_CELL"; |
| 395 case SHARED_FUNCTION_INFO_TYPE: return "SHARED_FUNCTION_INFO"; | 401 case SHARED_FUNCTION_INFO_TYPE: return "SHARED_FUNCTION_INFO"; |
| 396 case JS_FUNCTION_TYPE: return "JS_FUNCTION"; | 402 case JS_FUNCTION_TYPE: return "JS_FUNCTION"; |
| 397 case CODE_TYPE: return "CODE"; | 403 case CODE_TYPE: return "CODE"; |
| 398 case JS_ARRAY_TYPE: return "JS_ARRAY"; | 404 case JS_ARRAY_TYPE: return "JS_ARRAY"; |
| 399 case JS_REGEXP_TYPE: return "JS_REGEXP"; | 405 case JS_REGEXP_TYPE: return "JS_REGEXP"; |
| 400 case JS_VALUE_TYPE: return "JS_VALUE"; | 406 case JS_VALUE_TYPE: return "JS_VALUE"; |
| 401 case JS_GLOBAL_OBJECT_TYPE: return "JS_GLOBAL_OBJECT"; | 407 case JS_GLOBAL_OBJECT_TYPE: return "JS_GLOBAL_OBJECT"; |
| 402 case JS_BUILTINS_OBJECT_TYPE: return "JS_BUILTINS_OBJECT"; | 408 case JS_BUILTINS_OBJECT_TYPE: return "JS_BUILTINS_OBJECT"; |
| 403 case JS_GLOBAL_PROXY_TYPE: return "JS_GLOBAL_PROXY"; | 409 case JS_GLOBAL_PROXY_TYPE: return "JS_GLOBAL_PROXY"; |
| 404 case PROXY_TYPE: return "PROXY"; | 410 case PROXY_TYPE: return "PROXY"; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 421 } | 427 } |
| 422 if (has_named_interceptor()) { | 428 if (has_named_interceptor()) { |
| 423 PrintF(" - named_interceptor\n"); | 429 PrintF(" - named_interceptor\n"); |
| 424 } | 430 } |
| 425 if (has_indexed_interceptor()) { | 431 if (has_indexed_interceptor()) { |
| 426 PrintF(" - indexed_interceptor\n"); | 432 PrintF(" - indexed_interceptor\n"); |
| 427 } | 433 } |
| 428 if (is_undetectable()) { | 434 if (is_undetectable()) { |
| 429 PrintF(" - undetectable\n"); | 435 PrintF(" - undetectable\n"); |
| 430 } | 436 } |
| 437 if (needs_loading()) { |
| 438 PrintF(" - needs_loading\n"); |
| 439 } |
| 431 if (has_instance_call_handler()) { | 440 if (has_instance_call_handler()) { |
| 432 PrintF(" - instance_call_handler\n"); | 441 PrintF(" - instance_call_handler\n"); |
| 433 } | 442 } |
| 434 if (is_access_check_needed()) { | 443 if (is_access_check_needed()) { |
| 435 PrintF(" - access_check_needed\n"); | 444 PrintF(" - access_check_needed\n"); |
| 436 } | 445 } |
| 437 PrintF(" - instance descriptors: "); | 446 PrintF(" - instance descriptors: "); |
| 438 instance_descriptors()->ShortPrint(); | 447 instance_descriptors()->ShortPrint(); |
| 439 PrintF("\n - prototype: "); | 448 PrintF("\n - prototype: "); |
| 440 prototype()->ShortPrint(); | 449 prototype()->ShortPrint(); |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 if (number->IsHeapObject()) { | 655 if (number->IsHeapObject()) { |
| 647 ASSERT(number == Heap::nan_value()); | 656 ASSERT(number == Heap::nan_value()); |
| 648 } else { | 657 } else { |
| 649 ASSERT(number->IsSmi()); | 658 ASSERT(number->IsSmi()); |
| 650 int value = Smi::cast(number)->value(); | 659 int value = Smi::cast(number)->value(); |
| 651 ASSERT(value == 0 || value == 1 || value == -1); | 660 ASSERT(value == 0 || value == 1 || value == -1); |
| 652 } | 661 } |
| 653 } | 662 } |
| 654 | 663 |
| 655 | 664 |
| 665 void JSGlobalPropertyCell::JSGlobalPropertyCellVerify() { |
| 666 CHECK(IsJSGlobalPropertyCell()); |
| 667 VerifyObjectField(kValueOffset); |
| 668 } |
| 669 |
| 670 |
| 671 void JSGlobalPropertyCell::JSGlobalPropertyCellPrint() { |
| 672 HeapObject::PrintHeader("JSGlobalPropertyCell"); |
| 673 } |
| 674 |
| 675 |
| 656 void Code::CodePrint() { | 676 void Code::CodePrint() { |
| 657 HeapObject::PrintHeader("Code"); | 677 HeapObject::PrintHeader("Code"); |
| 658 #ifdef ENABLE_DISASSEMBLER | 678 #ifdef ENABLE_DISASSEMBLER |
| 659 Disassemble(NULL); | 679 Disassemble(NULL); |
| 660 #endif | 680 #endif |
| 661 } | 681 } |
| 662 | 682 |
| 663 | 683 |
| 664 void Code::CodeVerify() { | 684 void Code::CodeVerify() { |
| 665 CHECK(ic_flag() == IC_TARGET_IS_ADDRESS); | 685 CHECK(ic_flag() == IC_TARGET_IS_ADDRESS); |
| (...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1089 } | 1109 } |
| 1090 current = hash; | 1110 current = hash; |
| 1091 } | 1111 } |
| 1092 return true; | 1112 return true; |
| 1093 } | 1113 } |
| 1094 | 1114 |
| 1095 | 1115 |
| 1096 #endif // DEBUG | 1116 #endif // DEBUG |
| 1097 | 1117 |
| 1098 } } // namespace v8::internal | 1118 } } // namespace v8::internal |
| OLD | NEW |