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 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
752 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). | 752 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). |
753 // Note that there is no range for JSObject or JSProxy, since their subtypes | 753 // Note that there is no range for JSObject or JSProxy, since their subtypes |
754 // are not continuous in this enum! The enum ranges instead reflect the | 754 // are not continuous in this enum! The enum ranges instead reflect the |
755 // external class names, where proxies are treated as either ordinary objects, | 755 // external class names, where proxies are treated as either ordinary objects, |
756 // or functions. | 756 // or functions. |
757 FIRST_JS_RECEIVER_TYPE = JS_PROXY_TYPE, | 757 FIRST_JS_RECEIVER_TYPE = JS_PROXY_TYPE, |
758 LAST_JS_RECEIVER_TYPE = LAST_TYPE, | 758 LAST_JS_RECEIVER_TYPE = LAST_TYPE, |
759 // Boundaries for testing the types represented as JSObject | 759 // Boundaries for testing the types represented as JSObject |
760 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, | 760 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, |
761 LAST_JS_OBJECT_TYPE = LAST_TYPE, | 761 LAST_JS_OBJECT_TYPE = LAST_TYPE, |
762 // | |
763 FIRST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_VALUE_TYPE, | |
764 LAST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_REGEXP_TYPE, | |
765 // Note that the types for which typeof is "function" are not continuous. | |
766 // Define this so that we can put assertions on discrete checks. | |
767 NUM_OF_CALLABLE_SPEC_OBJECT_TYPES = 2 | |
768 }; | 762 }; |
769 | 763 |
770 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); | 764 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); |
771 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); | 765 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); |
772 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); | 766 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); |
773 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); | 767 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); |
774 | 768 |
775 | 769 |
776 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); | 770 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); |
777 | 771 |
(...skipping 5143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5921 // Returns the transitioned map for this map with the most generic | 5915 // Returns the transitioned map for this map with the most generic |
5922 // elements_kind that's found in |candidates|, or null handle if no match is | 5916 // elements_kind that's found in |candidates|, or null handle if no match is |
5923 // found at all. | 5917 // found at all. |
5924 static Handle<Map> FindTransitionedMap(Handle<Map> map, | 5918 static Handle<Map> FindTransitionedMap(Handle<Map> map, |
5925 MapHandleList* candidates); | 5919 MapHandleList* candidates); |
5926 | 5920 |
5927 inline bool CanTransition(); | 5921 inline bool CanTransition(); |
5928 | 5922 |
5929 inline bool IsBooleanMap(); | 5923 inline bool IsBooleanMap(); |
5930 inline bool IsPrimitiveMap(); | 5924 inline bool IsPrimitiveMap(); |
| 5925 inline bool IsJSReceiverMap(); |
5931 inline bool IsJSObjectMap(); | 5926 inline bool IsJSObjectMap(); |
5932 inline bool IsJSArrayMap(); | 5927 inline bool IsJSArrayMap(); |
5933 inline bool IsJSFunctionMap(); | 5928 inline bool IsJSFunctionMap(); |
5934 inline bool IsStringMap(); | 5929 inline bool IsStringMap(); |
5935 inline bool IsJSProxyMap(); | 5930 inline bool IsJSProxyMap(); |
5936 inline bool IsJSGlobalProxyMap(); | 5931 inline bool IsJSGlobalProxyMap(); |
5937 inline bool IsJSGlobalObjectMap(); | 5932 inline bool IsJSGlobalObjectMap(); |
5938 inline bool IsJSTypedArrayMap(); | 5933 inline bool IsJSTypedArrayMap(); |
5939 inline bool IsJSDataViewMap(); | 5934 inline bool IsJSDataViewMap(); |
5940 | 5935 |
(...skipping 4767 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10708 } | 10703 } |
10709 return value; | 10704 return value; |
10710 } | 10705 } |
10711 }; | 10706 }; |
10712 | 10707 |
10713 | 10708 |
10714 } // NOLINT, false-positive due to second-order macros. | 10709 } // NOLINT, false-positive due to second-order macros. |
10715 } // NOLINT, false-positive due to second-order macros. | 10710 } // NOLINT, false-positive due to second-order macros. |
10716 | 10711 |
10717 #endif // V8_OBJECTS_H_ | 10712 #endif // V8_OBJECTS_H_ |
OLD | NEW |