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