| 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 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 V(DECLARED_ACCESSOR_INFO_TYPE) \ | 379 V(DECLARED_ACCESSOR_INFO_TYPE) \ |
| 380 V(EXECUTABLE_ACCESSOR_INFO_TYPE) \ | 380 V(EXECUTABLE_ACCESSOR_INFO_TYPE) \ |
| 381 V(ACCESSOR_PAIR_TYPE) \ | 381 V(ACCESSOR_PAIR_TYPE) \ |
| 382 V(ACCESS_CHECK_INFO_TYPE) \ | 382 V(ACCESS_CHECK_INFO_TYPE) \ |
| 383 V(INTERCEPTOR_INFO_TYPE) \ | 383 V(INTERCEPTOR_INFO_TYPE) \ |
| 384 V(CALL_HANDLER_INFO_TYPE) \ | 384 V(CALL_HANDLER_INFO_TYPE) \ |
| 385 V(FUNCTION_TEMPLATE_INFO_TYPE) \ | 385 V(FUNCTION_TEMPLATE_INFO_TYPE) \ |
| 386 V(OBJECT_TEMPLATE_INFO_TYPE) \ | 386 V(OBJECT_TEMPLATE_INFO_TYPE) \ |
| 387 V(SIGNATURE_INFO_TYPE) \ | 387 V(SIGNATURE_INFO_TYPE) \ |
| 388 V(TYPE_SWITCH_INFO_TYPE) \ | 388 V(TYPE_SWITCH_INFO_TYPE) \ |
| 389 V(ALLOCATION_SITE_INFO_TYPE) \ | 389 V(ALLOCATION_MEMENTO_TYPE) \ |
| 390 V(ALLOCATION_SITE_TYPE) \ | 390 V(ALLOCATION_SITE_TYPE) \ |
| 391 V(SCRIPT_TYPE) \ | 391 V(SCRIPT_TYPE) \ |
| 392 V(CODE_CACHE_TYPE) \ | 392 V(CODE_CACHE_TYPE) \ |
| 393 V(POLYMORPHIC_CODE_CACHE_TYPE) \ | 393 V(POLYMORPHIC_CODE_CACHE_TYPE) \ |
| 394 V(TYPE_FEEDBACK_INFO_TYPE) \ | 394 V(TYPE_FEEDBACK_INFO_TYPE) \ |
| 395 V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ | 395 V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ |
| 396 \ | 396 \ |
| 397 V(FIXED_ARRAY_TYPE) \ | 397 V(FIXED_ARRAY_TYPE) \ |
| 398 V(FIXED_DOUBLE_ARRAY_TYPE) \ | 398 V(FIXED_DOUBLE_ARRAY_TYPE) \ |
| 399 V(SHARED_FUNCTION_INFO_TYPE) \ | 399 V(SHARED_FUNCTION_INFO_TYPE) \ |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 V(ACCESSOR_PAIR, AccessorPair, accessor_pair) \ | 545 V(ACCESSOR_PAIR, AccessorPair, accessor_pair) \ |
| 546 V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ | 546 V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ |
| 547 V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \ | 547 V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \ |
| 548 V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \ | 548 V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \ |
| 549 V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \ | 549 V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \ |
| 550 V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \ | 550 V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \ |
| 551 V(SIGNATURE_INFO, SignatureInfo, signature_info) \ | 551 V(SIGNATURE_INFO, SignatureInfo, signature_info) \ |
| 552 V(TYPE_SWITCH_INFO, TypeSwitchInfo, type_switch_info) \ | 552 V(TYPE_SWITCH_INFO, TypeSwitchInfo, type_switch_info) \ |
| 553 V(SCRIPT, Script, script) \ | 553 V(SCRIPT, Script, script) \ |
| 554 V(ALLOCATION_SITE, AllocationSite, allocation_site) \ | 554 V(ALLOCATION_SITE, AllocationSite, allocation_site) \ |
| 555 V(ALLOCATION_SITE_INFO, AllocationSiteInfo, allocation_site_info) \ | 555 V(ALLOCATION_MEMENTO, AllocationMemento, allocation_memento) \ |
| 556 V(CODE_CACHE, CodeCache, code_cache) \ | 556 V(CODE_CACHE, CodeCache, code_cache) \ |
| 557 V(POLYMORPHIC_CODE_CACHE, PolymorphicCodeCache, polymorphic_code_cache) \ | 557 V(POLYMORPHIC_CODE_CACHE, PolymorphicCodeCache, polymorphic_code_cache) \ |
| 558 V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info) \ | 558 V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info) \ |
| 559 V(ALIASED_ARGUMENTS_ENTRY, AliasedArgumentsEntry, aliased_arguments_entry) | 559 V(ALIASED_ARGUMENTS_ENTRY, AliasedArgumentsEntry, aliased_arguments_entry) |
| 560 | 560 |
| 561 #ifdef ENABLE_DEBUGGER_SUPPORT | 561 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 562 #define STRUCT_LIST_DEBUGGER(V) \ | 562 #define STRUCT_LIST_DEBUGGER(V) \ |
| 563 V(DEBUG_INFO, DebugInfo, debug_info) \ | 563 V(DEBUG_INFO, DebugInfo, debug_info) \ |
| 564 V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) | 564 V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) |
| 565 #else | 565 #else |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 EXECUTABLE_ACCESSOR_INFO_TYPE, | 705 EXECUTABLE_ACCESSOR_INFO_TYPE, |
| 706 ACCESSOR_PAIR_TYPE, | 706 ACCESSOR_PAIR_TYPE, |
| 707 ACCESS_CHECK_INFO_TYPE, | 707 ACCESS_CHECK_INFO_TYPE, |
| 708 INTERCEPTOR_INFO_TYPE, | 708 INTERCEPTOR_INFO_TYPE, |
| 709 CALL_HANDLER_INFO_TYPE, | 709 CALL_HANDLER_INFO_TYPE, |
| 710 FUNCTION_TEMPLATE_INFO_TYPE, | 710 FUNCTION_TEMPLATE_INFO_TYPE, |
| 711 OBJECT_TEMPLATE_INFO_TYPE, | 711 OBJECT_TEMPLATE_INFO_TYPE, |
| 712 SIGNATURE_INFO_TYPE, | 712 SIGNATURE_INFO_TYPE, |
| 713 TYPE_SWITCH_INFO_TYPE, | 713 TYPE_SWITCH_INFO_TYPE, |
| 714 ALLOCATION_SITE_TYPE, | 714 ALLOCATION_SITE_TYPE, |
| 715 ALLOCATION_SITE_INFO_TYPE, | 715 ALLOCATION_MEMENTO_TYPE, |
| 716 SCRIPT_TYPE, | 716 SCRIPT_TYPE, |
| 717 CODE_CACHE_TYPE, | 717 CODE_CACHE_TYPE, |
| 718 POLYMORPHIC_CODE_CACHE_TYPE, | 718 POLYMORPHIC_CODE_CACHE_TYPE, |
| 719 TYPE_FEEDBACK_INFO_TYPE, | 719 TYPE_FEEDBACK_INFO_TYPE, |
| 720 ALIASED_ARGUMENTS_ENTRY_TYPE, | 720 ALIASED_ARGUMENTS_ENTRY_TYPE, |
| 721 // The following two instance types are only used when ENABLE_DEBUGGER_SUPPORT | 721 // The following two instance types are only used when ENABLE_DEBUGGER_SUPPORT |
| 722 // is defined. However as include/v8.h contain some of the instance type | 722 // is defined. However as include/v8.h contain some of the instance type |
| 723 // constants always having them avoids them getting different numbers | 723 // constants always having them avoids them getting different numbers |
| 724 // depending on whether ENABLE_DEBUGGER_SUPPORT is defined or not. | 724 // depending on whether ENABLE_DEBUGGER_SUPPORT is defined or not. |
| 725 DEBUG_INFO_TYPE, | 725 DEBUG_INFO_TYPE, |
| (...skipping 6790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7516 | 7516 |
| 7517 typedef FixedBodyDescriptor<HeapObject::kHeaderSize, | 7517 typedef FixedBodyDescriptor<HeapObject::kHeaderSize, |
| 7518 kTransitionInfoOffset + kPointerSize, | 7518 kTransitionInfoOffset + kPointerSize, |
| 7519 kSize> BodyDescriptor; | 7519 kSize> BodyDescriptor; |
| 7520 | 7520 |
| 7521 private: | 7521 private: |
| 7522 DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationSite); | 7522 DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationSite); |
| 7523 }; | 7523 }; |
| 7524 | 7524 |
| 7525 | 7525 |
| 7526 class AllocationSiteInfo: public Struct { | 7526 class AllocationMemento: public Struct { |
| 7527 public: | 7527 public: |
| 7528 static const int kAllocationSiteOffset = HeapObject::kHeaderSize; | 7528 static const int kAllocationSiteOffset = HeapObject::kHeaderSize; |
| 7529 static const int kSize = kAllocationSiteOffset + kPointerSize; | 7529 static const int kSize = kAllocationSiteOffset + kPointerSize; |
| 7530 | 7530 |
| 7531 DECL_ACCESSORS(allocation_site, Object) | 7531 DECL_ACCESSORS(allocation_site, Object) |
| 7532 | 7532 |
| 7533 bool IsValid() { return allocation_site()->IsAllocationSite(); } | 7533 bool IsValid() { return allocation_site()->IsAllocationSite(); } |
| 7534 AllocationSite* GetAllocationSite() { | 7534 AllocationSite* GetAllocationSite() { |
| 7535 ASSERT(IsValid()); | 7535 ASSERT(IsValid()); |
| 7536 return AllocationSite::cast(allocation_site()); | 7536 return AllocationSite::cast(allocation_site()); |
| 7537 } | 7537 } |
| 7538 | 7538 |
| 7539 DECLARE_PRINTER(AllocationSiteInfo) | 7539 DECLARE_PRINTER(AllocationMemento) |
| 7540 DECLARE_VERIFIER(AllocationSiteInfo) | 7540 DECLARE_VERIFIER(AllocationMemento) |
| 7541 | 7541 |
| 7542 // Returns NULL if no AllocationSiteInfo is available for object. | 7542 // Returns NULL if no AllocationMemento is available for object. |
| 7543 static AllocationSiteInfo* FindForJSObject(JSObject* object); | 7543 static AllocationMemento* FindForJSObject(JSObject* object); |
| 7544 static inline AllocationSiteInfo* cast(Object* obj); | 7544 static inline AllocationMemento* cast(Object* obj); |
| 7545 | 7545 |
| 7546 private: | 7546 private: |
| 7547 DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationSiteInfo); | 7547 DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationMemento); |
| 7548 }; | 7548 }; |
| 7549 | 7549 |
| 7550 | 7550 |
| 7551 // Representation of a slow alias as part of a non-strict arguments objects. | 7551 // Representation of a slow alias as part of a non-strict arguments objects. |
| 7552 // For fast aliases (if HasNonStrictArgumentsElements()): | 7552 // For fast aliases (if HasNonStrictArgumentsElements()): |
| 7553 // - the parameter map contains an index into the context | 7553 // - the parameter map contains an index into the context |
| 7554 // - all attributes of the element have default values | 7554 // - all attributes of the element have default values |
| 7555 // For slow aliases (if HasDictionaryArgumentsElements()): | 7555 // For slow aliases (if HasDictionaryArgumentsElements()): |
| 7556 // - the parameter map contains no fast alias mapping (i.e. the hole) | 7556 // - the parameter map contains no fast alias mapping (i.e. the hole) |
| 7557 // - this struct (in the slow backing store) contains an index into the context | 7557 // - this struct (in the slow backing store) contains an index into the context |
| (...skipping 2273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9831 } else { | 9831 } else { |
| 9832 value &= ~(1 << bit_position); | 9832 value &= ~(1 << bit_position); |
| 9833 } | 9833 } |
| 9834 return value; | 9834 return value; |
| 9835 } | 9835 } |
| 9836 }; | 9836 }; |
| 9837 | 9837 |
| 9838 } } // namespace v8::internal | 9838 } } // namespace v8::internal |
| 9839 | 9839 |
| 9840 #endif // V8_OBJECTS_H_ | 9840 #endif // V8_OBJECTS_H_ |
| OLD | NEW |