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

#include <types.h>

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

Public Member Functions

TypeHandle Bound (Region *region)
 
i::Handle< i::MapMap ()
 
- 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

static ClassHandle New (i::Handle< i::Map > map, Region *region)
 
static ClassTypecast (TypeImpl *type)
 
- 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)
 

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
 
- Protected Member Functions inherited from v8::internal::TypeImpl< Config >::StructuralType
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 inherited from v8::internal::TypeImpl< Config >::StructuralType
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)
 

Detailed Description

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

Definition at line 712 of file types.h.

Member Function Documentation

◆ Bound()

template<class Config >
TypeHandle v8::internal::TypeImpl< Config >::ClassType::Bound ( Region region)
inline

Definition at line 714 of file types.h.

714  {
715  return Config::is_class(this) ?
716  BitsetType::New(BitsetType::Lub(*Config::as_class(this)), region) :
717  this->Get(0);
718  }
static TypeImpl * New(bitset bits)
Definition: types.h:577
static bitset Lub(TypeImpl *type)
Definition: types.cc:137

References v8::internal::TypeImpl< Config >::BitsetType::Lub(), and v8::internal::TypeImpl< Config >::BitsetType::New().

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cast()

template<class Config >
static ClassType* v8::internal::TypeImpl< Config >::ClassType::cast ( TypeImpl type)
inlinestatic

Definition at line 736 of file types.h.

736  {
737  DCHECK(type->IsClass());
738  return static_cast<ClassType*>(type);
739  }
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK, and v8::internal::TypeImpl< Config >::IsClass().

Referenced by v8::internal::TypeImpl< Config >::AsClass().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Map()

template<class Config >
i::Handle<i::Map> v8::internal::TypeImpl< Config >::ClassType::Map ( )
inline

Definition at line 719 of file types.h.

719  {
720  return Config::is_class(this) ? Config::as_class(this) :
721  this->template GetValue<i::Map>(1);
722  }
i::Handle< i::Map > Map()
Definition: types.h:719
i::Handle< V > GetValue(int i)
Definition: types.h:668

Referenced by v8::internal::TypeImpl< ZoneTypeConfig >::Iterator::Advance(), v8::internal::TypeImpl< Config >::PrintTo(), v8::internal::TypeImpl< Config >::SimplyEquals(), and v8::internal::IC::TypeToMap().

+ Here is the caller graph for this function:

◆ New()

template<class Config >
static ClassHandle v8::internal::TypeImpl< Config >::ClassType::New ( i::Handle< i::Map map,
Region region 
)
inlinestatic

Definition at line 724 of file types.h.

724  {
725  ClassHandle type =
726  Config::template cast<ClassType>(Config::from_class(map, region));
727  if (!type->IsClass()) {
728  type = Config::template cast<ClassType>(
730  type->Set(0, BitsetType::New(BitsetType::Lub(*map), region));
731  type->SetValue(1, map);
732  }
733  return type;
734  }
static TypeHandle New(Tag tag, int length, Region *region)
Definition: types.h:677
Config::template Handle< ClassType >::type ClassHandle
Definition: types.h:306
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf map

References v8::internal::TypeImpl< Config >::StructuralType::kClassTag, v8::internal::TypeImpl< Config >::BitsetType::Lub(), map, v8::internal::TypeImpl< Config >::BitsetType::New(), and v8::internal::TypeImpl< Config >::StructuralType::New().

Referenced by v8::internal::TypeImpl< Config >::Class(), and v8::internal::TypeImpl< Config >::Convert().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

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