5#ifndef V8_OBJECTS_INSTANCE_TYPE_CHECKER_H_ 
    6#define V8_OBJECTS_INSTANCE_TYPE_CHECKER_H_ 
   21#define INSTANCE_TYPE_CHECKERS_SINGLE(V)           \ 
   22  TORQUE_INSTANCE_CHECKERS_SINGLE_FULLY_DEFINED(V) \ 
   23  TORQUE_INSTANCE_CHECKERS_SINGLE_ONLY_DECLARED(V) \ 
   24  V(BigInt, BIGINT_TYPE)                           \ 
   25  V(FixedArrayExact, FIXED_ARRAY_TYPE) 
 
   27#define INSTANCE_TYPE_CHECKERS_RANGE(V)                  \ 
   28  TORQUE_INSTANCE_CHECKERS_RANGE_FULLY_DEFINED(V)        \ 
   29  TORQUE_INSTANCE_CHECKERS_RANGE_ONLY_DECLARED(V)        \ 
   30  V(CallableJSFunction, FIRST_CALLABLE_JS_FUNCTION_TYPE, \ 
   31    LAST_CALLABLE_JS_FUNCTION_TYPE) 
 
   33#define INSTANCE_TYPE_CHECKERS_CUSTOM(V) \ 
   36  V(FreeSpaceOrFiller)                   \ 
   38  V(InternalizedString)                  \ 
   39  V(MaybeReadOnlyJSObject)               \ 
 
   42#define INSTANCE_TYPE_CHECKERS(V)  \ 
   43  INSTANCE_TYPE_CHECKERS_SINGLE(V) \ 
   44  INSTANCE_TYPE_CHECKERS_RANGE(V)  \ 
   45  INSTANCE_TYPE_CHECKERS_CUSTOM(V) 
 
   47namespace InstanceTypeChecker {
 
   48#define IS_TYPE_FUNCTION_DECL(Type, ...)                         \ 
   49  V8_INLINE constexpr bool Is##Type(InstanceType instance_type); \ 
   50  V8_INLINE bool Is##Type(Tagged<Map> map); 
 
   54#undef IS_TYPE_FUNCTION_DECL 
   56#if V8_STATIC_ROOTS_BOOL 
   65    StaticReadOnlyRootsPointerTable[
static_cast<size_t>(
 
   71constexpr Tagged_t kStringMapLowerBound = 0;
 
   74constexpr Tagged_t kStringMapUpperBound =
 
   75    StaticReadOnlyRoot::kThinOneByteStringMap;
 
   77#define ASSERT_IS_LAST_STRING_MAP(instance_type, size, name, Name) \ 
   78  static_assert(StaticReadOnlyRoot::k##Name##Map <= kStringMapUpperBound); 
   80#undef ASSERT_IS_LAST_STRING_MAP 
 
#define IS_TYPE_FUNCTION_DECL(Type)
#define INSTANCE_TYPE_CHECKERS(V)
constexpr Tagged_t kNonJsReceiverMapLimit
@ kFirstJSReceiverMapRoot
#define STRING_TYPE_LIST(V)