v8 12.4.254 (node 22.4.1)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
TracedReference< T > Class Template Reference

#include <v8-traced-handle.h>

Inheritance diagram for TracedReference< T >:
Collaboration diagram for TracedReference< T >:

Data Structures

struct  IsDroppable
 

Public Member Functions

V8_INLINE TracedReference ()=default
 
template<class S >
 TracedReference (Isolate *isolate, Local< S > that)
 
template<class S >
 TracedReference (Isolate *isolate, Local< S > that, IsDroppable)
 
V8_INLINE TracedReference (TracedReference &&other) noexcept
 
template<typename S >
V8_INLINE TracedReference (TracedReference< S > &&other) noexcept
 
V8_INLINE TracedReference (const TracedReference &other)
 
template<typename S >
V8_INLINE TracedReference (const TracedReference< S > &other)
 
V8_INLINE TracedReferenceoperator= (TracedReference &&rhs) noexcept
 
template<class S >
V8_INLINE TracedReferenceoperator= (TracedReference< S > &&rhs) noexcept
 
V8_INLINE TracedReferenceoperator= (const TracedReference &rhs)
 
template<class S >
V8_INLINE TracedReferenceoperator= (const TracedReference< S > &rhs)
 
template<class S >
V8_INLINE void Reset (Isolate *isolate, const Local< S > &other)
 
template<class S >
V8_INLINE void Reset (Isolate *isolate, const Local< S > &other, IsDroppable)
 
template<class S >
V8_INLINE TracedReference< S > & As () const
 
template<class S >
void Reset (Isolate *isolate, const Local< S > &other)
 
template<class S >
void Reset (Isolate *isolate, const Local< S > &other, IsDroppable)
 
template<class S >
TracedReference< T > & operator= (TracedReference< S > &&rhs) noexcept
 
template<class S >
TracedReference< T > & operator= (const TracedReference< S > &rhs)
 
- Public Member Functions inherited from BasicTracedReference< T >
Local< T > Get (Isolate *isolate) const
 
template<class S >
V8_INLINE BasicTracedReference< S > & As () const
 
V8_INLINE T * operator-> () const
 
V8_INLINE T * operator* () const
 
- Public Member Functions inherited from TracedReferenceBase
V8_INLINE void Reset ()
 
V8_INLINE Local< ValueGet (Isolate *isolate) const
 
bool IsEmptyThreadSafe () const
 
- Public Member Functions inherited from IndirectHandleBase
V8_INLINE bool IsEmpty () const
 
V8_INLINE void Clear ()
 

Additional Inherited Members

- Protected Member Functions inherited from TracedReferenceBase
V8_INLINE TracedReferenceBase ()=default
 
void SetSlotThreadSafe (void *new_val)
 
const void * GetSlotThreadSafe () const
 
V8_EXPORT void CheckValue () const
 
- Protected Member Functions inherited from IndirectHandleBase
V8_INLINE IndirectHandleBase ()=default
 
V8_INLINE IndirectHandleBase (const IndirectHandleBase &other)=default
 
V8_INLINE IndirectHandleBaseoperator= (const IndirectHandleBase &that)=default
 
V8_INLINE IndirectHandleBase (internal::Address *location)
 
V8_INLINE internal::Address ptr () const
 
V8_INLINE internal::Address *const & slot () const
 
V8_INLINE internal::Address *& slot ()
 
template<typename T , bool check_null = false>
V8_INLINE T * value () const
 

Detailed Description

template<typename T>
class v8::TracedReference< T >

A traced handle without destructor that clears the handle. The embedder needs to ensure that the handle is not accessed once the V8 object has been reclaimed. For more details see BasicTracedReference.

Definition at line 177 of file v8-traced-handle.h.

Constructor & Destructor Documentation

◆ TracedReference() [1/7]

template<typename T >
V8_INLINE TracedReference ( )
default

An empty TracedReference without storage cell.

◆ TracedReference() [2/7]

template<typename T >
template<class S >
TracedReference ( Isolate isolate,
Local< S >  that 
)
inline

Construct a TracedReference from a Local.

When the Local is non-empty, a new storage cell is created pointing to the same object.

Definition at line 195 of file v8-traced-handle.h.

References IndirectHandleBase::IsEmpty(), v8::internal::kDefault, v8::internal::kInitializingStore, and V8_UNLIKELY.

◆ TracedReference() [3/7]

template<typename T >
template<class S >
TracedReference ( Isolate isolate,
Local< S >  that,
IsDroppable   
)
inline

Construct a droppable TracedReference from a Local. Droppable means that V8 is free to reclaim the pointee if it is unmodified and otherwise unreachable

When the Local is non-empty, a new storage cell is created pointing to the same object.

Definition at line 215 of file v8-traced-handle.h.

References IndirectHandleBase::IsEmpty(), v8::internal::kDroppable, v8::internal::kInitializingStore, and V8_UNLIKELY.

◆ TracedReference() [4/7]

template<typename T >
V8_INLINE TracedReference ( TracedReference< T > &&  other)
inlinenoexcept

Move constructor initializing TracedReference from an existing one.

Definition at line 231 of file v8-traced-handle.h.

◆ TracedReference() [5/7]

template<typename T >
template<typename S >
V8_INLINE TracedReference ( TracedReference< S > &&  other)
inlinenoexcept

Move constructor initializing TracedReference from an existing one.

Definition at line 241 of file v8-traced-handle.h.

◆ TracedReference() [6/7]

template<typename T >
V8_INLINE TracedReference ( const TracedReference< T > &  other)
inline

Copy constructor initializing TracedReference from an existing one.

Definition at line 250 of file v8-traced-handle.h.

◆ TracedReference() [7/7]

template<typename T >
template<typename S >
V8_INLINE TracedReference ( const TracedReference< S > &  other)
inline

Copy constructor initializing TracedReference from an existing one.

Definition at line 260 of file v8-traced-handle.h.

Member Function Documentation

◆ As()

template<typename T >
template<class S >
V8_INLINE TracedReference< S > & As ( ) const
inline

Definition at line 302 of file v8-traced-handle.h.

◆ operator=() [1/6]

template<class T >
TracedReference< T > & operator= ( const TracedReference< T > &  rhs)

Copy assignment operator initializing TracedReference from an existing one.

Definition at line 420 of file v8-traced-handle.h.

References v8::internal::CopyTracedReference(), IndirectHandleBase::IsEmpty(), and IndirectHandleBase::slot().

◆ operator=() [2/6]

template<typename T >
template<class S >
V8_INLINE TracedReference & operator= ( const TracedReference< S > &  rhs)

Copy assignment operator initializing TracedReference from an existing one.

◆ operator=() [3/6]

template<typename T >
template<class S >
TracedReference< T > & operator= ( const TracedReference< S > &  rhs)

Definition at line 403 of file v8-traced-handle.h.

◆ operator=() [4/6]

template<class T >
TracedReference< T > & operator= ( TracedReference< T > &&  rhs)
noexcept

Move assignment operator initializing TracedReference from an existing one.

Definition at line 411 of file v8-traced-handle.h.

References v8::internal::MoveTracedReference().

◆ operator=() [5/6]

template<typename T >
template<class S >
V8_INLINE TracedReference & operator= ( TracedReference< S > &&  rhs)
noexcept

Move assignment operator initializing TracedReference from an existing one.

◆ operator=() [6/6]

template<typename T >
template<class S >
TracedReference< T > & operator= ( TracedReference< S > &&  rhs)
noexcept

Definition at line 394 of file v8-traced-handle.h.

◆ Reset() [1/4]

template<typename T >
template<class S >
V8_INLINE void Reset ( Isolate isolate,
const Local< S > &  other 
)

Always resets the reference. Creates a new reference from other if it is non-empty.

◆ Reset() [2/4]

template<typename T >
template<class S >
void Reset ( Isolate isolate,
const Local< S > &  other 
)

◆ Reset() [3/4]

template<typename T >
template<class S >
V8_INLINE void Reset ( Isolate isolate,
const Local< S > &  other,
IsDroppable   
)

Always resets the reference. Creates a new reference from other if it is non-empty. The new reference is droppable, see constructor.

◆ Reset() [4/4]

template<typename T >
template<class S >
void Reset ( Isolate isolate,
const Local< S > &  other,
IsDroppable   
)

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