| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 | 9 |
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 V(TYPE_FEEDBACK_INFO_TYPE) \ | 405 V(TYPE_FEEDBACK_INFO_TYPE) \ |
| 406 V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ | 406 V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ |
| 407 V(BOX_TYPE) \ | 407 V(BOX_TYPE) \ |
| 408 V(PROTOTYPE_INFO_TYPE) \ | 408 V(PROTOTYPE_INFO_TYPE) \ |
| 409 V(SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE) \ | 409 V(SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE) \ |
| 410 \ | 410 \ |
| 411 V(FIXED_ARRAY_TYPE) \ | 411 V(FIXED_ARRAY_TYPE) \ |
| 412 V(FIXED_DOUBLE_ARRAY_TYPE) \ | 412 V(FIXED_DOUBLE_ARRAY_TYPE) \ |
| 413 V(SHARED_FUNCTION_INFO_TYPE) \ | 413 V(SHARED_FUNCTION_INFO_TYPE) \ |
| 414 V(WEAK_CELL_TYPE) \ | 414 V(WEAK_CELL_TYPE) \ |
| 415 V(TRANSITION_ARRAY_TYPE) \ |
| 415 \ | 416 \ |
| 416 V(JS_MESSAGE_OBJECT_TYPE) \ | 417 V(JS_MESSAGE_OBJECT_TYPE) \ |
| 417 \ | 418 \ |
| 418 V(JS_VALUE_TYPE) \ | 419 V(JS_VALUE_TYPE) \ |
| 419 V(JS_DATE_TYPE) \ | 420 V(JS_DATE_TYPE) \ |
| 420 V(JS_OBJECT_TYPE) \ | 421 V(JS_OBJECT_TYPE) \ |
| 421 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ | 422 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ |
| 422 V(JS_GENERATOR_OBJECT_TYPE) \ | 423 V(JS_GENERATOR_OBJECT_TYPE) \ |
| 423 V(JS_MODULE_TYPE) \ | 424 V(JS_MODULE_TYPE) \ |
| 424 V(JS_GLOBAL_OBJECT_TYPE) \ | 425 V(JS_GLOBAL_OBJECT_TYPE) \ |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 696 POLYMORPHIC_CODE_CACHE_TYPE, | 697 POLYMORPHIC_CODE_CACHE_TYPE, |
| 697 TYPE_FEEDBACK_INFO_TYPE, | 698 TYPE_FEEDBACK_INFO_TYPE, |
| 698 ALIASED_ARGUMENTS_ENTRY_TYPE, | 699 ALIASED_ARGUMENTS_ENTRY_TYPE, |
| 699 BOX_TYPE, | 700 BOX_TYPE, |
| 700 DEBUG_INFO_TYPE, | 701 DEBUG_INFO_TYPE, |
| 701 BREAK_POINT_INFO_TYPE, | 702 BREAK_POINT_INFO_TYPE, |
| 702 FIXED_ARRAY_TYPE, | 703 FIXED_ARRAY_TYPE, |
| 703 SHARED_FUNCTION_INFO_TYPE, | 704 SHARED_FUNCTION_INFO_TYPE, |
| 704 CELL_TYPE, | 705 CELL_TYPE, |
| 705 WEAK_CELL_TYPE, | 706 WEAK_CELL_TYPE, |
| 707 TRANSITION_ARRAY_TYPE, |
| 706 PROPERTY_CELL_TYPE, | 708 PROPERTY_CELL_TYPE, |
| 707 PROTOTYPE_INFO_TYPE, | 709 PROTOTYPE_INFO_TYPE, |
| 708 SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE, | 710 SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE, |
| 709 | 711 |
| 710 // All the following types are subtypes of JSReceiver, which corresponds to | 712 // All the following types are subtypes of JSReceiver, which corresponds to |
| 711 // objects in the JS sense. The first and the last type in this range are | 713 // objects in the JS sense. The first and the last type in this range are |
| 712 // the two forms of function. This organization enables using the same | 714 // the two forms of function. This organization enables using the same |
| 713 // compares for checking the JS_RECEIVER/SPEC_OBJECT range and the | 715 // compares for checking the JS_RECEIVER/SPEC_OBJECT range and the |
| 714 // NONCALLABLE_JS_OBJECT range. | 716 // NONCALLABLE_JS_OBJECT range. |
| 715 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE | 717 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 | 786 |
| 785 | 787 |
| 786 #define FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(V) \ | 788 #define FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(V) \ |
| 787 V(FAST_ELEMENTS_SUB_TYPE) \ | 789 V(FAST_ELEMENTS_SUB_TYPE) \ |
| 788 V(DICTIONARY_ELEMENTS_SUB_TYPE) \ | 790 V(DICTIONARY_ELEMENTS_SUB_TYPE) \ |
| 789 V(FAST_PROPERTIES_SUB_TYPE) \ | 791 V(FAST_PROPERTIES_SUB_TYPE) \ |
| 790 V(DICTIONARY_PROPERTIES_SUB_TYPE) \ | 792 V(DICTIONARY_PROPERTIES_SUB_TYPE) \ |
| 791 V(MAP_CODE_CACHE_SUB_TYPE) \ | 793 V(MAP_CODE_CACHE_SUB_TYPE) \ |
| 792 V(SCOPE_INFO_SUB_TYPE) \ | 794 V(SCOPE_INFO_SUB_TYPE) \ |
| 793 V(STRING_TABLE_SUB_TYPE) \ | 795 V(STRING_TABLE_SUB_TYPE) \ |
| 794 V(DESCRIPTOR_ARRAY_SUB_TYPE) \ | 796 V(DESCRIPTOR_ARRAY_SUB_TYPE) |
| 795 V(TRANSITION_ARRAY_SUB_TYPE) | |
| 796 | 797 |
| 797 enum FixedArraySubInstanceType { | 798 enum FixedArraySubInstanceType { |
| 798 #define DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE(name) name, | 799 #define DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE(name) name, |
| 799 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE) | 800 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE) |
| 800 #undef DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE | 801 #undef DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE |
| 801 LAST_FIXED_ARRAY_SUB_TYPE = TRANSITION_ARRAY_SUB_TYPE | 802 LAST_FIXED_ARRAY_SUB_TYPE = DESCRIPTOR_ARRAY_SUB_TYPE |
| 802 }; | 803 }; |
| 803 | 804 |
| 804 | 805 |
| 805 // TODO(bmeurer): Remove this in favor of the ComparisonResult below. | 806 // TODO(bmeurer): Remove this in favor of the ComparisonResult below. |
| 806 enum CompareResult { | 807 enum CompareResult { |
| 807 LESS = -1, | 808 LESS = -1, |
| 808 EQUAL = 0, | 809 EQUAL = 0, |
| 809 GREATER = 1, | 810 GREATER = 1, |
| 810 | 811 |
| 811 NOT_EQUAL = GREATER | 812 NOT_EQUAL = GREATER |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 859 class ObjectHashTable; | 860 class ObjectHashTable; |
| 860 class ObjectVisitor; | 861 class ObjectVisitor; |
| 861 class PropertyCell; | 862 class PropertyCell; |
| 862 class PropertyDescriptor; | 863 class PropertyDescriptor; |
| 863 class SafepointEntry; | 864 class SafepointEntry; |
| 864 class SharedFunctionInfo; | 865 class SharedFunctionInfo; |
| 865 class StringStream; | 866 class StringStream; |
| 866 class TypeFeedbackInfo; | 867 class TypeFeedbackInfo; |
| 867 class TypeFeedbackVector; | 868 class TypeFeedbackVector; |
| 868 class WeakCell; | 869 class WeakCell; |
| 870 class TransitionArray; |
| 869 | 871 |
| 870 // We cannot just say "class HeapType;" if it is created from a template... =8-? | 872 // We cannot just say "class HeapType;" if it is created from a template... =8-? |
| 871 template<class> class TypeImpl; | 873 template<class> class TypeImpl; |
| 872 struct HeapTypeConfig; | 874 struct HeapTypeConfig; |
| 873 typedef TypeImpl<HeapTypeConfig> HeapType; | 875 typedef TypeImpl<HeapTypeConfig> HeapType; |
| 874 | 876 |
| 875 | 877 |
| 876 // A template-ized version of the IsXXX functions. | 878 // A template-ized version of the IsXXX functions. |
| 877 template <class C> inline bool Is(Object* obj); | 879 template <class C> inline bool Is(Object* obj); |
| 878 | 880 |
| (...skipping 9842 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10721 } | 10723 } |
| 10722 return value; | 10724 return value; |
| 10723 } | 10725 } |
| 10724 }; | 10726 }; |
| 10725 | 10727 |
| 10726 | 10728 |
| 10727 } // NOLINT, false-positive due to second-order macros. | 10729 } // NOLINT, false-positive due to second-order macros. |
| 10728 } // NOLINT, false-positive due to second-order macros. | 10730 } // NOLINT, false-positive due to second-order macros. |
| 10729 | 10731 |
| 10730 #endif // V8_OBJECTS_H_ | 10732 #endif // V8_OBJECTS_H_ |
| OLD | NEW |