v8 13.6.233 (node 24.1.0)
V8 is Google's open source JavaScript engine
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
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
 
- Public Member Functions inherited from TracedReferenceBase
V8_INLINE void Reset ()
 
V8_INLINE Local< DataGet (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 (internal::Address *new_val)
 
const internal::AddressGetSlotThreadSafe () 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
 
V8_INLINE internal::ValueHelper::InternalRepresentationType repr () 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 165 of file v8-traced-handle.h.

Constructor & Destructor Documentation

◆ TracedReference() [1/7]

template<typename T>
V8_INLINE TracedReference ( )
default

◆ 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 183 of file v8-traced-handle.h.

References BasicTracedReference< T >::BasicTracedReference, IndirectHandleBase::IsEmpty(), v8::internal::kDefault, v8::internal::kInitializingStore, BasicTracedReference< T >::Local, IndirectHandleBase::slot(), 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 203 of file v8-traced-handle.h.

References BasicTracedReference< T >::BasicTracedReference, IndirectHandleBase::IsEmpty(), v8::internal::kDroppable, v8::internal::kInitializingStore, BasicTracedReference< T >::Local, IndirectHandleBase::slot(), 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 219 of file v8-traced-handle.h.

References TracedReference(), and V8_INLINE.

◆ 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 229 of file v8-traced-handle.h.

References TracedReference(), and V8_INLINE.

◆ 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 238 of file v8-traced-handle.h.

References TracedReference(), and V8_INLINE.

◆ 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 248 of file v8-traced-handle.h.

References TracedReference(), and V8_INLINE.

Member Function Documentation

◆ As()

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

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

References TracedReference(), and V8_INLINE.

Referenced by operator=(), and operator=().

◆ 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 408 of file v8-traced-handle.h.

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

◆ 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.

References TracedReference(), and V8_INLINE.

◆ operator=() [3/6]

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

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

References As(), and TracedReference().

◆ 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 399 of file v8-traced-handle.h.

References v8::internal::MoveTracedReference(), and TracedReference().

◆ 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.

References TracedReference(), and V8_INLINE.

◆ operator=() [6/6]

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

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

References As(), and TracedReference().

◆ 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.

References BasicTracedReference< T >::Local, and V8_INLINE.

Referenced by operator=(), Reset(), and Reset().

◆ 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.

References BasicTracedReference< T >::Local, and V8_INLINE.

◆ 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: