webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
JSC::Heap Class Reference

#include <Heap.h>

Classes

class  Thread
 

Public Types

typedef void(* Finalizer) (JSCell *)
 
typedef void(* Finalizer) (JSCell *)
 

Public Member Functions

void writeBarrier (const JSCell *from)
 
void writeBarrier (const JSCell *from, JSValue to)
 
void writeBarrier (const JSCell *from, JSCell *to)
 
void writeBarrierWithoutFence (const JSCell *from)
 
void mutatorFence ()
 
JS_EXPORT_PRIVATE void writeBarrierSlowPath (const JSCell *from)
 
 Heap (VM *, HeapType)
 
 ~Heap ()
 
void lastChanceToFinalize ()
 
void releaseDelayedReleasedObjects ()
 
VMvm () const
 
MarkedSpaceobjectSpace ()
 
MachineThreadsmachineThreads ()
 
SlotVisitorcollectorSlotVisitor ()
 
JS_EXPORT_PRIVATE GCActivityCallbackfullActivityCallback ()
 
JS_EXPORT_PRIVATE GCActivityCallbackedenActivityCallback ()
 
JS_EXPORT_PRIVATE void setGarbageCollectionTimerEnabled (bool)
 
JS_EXPORT_PRIVATE IncrementalSweepersweeper ()
 
void addObserver (HeapObserver *observer)
 
void removeObserver (HeapObserver *observer)
 
MutatorState mutatorState () const
 
std::optional< CollectionScopecollectionScope () const
 
bool hasHeapAccess () const
 
bool collectorBelievesThatTheWorldIsStopped () const
 
JS_EXPORT_PRIVATE bool isCurrentThreadBusy ()
 
JS_EXPORT_PRIVATE void addFinalizer (JSCell *, Finalizer)
 
void addExecutable (ExecutableBase *)
 
void notifyIsSafeToCollect ()
 
bool isSafeToCollect () const
 
JS_EXPORT_PRIVATE bool isHeapSnapshotting () const
 
JS_EXPORT_PRIVATE void collectAllGarbageIfNotDoneRecently ()
 
JS_EXPORT_PRIVATE void collectAllGarbage ()
 
JS_EXPORT_PRIVATE void sweepSynchronously ()
 
bool shouldCollectHeuristic ()
 
JS_EXPORT_PRIVATE void collectAsync (std::optional< CollectionScope >=std::nullopt)
 
JS_EXPORT_PRIVATE void collectSync (std::optional< CollectionScope >=std::nullopt)
 
void collectIfNecessaryOrDefer (GCDeferralContext *=nullptr)
 
void completeAllJITPlans ()
 
void reportExtraMemoryAllocated (size_t)
 
JS_EXPORT_PRIVATE void reportExtraMemoryVisited (size_t)
 
void deprecatedReportExtraMemory (size_t)
 
JS_EXPORT_PRIVATE void reportAbandonedObjectGraph ()
 
JS_EXPORT_PRIVATE void protect (JSValue)
 
JS_EXPORT_PRIVATE bool unprotect (JSValue)
 
JS_EXPORT_PRIVATE size_t extraMemorySize ()
 
JS_EXPORT_PRIVATE size_t size ()
 
JS_EXPORT_PRIVATE size_t capacity ()
 
JS_EXPORT_PRIVATE size_t objectCount ()
 
JS_EXPORT_PRIVATE size_t globalObjectCount ()
 
JS_EXPORT_PRIVATE size_t protectedObjectCount ()
 
JS_EXPORT_PRIVATE size_t protectedGlobalObjectCount ()
 
JS_EXPORT_PRIVATE std::unique_ptr< TypeCountSetprotectedObjectTypeCounts ()
 
JS_EXPORT_PRIVATE std::unique_ptr< TypeCountSetobjectTypeCounts ()
 
HashSet< MarkedArgumentBuffer * > & markListSet ()
 
template<typename Functor >
void forEachProtectedCell (const Functor &)
 
template<typename Functor >
void forEachCodeBlock (const Functor &)
 
template<typename Functor >
void forEachCodeBlockIgnoringJITPlans (const Functor &)
 
HandleSethandleSet ()
 
HandleStackhandleStack ()
 
void willStartIterating ()
 
void didFinishIterating ()
 
Seconds lastFullGCLength () const
 
Seconds lastEdenGCLength () const
 
void increaseLastFullGCLength (Seconds amount)
 
size_t sizeBeforeLastEdenCollection () const
 
size_t sizeAfterLastEdenCollection () const
 
size_t sizeBeforeLastFullCollection () const
 
size_t sizeAfterLastFullCollection () const
 
void deleteAllCodeBlocks (DeleteAllCodeEffort)
 
void deleteAllUnlinkedCodeBlocks (DeleteAllCodeEffort)
 
void didAllocate (size_t)
 
bool isPagedOut (double deadline)
 
const JITStubRoutineSetjitStubRoutines ()
 
void addReference (JSCell *, ArrayBuffer *)
 
bool isDeferred () const
 
StructureIDTablestructureIDTable ()
 
CodeBlockSetcodeBlockSet ()
 
JS_EXPORT_PRIVATE void registerWeakGCMap (void *weakGCMap, std::function< void()> pruningCallback)
 
JS_EXPORT_PRIVATE void unregisterWeakGCMap (void *weakGCMap)
 
void addLogicallyEmptyWeakBlock (WeakBlock *)
 
void didAllocateBlock (size_t capacity)
 
void didFreeBlock (size_t capacity)
 
bool mutatorShouldBeFenced () const
 
const bool * addressOfMutatorShouldBeFenced () const
 
unsigned barrierThreshold () const
 
const unsigned * addressOfBarrierThreshold () const
 
bool hasAccess () const
 
void acquireAccess ()
 
void releaseAccess ()
 
void stopIfNecessary ()
 
void relinquishConn ()
 
bool mayNeedToStop ()
 
void performIncrement (size_t bytes)
 
void preventCollection ()
 
void allowCollection ()
 
uint64_t mutatorExecutionVersion () const
 
JS_EXPORT_PRIVATE void addMarkingConstraint (std::unique_ptr< MarkingConstraint >)
 
size_t numOpaqueRoots () const
 
void writeBarrier (const JSCell *from)
 
void writeBarrier (const JSCell *from, JSValue to)
 
void writeBarrier (const JSCell *from, JSCell *to)
 
void writeBarrierWithoutFence (const JSCell *from)
 
void mutatorFence ()
 
JS_EXPORT_PRIVATE void writeBarrierSlowPath (const JSCell *from)
 
 Heap (VM *, HeapType)
 
 ~Heap ()
 
void lastChanceToFinalize ()
 
void releaseDelayedReleasedObjects ()
 
VMvm () const
 
MarkedSpaceobjectSpace ()
 
MachineThreadsmachineThreads ()
 
SlotVisitorcollectorSlotVisitor ()
 
JS_EXPORT_PRIVATE GCActivityCallbackfullActivityCallback ()
 
JS_EXPORT_PRIVATE GCActivityCallbackedenActivityCallback ()
 
JS_EXPORT_PRIVATE void setGarbageCollectionTimerEnabled (bool)
 
JS_EXPORT_PRIVATE IncrementalSweepersweeper ()
 
void addObserver (HeapObserver *observer)
 
void removeObserver (HeapObserver *observer)
 
MutatorState mutatorState () const
 
std::optional< CollectionScopecollectionScope () const
 
bool hasHeapAccess () const
 
bool collectorBelievesThatTheWorldIsStopped () const
 
JS_EXPORT_PRIVATE bool isCurrentThreadBusy ()
 
JS_EXPORT_PRIVATE void addFinalizer (JSCell *, Finalizer)
 
void addExecutable (ExecutableBase *)
 
void notifyIsSafeToCollect ()
 
bool isSafeToCollect () const
 
JS_EXPORT_PRIVATE bool isHeapSnapshotting () const
 
JS_EXPORT_PRIVATE void collectAllGarbageIfNotDoneRecently ()
 
JS_EXPORT_PRIVATE void collectAllGarbage ()
 
JS_EXPORT_PRIVATE void sweepSynchronously ()
 
bool shouldCollectHeuristic ()
 
JS_EXPORT_PRIVATE void collectAsync (std::optional< CollectionScope >=std::nullopt)
 
JS_EXPORT_PRIVATE void collectSync (std::optional< CollectionScope >=std::nullopt)
 
void collectIfNecessaryOrDefer (GCDeferralContext *=nullptr)
 
void completeAllJITPlans ()
 
void reportExtraMemoryAllocated (size_t)
 
JS_EXPORT_PRIVATE void reportExtraMemoryVisited (size_t)
 
void deprecatedReportExtraMemory (size_t)
 
JS_EXPORT_PRIVATE void reportAbandonedObjectGraph ()
 
JS_EXPORT_PRIVATE void protect (JSValue)
 
JS_EXPORT_PRIVATE bool unprotect (JSValue)
 
JS_EXPORT_PRIVATE size_t extraMemorySize ()
 
JS_EXPORT_PRIVATE size_t size ()
 
JS_EXPORT_PRIVATE size_t capacity ()
 
JS_EXPORT_PRIVATE size_t objectCount ()
 
JS_EXPORT_PRIVATE size_t globalObjectCount ()
 
JS_EXPORT_PRIVATE size_t protectedObjectCount ()
 
JS_EXPORT_PRIVATE size_t protectedGlobalObjectCount ()
 
JS_EXPORT_PRIVATE std::unique_ptr< TypeCountSetprotectedObjectTypeCounts ()
 
JS_EXPORT_PRIVATE std::unique_ptr< TypeCountSetobjectTypeCounts ()
 
HashSet< MarkedArgumentBuffer * > & markListSet ()
 
template<typename Functor >
void forEachProtectedCell (const Functor &)
 
template<typename Functor >
void forEachCodeBlock (const Functor &)
 
template<typename Functor >
void forEachCodeBlockIgnoringJITPlans (const Functor &)
 
HandleSethandleSet ()
 
HandleStackhandleStack ()
 
void willStartIterating ()
 
void didFinishIterating ()
 
Seconds lastFullGCLength () const
 
Seconds lastEdenGCLength () const
 
void increaseLastFullGCLength (Seconds amount)
 
size_t sizeBeforeLastEdenCollection () const
 
size_t sizeAfterLastEdenCollection () const
 
size_t sizeBeforeLastFullCollection () const
 
size_t sizeAfterLastFullCollection () const
 
void deleteAllCodeBlocks (DeleteAllCodeEffort)
 
void deleteAllUnlinkedCodeBlocks (DeleteAllCodeEffort)
 
void didAllocate (size_t)
 
bool isPagedOut (double deadline)
 
const JITStubRoutineSetjitStubRoutines ()
 
void addReference (JSCell *, ArrayBuffer *)
 
bool isDeferred () const
 
StructureIDTablestructureIDTable ()
 
CodeBlockSetcodeBlockSet ()
 
JS_EXPORT_PRIVATE void registerWeakGCMap (void *weakGCMap, std::function< void()> pruningCallback)
 
JS_EXPORT_PRIVATE void unregisterWeakGCMap (void *weakGCMap)
 
void addLogicallyEmptyWeakBlock (WeakBlock *)
 
void didAllocateBlock (size_t capacity)
 
void didFreeBlock (size_t capacity)
 
bool mutatorShouldBeFenced () const
 
const bool * addressOfMutatorShouldBeFenced () const
 
unsigned barrierThreshold () const
 
const unsigned * addressOfBarrierThreshold () const
 
bool hasAccess () const
 
void acquireAccess ()
 
void releaseAccess ()
 
void stopIfNecessary ()
 
void relinquishConn ()
 
bool mayNeedToStop ()
 
void performIncrement (size_t bytes)
 
void preventCollection ()
 
void allowCollection ()
 
uint64_t mutatorExecutionVersion () const
 
JS_EXPORT_PRIVATE void addMarkingConstraint (std::unique_ptr< MarkingConstraint >)
 
size_t numOpaqueRoots () const
 

Static Public Member Functions

static Heapheap (const JSValue)
 
static Heapheap (const HeapCell *)
 
static bool isMarked (const void *)
 
static bool isMarkedConcurrently (const void *)
 
static bool testAndSetMarked (HeapVersion, const void *)
 
static size_t cellSize (const void *)
 
static Heapheap (const JSValue)
 
static Heapheap (const HeapCell *)
 
static bool isMarked (const void *)
 
static bool isMarkedConcurrently (const void *)
 
static bool testAndSetMarked (HeapVersion, const void *)
 
static size_t cellSize (const void *)
 

Static Public Attributes

static const unsigned s_timeCheckResolution = 16
 

Friends

class JIT
 
class DFG::SpeculativeJIT
 
class AllocatingScope
 
class CodeBlock
 
class CollectingScope
 
class DeferGC
 
class DeferGCForAWhile
 
class GCAwareJITStubRoutine
 
class GCLogging
 
class GCThread
 
class HandleSet
 
class HeapUtil
 
class HeapVerifier
 
class JITStubRoutine
 
class LLIntOffsetsExtractor
 
class MarkedSpace
 
class MarkedAllocator
 
class MarkedBlock
 
class RunningScope
 
class SlotVisitor
 
class SpaceTimeMutatorScheduler
 
class StochasticSpaceTimeMutatorScheduler
 
class SweepingScope
 
class IncrementalSweeper
 
class HeapStatistics
 
class VM
 
class WeakSet
 
class Thread
 

Member Typedef Documentation

◆ Finalizer [1/2]

typedef void(* JSC::Heap::Finalizer) (JSCell *)

◆ Finalizer [2/2]

typedef void(* JSC::Heap::Finalizer) (JSCell *)

Constructor & Destructor Documentation

◆ Heap() [1/2]

JSC::Heap::Heap ( VM vm,
HeapType  heapType 
)

◆ ~Heap() [1/2]

JSC::Heap::~Heap ( )

◆ Heap() [2/2]

JSC::Heap::Heap ( VM ,
HeapType   
)

◆ ~Heap() [2/2]

JSC::Heap::~Heap ( )

Member Function Documentation

◆ acquireAccess() [1/2]

void JSC::Heap::acquireAccess ( )
inline

◆ acquireAccess() [2/2]

void JSC::Heap::acquireAccess ( )

◆ addExecutable() [1/2]

void JSC::Heap::addExecutable ( ExecutableBase executable)

◆ addExecutable() [2/2]

void JSC::Heap::addExecutable ( ExecutableBase )

◆ addFinalizer() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::addFinalizer ( JSCell ,
Finalizer   
)

◆ addFinalizer() [2/2]

void JSC::Heap::addFinalizer ( JSCell cell,
Finalizer  finalizer 
)

◆ addLogicallyEmptyWeakBlock() [1/2]

void JSC::Heap::addLogicallyEmptyWeakBlock ( WeakBlock block)

◆ addLogicallyEmptyWeakBlock() [2/2]

void JSC::Heap::addLogicallyEmptyWeakBlock ( WeakBlock )

◆ addMarkingConstraint() [1/2]

void JSC::Heap::addMarkingConstraint ( std::unique_ptr< MarkingConstraint constraint)

◆ addMarkingConstraint() [2/2]

JS_EXPORT_PRIVATE void JSC::Heap::addMarkingConstraint ( std::unique_ptr< MarkingConstraint )

◆ addObserver() [1/2]

void JSC::Heap::addObserver ( HeapObserver observer)
inline

◆ addObserver() [2/2]

void JSC::Heap::addObserver ( HeapObserver observer)
inline

◆ addReference() [1/2]

void JSC::Heap::addReference ( JSCell ,
ArrayBuffer  
)

◆ addReference() [2/2]

void JSC::Heap::addReference ( JSCell cell,
ArrayBuffer buffer 
)

◆ addressOfBarrierThreshold() [1/2]

const unsigned* JSC::Heap::addressOfBarrierThreshold ( ) const
inline

◆ addressOfBarrierThreshold() [2/2]

const unsigned* JSC::Heap::addressOfBarrierThreshold ( ) const
inline

◆ addressOfMutatorShouldBeFenced() [1/2]

const bool* JSC::Heap::addressOfMutatorShouldBeFenced ( ) const
inline

◆ addressOfMutatorShouldBeFenced() [2/2]

const bool* JSC::Heap::addressOfMutatorShouldBeFenced ( ) const
inline

◆ allowCollection() [1/2]

void JSC::Heap::allowCollection ( )

◆ allowCollection() [2/2]

void JSC::Heap::allowCollection ( )

◆ barrierThreshold() [1/2]

unsigned JSC::Heap::barrierThreshold ( ) const
inline

◆ barrierThreshold() [2/2]

unsigned JSC::Heap::barrierThreshold ( ) const
inline

◆ capacity() [1/2]

JS_EXPORT_PRIVATE size_t JSC::Heap::capacity ( )

◆ capacity() [2/2]

size_t JSC::Heap::capacity ( )

◆ cellSize() [1/2]

ALWAYS_INLINE size_t JSC::Heap::cellSize ( const void rawCell)
static

◆ cellSize() [2/2]

static size_t JSC::Heap::cellSize ( const void )
static

◆ codeBlockSet() [1/2]

CodeBlockSet& JSC::Heap::codeBlockSet ( )
inline

◆ codeBlockSet() [2/2]

CodeBlockSet& JSC::Heap::codeBlockSet ( )
inline

◆ collectAllGarbage() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::collectAllGarbage ( )

◆ collectAllGarbage() [2/2]

void JSC::Heap::collectAllGarbage ( )

◆ collectAllGarbageIfNotDoneRecently() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::collectAllGarbageIfNotDoneRecently ( )

◆ collectAllGarbageIfNotDoneRecently() [2/2]

void JSC::Heap::collectAllGarbageIfNotDoneRecently ( )

◆ collectAsync() [1/2]

◆ collectAsync() [2/2]

void JSC::Heap::collectAsync ( std::optional< CollectionScope scope = std::nullopt)

◆ collectIfNecessaryOrDefer() [1/2]

void JSC::Heap::collectIfNecessaryOrDefer ( GCDeferralContext = nullptr)

◆ collectIfNecessaryOrDefer() [2/2]

void JSC::Heap::collectIfNecessaryOrDefer ( GCDeferralContext deferralContext = nullptr)

◆ collectionScope() [1/2]

std::optional<CollectionScope> JSC::Heap::collectionScope ( ) const
inline

◆ collectionScope() [2/2]

std::optional<CollectionScope> JSC::Heap::collectionScope ( ) const
inline

◆ collectorBelievesThatTheWorldIsStopped() [1/2]

bool JSC::Heap::collectorBelievesThatTheWorldIsStopped ( ) const

◆ collectorBelievesThatTheWorldIsStopped() [2/2]

bool JSC::Heap::collectorBelievesThatTheWorldIsStopped ( ) const
inline

◆ collectorSlotVisitor() [1/2]

SlotVisitor& JSC::Heap::collectorSlotVisitor ( )
inline

◆ collectorSlotVisitor() [2/2]

SlotVisitor& JSC::Heap::collectorSlotVisitor ( )
inline

◆ collectSync() [1/2]

◆ collectSync() [2/2]

void JSC::Heap::collectSync ( std::optional< CollectionScope scope = std::nullopt)

◆ completeAllJITPlans() [1/2]

void JSC::Heap::completeAllJITPlans ( )

◆ completeAllJITPlans() [2/2]

void JSC::Heap::completeAllJITPlans ( )

◆ deleteAllCodeBlocks() [1/2]

void JSC::Heap::deleteAllCodeBlocks ( DeleteAllCodeEffort  effort)

◆ deleteAllCodeBlocks() [2/2]

void JSC::Heap::deleteAllCodeBlocks ( DeleteAllCodeEffort  )

◆ deleteAllUnlinkedCodeBlocks() [1/2]

void JSC::Heap::deleteAllUnlinkedCodeBlocks ( DeleteAllCodeEffort  effort)

◆ deleteAllUnlinkedCodeBlocks() [2/2]

void JSC::Heap::deleteAllUnlinkedCodeBlocks ( DeleteAllCodeEffort  )

◆ deprecatedReportExtraMemory() [1/2]

void JSC::Heap::deprecatedReportExtraMemory ( size_t  )

◆ deprecatedReportExtraMemory() [2/2]

void JSC::Heap::deprecatedReportExtraMemory ( size_t  size)
inline

◆ didAllocate() [1/2]

void JSC::Heap::didAllocate ( size_t  bytes)

◆ didAllocate() [2/2]

void JSC::Heap::didAllocate ( size_t  )

◆ didAllocateBlock() [1/2]

void JSC::Heap::didAllocateBlock ( size_t  capacity)

◆ didAllocateBlock() [2/2]

void JSC::Heap::didAllocateBlock ( size_t  capacity)

◆ didFinishIterating() [1/2]

void JSC::Heap::didFinishIterating ( )

◆ didFinishIterating() [2/2]

void JSC::Heap::didFinishIterating ( )

◆ didFreeBlock() [1/2]

void JSC::Heap::didFreeBlock ( size_t  capacity)

◆ didFreeBlock() [2/2]

void JSC::Heap::didFreeBlock ( size_t  capacity)

◆ edenActivityCallback() [1/2]

GCActivityCallback * JSC::Heap::edenActivityCallback ( )

◆ edenActivityCallback() [2/2]

JS_EXPORT_PRIVATE GCActivityCallback* JSC::Heap::edenActivityCallback ( )

◆ extraMemorySize() [1/2]

JS_EXPORT_PRIVATE size_t JSC::Heap::extraMemorySize ( )

◆ extraMemorySize() [2/2]

size_t JSC::Heap::extraMemorySize ( )

◆ forEachCodeBlock() [1/2]

template<typename Functor >
void JSC::Heap::forEachCodeBlock ( const Functor &  )

◆ forEachCodeBlock() [2/2]

template<typename Functor >
void JSC::Heap::forEachCodeBlock ( const Functor &  func)
inline

◆ forEachCodeBlockIgnoringJITPlans() [1/2]

template<typename Functor >
void JSC::Heap::forEachCodeBlockIgnoringJITPlans ( const Functor &  )

◆ forEachCodeBlockIgnoringJITPlans() [2/2]

template<typename Functor >
void JSC::Heap::forEachCodeBlockIgnoringJITPlans ( const Functor &  func)
inline

◆ forEachProtectedCell() [1/2]

template<typename Functor >
void JSC::Heap::forEachProtectedCell ( const Functor &  )

◆ forEachProtectedCell() [2/2]

template<typename Functor >
void JSC::Heap::forEachProtectedCell ( const Functor &  functor)
inline

◆ fullActivityCallback() [1/2]

GCActivityCallback * JSC::Heap::fullActivityCallback ( )

◆ fullActivityCallback() [2/2]

JS_EXPORT_PRIVATE GCActivityCallback* JSC::Heap::fullActivityCallback ( )

◆ globalObjectCount() [1/2]

JS_EXPORT_PRIVATE size_t JSC::Heap::globalObjectCount ( )

◆ globalObjectCount() [2/2]

size_t JSC::Heap::globalObjectCount ( )

◆ handleSet() [1/2]

HandleSet* JSC::Heap::handleSet ( )
inline

◆ handleSet() [2/2]

HandleSet* JSC::Heap::handleSet ( )
inline

◆ handleStack() [1/2]

HandleStack* JSC::Heap::handleStack ( )
inline

◆ handleStack() [2/2]

HandleStack* JSC::Heap::handleStack ( )
inline

◆ hasAccess() [1/2]

bool JSC::Heap::hasAccess ( ) const
inline

◆ hasAccess() [2/2]

bool JSC::Heap::hasAccess ( ) const

◆ hasHeapAccess() [1/2]

bool JSC::Heap::hasHeapAccess ( ) const

◆ hasHeapAccess() [2/2]

bool JSC::Heap::hasHeapAccess ( ) const
inline

◆ heap() [1/4]

static Heap* JSC::Heap::heap ( const JSValue  )
static

◆ heap() [2/4]

Heap * JSC::Heap::heap ( const JSValue  v)
inlinestatic

◆ heap() [3/4]

ALWAYS_INLINE Heap * JSC::Heap::heap ( const HeapCell cell)
static

◆ heap() [4/4]

static Heap* JSC::Heap::heap ( const HeapCell )
static

◆ increaseLastFullGCLength() [1/2]

void JSC::Heap::increaseLastFullGCLength ( Seconds  amount)
inline

◆ increaseLastFullGCLength() [2/2]

void JSC::Heap::increaseLastFullGCLength ( Seconds  amount)
inline

◆ isCurrentThreadBusy() [1/2]

JS_EXPORT_PRIVATE bool JSC::Heap::isCurrentThreadBusy ( )

◆ isCurrentThreadBusy() [2/2]

bool JSC::Heap::isCurrentThreadBusy ( )

◆ isDeferred() [1/2]

bool JSC::Heap::isDeferred ( ) const
inline

◆ isDeferred() [2/2]

bool JSC::Heap::isDeferred ( ) const
inline

◆ isHeapSnapshotting() [1/2]

bool JSC::Heap::isHeapSnapshotting ( ) const

◆ isHeapSnapshotting() [2/2]

JS_EXPORT_PRIVATE bool JSC::Heap::isHeapSnapshotting ( ) const

◆ isMarked() [1/2]

static bool JSC::Heap::isMarked ( const void )
static

◆ isMarked() [2/2]

ALWAYS_INLINE bool JSC::Heap::isMarked ( const void rawCell)
static

◆ isMarkedConcurrently() [1/2]

ALWAYS_INLINE bool JSC::Heap::isMarkedConcurrently ( const void rawCell)
static

◆ isMarkedConcurrently() [2/2]

static bool JSC::Heap::isMarkedConcurrently ( const void )
static

◆ isPagedOut() [1/2]

bool JSC::Heap::isPagedOut ( double  deadline)

◆ isPagedOut() [2/2]

bool JSC::Heap::isPagedOut ( double  deadline)

◆ isSafeToCollect() [1/2]

bool JSC::Heap::isSafeToCollect ( ) const
inline

◆ isSafeToCollect() [2/2]

bool JSC::Heap::isSafeToCollect ( ) const
inline

◆ jitStubRoutines() [1/2]

const JITStubRoutineSet& JSC::Heap::jitStubRoutines ( )
inline

◆ jitStubRoutines() [2/2]

const JITStubRoutineSet& JSC::Heap::jitStubRoutines ( )
inline

◆ lastChanceToFinalize() [1/2]

void JSC::Heap::lastChanceToFinalize ( )

◆ lastChanceToFinalize() [2/2]

void JSC::Heap::lastChanceToFinalize ( )

◆ lastEdenGCLength() [1/2]

Seconds JSC::Heap::lastEdenGCLength ( ) const
inline

◆ lastEdenGCLength() [2/2]

Seconds JSC::Heap::lastEdenGCLength ( ) const
inline

◆ lastFullGCLength() [1/2]

Seconds JSC::Heap::lastFullGCLength ( ) const
inline

◆ lastFullGCLength() [2/2]

Seconds JSC::Heap::lastFullGCLength ( ) const
inline

◆ machineThreads() [1/2]

MachineThreads& JSC::Heap::machineThreads ( )
inline

◆ machineThreads() [2/2]

MachineThreads& JSC::Heap::machineThreads ( )
inline

◆ markListSet() [1/2]

HashSet<MarkedArgumentBuffer*>& JSC::Heap::markListSet ( )

◆ markListSet() [2/2]

HashSet< MarkedArgumentBuffer * > & JSC::Heap::markListSet ( )
inline

◆ mayNeedToStop() [1/2]

bool JSC::Heap::mayNeedToStop ( )
inline

◆ mayNeedToStop() [2/2]

bool JSC::Heap::mayNeedToStop ( )

◆ mutatorExecutionVersion() [1/2]

uint64_t JSC::Heap::mutatorExecutionVersion ( ) const
inline

◆ mutatorExecutionVersion() [2/2]

uint64_t JSC::Heap::mutatorExecutionVersion ( ) const
inline

◆ mutatorFence() [1/2]

void JSC::Heap::mutatorFence ( )
inline

◆ mutatorFence() [2/2]

void JSC::Heap::mutatorFence ( )

◆ mutatorShouldBeFenced() [1/2]

bool JSC::Heap::mutatorShouldBeFenced ( ) const
inline

◆ mutatorShouldBeFenced() [2/2]

bool JSC::Heap::mutatorShouldBeFenced ( ) const
inline

◆ mutatorState() [1/2]

MutatorState JSC::Heap::mutatorState ( ) const
inline

◆ mutatorState() [2/2]

MutatorState JSC::Heap::mutatorState ( ) const
inline

◆ notifyIsSafeToCollect() [1/2]

void JSC::Heap::notifyIsSafeToCollect ( )

◆ notifyIsSafeToCollect() [2/2]

void JSC::Heap::notifyIsSafeToCollect ( )

◆ numOpaqueRoots() [1/2]

size_t JSC::Heap::numOpaqueRoots ( ) const
inline

◆ numOpaqueRoots() [2/2]

size_t JSC::Heap::numOpaqueRoots ( ) const
inline

◆ objectCount() [1/2]

JS_EXPORT_PRIVATE size_t JSC::Heap::objectCount ( )

◆ objectCount() [2/2]

size_t JSC::Heap::objectCount ( )

◆ objectSpace() [1/2]

MarkedSpace& JSC::Heap::objectSpace ( )
inline

◆ objectSpace() [2/2]

MarkedSpace& JSC::Heap::objectSpace ( )
inline

◆ objectTypeCounts() [1/2]

JS_EXPORT_PRIVATE std::unique_ptr<TypeCountSet> JSC::Heap::objectTypeCounts ( )

◆ objectTypeCounts() [2/2]

std::unique_ptr< TypeCountSet > JSC::Heap::objectTypeCounts ( )

◆ performIncrement() [1/2]

void JSC::Heap::performIncrement ( size_t  bytes)

◆ performIncrement() [2/2]

void JSC::Heap::performIncrement ( size_t  bytes)

◆ preventCollection() [1/2]

void JSC::Heap::preventCollection ( )

◆ preventCollection() [2/2]

void JSC::Heap::preventCollection ( )

◆ protect() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::protect ( JSValue  )

◆ protect() [2/2]

void JSC::Heap::protect ( JSValue  k)

◆ protectedGlobalObjectCount() [1/2]

JS_EXPORT_PRIVATE size_t JSC::Heap::protectedGlobalObjectCount ( )

◆ protectedGlobalObjectCount() [2/2]

size_t JSC::Heap::protectedGlobalObjectCount ( )

◆ protectedObjectCount() [1/2]

JS_EXPORT_PRIVATE size_t JSC::Heap::protectedObjectCount ( )

◆ protectedObjectCount() [2/2]

size_t JSC::Heap::protectedObjectCount ( )

◆ protectedObjectTypeCounts() [1/2]

JS_EXPORT_PRIVATE std::unique_ptr<TypeCountSet> JSC::Heap::protectedObjectTypeCounts ( )

◆ protectedObjectTypeCounts() [2/2]

std::unique_ptr< TypeCountSet > JSC::Heap::protectedObjectTypeCounts ( )

◆ registerWeakGCMap() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::registerWeakGCMap ( void weakGCMap,
std::function< void()>  pruningCallback 
)

◆ registerWeakGCMap() [2/2]

void JSC::Heap::registerWeakGCMap ( void weakGCMap,
std::function< void()>  pruningCallback 
)

◆ releaseAccess() [1/2]

void JSC::Heap::releaseAccess ( )
inline

◆ releaseAccess() [2/2]

void JSC::Heap::releaseAccess ( )

◆ releaseDelayedReleasedObjects() [1/2]

void JSC::Heap::releaseDelayedReleasedObjects ( )

◆ releaseDelayedReleasedObjects() [2/2]

void JSC::Heap::releaseDelayedReleasedObjects ( )

◆ relinquishConn() [1/2]

void JSC::Heap::relinquishConn ( )

◆ relinquishConn() [2/2]

void JSC::Heap::relinquishConn ( )

◆ removeObserver() [1/2]

void JSC::Heap::removeObserver ( HeapObserver observer)
inline

◆ removeObserver() [2/2]

void JSC::Heap::removeObserver ( HeapObserver observer)
inline

◆ reportAbandonedObjectGraph() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::reportAbandonedObjectGraph ( )

◆ reportAbandonedObjectGraph() [2/2]

void JSC::Heap::reportAbandonedObjectGraph ( )

◆ reportExtraMemoryAllocated() [1/2]

void JSC::Heap::reportExtraMemoryAllocated ( size_t  size)
inline

◆ reportExtraMemoryAllocated() [2/2]

void JSC::Heap::reportExtraMemoryAllocated ( size_t  )

◆ reportExtraMemoryVisited() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::reportExtraMemoryVisited ( size_t  )

◆ reportExtraMemoryVisited() [2/2]

void JSC::Heap::reportExtraMemoryVisited ( size_t  size)

◆ setGarbageCollectionTimerEnabled() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::setGarbageCollectionTimerEnabled ( bool  )

◆ setGarbageCollectionTimerEnabled() [2/2]

void JSC::Heap::setGarbageCollectionTimerEnabled ( bool  enable)

◆ shouldCollectHeuristic() [1/2]

bool JSC::Heap::shouldCollectHeuristic ( )

◆ shouldCollectHeuristic() [2/2]

bool JSC::Heap::shouldCollectHeuristic ( )

◆ size() [1/2]

JS_EXPORT_PRIVATE size_t JSC::Heap::size ( )

◆ size() [2/2]

size_t JSC::Heap::size ( )

◆ sizeAfterLastEdenCollection() [1/2]

size_t JSC::Heap::sizeAfterLastEdenCollection ( ) const
inline

◆ sizeAfterLastEdenCollection() [2/2]

size_t JSC::Heap::sizeAfterLastEdenCollection ( ) const
inline

◆ sizeAfterLastFullCollection() [1/2]

size_t JSC::Heap::sizeAfterLastFullCollection ( ) const
inline

◆ sizeAfterLastFullCollection() [2/2]

size_t JSC::Heap::sizeAfterLastFullCollection ( ) const
inline

◆ sizeBeforeLastEdenCollection() [1/2]

size_t JSC::Heap::sizeBeforeLastEdenCollection ( ) const
inline

◆ sizeBeforeLastEdenCollection() [2/2]

size_t JSC::Heap::sizeBeforeLastEdenCollection ( ) const
inline

◆ sizeBeforeLastFullCollection() [1/2]

size_t JSC::Heap::sizeBeforeLastFullCollection ( ) const
inline

◆ sizeBeforeLastFullCollection() [2/2]

size_t JSC::Heap::sizeBeforeLastFullCollection ( ) const
inline

◆ stopIfNecessary() [1/2]

void JSC::Heap::stopIfNecessary ( )
inline

◆ stopIfNecessary() [2/2]

void JSC::Heap::stopIfNecessary ( )

◆ structureIDTable() [1/2]

StructureIDTable& JSC::Heap::structureIDTable ( )
inline

◆ structureIDTable() [2/2]

StructureIDTable& JSC::Heap::structureIDTable ( )
inline

◆ sweeper() [1/2]

IncrementalSweeper * JSC::Heap::sweeper ( )

◆ sweeper() [2/2]

JS_EXPORT_PRIVATE IncrementalSweeper* JSC::Heap::sweeper ( )

◆ sweepSynchronously() [1/2]

void JSC::Heap::sweepSynchronously ( )

◆ sweepSynchronously() [2/2]

JS_EXPORT_PRIVATE void JSC::Heap::sweepSynchronously ( )

◆ testAndSetMarked() [1/2]

ALWAYS_INLINE bool JSC::Heap::testAndSetMarked ( HeapVersion  markingVersion,
const void rawCell 
)
static

◆ testAndSetMarked() [2/2]

static bool JSC::Heap::testAndSetMarked ( HeapVersion  ,
const void  
)
static

◆ unprotect() [1/2]

JS_EXPORT_PRIVATE bool JSC::Heap::unprotect ( JSValue  )

◆ unprotect() [2/2]

bool JSC::Heap::unprotect ( JSValue  k)

◆ unregisterWeakGCMap() [1/2]

void JSC::Heap::unregisterWeakGCMap ( void weakGCMap)

◆ unregisterWeakGCMap() [2/2]

JS_EXPORT_PRIVATE void JSC::Heap::unregisterWeakGCMap ( void weakGCMap)

◆ vm() [1/2]

VM* JSC::Heap::vm ( ) const

◆ vm() [2/2]

ALWAYS_INLINE VM * JSC::Heap::vm ( ) const

◆ willStartIterating() [1/2]

void JSC::Heap::willStartIterating ( )

◆ willStartIterating() [2/2]

void JSC::Heap::willStartIterating ( )

◆ writeBarrier() [1/6]

void JSC::Heap::writeBarrier ( const JSCell from)
inline

◆ writeBarrier() [2/6]

void JSC::Heap::writeBarrier ( const JSCell from)

◆ writeBarrier() [3/6]

void JSC::Heap::writeBarrier ( const JSCell from,
JSValue  to 
)
inline

◆ writeBarrier() [4/6]

void JSC::Heap::writeBarrier ( const JSCell from,
JSValue  to 
)

◆ writeBarrier() [5/6]

void JSC::Heap::writeBarrier ( const JSCell from,
JSCell to 
)
inline

◆ writeBarrier() [6/6]

void JSC::Heap::writeBarrier ( const JSCell from,
JSCell to 
)

◆ writeBarrierSlowPath() [1/2]

JS_EXPORT_PRIVATE void JSC::Heap::writeBarrierSlowPath ( const JSCell from)

◆ writeBarrierSlowPath() [2/2]

void JSC::Heap::writeBarrierSlowPath ( const JSCell from)

◆ writeBarrierWithoutFence() [1/2]

void JSC::Heap::writeBarrierWithoutFence ( const JSCell from)
inline

◆ writeBarrierWithoutFence() [2/2]

void JSC::Heap::writeBarrierWithoutFence ( const JSCell from)

Friends And Related Function Documentation

◆ AllocatingScope

◆ CodeBlock

CodeBlock
friend

◆ CollectingScope

◆ DeferGC

DeferGC
friend

◆ DeferGCForAWhile

◆ DFG::SpeculativeJIT

DFG::SpeculativeJIT
friend

◆ GCAwareJITStubRoutine

GCAwareJITStubRoutine
friend

◆ GCLogging

GCLogging
friend

◆ GCThread

GCThread
friend

◆ HandleSet

HandleSet
friend

◆ HeapStatistics

HeapStatistics
friend

◆ HeapUtil

HeapUtil
friend

◆ HeapVerifier

HeapVerifier
friend

◆ IncrementalSweeper

◆ JIT

JIT
friend

◆ JITStubRoutine

JITStubRoutine
friend

◆ LLIntOffsetsExtractor

◆ MarkedAllocator

◆ MarkedBlock

MarkedBlock
friend

◆ MarkedSpace

MarkedSpace
friend

◆ RunningScope

RunningScope
friend

◆ SlotVisitor

SlotVisitor
friend

◆ SpaceTimeMutatorScheduler

◆ StochasticSpaceTimeMutatorScheduler

◆ SweepingScope

SweepingScope
friend

◆ Thread

Thread
friend

◆ VM

VM
friend

◆ WeakSet

WeakSet
friend

Member Data Documentation

◆ s_timeCheckResolution

static const unsigned JSC::Heap::s_timeCheckResolution = 16
static

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