webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Member Functions | Static Public Member Functions | List of all members
JSC::Butterfly Class Reference

#include <Butterfly.h>

Public Member Functions

char * pointer ()
 
IndexingHeaderindexingHeader ()
 
const IndexingHeaderindexingHeader () const
 
PropertyStorage propertyStorage ()
 
ConstPropertyStorage propertyStorage () const
 
uint32_t publicLength ()
 
uint32_t vectorLength ()
 
void setPublicLength (uint32_t value)
 
void setVectorLength (uint32_t value)
 
template<typename T >
TindexingPayload ()
 
ArrayStoragearrayStorage ()
 
ContiguousJSValues contiguousInt32 ()
 
ContiguousDoubles contiguousDouble ()
 
ContiguousJSValues contiguous ()
 
voidbase (size_t preCapacity, size_t propertyCapacity)
 
voidbase (Structure *)
 
ButterflygrowArrayRight (VM &, JSCell *intendedOwner, Structure *oldStructure, size_t propertyCapacity, bool hadIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newIndexingPayloadSizeInBytes)
 
ButterflygrowArrayRight (VM &, JSCell *intendedOwner, Structure *, size_t newIndexingPayloadSizeInBytes)
 
ButterflyresizeArray (VM &, JSCell *intendedOwner, size_t propertyCapacity, bool oldHasIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newPreCapacity, bool newHasIndexingHeader, size_t newIndexingPayloadSizeInBytes)
 
ButterflyresizeArray (VM &, JSCell *intendedOwner, Structure *, size_t newPreCapacity, size_t newIndexingPayloadSizeInBytes)
 
Butterflyunshift (Structure *, size_t numberOfSlots)
 
Butterflyshift (Structure *, size_t numberOfSlots)
 
char * pointer ()
 
IndexingHeaderindexingHeader ()
 
const IndexingHeaderindexingHeader () const
 
PropertyStorage propertyStorage ()
 
ConstPropertyStorage propertyStorage () const
 
uint32_t publicLength ()
 
uint32_t vectorLength ()
 
void setPublicLength (uint32_t value)
 
void setVectorLength (uint32_t value)
 
template<typename T >
TindexingPayload ()
 
ArrayStoragearrayStorage ()
 
ContiguousJSValues contiguousInt32 ()
 
ContiguousDoubles contiguousDouble ()
 
ContiguousJSValues contiguous ()
 
voidbase (size_t preCapacity, size_t propertyCapacity)
 
voidbase (Structure *)
 
ButterflygrowArrayRight (VM &, JSCell *intendedOwner, Structure *oldStructure, size_t propertyCapacity, bool hadIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newIndexingPayloadSizeInBytes)
 
ButterflygrowArrayRight (VM &, JSCell *intendedOwner, Structure *, size_t newIndexingPayloadSizeInBytes)
 
ButterflyresizeArray (VM &, JSCell *intendedOwner, size_t propertyCapacity, bool oldHasIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newPreCapacity, bool newHasIndexingHeader, size_t newIndexingPayloadSizeInBytes)
 
ButterflyresizeArray (VM &, JSCell *intendedOwner, Structure *, size_t newPreCapacity, size_t newIndexingPayloadSizeInBytes)
 
Butterflyunshift (Structure *, size_t numberOfSlots)
 
Butterflyshift (Structure *, size_t numberOfSlots)
 

Static Public Member Functions

static size_t totalSize (size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes)
 
static ButterflyfromBase (void *base, size_t preCapacity, size_t propertyCapacity)
 
static ALWAYS_INLINE unsigned availableContiguousVectorLength (size_t propertyCapacity, unsigned vectorLength)
 
static unsigned availableContiguousVectorLength (Structure *, unsigned vectorLength)
 
static ALWAYS_INLINE unsigned optimalContiguousVectorLength (size_t propertyCapacity, unsigned vectorLength)
 
static unsigned optimalContiguousVectorLength (Structure *, unsigned vectorLength)
 
static ButterflyfromPointer (char *ptr)
 
static ptrdiff_t offsetOfIndexingHeader ()
 
static ptrdiff_t offsetOfArrayBuffer ()
 
static ptrdiff_t offsetOfPublicLength ()
 
static ptrdiff_t offsetOfVectorLength ()
 
static ButterflycreateUninitialized (VM &, JSCell *intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes)
 
static ButterflytryCreate (VM &vm, JSCell *, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader &indexingHeader, size_t indexingPayloadSizeInBytes)
 
static Butterflycreate (VM &, JSCell *intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader &, size_t indexingPayloadSizeInBytes)
 
static Butterflycreate (VM &, JSCell *intendedOwner, Structure *)
 
static ButterflyfromContiguous (WriteBarrier< Unknown > *contiguous)
 
static ButterflyfromContiguous (double *contiguous)
 
static ptrdiff_t offsetOfPropertyStorage ()
 
static int indexOfPropertyStorage ()
 
static ButterflycreateOrGrowArrayRight (Butterfly *, VM &, JSCell *intendedOwner, Structure *oldStructure, size_t propertyCapacity, bool hadIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newIndexingPayloadSizeInBytes)
 
static ButterflycreateOrGrowPropertyStorage (Butterfly *, VM &, JSCell *intendedOwner, Structure *, size_t oldPropertyCapacity, size_t newPropertyCapacity)
 
static size_t totalSize (size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes)
 
static ButterflyfromBase (void *base, size_t preCapacity, size_t propertyCapacity)
 
static ALWAYS_INLINE unsigned availableContiguousVectorLength (size_t propertyCapacity, unsigned vectorLength)
 
static unsigned availableContiguousVectorLength (Structure *, unsigned vectorLength)
 
static ALWAYS_INLINE unsigned optimalContiguousVectorLength (size_t propertyCapacity, unsigned vectorLength)
 
static unsigned optimalContiguousVectorLength (Structure *, unsigned vectorLength)
 
static ButterflyfromPointer (char *ptr)
 
static ptrdiff_t offsetOfIndexingHeader ()
 
static ptrdiff_t offsetOfArrayBuffer ()
 
static ptrdiff_t offsetOfPublicLength ()
 
static ptrdiff_t offsetOfVectorLength ()
 
static ButterflycreateUninitialized (VM &, JSCell *intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes)
 
static ButterflytryCreate (VM &vm, JSCell *, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader &indexingHeader, size_t indexingPayloadSizeInBytes)
 
static Butterflycreate (VM &, JSCell *intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader &, size_t indexingPayloadSizeInBytes)
 
static Butterflycreate (VM &, JSCell *intendedOwner, Structure *)
 
static ButterflyfromContiguous (WriteBarrier< Unknown > *contiguous)
 
static ButterflyfromContiguous (double *contiguous)
 
static ptrdiff_t offsetOfPropertyStorage ()
 
static int indexOfPropertyStorage ()
 
static ButterflycreateOrGrowArrayRight (Butterfly *, VM &, JSCell *intendedOwner, Structure *oldStructure, size_t propertyCapacity, bool hadIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newIndexingPayloadSizeInBytes)
 
static ButterflycreateOrGrowPropertyStorage (Butterfly *, VM &, JSCell *intendedOwner, Structure *, size_t oldPropertyCapacity, size_t newPropertyCapacity)
 

Member Function Documentation

◆ arrayStorage() [1/2]

ArrayStorage* JSC::Butterfly::arrayStorage ( )
inline

◆ arrayStorage() [2/2]

ArrayStorage* JSC::Butterfly::arrayStorage ( )
inline

◆ availableContiguousVectorLength() [1/4]

static ALWAYS_INLINE unsigned JSC::Butterfly::availableContiguousVectorLength ( size_t  propertyCapacity,
unsigned  vectorLength 
)
static

◆ availableContiguousVectorLength() [2/4]

ALWAYS_INLINE unsigned JSC::Butterfly::availableContiguousVectorLength ( size_t  propertyCapacity,
unsigned  vectorLength 
)
static

◆ availableContiguousVectorLength() [3/4]

ALWAYS_INLINE unsigned JSC::Butterfly::availableContiguousVectorLength ( Structure structure,
unsigned  vectorLength 
)
static

◆ availableContiguousVectorLength() [4/4]

static unsigned JSC::Butterfly::availableContiguousVectorLength ( Structure ,
unsigned  vectorLength 
)
static

◆ base() [1/4]

void* JSC::Butterfly::base ( size_t  preCapacity,
size_t  propertyCapacity 
)
inline

◆ base() [2/4]

void* JSC::Butterfly::base ( size_t  preCapacity,
size_t  propertyCapacity 
)
inline

◆ base() [3/4]

void * JSC::Butterfly::base ( Structure structure)
inline

◆ base() [4/4]

void* JSC::Butterfly::base ( Structure )

◆ contiguous() [1/2]

ContiguousJSValues JSC::Butterfly::contiguous ( )
inline

◆ contiguous() [2/2]

ContiguousJSValues JSC::Butterfly::contiguous ( )
inline

◆ contiguousDouble() [1/2]

ContiguousDoubles JSC::Butterfly::contiguousDouble ( )
inline

◆ contiguousDouble() [2/2]

ContiguousDoubles JSC::Butterfly::contiguousDouble ( )
inline

◆ contiguousInt32() [1/2]

ContiguousJSValues JSC::Butterfly::contiguousInt32 ( )
inline

◆ contiguousInt32() [2/2]

ContiguousJSValues JSC::Butterfly::contiguousInt32 ( )
inline

◆ create() [1/4]

Butterfly * JSC::Butterfly::create ( VM vm,
JSCell intendedOwner,
size_t  preCapacity,
size_t  propertyCapacity,
bool  hasIndexingHeader,
const IndexingHeader indexingHeader,
size_t  indexingPayloadSizeInBytes 
)
inlinestatic

◆ create() [2/4]

static Butterfly* JSC::Butterfly::create ( VM ,
JSCell intendedOwner,
size_t  preCapacity,
size_t  propertyCapacity,
bool  hasIndexingHeader,
const IndexingHeader ,
size_t  indexingPayloadSizeInBytes 
)
static

◆ create() [3/4]

Butterfly * JSC::Butterfly::create ( VM vm,
JSCell intendedOwner,
Structure structure 
)
inlinestatic

◆ create() [4/4]

static Butterfly* JSC::Butterfly::create ( VM ,
JSCell intendedOwner,
Structure  
)
static

◆ createOrGrowArrayRight() [1/2]

Butterfly * JSC::Butterfly::createOrGrowArrayRight ( Butterfly oldButterfly,
VM vm,
JSCell intendedOwner,
Structure oldStructure,
size_t  propertyCapacity,
bool  hadIndexingHeader,
size_t  oldIndexingPayloadSizeInBytes,
size_t  newIndexingPayloadSizeInBytes 
)
inlinestatic

◆ createOrGrowArrayRight() [2/2]

static Butterfly* JSC::Butterfly::createOrGrowArrayRight ( Butterfly ,
VM ,
JSCell intendedOwner,
Structure oldStructure,
size_t  propertyCapacity,
bool  hadIndexingHeader,
size_t  oldIndexingPayloadSizeInBytes,
size_t  newIndexingPayloadSizeInBytes 
)
static

◆ createOrGrowPropertyStorage() [1/2]

Butterfly * JSC::Butterfly::createOrGrowPropertyStorage ( Butterfly oldButterfly,
VM vm,
JSCell intendedOwner,
Structure structure,
size_t  oldPropertyCapacity,
size_t  newPropertyCapacity 
)
inlinestatic

◆ createOrGrowPropertyStorage() [2/2]

static Butterfly* JSC::Butterfly::createOrGrowPropertyStorage ( Butterfly ,
VM ,
JSCell intendedOwner,
Structure ,
size_t  oldPropertyCapacity,
size_t  newPropertyCapacity 
)
static

◆ createUninitialized() [1/2]

static Butterfly* JSC::Butterfly::createUninitialized ( VM ,
JSCell intendedOwner,
size_t  preCapacity,
size_t  propertyCapacity,
bool  hasIndexingHeader,
size_t  indexingPayloadSizeInBytes 
)
static

◆ createUninitialized() [2/2]

Butterfly * JSC::Butterfly::createUninitialized ( VM vm,
JSCell intendedOwner,
size_t  preCapacity,
size_t  propertyCapacity,
bool  hasIndexingHeader,
size_t  indexingPayloadSizeInBytes 
)
inlinestatic

◆ fromBase() [1/2]

static Butterfly* JSC::Butterfly::fromBase ( void base,
size_t  preCapacity,
size_t  propertyCapacity 
)
inlinestatic

◆ fromBase() [2/2]

static Butterfly* JSC::Butterfly::fromBase ( void base,
size_t  preCapacity,
size_t  propertyCapacity 
)
inlinestatic

◆ fromContiguous() [1/4]

static Butterfly* JSC::Butterfly::fromContiguous ( WriteBarrier< Unknown > *  contiguous)
inlinestatic

◆ fromContiguous() [2/4]

static Butterfly* JSC::Butterfly::fromContiguous ( WriteBarrier< Unknown > *  contiguous)
inlinestatic

◆ fromContiguous() [3/4]

static Butterfly* JSC::Butterfly::fromContiguous ( double *  contiguous)
inlinestatic

◆ fromContiguous() [4/4]

static Butterfly* JSC::Butterfly::fromContiguous ( double *  contiguous)
inlinestatic

◆ fromPointer() [1/2]

static Butterfly* JSC::Butterfly::fromPointer ( char *  ptr)
inlinestatic

◆ fromPointer() [2/2]

static Butterfly* JSC::Butterfly::fromPointer ( char *  ptr)
inlinestatic

◆ growArrayRight() [1/4]

Butterfly * JSC::Butterfly::growArrayRight ( VM vm,
JSCell intendedOwner,
Structure oldStructure,
size_t  propertyCapacity,
bool  hadIndexingHeader,
size_t  oldIndexingPayloadSizeInBytes,
size_t  newIndexingPayloadSizeInBytes 
)
inline

◆ growArrayRight() [2/4]

Butterfly* JSC::Butterfly::growArrayRight ( VM ,
JSCell intendedOwner,
Structure oldStructure,
size_t  propertyCapacity,
bool  hadIndexingHeader,
size_t  oldIndexingPayloadSizeInBytes,
size_t  newIndexingPayloadSizeInBytes 
)

◆ growArrayRight() [3/4]

Butterfly * JSC::Butterfly::growArrayRight ( VM vm,
JSCell intendedOwner,
Structure oldStructure,
size_t  newIndexingPayloadSizeInBytes 
)
inline

◆ growArrayRight() [4/4]

Butterfly* JSC::Butterfly::growArrayRight ( VM ,
JSCell intendedOwner,
Structure ,
size_t  newIndexingPayloadSizeInBytes 
)

◆ indexingHeader() [1/4]

IndexingHeader* JSC::Butterfly::indexingHeader ( )
inline

◆ indexingHeader() [2/4]

IndexingHeader* JSC::Butterfly::indexingHeader ( )
inline

◆ indexingHeader() [3/4]

const IndexingHeader* JSC::Butterfly::indexingHeader ( ) const
inline

◆ indexingHeader() [4/4]

const IndexingHeader* JSC::Butterfly::indexingHeader ( ) const
inline

◆ indexingPayload() [1/2]

template<typename T >
T* JSC::Butterfly::indexingPayload ( )
inline

◆ indexingPayload() [2/2]

template<typename T >
T* JSC::Butterfly::indexingPayload ( )
inline

◆ indexOfPropertyStorage() [1/2]

static int JSC::Butterfly::indexOfPropertyStorage ( )
inlinestatic

◆ indexOfPropertyStorage() [2/2]

static int JSC::Butterfly::indexOfPropertyStorage ( )
inlinestatic

◆ offsetOfArrayBuffer() [1/2]

static ptrdiff_t JSC::Butterfly::offsetOfArrayBuffer ( )
inlinestatic

◆ offsetOfArrayBuffer() [2/2]

static ptrdiff_t JSC::Butterfly::offsetOfArrayBuffer ( )
inlinestatic

◆ offsetOfIndexingHeader() [1/2]

static ptrdiff_t JSC::Butterfly::offsetOfIndexingHeader ( )
inlinestatic

◆ offsetOfIndexingHeader() [2/2]

static ptrdiff_t JSC::Butterfly::offsetOfIndexingHeader ( )
inlinestatic

◆ offsetOfPropertyStorage() [1/2]

static ptrdiff_t JSC::Butterfly::offsetOfPropertyStorage ( )
inlinestatic

◆ offsetOfPropertyStorage() [2/2]

static ptrdiff_t JSC::Butterfly::offsetOfPropertyStorage ( )
inlinestatic

◆ offsetOfPublicLength() [1/2]

static ptrdiff_t JSC::Butterfly::offsetOfPublicLength ( )
inlinestatic

◆ offsetOfPublicLength() [2/2]

static ptrdiff_t JSC::Butterfly::offsetOfPublicLength ( )
inlinestatic

◆ offsetOfVectorLength() [1/2]

static ptrdiff_t JSC::Butterfly::offsetOfVectorLength ( )
inlinestatic

◆ offsetOfVectorLength() [2/2]

static ptrdiff_t JSC::Butterfly::offsetOfVectorLength ( )
inlinestatic

◆ optimalContiguousVectorLength() [1/4]

ALWAYS_INLINE unsigned JSC::Butterfly::optimalContiguousVectorLength ( size_t  propertyCapacity,
unsigned  vectorLength 
)
static

◆ optimalContiguousVectorLength() [2/4]

static ALWAYS_INLINE unsigned JSC::Butterfly::optimalContiguousVectorLength ( size_t  propertyCapacity,
unsigned  vectorLength 
)
static

◆ optimalContiguousVectorLength() [3/4]

static unsigned JSC::Butterfly::optimalContiguousVectorLength ( Structure ,
unsigned  vectorLength 
)
static

◆ optimalContiguousVectorLength() [4/4]

ALWAYS_INLINE unsigned JSC::Butterfly::optimalContiguousVectorLength ( Structure structure,
unsigned  vectorLength 
)
static

◆ pointer() [1/2]

char* JSC::Butterfly::pointer ( )
inline

◆ pointer() [2/2]

char* JSC::Butterfly::pointer ( )
inline

◆ propertyStorage() [1/4]

PropertyStorage JSC::Butterfly::propertyStorage ( )
inline

◆ propertyStorage() [2/4]

PropertyStorage JSC::Butterfly::propertyStorage ( )
inline

◆ propertyStorage() [3/4]

ConstPropertyStorage JSC::Butterfly::propertyStorage ( ) const
inline

◆ propertyStorage() [4/4]

ConstPropertyStorage JSC::Butterfly::propertyStorage ( ) const
inline

◆ publicLength() [1/2]

uint32_t JSC::Butterfly::publicLength ( )
inline

◆ publicLength() [2/2]

uint32_t JSC::Butterfly::publicLength ( )
inline

◆ resizeArray() [1/4]

Butterfly * JSC::Butterfly::resizeArray ( VM vm,
JSCell intendedOwner,
size_t  propertyCapacity,
bool  oldHasIndexingHeader,
size_t  oldIndexingPayloadSizeInBytes,
size_t  newPreCapacity,
bool  newHasIndexingHeader,
size_t  newIndexingPayloadSizeInBytes 
)
inline

◆ resizeArray() [2/4]

Butterfly* JSC::Butterfly::resizeArray ( VM ,
JSCell intendedOwner,
size_t  propertyCapacity,
bool  oldHasIndexingHeader,
size_t  oldIndexingPayloadSizeInBytes,
size_t  newPreCapacity,
bool  newHasIndexingHeader,
size_t  newIndexingPayloadSizeInBytes 
)

◆ resizeArray() [3/4]

Butterfly * JSC::Butterfly::resizeArray ( VM vm,
JSCell intendedOwner,
Structure structure,
size_t  newPreCapacity,
size_t  newIndexingPayloadSizeInBytes 
)
inline

◆ resizeArray() [4/4]

Butterfly* JSC::Butterfly::resizeArray ( VM ,
JSCell intendedOwner,
Structure ,
size_t  newPreCapacity,
size_t  newIndexingPayloadSizeInBytes 
)

◆ setPublicLength() [1/2]

void JSC::Butterfly::setPublicLength ( uint32_t  value)
inline

◆ setPublicLength() [2/2]

void JSC::Butterfly::setPublicLength ( uint32_t  value)
inline

◆ setVectorLength() [1/2]

void JSC::Butterfly::setVectorLength ( uint32_t  value)
inline

◆ setVectorLength() [2/2]

void JSC::Butterfly::setVectorLength ( uint32_t  value)
inline

◆ shift() [1/2]

Butterfly * JSC::Butterfly::shift ( Structure structure,
size_t  numberOfSlots 
)
inline

◆ shift() [2/2]

Butterfly* JSC::Butterfly::shift ( Structure ,
size_t  numberOfSlots 
)

◆ totalSize() [1/2]

static size_t JSC::Butterfly::totalSize ( size_t  preCapacity,
size_t  propertyCapacity,
bool  hasIndexingHeader,
size_t  indexingPayloadSizeInBytes 
)
inlinestatic

◆ totalSize() [2/2]

static size_t JSC::Butterfly::totalSize ( size_t  preCapacity,
size_t  propertyCapacity,
bool  hasIndexingHeader,
size_t  indexingPayloadSizeInBytes 
)
inlinestatic

◆ tryCreate() [1/2]

static Butterfly* JSC::Butterfly::tryCreate ( VM vm,
JSCell ,
size_t  preCapacity,
size_t  propertyCapacity,
bool  hasIndexingHeader,
const IndexingHeader indexingHeader,
size_t  indexingPayloadSizeInBytes 
)
static

◆ tryCreate() [2/2]

Butterfly * JSC::Butterfly::tryCreate ( VM vm,
JSCell ,
size_t  preCapacity,
size_t  propertyCapacity,
bool  hasIndexingHeader,
const IndexingHeader indexingHeader,
size_t  indexingPayloadSizeInBytes 
)
inlinestatic

◆ unshift() [1/2]

Butterfly* JSC::Butterfly::unshift ( Structure ,
size_t  numberOfSlots 
)

◆ unshift() [2/2]

Butterfly * JSC::Butterfly::unshift ( Structure structure,
size_t  numberOfSlots 
)
inline

◆ vectorLength() [1/2]

uint32_t JSC::Butterfly::vectorLength ( )
inline

◆ vectorLength() [2/2]

uint32_t JSC::Butterfly::vectorLength ( )
inline

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