v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
js-heap-broker.h File Reference
Include dependency graph for js-heap-broker.h:

Go to the source code of this file.

Classes

struct  v8::internal::compiler::PropertyAccessTarget
 
struct  v8::internal::compiler::PropertyAccessTarget::Hash
 
struct  v8::internal::compiler::PropertyAccessTarget::Equal
 
class  v8::internal::compiler::JSHeapBroker
 
class  v8::internal::compiler::JSHeapBroker::RecursiveMutexGuardIfNeeded
 
class  v8::internal::compiler::JSHeapBroker::MapUpdaterGuardIfNeeded
 
class  v8::internal::compiler::JSHeapBroker::BoilerplateMigrationGuardIfNeeded
 
class  v8::internal::compiler::CurrentHeapBrokerScope
 
class  v8::internal::compiler::TraceScope
 
class  v8::internal::compiler::UnparkedScopeIfNeeded
 
class  v8::internal::compiler::JSHeapBrokerScopeForTesting
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::maglev
 
namespace  v8::internal::compiler
 

Macros

#define TRACE_BROKER(broker, x)
 
#define TRACE_BROKER_MISSING(broker, x)
 
#define V(Type, name, Name)
 
#define V(Type, name, Name)
 
#define V(Type, name, Name)
 
#define V(Type, name, Name)
 

Typedefs

using v8::internal::compiler::GetOrCreateDataFlags = base::Flags<GetOrCreateDataFlag>
 

Enumerations

enum  v8::internal::compiler::GetOrCreateDataFlag { v8::internal::compiler::kCrashOnError = 1 << 0 , v8::internal::compiler::kAssumeMemoryFence = 1 << 1 }
 

Functions

std::ostream & v8::internal::compiler::operator<< (std::ostream &os, ObjectRef ref)
 
template<class T >
requires (is_subtype_v<T, Object>)
OptionalRef< typename ref_traits< T >::ref_type > v8::internal::compiler::TryMakeRef (JSHeapBroker *broker, ObjectData *data)
 
template<class T >
requires (is_subtype_v<T, Object>)
OptionalRef< typename ref_traits< T >::ref_type > v8::internal::compiler::TryMakeRef (JSHeapBroker *broker, Tagged< T > object, GetOrCreateDataFlags flags={})
 
template<class T >
requires (is_subtype_v<T, Object>)
OptionalRef< typename ref_traits< T >::ref_type > v8::internal::compiler::TryMakeRef (JSHeapBroker *broker, Handle< T > object, GetOrCreateDataFlags flags={})
 
template<class T >
requires (is_subtype_v<T, Object>)
ref_traits< T >::ref_type v8::internal::compiler::MakeRef (JSHeapBroker *broker, Tagged< T > object)
 
template<class T >
requires (is_subtype_v<T, Object>)
ref_traits< T >::ref_type v8::internal::compiler::MakeRef (JSHeapBroker *broker, Handle< T > object)
 
template<class T >
requires (is_subtype_v<T, Object>)
ref_traits< T >::ref_type v8::internal::compiler::MakeRefAssumeMemoryFence (JSHeapBroker *broker, Tagged< T > object)
 
template<class T >
requires (is_subtype_v<T, Object>)
ref_traits< T >::ref_type v8::internal::compiler::MakeRefAssumeMemoryFence (JSHeapBroker *broker, Handle< T > object)
 

Macro Definition Documentation

◆ TRACE_BROKER

#define TRACE_BROKER ( broker,
x )
Value:
do { \
if (broker->tracing_enabled() && v8_flags.trace_heap_broker_verbose) \
StdoutStream{} << broker->Trace() << x << '\n'; \
} while (false)
JSHeapBroker * broker
int x

Definition at line 48 of file js-heap-broker.h.

◆ TRACE_BROKER_MISSING

#define TRACE_BROKER_MISSING ( broker,
x )
Value:
do { \
if (broker->tracing_enabled()) \
StdoutStream{} << broker->Trace() << "Missing " << x << " (" << __FILE__ \
<< ":" << __LINE__ << ")" << std::endl; \
} while (false)

Definition at line 54 of file js-heap-broker.h.

◆ V [1/4]

#define V ( Type,
name,
Name )
Value:
inline typename ref_traits<Type>::ref_type name();
const char * name
Definition builtins.cc:39

Definition at line 392 of file js-heap-broker.h.

◆ V [2/4]

#define V ( Type,
name,
Name )
Value:
void Init##Name();

Definition at line 392 of file js-heap-broker.h.

◆ V [3/4]

#define V ( Type,
name,
Name )
Value:
OptionalRef<typename ref_traits<Type>::ref_type> name##_;
#define _

Definition at line 392 of file js-heap-broker.h.

◆ V [4/4]

#define V ( Type,
name,
Name )
Value:
inline typename ref_traits<Type>::ref_type JSHeapBroker::name() { \
if (!name##_) { \
Init##Name(); \
} \
return name##_.value(); \
}

Definition at line 392 of file js-heap-broker.h.