OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
768 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); | 768 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); |
769 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); | 769 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); |
770 | 770 |
771 | 771 |
772 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); | 772 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); |
773 | 773 |
774 #define FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(V) \ | 774 #define FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(V) \ |
775 V(BYTECODE_ARRAY_CONSTANT_POOL_SUB_TYPE) \ | 775 V(BYTECODE_ARRAY_CONSTANT_POOL_SUB_TYPE) \ |
776 V(BYTECODE_ARRAY_HANDLER_TABLE_SUB_TYPE) \ | 776 V(BYTECODE_ARRAY_HANDLER_TABLE_SUB_TYPE) \ |
777 V(CODE_STUBS_TABLE_SUB_TYPE) \ | 777 V(CODE_STUBS_TABLE_SUB_TYPE) \ |
| 778 V(COMPILATION_CACHE_TABLE_SUB_TYPE) \ |
778 V(CONTEXT_SUB_TYPE) \ | 779 V(CONTEXT_SUB_TYPE) \ |
779 V(COPY_ON_WRITE_SUB_TYPE) \ | 780 V(COPY_ON_WRITE_SUB_TYPE) \ |
780 V(DEOPTIMIZATION_DATA_SUB_TYPE) \ | 781 V(DEOPTIMIZATION_DATA_SUB_TYPE) \ |
781 V(DESCRIPTOR_ARRAY_SUB_TYPE) \ | 782 V(DESCRIPTOR_ARRAY_SUB_TYPE) \ |
782 V(EMBEDDED_OBJECT_SUB_TYPE) \ | 783 V(EMBEDDED_OBJECT_SUB_TYPE) \ |
783 V(ENUM_CACHE_SUB_TYPE) \ | 784 V(ENUM_CACHE_SUB_TYPE) \ |
784 V(ENUM_INDICES_CACHE_SUB_TYPE) \ | 785 V(ENUM_INDICES_CACHE_SUB_TYPE) \ |
785 V(DEPENDENT_CODE_SUB_TYPE) \ | 786 V(DEPENDENT_CODE_SUB_TYPE) \ |
786 V(DICTIONARY_ELEMENTS_SUB_TYPE) \ | 787 V(DICTIONARY_ELEMENTS_SUB_TYPE) \ |
787 V(DICTIONARY_PROPERTIES_SUB_TYPE) \ | 788 V(DICTIONARY_PROPERTIES_SUB_TYPE) \ |
788 V(EMPTY_PROPERTIES_DICTIONARY_SUB_TYPE) \ | 789 V(EMPTY_PROPERTIES_DICTIONARY_SUB_TYPE) \ |
789 V(FAST_ELEMENTS_SUB_TYPE) \ | 790 V(FAST_ELEMENTS_SUB_TYPE) \ |
790 V(FAST_PROPERTIES_SUB_TYPE) \ | 791 V(FAST_PROPERTIES_SUB_TYPE) \ |
791 V(FAST_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPE) \ | 792 V(FAST_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPE) \ |
792 V(HANDLER_TABLE_SUB_TYPE) \ | 793 V(HANDLER_TABLE_SUB_TYPE) \ |
793 V(INTRINSIC_FUNCTION_NAMES_SUB_TYPE) \ | 794 V(INTRINSIC_FUNCTION_NAMES_SUB_TYPE) \ |
794 V(JS_COLLECTION_SUB_TYPE) \ | 795 V(JS_COLLECTION_SUB_TYPE) \ |
795 V(JS_WEAK_COLLECTION_SUB_TYPE) \ | 796 V(JS_WEAK_COLLECTION_SUB_TYPE) \ |
796 V(LITERALS_ARRAY_SUB_TYPE) \ | 797 V(LITERALS_ARRAY_SUB_TYPE) \ |
797 V(MAP_CODE_CACHE_SUB_TYPE) \ | 798 V(MAP_CODE_CACHE_SUB_TYPE) \ |
798 V(NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPE) \ | 799 V(NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPE) \ |
799 V(NUMBER_STRING_CACHE_SUB_TYPE) \ | 800 V(NUMBER_STRING_CACHE_SUB_TYPE) \ |
800 V(OBJECT_TO_CODE_SUB_TYPE) \ | 801 V(OBJECT_TO_CODE_SUB_TYPE) \ |
| 802 V(OPTIMIZED_CODE_LITERALS_SUB_TYPE) \ |
801 V(OPTIMIZED_CODE_MAP_SUB_TYPE) \ | 803 V(OPTIMIZED_CODE_MAP_SUB_TYPE) \ |
802 V(PROTOTYPE_USERS_SUB_TYPE) \ | 804 V(PROTOTYPE_USERS_SUB_TYPE) \ |
803 V(REGEXP_MULTIPLE_CACHE_SUB_TYPE) \ | 805 V(REGEXP_MULTIPLE_CACHE_SUB_TYPE) \ |
804 V(RETAINED_MAPS_SUB_TYPE) \ | 806 V(RETAINED_MAPS_SUB_TYPE) \ |
805 V(SCOPE_INFO_SUB_TYPE) \ | 807 V(SCOPE_INFO_SUB_TYPE) \ |
806 V(SCRIPT_LIST_SUB_TYPE) \ | 808 V(SCRIPT_LIST_SUB_TYPE) \ |
807 V(SERIALIZED_TEMPLATES_SUB_TYPE) \ | 809 V(SERIALIZED_TEMPLATES_SUB_TYPE) \ |
808 V(SHARED_FUNCTION_INFOS_SUB_TYPE) \ | 810 V(SHARED_FUNCTION_INFOS_SUB_TYPE) \ |
809 V(SINGLE_CHARACTER_STRING_CACHE_SUB_TYPE) \ | 811 V(SINGLE_CHARACTER_STRING_CACHE_SUB_TYPE) \ |
810 V(SLOW_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPE) \ | 812 V(SLOW_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPE) \ |
811 V(STRING_SPLIT_CACHE_SUB_TYPE) \ | 813 V(STRING_SPLIT_CACHE_SUB_TYPE) \ |
812 V(STRING_TABLE_SUB_TYPE) \ | 814 V(STRING_TABLE_SUB_TYPE) \ |
| 815 V(TEMPLATE_INFO_SUB_TYPE) \ |
813 V(TYPE_FEEDBACK_VECTOR_SUB_TYPE) \ | 816 V(TYPE_FEEDBACK_VECTOR_SUB_TYPE) \ |
814 V(TYPE_FEEDBACK_METADATA_SUB_TYPE) \ | 817 V(TYPE_FEEDBACK_METADATA_SUB_TYPE) \ |
815 V(WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPE) | 818 V(WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPE) |
816 | 819 |
817 enum FixedArraySubInstanceType { | 820 enum FixedArraySubInstanceType { |
818 #define DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE(name) name, | 821 #define DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE(name) name, |
819 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE) | 822 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE) |
820 #undef DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE | 823 #undef DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE |
821 LAST_FIXED_ARRAY_SUB_TYPE = WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPE | 824 LAST_FIXED_ARRAY_SUB_TYPE = WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPE |
822 }; | 825 }; |
(...skipping 9991 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10814 class TemplateInfo: public Struct { | 10817 class TemplateInfo: public Struct { |
10815 public: | 10818 public: |
10816 DECL_ACCESSORS(tag, Object) | 10819 DECL_ACCESSORS(tag, Object) |
10817 DECL_ACCESSORS(serial_number, Object) | 10820 DECL_ACCESSORS(serial_number, Object) |
10818 DECL_INT_ACCESSORS(number_of_properties) | 10821 DECL_INT_ACCESSORS(number_of_properties) |
10819 DECL_ACCESSORS(property_list, Object) | 10822 DECL_ACCESSORS(property_list, Object) |
10820 DECL_ACCESSORS(property_accessors, Object) | 10823 DECL_ACCESSORS(property_accessors, Object) |
10821 | 10824 |
10822 DECLARE_VERIFIER(TemplateInfo) | 10825 DECLARE_VERIFIER(TemplateInfo) |
10823 | 10826 |
| 10827 DECLARE_CAST(TemplateInfo) |
| 10828 |
10824 static const int kTagOffset = HeapObject::kHeaderSize; | 10829 static const int kTagOffset = HeapObject::kHeaderSize; |
10825 static const int kSerialNumberOffset = kTagOffset + kPointerSize; | 10830 static const int kSerialNumberOffset = kTagOffset + kPointerSize; |
10826 static const int kNumberOfProperties = kSerialNumberOffset + kPointerSize; | 10831 static const int kNumberOfProperties = kSerialNumberOffset + kPointerSize; |
10827 static const int kPropertyListOffset = kNumberOfProperties + kPointerSize; | 10832 static const int kPropertyListOffset = kNumberOfProperties + kPointerSize; |
10828 static const int kPropertyAccessorsOffset = | 10833 static const int kPropertyAccessorsOffset = |
10829 kPropertyListOffset + kPointerSize; | 10834 kPropertyListOffset + kPointerSize; |
10830 static const int kPropertyIntrinsicsOffset = | 10835 static const int kPropertyIntrinsicsOffset = |
10831 kPropertyAccessorsOffset + kPointerSize; | 10836 kPropertyAccessorsOffset + kPointerSize; |
10832 static const int kHeaderSize = kPropertyIntrinsicsOffset + kPointerSize; | 10837 static const int kHeaderSize = kPropertyIntrinsicsOffset + kPointerSize; |
10833 | 10838 |
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11165 } | 11170 } |
11166 return value; | 11171 return value; |
11167 } | 11172 } |
11168 }; | 11173 }; |
11169 | 11174 |
11170 | 11175 |
11171 } // NOLINT, false-positive due to second-order macros. | 11176 } // NOLINT, false-positive due to second-order macros. |
11172 } // NOLINT, false-positive due to second-order macros. | 11177 } // NOLINT, false-positive due to second-order macros. |
11173 | 11178 |
11174 #endif // V8_OBJECTS_H_ | 11179 #endif // V8_OBJECTS_H_ |
OLD | NEW |