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 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1150 // Object is the abstract superclass for all classes in the | 1150 // Object is the abstract superclass for all classes in the |
1151 // object hierarchy. | 1151 // object hierarchy. |
1152 // Object does not use any virtual functions to avoid the | 1152 // Object does not use any virtual functions to avoid the |
1153 // allocation of the C++ vtable. | 1153 // allocation of the C++ vtable. |
1154 // Since both Smi and HeapObject are subclasses of Object no | 1154 // Since both Smi and HeapObject are subclasses of Object no |
1155 // data members can be present in Object. | 1155 // data members can be present in Object. |
1156 class Object { | 1156 class Object { |
1157 public: | 1157 public: |
1158 // Type testing. | 1158 // Type testing. |
1159 bool IsObject() const { return true; } | 1159 bool IsObject() const { return true; } |
| 1160 static bool IsObjectSubclass() { return true; } |
1160 | 1161 |
1161 #define IS_TYPE_FUNCTION_DECL(Type) INLINE(bool Is##Type() const); | 1162 #define IS_TYPE_FUNCTION_DECL(Type) INLINE(bool Is##Type() const); |
1162 OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL) | 1163 OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL) |
1163 HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL) | 1164 HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL) |
1164 #undef IS_TYPE_FUNCTION_DECL | 1165 #undef IS_TYPE_FUNCTION_DECL |
1165 #define IS_TYPE_FUNCTION_DECL(Type, Value) \ | 1166 #define IS_TYPE_FUNCTION_DECL(Type, Value) \ |
1166 INLINE(bool Is##Type(Isolate* isolate) const); | 1167 INLINE(bool Is##Type(Isolate* isolate) const); |
1167 ODDBALL_LIST(IS_TYPE_FUNCTION_DECL) | 1168 ODDBALL_LIST(IS_TYPE_FUNCTION_DECL) |
1168 #undef IS_TYPE_FUNCTION_DECL | 1169 #undef IS_TYPE_FUNCTION_DECL |
1169 | 1170 |
(...skipping 10581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11751 } | 11752 } |
11752 }; | 11753 }; |
11753 | 11754 |
11754 | 11755 |
11755 } // NOLINT, false-positive due to second-order macros. | 11756 } // NOLINT, false-positive due to second-order macros. |
11756 } // NOLINT, false-positive due to second-order macros. | 11757 } // NOLINT, false-positive due to second-order macros. |
11757 | 11758 |
11758 #include "src/objects/object-macros-undef.h" | 11759 #include "src/objects/object-macros-undef.h" |
11759 | 11760 |
11760 #endif // V8_OBJECTS_H_ | 11761 #endif // V8_OBJECTS_H_ |
OLD | NEW |