Chromium Code Reviews| 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 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 433 V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ | 433 V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ |
| 434 V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \ | 434 V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \ |
| 435 V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \ | 435 V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \ |
| 436 V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \ | 436 V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \ |
| 437 V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \ | 437 V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \ |
| 438 V(SIGNATURE_INFO, SignatureInfo, signature_info) \ | 438 V(SIGNATURE_INFO, SignatureInfo, signature_info) \ |
| 439 V(TYPE_SWITCH_INFO, TypeSwitchInfo, type_switch_info) \ | 439 V(TYPE_SWITCH_INFO, TypeSwitchInfo, type_switch_info) \ |
| 440 V(SCRIPT, Script, script) \ | 440 V(SCRIPT, Script, script) \ |
| 441 V(CODE_CACHE, CodeCache, code_cache) \ | 441 V(CODE_CACHE, CodeCache, code_cache) \ |
| 442 V(POLYMORPHIC_CODE_CACHE, PolymorphicCodeCache, polymorphic_code_cache) \ | 442 V(POLYMORPHIC_CODE_CACHE, PolymorphicCodeCache, polymorphic_code_cache) \ |
| 443 V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info) | 443 V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info) \ |
| 444 V(ALIASED_ARGUMENTS_ENTRY, AliasedArgumentsEntry, aliased_arguments_entry) | |
| 444 | 445 |
| 445 #ifdef ENABLE_DEBUGGER_SUPPORT | 446 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 446 #define STRUCT_LIST_DEBUGGER(V) \ | 447 #define STRUCT_LIST_DEBUGGER(V) \ |
| 447 V(DEBUG_INFO, DebugInfo, debug_info) \ | 448 V(DEBUG_INFO, DebugInfo, debug_info) \ |
| 448 V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) | 449 V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) |
| 449 #else | 450 #else |
| 450 #define STRUCT_LIST_DEBUGGER(V) | 451 #define STRUCT_LIST_DEBUGGER(V) |
| 451 #endif | 452 #endif |
| 452 | 453 |
| 453 #define STRUCT_LIST(V) \ | 454 #define STRUCT_LIST(V) \ |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 589 INTERCEPTOR_INFO_TYPE, | 590 INTERCEPTOR_INFO_TYPE, |
| 590 CALL_HANDLER_INFO_TYPE, | 591 CALL_HANDLER_INFO_TYPE, |
| 591 FUNCTION_TEMPLATE_INFO_TYPE, | 592 FUNCTION_TEMPLATE_INFO_TYPE, |
| 592 OBJECT_TEMPLATE_INFO_TYPE, | 593 OBJECT_TEMPLATE_INFO_TYPE, |
| 593 SIGNATURE_INFO_TYPE, | 594 SIGNATURE_INFO_TYPE, |
| 594 TYPE_SWITCH_INFO_TYPE, | 595 TYPE_SWITCH_INFO_TYPE, |
| 595 SCRIPT_TYPE, | 596 SCRIPT_TYPE, |
| 596 CODE_CACHE_TYPE, | 597 CODE_CACHE_TYPE, |
| 597 POLYMORPHIC_CODE_CACHE_TYPE, | 598 POLYMORPHIC_CODE_CACHE_TYPE, |
| 598 TYPE_FEEDBACK_INFO_TYPE, | 599 TYPE_FEEDBACK_INFO_TYPE, |
| 600 ALIASED_ARGUMENTS_ENTRY_TYPE, | |
| 599 // The following two instance types are only used when ENABLE_DEBUGGER_SUPPORT | 601 // The following two instance types are only used when ENABLE_DEBUGGER_SUPPORT |
| 600 // is defined. However as include/v8.h contain some of the instance type | 602 // is defined. However as include/v8.h contain some of the instance type |
| 601 // constants always having them avoids them getting different numbers | 603 // constants always having them avoids them getting different numbers |
| 602 // depending on whether ENABLE_DEBUGGER_SUPPORT is defined or not. | 604 // depending on whether ENABLE_DEBUGGER_SUPPORT is defined or not. |
| 603 DEBUG_INFO_TYPE, | 605 DEBUG_INFO_TYPE, |
| 604 BREAK_POINT_INFO_TYPE, | 606 BREAK_POINT_INFO_TYPE, |
| 605 | 607 |
| 606 FIXED_ARRAY_TYPE, | 608 FIXED_ARRAY_TYPE, |
| 607 SHARED_FUNCTION_INFO_TYPE, | 609 SHARED_FUNCTION_INFO_TYPE, |
| 608 | 610 |
| (...skipping 5819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6428 kIcTotalCountOffset + kPointerSize; | 6430 kIcTotalCountOffset + kPointerSize; |
| 6429 static const int kTypeFeedbackCellsOffset = | 6431 static const int kTypeFeedbackCellsOffset = |
| 6430 kIcWithTypeinfoCountOffset + kPointerSize; | 6432 kIcWithTypeinfoCountOffset + kPointerSize; |
| 6431 static const int kSize = kTypeFeedbackCellsOffset + kPointerSize; | 6433 static const int kSize = kTypeFeedbackCellsOffset + kPointerSize; |
| 6432 | 6434 |
| 6433 private: | 6435 private: |
| 6434 DISALLOW_IMPLICIT_CONSTRUCTORS(TypeFeedbackInfo); | 6436 DISALLOW_IMPLICIT_CONSTRUCTORS(TypeFeedbackInfo); |
| 6435 }; | 6437 }; |
| 6436 | 6438 |
| 6437 | 6439 |
| 6440 class AliasedArgumentsEntry: public Struct { | |
|
rossberg
2012/02/24 13:51:05
Maybe add a comment explaining the role of this ty
Michael Starzinger
2012/02/24 14:36:41
Done.
| |
| 6441 public: | |
| 6442 inline int aliased_context_slot(); | |
| 6443 inline void set_aliased_context_slot(int count); | |
| 6444 | |
| 6445 static inline AliasedArgumentsEntry* cast(Object* obj); | |
| 6446 | |
| 6447 #ifdef OBJECT_PRINT | |
| 6448 inline void AliasedArgumentsEntryPrint() { | |
| 6449 AliasedArgumentsEntryPrint(stdout); | |
| 6450 } | |
| 6451 void AliasedArgumentsEntryPrint(FILE* out); | |
| 6452 #endif | |
| 6453 #ifdef DEBUG | |
| 6454 void AliasedArgumentsEntryVerify(); | |
| 6455 #endif | |
| 6456 | |
| 6457 static const int kAliasedContextSlot = HeapObject::kHeaderSize; | |
| 6458 static const int kSize = kAliasedContextSlot + kPointerSize; | |
| 6459 | |
| 6460 private: | |
| 6461 DISALLOW_IMPLICIT_CONSTRUCTORS(AliasedArgumentsEntry); | |
| 6462 }; | |
| 6463 | |
| 6464 | |
| 6438 enum AllowNullsFlag {ALLOW_NULLS, DISALLOW_NULLS}; | 6465 enum AllowNullsFlag {ALLOW_NULLS, DISALLOW_NULLS}; |
| 6439 enum RobustnessFlag {ROBUST_STRING_TRAVERSAL, FAST_STRING_TRAVERSAL}; | 6466 enum RobustnessFlag {ROBUST_STRING_TRAVERSAL, FAST_STRING_TRAVERSAL}; |
| 6440 | 6467 |
| 6441 | 6468 |
| 6442 class StringHasher { | 6469 class StringHasher { |
| 6443 public: | 6470 public: |
| 6444 explicit inline StringHasher(int length, uint32_t seed); | 6471 explicit inline StringHasher(int length, uint32_t seed); |
| 6445 | 6472 |
| 6446 // Returns true if the hash of this string can be computed without | 6473 // Returns true if the hash of this string can be computed without |
| 6447 // looking at the contents. | 6474 // looking at the contents. |
| (...skipping 1934 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8382 } else { | 8409 } else { |
| 8383 value &= ~(1 << bit_position); | 8410 value &= ~(1 << bit_position); |
| 8384 } | 8411 } |
| 8385 return value; | 8412 return value; |
| 8386 } | 8413 } |
| 8387 }; | 8414 }; |
| 8388 | 8415 |
| 8389 } } // namespace v8::internal | 8416 } } // namespace v8::internal |
| 8390 | 8417 |
| 8391 #endif // V8_OBJECTS_H_ | 8418 #endif // V8_OBJECTS_H_ |
| OLD | NEW |