![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <types.h>
Public Types | |
enum class | ClassificationFlag { kEmpty = 0 , kStrongTagged = 1 << 0 , kWeakTagged = 1 << 1 , kUntagged = 1 << 2 } |
using | Classification = base::Flags<ClassificationFlag> |
![]() | |
enum class | HandleKind { kIndirect , kDirect } |
![]() | |
enum class | Kind { kTopType , kAbstractType , kBuiltinPointerType , kUnionType , kBitFieldStructType , kStructType , kClassType } |
Public Member Functions | |
std::string | GetGeneratedTypeNameImpl () const override |
size_t | PackedSize () const |
size_t | AlignmentLog2 () const override |
Classification | ClassifyContents () const |
SourcePosition | GetPosition () const |
![]() | |
std::string | GetGeneratedTNodeTypeNameImpl () const override |
void | SetFields (std::vector< Field > fields) |
const std::vector< Field > & | fields () const |
bool | HasField (const std::string &name) const |
const Field & | LookupField (const std::string &name) const |
const std::string & | name () const |
Namespace * | nspace () const |
virtual const Field & | RegisterField (Field field) |
void | RegisterMethod (Method *method) |
const std::vector< Method * > & | Methods () const |
std::vector< Method * > | Methods (const std::string &name) const |
std::vector< const AggregateType * > | GetHierarchy () const |
std::vector< TypeChecker > | GetTypeCheckers () const override |
const Field & | LastField () const |
![]() | |
Type & | operator= (const Type &other)=delete |
virtual bool | IsSubtypeOf (const Type *supertype) const |
std::string | ToString () const |
virtual std::string | SimpleName () const |
std::string | GetHandleTypeName (HandleKind kind, const std::string &type_name) const |
std::string | TagglifiedCppTypeName () const |
std::string | HandlifiedCppTypeName (HandleKind kind) const |
const Type * | parent () const |
bool | IsVoid () const |
bool | IsNever () const |
bool | IsBool () const |
bool | IsConstexprBool () const |
bool | IsVoidOrNever () const |
bool | IsFloat32 () const |
bool | IsFloat64 () const |
std::string | GetGeneratedTypeName () const |
std::string | GetGeneratedTNodeTypeName () const |
virtual bool | IsConstexpr () const |
virtual bool | IsTransient () const |
virtual const Type * | NonConstexprVersion () const |
virtual std::string | GetConstexprGeneratedTypeName () const |
std::optional< const ClassType * > | ClassSupertype () const |
std::optional< const StructType * > | StructSupertype () const |
std::optional< const AggregateType * > | AggregateSupertype () const |
virtual std::string | GetRuntimeType () const |
virtual std::string | GetDebugType () const |
void | AddAlias (std::string alias) const |
size_t | id () const |
const MaybeSpecializationKey & | GetSpecializedFrom () const |
virtual void | SetConstexprVersion (const Type *type) const |
virtual const Type * | ConstexprVersion () const |
![]() | |
virtual | ~TypeBase ()=default |
bool | IsTopType () const |
bool | IsAbstractType () const |
bool | IsBuiltinPointerType () const |
bool | IsUnionType () const |
bool | IsBitFieldStructType () const |
bool | IsStructType () const |
bool | IsClassType () const |
bool | IsAggregateType () const |
Private Member Functions | |
StructType (Namespace *nspace, const StructDeclaration *decl, MaybeSpecializationKey specialized_from=std::nullopt) | |
void | Finalize () const override |
std::string | ToExplicitString () const override |
std::string | SimpleNameImpl () const override |
Private Attributes | |
const StructDeclaration * | decl_ |
std::string | generated_type_name_ |
Friends | |
class | TypeOracle |
Additional Inherited Members | |
![]() | |
static const Type * | CommonSupertype (const Type *a, const Type *b) |
static std::optional< const Type * > | MatchUnaryGeneric (const Type *type, GenericType *generic) |
static std::string | ComputeName (const std::string &basename, MaybeSpecializationKey specialized_from) |
![]() | |
AggregateType (Kind kind, const Type *parent, Namespace *nspace, const std::string &name, MaybeSpecializationKey specialized_from=std::nullopt) | |
void | CheckForDuplicateFields () const |
const Field & | LookupFieldInternal (const std::string &name) const |
![]() | |
Type (TypeBase::Kind kind, const Type *parent, MaybeSpecializationKey specialized_from=std::nullopt) | |
Type (const Type &other) V8_NOEXCEPT | |
void | set_parent (const Type *t) |
int | Depth () const |
![]() | |
TypeBase (Kind kind) | |
Kind | kind () const |
![]() | |
bool | is_finalized_ |
std::vector< Field > | fields_ |
|
strong |
|
private |
|
overridevirtual |
Reimplemented from v8::internal::torque::Type.
Definition at line 1305 of file types.cc.
StructType::Classification v8::internal::torque::StructType::ClassifyContents | ( | ) | const |
|
overrideprivatevirtual |
Implements v8::internal::torque::AggregateType.
Definition at line 601 of file types.cc.
|
overridevirtual |
Reimplemented from v8::internal::torque::AggregateType.
Definition at line 517 of file types.cc.
|
inline |
size_t v8::internal::torque::StructType::PackedSize | ( | ) | const |
|
overrideprivatevirtual |
Reimplemented from v8::internal::torque::AggregateType.
|
overrideprivatevirtual |
Implements v8::internal::torque::Type.
Definition at line 599 of file types.cc.
|
friend |
|
private |
|
private |