v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::Tagged< T > Class Template Reference

#include <tagged.h>

Inheritance diagram for v8::internal::Tagged< T >:
Collaboration diagram for v8::internal::Tagged< T >:

Public Member Functions

V8_INLINE constexpr Tagged ()=default
 
template<typename U = T>
V8_INLINE Tagged (const T *ptr)
 
template<typename U >
requires (is_subtype_v<U, T>)
V8_INLINE constexpr Taggedoperator= (Tagged< U > other)
 
template<typename U >
requires (is_subtype_v<U, T>)
V8_INLINE constexpr Tagged (Tagged< U > other)
 
V8_INLINE constexpr decltype(auto) operator* () const
 
V8_INLINE constexpr decltype(auto) operator-> () const
 
template<typename U >
requires (is_subtype_v<U, T>)
V8_INLINE constexpr Tagged (U raw)
 
- Public Member Functions inherited from v8::internal::Tagged< HeapObject >
V8_INLINE constexpr Tagged ()=default
 
V8_INLINE Tagged (const HeapObjectLayout *ptr)
 
template<typename U >
requires (is_subtype_v<U, HeapObject>)
V8_INLINE constexpr Taggedoperator= (Tagged< U > other)
 
template<typename U >
requires (is_subtype_v<U, HeapObject>)
V8_INLINE constexpr Tagged (Tagged< U > other)
 
V8_INLINE constexpr HeapObject operator* () const
 
V8_INLINE constexpr detail::TaggedOperatorArrowRef< HeapObjectoperator-> () const
 
V8_INLINE constexpr bool is_null () const
 
constexpr V8_INLINE bool IsHeapObject () const
 
constexpr V8_INLINE bool IsSmi () const
 
template<typename U >
requires (std::is_base_of_v<HeapObject, U>)
constexpr Tagged (U raw)
 
Address address () const
 
- Public Member Functions inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
V8_INLINE constexpr TaggedImpl ()
 
V8_INLINE constexpr TaggedImpl (Address ptr)
 
 operator bool () const=delete
 
constexpr bool operator== (TaggedImpl< kOtherRefType, U > other) const
 
constexpr bool operator!= (TaggedImpl< kOtherRefType, U > other) const
 
constexpr bool SafeEquals (TaggedImpl< kOtherRefType, Address > other) const
 
constexpr bool operator< (TaggedImpl other) const
 
V8_INLINE constexpr Address ptr () const
 
constexpr bool IsObject () const
 
constexpr bool IsSmi () const
 
bool ToSmi (Tagged< Smi > *value) const
 
Tagged< SmiToSmi () const
 
constexpr bool IsHeapObject () const
 
constexpr bool IsCleared () const
 
constexpr bool IsStrongOrWeak () const
 
constexpr bool IsStrong () const
 
constexpr bool IsStrongOrSmi () const
 
constexpr bool IsWeak () const
 
constexpr bool IsWeakOrCleared () const
 
bool GetHeapObjectIfStrong (Tagged< HeapObject > *result) const
 
bool GetHeapObjectIfStrong (Isolate *isolate, Tagged< HeapObject > *result) const
 
Tagged< HeapObjectGetHeapObjectAssumeStrong () const
 
Tagged< HeapObjectGetHeapObjectAssumeStrong (Isolate *isolate) const
 
bool GetHeapObjectIfWeak (Tagged< HeapObject > *result) const
 
bool GetHeapObjectIfWeak (Isolate *isolate, Tagged< HeapObject > *result) const
 
Tagged< HeapObjectGetHeapObjectAssumeWeak () const
 
Tagged< HeapObjectGetHeapObjectAssumeWeak (Isolate *isolate) const
 
bool GetHeapObject (Tagged< HeapObject > *result) const
 
bool GetHeapObject (Isolate *isolate, Tagged< HeapObject > *result) const
 
bool GetHeapObject (Tagged< HeapObject > *result, HeapObjectReferenceType *reference_type) const
 
bool GetHeapObject (Isolate *isolate, Tagged< HeapObject > *result, HeapObjectReferenceType *reference_type) const
 
Tagged< HeapObjectGetHeapObject () const
 
Tagged< HeapObjectGetHeapObject (Isolate *isolate) const
 
Tagged< ObjectGetHeapObjectOrSmi () const
 
Tagged< ObjectGetHeapObjectOrSmi (Isolate *isolate) const
 
Tagged< Tcast () const
 

Static Public Member Functions

template<typename U >
static constexpr Tagged< Tcast (U other)
 
- Static Public Member Functions inherited from v8::internal::Tagged< HeapObject >
template<typename U >
static constexpr Tagged< HeapObjectcast (U other)
 

Private Types

using Base = typename detail::BaseForTagged<T>::type
 

Private Member Functions

V8_INLINE constexpr Tagged (Address ptr)
 
V8_INLINE Toperator_star_impl () const
 
V8_INLINE Toperator_arrow_impl () const
 
V8_INLINE constexpr T operator_star_impl () const
 
V8_INLINE constexpr detail::TaggedOperatorArrowRef< Toperator_arrow_impl () const
 
template<typename U = T>
requires (std::is_base_of_v<HeapObjectLayout, U>)
V8_INLINE TToRawPtr () const
 
template<typename U = T>
requires (!std::is_base_of_v<HeapObjectLayout, U>)
V8_INLINE constexpr T ToRawPtr () const
 

Private Attributes

friend T
 

Friends

class Handle< T >
 
template<typename TFieldType , int kFieldOffset, typename CompressionScheme >
class TaggedField
 
template<typename TFieldType , typename CompressionScheme >
class TaggedMember
 
template<typename To , typename From >
Tagged< To > UncheckedCast (Tagged< From > value)
 
Tagged< TMakeStrong (Tagged< T > value)
 
Tagged< TMakeStrong (Tagged< MaybeWeak< T > > value)
 

Additional Inherited Members

- Static Public Attributes inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
static const bool kIsFull
 
static const bool kCanBeWeak
 
- Protected Member Functions inherited from v8::internal::Tagged< HeapObject >
V8_INLINE constexpr Tagged (Address ptr)
 
- Protected Member Functions inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
Addressptr_location ()
 
const Addressptr_location () const
 

Detailed Description

template<typename T>
class v8::internal::Tagged< T >

Definition at line 21 of file waiter-queue-node.h.

Member Typedef Documentation

◆ Base

template<typename T >
using v8::internal::Tagged< T >::Base = typename detail::BaseForTagged<T>::type
private

Definition at line 708 of file tagged.h.

Constructor & Destructor Documentation

◆ Tagged() [1/5]

template<typename T >
V8_INLINE constexpr v8::internal::Tagged< T >::Tagged ( )
constexprdefault
Here is the caller graph for this function:

◆ Tagged() [2/5]

template<typename T >
template<typename U = T>
V8_INLINE v8::internal::Tagged< T >::Tagged ( const T * ptr)
inline

Definition at line 717 of file tagged.h.

◆ Tagged() [3/5]

template<typename T >
template<typename U >
requires (is_subtype_v<U, T>)
V8_INLINE constexpr v8::internal::Tagged< T >::Tagged ( Tagged< U > other)
inlineconstexpr

Definition at line 734 of file tagged.h.

◆ Tagged() [4/5]

template<typename T >
template<typename U >
requires (is_subtype_v<U, T>)
V8_INLINE constexpr v8::internal::Tagged< T >::Tagged ( U raw)
inlineconstexpr

Definition at line 755 of file tagged.h.

◆ Tagged() [5/5]

template<typename T >
V8_INLINE constexpr v8::internal::Tagged< T >::Tagged ( Address ptr)
inlineexplicitconstexprprivate

Definition at line 783 of file tagged.h.

Member Function Documentation

◆ cast()

template<typename T >
template<typename U >
static constexpr Tagged< T > v8::internal::Tagged< T >::cast ( U other)
inlinestaticconstexpr

Definition at line 761 of file tagged.h.

Here is the call graph for this function:

◆ operator*()

template<typename T >
V8_INLINE constexpr decltype(auto) v8::internal::Tagged< T >::operator* ( ) const
inlineconstexpr

Definition at line 738 of file tagged.h.

Here is the call graph for this function:

◆ operator->()

template<typename T >
V8_INLINE constexpr decltype(auto) v8::internal::Tagged< T >::operator-> ( ) const
inlineconstexpr

Definition at line 744 of file tagged.h.

Here is the call graph for this function:

◆ operator=()

template<typename T >
template<typename U >
requires (is_subtype_v<U, T>)
V8_INLINE constexpr Tagged & v8::internal::Tagged< T >::operator= ( Tagged< U > other)
inlineconstexpr

Definition at line 724 of file tagged.h.

Here is the call graph for this function:

◆ operator_arrow_impl() [1/2]

template<typename T >
V8_INLINE T * v8::internal::Tagged< T >::operator_arrow_impl ( ) const
inlineprivate

Definition at line 790 of file tagged.h.

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

◆ operator_arrow_impl() [2/2]

template<typename T >
V8_INLINE constexpr detail::TaggedOperatorArrowRef< T > v8::internal::Tagged< T >::operator_arrow_impl ( ) const
inlineconstexprprivate

Definition at line 801 of file tagged.h.

Here is the call graph for this function:

◆ operator_star_impl() [1/2]

template<typename T >
V8_INLINE T & v8::internal::Tagged< T >::operator_star_impl ( ) const
inlineprivate

Definition at line 785 of file tagged.h.

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

◆ operator_star_impl() [2/2]

template<typename T >
V8_INLINE constexpr T v8::internal::Tagged< T >::operator_star_impl ( ) const
inlineconstexprprivate

Definition at line 796 of file tagged.h.

Here is the call graph for this function:

◆ ToRawPtr() [1/2]

template<typename T >
template<typename U = T>
requires (std::is_base_of_v<HeapObjectLayout, U>)
V8_INLINE T * v8::internal::Tagged< T >::ToRawPtr ( ) const
inlineprivate

Definition at line 809 of file tagged.h.

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

◆ ToRawPtr() [2/2]

template<typename T >
template<typename U = T>
requires (!std::is_base_of_v<HeapObjectLayout, U>)
V8_INLINE constexpr T v8::internal::Tagged< T >::ToRawPtr ( ) const
inlineconstexprprivate

Definition at line 819 of file tagged.h.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ Handle< T >

template<typename T >
friend class Handle< T >
friend

Definition at line 767 of file tagged.h.

◆ MakeStrong [1/2]

template<typename T >
Tagged< T > MakeStrong ( Tagged< MaybeWeak< T > > value)
friend

Definition at line 908 of file tagged.h.

◆ MakeStrong [2/2]

template<typename T >
Tagged< T > MakeStrong ( Tagged< T > value)
friend

Definition at line 903 of file tagged.h.

◆ TaggedField

template<typename T >
template<typename TFieldType , int kFieldOffset, typename CompressionScheme >
friend class TaggedField
friend

Definition at line 774 of file tagged.h.

◆ TaggedMember

template<typename T >
template<typename TFieldType , typename CompressionScheme >
friend class TaggedMember
friend

Definition at line 776 of file tagged.h.

◆ UncheckedCast

template<typename T >
template<typename To , typename From >
Tagged< To > UncheckedCast ( Tagged< From > value)
friend

Definition at line 61 of file casting.h.

Member Data Documentation

◆ T

template<typename T >
friend v8::internal::Tagged< T >::T
private

Definition at line 767 of file tagged.h.


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