v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
instance-type-inl.h File Reference
Include dependency graph for instance-type-inl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8::internal::InstanceTypeChecker::InstanceRangeChecker< lower_limit, upper_limit >
 
struct  v8::internal::InstanceTypeChecker::InstanceRangeChecker< FIRST_TYPE, upper_limit >
 
struct  v8::internal::InstanceTypeChecker::InstanceRangeChecker< lower_limit, LAST_TYPE >
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::InstanceTypeChecker
 
namespace  v8::internal::InstanceTypeChecker::InstanceTypeTraits
 

Macros

#define DECL_TYPE(type, ...)
 
#define INSTANCE_TYPE_MAP(V, rootIndexName, rootAccessorName, class_name)
 
#define INSTANCE_TYPE_CHECK(it, forinstancetype)
 
#define INSTANCE_TYPE_CHECKER1(type, forinstancetype)
 
#define INSTANCE_TYPE_CHECKER2(type, forinstancetype)
 
#define INSTANCE_TYPE_CHECKER_RANGE1(type, first_instance_type, last_instance_type)
 
#define INSTANCE_TYPE_CHECKER_RANGE2(type, first_instance_type, last_instance_type)
 
#define TYPE_CHECKER(type, ...)
 

Typedefs

using v8::internal::InstanceTypeChecker::InstanceTypeRange = std::pair<InstanceType, InstanceType>
 
using v8::internal::InstanceTypeChecker::TaggedAddressRange = std::pair<Tagged_t, Tagged_t>
 

Functions

template<class type >
V8_INLINE consteval std::optional< RootIndexv8::internal::InstanceTypeChecker::UniqueMapOfInstanceTypeCheck ()
 
V8_INLINE constexpr std::optional< RootIndexv8::internal::InstanceTypeChecker::UniqueMapOfInstanceType (InstanceType type)
 
bool v8::internal::InstanceTypeChecker::MayHaveMapCheckFastCase (InstanceType type)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsHeapObject (InstanceType instance_type)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsInternalizedString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsInternalizedString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsSeqString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsSeqString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsExternalString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsExternalString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsUncachedExternalString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsUncachedExternalString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsConsString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsConsString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsSlicedString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsSlicedString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsThinString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsThinString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsOneByteString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsOneByteString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsTwoByteString (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsTwoByteString (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsReferenceComparable (InstanceType instance_type)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsGcSafeCode (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsGcSafeCode (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsAbstractCode (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsAbstractCode (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsFreeSpaceOrFiller (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsFreeSpaceOrFiller (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsMaybeReadOnlyJSObject (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsMaybeReadOnlyJSObject (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsPropertyDictionary (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsPropertyDictionary (Tagged< Map > map_object)
 
V8_INLINE constexpr bool v8::internal::InstanceTypeChecker::IsNativeContextSpecific (InstanceType instance_type)
 
V8_INLINE bool v8::internal::InstanceTypeChecker::IsNativeContextSpecificMap (Tagged< Map > map_object)
 

Macro Definition Documentation

◆ DECL_TYPE

#define DECL_TYPE ( type,
... )
Value:
class type;

Definition at line 33 of file instance-type-inl.h.

◆ INSTANCE_TYPE_CHECK

#define INSTANCE_TYPE_CHECK ( it,
forinstancetype )
Value:
if (type == forinstancetype) { \
return InstanceTypeChecker::UniqueMapOfInstanceTypeCheck< \
InstanceTypeChecker::InstanceTypeTraits::it>(); \
}

◆ INSTANCE_TYPE_CHECKER1

#define INSTANCE_TYPE_CHECKER1 ( type,
forinstancetype )
Value:
V8_INLINE constexpr bool Is##type(InstanceType instance_type) { \
return instance_type == forinstancetype; \
}
#define V8_INLINE
Definition v8config.h:500
wasm::ValueType type

Definition at line 198 of file instance-type-inl.h.

◆ INSTANCE_TYPE_CHECKER2

#define INSTANCE_TYPE_CHECKER2 ( type,
forinstancetype )
Value:
V8_INLINE bool Is##type(Tagged<Map> map_object) { \
return Is##type(map_object->instance_type()); \
}

Definition at line 222 of file instance-type-inl.h.

◆ INSTANCE_TYPE_CHECKER_RANGE1

#define INSTANCE_TYPE_CHECKER_RANGE1 ( type,
first_instance_type,
last_instance_type )
Value:
V8_INLINE constexpr bool Is##type(InstanceType instance_type) { \
return InstanceRangeChecker<first_instance_type, \
last_instance_type>::Check(instance_type); \
}

Definition at line 263 of file instance-type-inl.h.

◆ INSTANCE_TYPE_CHECKER_RANGE2

#define INSTANCE_TYPE_CHECKER_RANGE2 ( type,
first_instance_type,
last_instance_type )
Value:
V8_INLINE bool Is##type(Tagged<Map> map_object) { \
return Is##type(map_object->instance_type()); \
}

Definition at line 285 of file instance-type-inl.h.

◆ INSTANCE_TYPE_MAP

#define INSTANCE_TYPE_MAP ( V,
rootIndexName,
rootAccessorName,
class_name )
Value:
template <> \
V8_INLINE consteval std::optional<RootIndex> \
UniqueMapOfInstanceTypeCheck<InstanceTypeTraits::class_name>() { \
return {RootIndex::k##rootIndexName}; \
}

Definition at line 49 of file instance-type-inl.h.

◆ TYPE_CHECKER

#define TYPE_CHECKER ( type,
... )
Value:
bool Is##type##Map(Tagged<Map> map) { \
return InstanceTypeChecker::Is##type(map); \
}

Definition at line 516 of file instance-type-inl.h.