V8 Project
v8::internal::TypeImpl< Config >::StructuralType Class Reference

#include <types.h>

+ Inheritance diagram for v8::internal::TypeImpl< Config >::StructuralType:
+ Collaboration diagram for v8::internal::TypeImpl< Config >::StructuralType:

Protected Member Functions

int Length ()
 
TypeHandle Get (int i)
 
void Set (int i, TypeHandle type)
 
void Shrink (int length)
 
template<class V >
i::Handle< VGetValue (int i)
 
template<class V >
void SetValue (int i, i::Handle< V > x)
 
- Protected Member Functions inherited from v8::internal::TypeImpl< Config >
TypeImplunhandle ()
 
bool IsNone ()
 
bool IsAny ()
 
bool IsBitset ()
 
bool IsUnion ()
 
bitset AsBitset ()
 
UnionTypeAsUnion ()
 
bitset BitsetGlb ()
 
bitset BitsetLub ()
 
bool SlowIs (TypeImpl *that)
 
RangeTypeGetRange ()
 
bool SimplyEquals (TypeImpl *that)
 
template<class TypeHandle >
bool SimplyEquals (TypeHandle that)
 

Static Protected Member Functions

static TypeHandle New (Tag tag, int length, Region *region)
 
- Static Protected Member Functions inherited from v8::internal::TypeImpl< Config >
template<class T >
static Config::template Handle< T >::type handle (T *type)
 
static bool IsInteger (double x)
 
static bool IsInteger (i::Object *x)
 
static Limits Intersect (Limits lhs, Limits rhs)
 
static Limits Union (Limits lhs, Limits rhs)
 
static bool Overlap (RangeType *lhs, RangeType *rhs)
 
static bool Contains (RangeType *lhs, RangeType *rhs)
 
static bool Contains (RangeType *range, i::Object *val)
 
static int UpdateRange (RangeHandle type, UnionHandle result, int size, Region *region)
 
static int AddToUnion (TypeHandle type, UnionHandle result, int size, Region *region)
 
static int IntersectAux (TypeHandle type, TypeHandle other, UnionHandle result, int size, Region *region)
 
static TypeHandle NormalizeUnion (UnionHandle unioned, int size)
 

Friends

template<class >
class TypeImpl
 
struct ZoneTypeConfig
 
struct HeapTypeConfig
 

Additional Inherited Members

- Public Types inherited from v8::internal::TypeImpl< Config >
enum  PrintDimension { BOTH_DIMS , SEMANTIC_DIM , REPRESENTATION_DIM }
 
typedef uint32_t bitset
 
typedef Config::template Handle< TypeImpl >::type TypeHandle
 
typedef Config::template Handle< ClassType >::type ClassHandle
 
typedef Config::template Handle< ConstantType >::type ConstantHandle
 
typedef Config::template Handle< RangeType >::type RangeHandle
 
typedef Config::template Handle< ContextType >::type ContextHandle
 
typedef Config::template Handle< ArrayType >::type ArrayHandle
 
typedef Config::template Handle< FunctionType >::type FunctionHandle
 
typedef Config::template Handle< UnionType >::type UnionHandle
 
typedef Config::Region Region
 
- Public Member Functions inherited from v8::internal::TypeImpl< Config >
bool IsInhabited ()
 
bool Is (TypeImpl *that)
 
template<class TypeHandle >
bool Is (TypeHandle that)
 
bool Maybe (TypeImpl *that)
 
template<class TypeHandle >
bool Maybe (TypeHandle that)
 
bool Equals (TypeImpl *that)
 
template<class TypeHandle >
bool Equals (TypeHandle that)
 
bool Contains (i::Object *val)
 
bool Contains (i::Handle< i::Object > val)
 
bool NowIs (TypeImpl *that)
 
template<class TypeHandle >
bool NowIs (TypeHandle that)
 
bool NowContains (i::Object *val)
 
bool NowContains (i::Handle< i::Object > val)
 
bool NowStable ()
 
bool IsClass ()
 
bool IsConstant ()
 
bool IsRange ()
 
bool IsContext ()
 
bool IsArray ()
 
bool IsFunction ()
 
ClassTypeAsClass ()
 
ConstantTypeAsConstant ()
 
RangeTypeAsRange ()
 
ContextTypeAsContext ()
 
ArrayTypeAsArray ()
 
FunctionTypeAsFunction ()
 
double Min ()
 
double Max ()
 
int NumClasses ()
 
int NumConstants ()
 
Iterator< i::MapClasses ()
 
Iterator< i::ObjectConstants ()
 
void PrintTo (OStream &os, PrintDimension dim=BOTH_DIMS)
 
template<class OtherType >
TypeImpl< Config >::TypeHandle Convert (typename OtherType::TypeHandle type, Region *region)
 
- Static Public Member Functions inherited from v8::internal::TypeImpl< Config >
static TypeHandle Class (i::Handle< i::Map > map, Region *region)
 
static TypeHandle Constant (i::Handle< i::Object > value, Region *region)
 
static TypeHandle Range (i::Handle< i::Object > min, i::Handle< i::Object > max, Region *region)
 
static TypeHandle Context (TypeHandle outer, Region *region)
 
static TypeHandle Array (TypeHandle element, Region *region)
 
static FunctionHandle Function (TypeHandle result, TypeHandle receiver, int arity, Region *region)
 
static TypeHandle Function (TypeHandle result, Region *region)
 
static TypeHandle Function (TypeHandle result, TypeHandle param0, Region *region)
 
static TypeHandle Function (TypeHandle result, TypeHandle param0, TypeHandle param1, Region *region)
 
static TypeHandle Function (TypeHandle result, TypeHandle param0, TypeHandle param1, TypeHandle param2, Region *region)
 
static TypeHandle Union (TypeHandle type1, TypeHandle type2, Region *reg)
 
static TypeHandle Intersect (TypeHandle type1, TypeHandle type2, Region *reg)
 
static TypeHandle Of (double value, Region *region)
 
static TypeHandle Of (i::Object *value, Region *region)
 
static TypeHandle Of (i::Handle< i::Object > value, Region *region)
 
static TypeHandle NowOf (i::Object *value, Region *region)
 
static TypeHandle NowOf (i::Handle< i::Object > value, Region *region)
 
static TypeImplcast (typename Config::Base *object)
 
template<class OtherTypeImpl >
static TypeHandle Convert (typename OtherTypeImpl::TypeHandle type, Region *region)
 

Detailed Description

template<class Config>
class v8::internal::TypeImpl< Config >::StructuralType

Definition at line 637 of file types.h.

Member Function Documentation

◆ Get()

template<class Config >
TypeHandle v8::internal::TypeImpl< Config >::StructuralType::Get ( int  i)
inlineprotected

Definition at line 656 of file types.h.

656  {
657  DCHECK(0 <= i && i < this->Length());
658  return Config::struct_get(Config::as_struct(this), i);
659  }
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK.

Referenced by v8::internal::TypeImpl< ZoneTypeConfig >::AddToUnion(), v8::internal::TypeImpl< Config >::BitsetType::Glb(), v8::internal::TypeImpl< Config >::BitsetType::Lub(), v8::internal::TypeImpl< ZoneTypeConfig >::Max(), v8::internal::TypeImpl< Config >::Maybe(), and v8::internal::TypeImpl< Config >::PrintTo().

+ Here is the caller graph for this function:

◆ GetValue()

template<class Config >
template<class V >
i::Handle<V> v8::internal::TypeImpl< Config >::StructuralType::GetValue ( int  i)
inlineprotected

Definition at line 668 of file types.h.

668  {
669  DCHECK(0 <= i && i < this->Length());
670  return Config::template struct_get_value<V>(Config::as_struct(this), i);
671  }

References DCHECK.

◆ Length()

template<class Config >
int v8::internal::TypeImpl< Config >::StructuralType::Length ( )
inlineprotected

Definition at line 653 of file types.h.

653  {
654  return Config::struct_length(Config::as_struct(this));
655  }

Referenced by v8::internal::TypeImpl< Config >::BitsetType::Lub(), and v8::internal::TypeImpl< Config >::Maybe().

+ Here is the caller graph for this function:

◆ New()

template<class Config >
static TypeHandle v8::internal::TypeImpl< Config >::StructuralType::New ( Tag  tag,
int  length,
Region region 
)
inlinestaticprotected

Definition at line 677 of file types.h.

677  {
678  DCHECK(1 <= length);
679  return Config::from_struct(Config::struct_create(tag, length, region));
680  }

References DCHECK.

Referenced by v8::internal::TypeImpl< Config >::ClassType::New(), and v8::internal::TypeImpl< Config >::UnionType::New().

+ Here is the caller graph for this function:

◆ Set()

template<class Config >
void v8::internal::TypeImpl< Config >::StructuralType::Set ( int  i,
TypeHandle  type 
)
inlineprotected

Definition at line 660 of file types.h.

660  {
661  DCHECK(0 <= i && i < this->Length());
662  Config::struct_set(Config::as_struct(this), i, type);
663  }

References DCHECK.

◆ SetValue()

template<class Config >
template<class V >
void v8::internal::TypeImpl< Config >::StructuralType::SetValue ( int  i,
i::Handle< V x 
)
inlineprotected

Definition at line 672 of file types.h.

672  {
673  DCHECK(0 <= i && i < this->Length());
674  Config::struct_set_value(Config::as_struct(this), i, x);
675  }

References DCHECK.

◆ Shrink()

template<class Config >
void v8::internal::TypeImpl< Config >::StructuralType::Shrink ( int  length)
inlineprotected

Definition at line 664 of file types.h.

664  {
665  DCHECK(2 <= length && length <= this->Length());
666  Config::struct_shrink(Config::as_struct(this), length);
667  }

References DCHECK.

Friends And Related Function Documentation

◆ HeapTypeConfig

template<class Config >
friend struct HeapTypeConfig
friend

Definition at line 641 of file types.h.

◆ TypeImpl

template<class Config >
template<class >
friend class TypeImpl
friend

Definition at line 639 of file types.h.

◆ ZoneTypeConfig

template<class Config >
friend struct ZoneTypeConfig
friend

Definition at line 640 of file types.h.


The documentation for this class was generated from the following file: