v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
tagged.h File Reference
#include <type_traits>
#include "src/common/globals.h"
#include "src/objects/tagged-impl.h"
#include "src/objects/union.h"
Include dependency graph for tagged.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::MaybeWeak< T >
 
struct  v8::internal::is_maybe_weak< T >
 
struct  v8::internal::is_maybe_weak< MaybeWeak< T > >
 
struct  v8::internal::is_maybe_weak< Union< T... > >
 
class  v8::internal::ClearedWeakValue
 
struct  v8::internal::is_subtype< Derived, Base, Enabled >
 
struct  v8::internal::detail::is_simple_subtype< Derived, Base, Enabled >
 
struct  v8::internal::detail::is_simple_subtype< T, T >
 
struct  v8::internal::detail::is_simple_subtype< Object, Object >
 
struct  v8::internal::detail::is_simple_subtype< Smi, Object >
 
struct  v8::internal::detail::is_simple_subtype< TaggedIndex, Object >
 
struct  v8::internal::detail::is_simple_subtype< FieldType, Object >
 
struct  v8::internal::detail::is_simple_subtype< HeapObject, Object >
 
struct  v8::internal::detail::is_simple_subtype< HeapObjectLayout, Object >
 
struct  v8::internal::detail::is_simple_subtype< T, MaybeWeak< T > >
 
struct  v8::internal::detail::is_simple_subtype< MaybeWeak< T >, MaybeWeak< T > >
 
struct  v8::internal::detail::is_simple_subtype< ClearedWeakValue, MaybeWeak< T > >
 
struct  v8::internal::detail::is_simple_subtype< Smi, MaybeWeak< Object > >
 
struct  v8::internal::detail::is_simple_subtype< MaybeWeak< Object >, Union< HeapObject, MaybeWeak< HeapObject >, Smi > >
 
struct  v8::internal::detail::is_simple_subtype< Object, Union< HeapObject, Smi > >
 
struct  v8::internal::detail::is_simple_subtype< Object, Union< HeapObject, MaybeWeak< HeapObject >, Smi > >
 
struct  v8::internal::detail::is_simple_subtype< Derived, Union< BaseTs... > >
 
struct  v8::internal::detail::is_simple_subtype< Union< DerivedTs... >, Base >
 
struct  v8::internal::detail::is_simple_subtype< Union< DerivedTs... >, Union< BaseTs... > >
 
struct  v8::internal::detail::is_simple_subtype< Union< Ts... >, Union< Ts... > >
 
struct  v8::internal::detail::is_complex_subtype< Derived, Base, Enabled >
 
struct  v8::internal::detail::is_complex_subtype< Derived, Object, std::enable_if_t< std::conjunction_v< std::negation< is_union< Derived > >, is_subtype< Derived, HeapObject > > > >
 
struct  v8::internal::detail::is_complex_subtype< Derived, HeapObject, std::enable_if_t< std::disjunction_v< std::is_base_of< HeapObject, Derived >, std::is_base_of< HeapObjectLayout, Derived > > > >
 
struct  v8::internal::detail::is_complex_subtype< Derived, TrustedObject, std::enable_if_t< std::disjunction_v< std::is_base_of< TrustedObject, Derived >, std::is_base_of< TrustedObjectLayout, Derived > > > >
 
struct  v8::internal::detail::is_complex_subtype< Derived, Struct, std::enable_if_t< std::disjunction_v< std::is_base_of< Struct, Derived >, std::is_base_of< StructLayout, Derived > > > >
 
struct  v8::internal::detail::is_complex_subtype< Derived, Union< BaseTs... > >
 
struct  v8::internal::detail::is_complex_subtype< Union< DerivedTs... >, Base >
 
struct  v8::internal::detail::is_complex_subtype< Union< DerivedTs... >, Union< BaseTs... > >
 
struct  v8::internal::detail::is_complex_subtype< Derived, MaybeWeak< Base >, std::enable_if_t<!is_union_v< Derived > &&!is_maybe_weak_v< Derived > > >
 
struct  v8::internal::detail::is_complex_subtype< MaybeWeak< Derived >, MaybeWeak< Base > >
 
class  v8::internal::detail::TaggedOperatorArrowRef< T >
 
struct  v8::internal::detail::BaseForTagged< T >
 
struct  v8::internal::detail::BaseForTagged< MaybeWeak< T > >
 
struct  v8::internal::detail::BaseForTagged< Union< T... > >
 
struct  v8::internal::detail::BaseForTagged< FieldType >
 
class  v8::internal::Tagged< Object >
 
class  v8::internal::Tagged< Smi >
 
class  v8::internal::Tagged< TaggedIndex >
 
class  v8::internal::Tagged< HeapObject >
 
class  v8::internal::Tagged< MaybeWeak< Object > >
 
class  v8::internal::Tagged< MaybeWeak< HeapObject > >
 
class  v8::internal::Tagged< Union< Ts... > >
 
class  v8::internal::Tagged< T >
 
class  v8::internal::Tagged< ClearedWeakValue >
 
class  v8::internal::Tagged< MaybeWeak< T > >
 
struct  v8::internal::RemoveTagged< T >
 
struct  v8::internal::RemoveTagged< Tagged< T > >
 
struct  std::common_type< T, i::Object >
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::detail
 
namespace  std
 STL namespace.
 

Macros

#define DEF_FIXED_ARRAY_SUBTYPE(Subtype)
 

Typedefs

using v8::internal::StrongTaggedBase = TaggedImpl<HeapObjectReferenceType::STRONG, Address>
 
using v8::internal::WeakTaggedBase = TaggedImpl<HeapObjectReferenceType::WEAK, Address>
 
template<typename T >
using v8::internal::is_taggable = is_subtype<T, MaybeWeak<Object>>
 
template<typename From , typename To >
using v8::internal::is_castable
 

Functions

template<typename T >
Tagged< MaybeWeak< T > > v8::internal::MakeWeak (Tagged< T > value)
 
template<typename T >
Tagged< MaybeWeak< T > > v8::internal::MakeWeak (Tagged< MaybeWeak< T > > value)
 
template<typename T >
Tagged< Tv8::internal::MakeStrong (Tagged< T > value)
 
template<typename T >
Tagged< Tv8::internal::MakeStrong (Tagged< MaybeWeak< T > > value)
 
template<class T >
 v8::internal::Tagged (T object) -> Tagged< T >
 
 v8::internal::Tagged (const HeapObjectLayout *object) -> Tagged< HeapObject >
 
template<class T >
 v8::internal::Tagged (const T *object) -> Tagged< T >
 
template<class T >
 v8::internal::Tagged (T *object) -> Tagged< T >
 

Variables

template<typename T >
static constexpr bool v8::internal::is_maybe_weak_v = is_maybe_weak<T>::value
 
template<typename Derived , typename Base >
static constexpr bool v8::internal::is_subtype_v = is_subtype<Derived, Base>::value
 
template<typename Derived , typename Base >
static constexpr bool v8::internal::detail::is_simple_subtype_v
 
template<typename Derived , typename Base >
static constexpr bool v8::internal::detail::is_complex_subtype_v
 
template<typename T >
static constexpr bool v8::internal::is_taggable_v = is_taggable<T>::value
 
template<typename From , typename To >
static constexpr bool v8::internal::is_castable_v = is_castable<From, To>::value
 
static constexpr bool v8::internal::kTaggedCanConvertToRawObjects = true
 

Macro Definition Documentation

◆ DEF_FIXED_ARRAY_SUBTYPE

#define DEF_FIXED_ARRAY_SUBTYPE ( Subtype)
Value:
template <> \
struct is_simple_subtype<Subtype, FixedArrayBase> : public std::true_type { \
};

Definition at line 227 of file tagged.h.