V8 Project
v8::internal::HeapTypeConfig Struct Reference

#include <types.h>

+ Collaboration diagram for v8::internal::HeapTypeConfig:

Classes

struct  Handle
 

Public Types

typedef TypeImpl< HeapTypeConfigType
 
typedef i::Object Base
 
typedef i::FixedArray Struct
 
typedef i::Isolate Region
 

Static Public Member Functions

template<class T >
static i::Handle< Thandle (T *type)
 
template<class T >
static i::Handle< Tcast (i::Handle< Type > type)
 
static bool is_bitset (Type *type)
 
static bool is_class (Type *type)
 
static bool is_struct (Type *type, int tag)
 
static Type::bitset as_bitset (Type *type)
 
static i::Handle< i::Mapas_class (Type *type)
 
static i::Handle< Structas_struct (Type *type)
 
static Typefrom_bitset (Type::bitset)
 
static i::Handle< Typefrom_bitset (Type::bitset, Isolate *isolate)
 
static i::Handle< Typefrom_class (i::Handle< i::Map > map, Isolate *isolate)
 
static i::Handle< Typefrom_struct (i::Handle< Struct > structure)
 
static i::Handle< Structstruct_create (int tag, int length, Isolate *isolate)
 
static void struct_shrink (i::Handle< Struct > structure, int length)
 
static int struct_tag (i::Handle< Struct > structure)
 
static int struct_length (i::Handle< Struct > structure)
 
static i::Handle< Typestruct_get (i::Handle< Struct > structure, int i)
 
static void struct_set (i::Handle< Struct > structure, int i, i::Handle< Type > type)
 
template<class V >
static i::Handle< Vstruct_get_value (i::Handle< Struct > structure, int i)
 
template<class V >
static void struct_set_value (i::Handle< Struct > structure, int i, i::Handle< V > x)
 

Detailed Description

Definition at line 948 of file types.h.

Member Typedef Documentation

◆ Base

Definition at line 950 of file types.h.

◆ Region

Definition at line 952 of file types.h.

◆ Struct

Definition at line 951 of file types.h.

◆ Type

Member Function Documentation

◆ as_bitset()

HeapTypeConfig::Type::bitset v8::internal::HeapTypeConfig::as_bitset ( Type type)
inlinestatic

Definition at line 233 of file types-inl.h.

233  {
234  // TODO(rossberg): Breaks the Smi abstraction. Fix once there is a better way.
235  return static_cast<Type::bitset>(reinterpret_cast<uintptr_t>(type));
236 }

◆ as_class()

i::Handle< i::Map > v8::internal::HeapTypeConfig::as_class ( Type type)
inlinestatic

Definition at line 240 of file types-inl.h.

240  {
241  return i::handle(i::Map::cast(type));
242 }
Handle< T > handle(T *t, Isolate *isolate)
Definition: handles.h:146

References v8::internal::handle().

+ Here is the call graph for this function:

◆ as_struct()

i::Handle< HeapTypeConfig::Struct > v8::internal::HeapTypeConfig::as_struct ( Type type)
inlinestatic

Definition at line 246 of file types-inl.h.

246  {
247  return i::handle(Struct::cast(type));
248 }

References v8::internal::handle().

Referenced by is_struct().

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

◆ cast()

template<class T >
i::Handle< T > v8::internal::HeapTypeConfig::cast ( i::Handle< Type type)
inlinestatic

Definition at line 209 of file types-inl.h.

209  {
210  return i::Handle<T>::cast(type);
211 }
static Handle< T > cast(Handle< S > that)
Definition: handles.h:116

References v8::internal::Handle< T >::cast().

+ Here is the call graph for this function:

◆ from_bitset() [1/2]

HeapTypeConfig::Type * v8::internal::HeapTypeConfig::from_bitset ( Type::bitset  bitset)
inlinestatic

Definition at line 252 of file types-inl.h.

252  {
253  // TODO(rossberg): Breaks the Smi abstraction. Fix once there is a better way.
254  return reinterpret_cast<Type*>(static_cast<uintptr_t>(bitset));
255 }
TypeImpl< HeapTypeConfig > Type
Definition: types.h:949

Referenced by from_bitset().

+ Here is the caller graph for this function:

◆ from_bitset() [2/2]

i::Handle< HeapTypeConfig::Type > v8::internal::HeapTypeConfig::from_bitset ( Type::bitset  bitset,
Isolate isolate 
)
inlinestatic

Definition at line 259 of file types-inl.h.

260  {
261  return i::handle(from_bitset(bitset), isolate);
262 }
static Type * from_bitset(Type::bitset)
Definition: types-inl.h:252

References from_bitset(), and v8::internal::handle().

+ Here is the call graph for this function:

◆ from_class()

i::Handle< HeapTypeConfig::Type > v8::internal::HeapTypeConfig::from_class ( i::Handle< i::Map map,
Isolate isolate 
)
inlinestatic

Definition at line 266 of file types-inl.h.

267  {
269 }
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::Handle< T >::cast(), and map.

+ Here is the call graph for this function:

◆ from_struct()

i::Handle< HeapTypeConfig::Type > v8::internal::HeapTypeConfig::from_struct ( i::Handle< Struct structure)
inlinestatic

Definition at line 273 of file types-inl.h.

274  {
276 }

References v8::internal::Handle< T >::cast().

+ Here is the call graph for this function:

◆ handle()

template<class T >
i::Handle< T > v8::internal::HeapTypeConfig::handle ( T type)
inlinestatic

Definition at line 202 of file types-inl.h.

202  {
203  return i::handle(type, i::HeapObject::cast(type)->GetIsolate());
204 }

References v8::internal::handle().

+ Here is the call graph for this function:

◆ is_bitset()

bool v8::internal::HeapTypeConfig::is_bitset ( Type type)
inlinestatic

Definition at line 215 of file types-inl.h.

215  {
216  return type->IsSmi();
217 }

◆ is_class()

bool v8::internal::HeapTypeConfig::is_class ( Type type)
inlinestatic

Definition at line 221 of file types-inl.h.

221  {
222  return type->IsMap();
223 }

◆ is_struct()

bool v8::internal::HeapTypeConfig::is_struct ( Type type,
int  tag 
)
inlinestatic

Definition at line 227 of file types-inl.h.

227  {
228  return type->IsFixedArray() && struct_tag(as_struct(type)) == tag;
229 }
static i::Handle< Struct > as_struct(Type *type)
Definition: types-inl.h:246
static int struct_tag(i::Handle< Struct > structure)
Definition: types-inl.h:295

References as_struct(), and struct_tag().

+ Here is the call graph for this function:

◆ struct_create()

i::Handle< HeapTypeConfig::Struct > v8::internal::HeapTypeConfig::struct_create ( int  tag,
int  length,
Isolate isolate 
)
inlinestatic

Definition at line 280 of file types-inl.h.

281  {
282  i::Handle<Struct> structure = isolate->factory()->NewFixedArray(length + 1);
283  structure->set(0, i::Smi::FromInt(tag));
284  return structure;
285 }
static Smi * FromInt(int value)
Definition: objects-inl.h:1321

References v8::internal::Isolate::factory(), and v8::internal::Smi::FromInt().

+ Here is the call graph for this function:

◆ struct_get()

i::Handle< HeapTypeConfig::Type > v8::internal::HeapTypeConfig::struct_get ( i::Handle< Struct structure,
int  i 
)
inlinestatic

Definition at line 307 of file types-inl.h.

308  {
309  Type* type = static_cast<Type*>(structure->get(i + 1));
310  return i::handle(type, structure->GetIsolate());
311 }

References v8::internal::handle().

+ Here is the call graph for this function:

◆ struct_get_value()

template<class V >
i::Handle< V > v8::internal::HeapTypeConfig::struct_get_value ( i::Handle< Struct structure,
int  i 
)
inlinestatic

Definition at line 323 of file types-inl.h.

324  {
325  V* x = static_cast<V*>(structure->get(i + 1));
326  return i::handle(x, structure->GetIsolate());
327 }

References v8::internal::handle().

+ Here is the call graph for this function:

◆ struct_length()

int v8::internal::HeapTypeConfig::struct_length ( i::Handle< Struct structure)
inlinestatic

Definition at line 301 of file types-inl.h.

301  {
302  return structure->length() - 1;
303 }

◆ struct_set()

void v8::internal::HeapTypeConfig::struct_set ( i::Handle< Struct structure,
int  i,
i::Handle< Type type 
)
inlinestatic

Definition at line 315 of file types-inl.h.

316  {
317  structure->set(i + 1, *type);
318 }

◆ struct_set_value()

template<class V >
void v8::internal::HeapTypeConfig::struct_set_value ( i::Handle< Struct structure,
int  i,
i::Handle< V x 
)
inlinestatic

Definition at line 332 of file types-inl.h.

333  {
334  structure->set(i + 1, *x);
335 }

◆ struct_shrink()

void v8::internal::HeapTypeConfig::struct_shrink ( i::Handle< Struct structure,
int  length 
)
inlinestatic

Definition at line 289 of file types-inl.h.

289  {
290  structure->Shrink(length + 1);
291 }

◆ struct_tag()

int v8::internal::HeapTypeConfig::struct_tag ( i::Handle< Struct structure)
inlinestatic

Definition at line 295 of file types-inl.h.

295  {
296  return static_cast<i::Smi*>(structure->get(0))->value();
297 }

Referenced by is_struct().

+ Here is the caller graph for this function:

The documentation for this struct was generated from the following files: