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 ()
 
IndexingHeader * indexingHeader ()
 
const IndexingHeader * indexingHeader () 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 >
T * indexingPayload ()
 
ArrayStorage * arrayStorage ()
 
ContiguousJSValues contiguousInt32 ()
 
ContiguousDoubles contiguousDouble ()
 
ContiguousJSValues contiguous ()
 
void * base (size_t preCapacity, size_t propertyCapacity)
 
void * base (Structure *)
 
Butterfly * growArrayRight (VM &, JSCell *intendedOwner, Structure *oldStructure, size_t propertyCapacity, bool hadIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newIndexingPayloadSizeInBytes)
 
Butterfly * growArrayRight (VM &, JSCell *intendedOwner, Structure *, size_t newIndexingPayloadSizeInBytes)
 
Butterfly * resizeArray (VM &, JSCell *intendedOwner, size_t propertyCapacity, bool oldHasIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newPreCapacity, bool newHasIndexingHeader, size_t newIndexingPayloadSizeInBytes)
 
Butterfly * resizeArray (VM &, JSCell *intendedOwner, Structure *, size_t newPreCapacity, size_t newIndexingPayloadSizeInBytes)
 
Butterfly * unshift (Structure *, size_t numberOfSlots)
 
Butterfly * shift (Structure *, size_t numberOfSlots)
 
char * pointer ()
 
IndexingHeader * indexingHeader ()
 
const IndexingHeader * indexingHeader () 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 >
T * indexingPayload ()
 
ArrayStorage * arrayStorage ()
 
ContiguousJSValues contiguousInt32 ()
 
ContiguousDoubles contiguousDouble ()
 
ContiguousJSValues contiguous ()
 
void * base (size_t preCapacity, size_t propertyCapacity)
 
void * base (Structure *)
 
Butterfly * growArrayRight (VM &, JSCell *intendedOwner, Structure *oldStructure, size_t propertyCapacity, bool hadIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newIndexingPayloadSizeInBytes)
 
Butterfly * growArrayRight (VM &, JSCell *intendedOwner, Structure *, size_t newIndexingPayloadSizeInBytes)
 
Butterfly * resizeArray (VM &, JSCell *intendedOwner, size_t propertyCapacity, bool oldHasIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newPreCapacity, bool newHasIndexingHeader, size_t newIndexingPayloadSizeInBytes)
 
Butterfly * resizeArray (VM &, JSCell *intendedOwner, Structure *, size_t newPreCapacity, size_t newIndexingPayloadSizeInBytes)
 
Butterfly * unshift (Structure *, size_t numberOfSlots)
 
Butterfly * shift (Structure *, size_t numberOfSlots)
 

Static Public Member Functions

static size_t totalSize (size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes)
 
static Butterfly * fromBase (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 Butterfly * fromPointer (char *ptr)
 
static ptrdiff_t offsetOfIndexingHeader ()
 
static ptrdiff_t offsetOfArrayBuffer ()
 
static ptrdiff_t offsetOfPublicLength ()
 
static ptrdiff_t offsetOfVectorLength ()
 
static Butterfly * createUninitialized (VM &, JSCell *intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes)
 
static Butterfly * tryCreate (VM &vm, JSCell *, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader &indexingHeader, size_t indexingPayloadSizeInBytes)
 
static Butterfly * create (VM &, JSCell *intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader &, size_t indexingPayloadSizeInBytes)
 
static Butterfly * create (VM &, JSCell *intendedOwner, Structure *)
 
static Butterfly * fromContiguous (WriteBarrier< Unknown > *contiguous)
 
static Butterfly * fromContiguous (double *contiguous)
 
static ptrdiff_t offsetOfPropertyStorage ()
 
static int indexOfPropertyStorage ()
 
static Butterfly * createOrGrowArrayRight (Butterfly *, VM &, JSCell *intendedOwner, Structure *oldStructure, size_t propertyCapacity, bool hadIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newIndexingPayloadSizeInBytes)
 
static Butterfly * createOrGrowPropertyStorage (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 Butterfly * fromBase (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 Butterfly * fromPointer (char *ptr)
 
static ptrdiff_t offsetOfIndexingHeader ()
 
static ptrdiff_t offsetOfArrayBuffer ()
 
static ptrdiff_t offsetOfPublicLength ()
 
static ptrdiff_t offsetOfVectorLength ()
 
static Butterfly * createUninitialized (VM &, JSCell *intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes)
 
static Butterfly * tryCreate (VM &vm, JSCell *, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader &indexingHeader, size_t indexingPayloadSizeInBytes)
 
static Butterfly * create (VM &, JSCell *intendedOwner, size_t preCapacity, size_t propertyCapacity, bool hasIndexingHeader, const IndexingHeader &, size_t indexingPayloadSizeInBytes)
 
static Butterfly * create (VM &, JSCell *intendedOwner, Structure *)
 
static Butterfly * fromContiguous (WriteBarrier< Unknown > *contiguous)
 
static Butterfly * fromContiguous (double *contiguous)
 
static ptrdiff_t offsetOfPropertyStorage ()
 
static int indexOfPropertyStorage ()
 
static Butterfly * createOrGrowArrayRight (Butterfly *, VM &, JSCell *intendedOwner, Structure *oldStructure, size_t propertyCapacity, bool hadIndexingHeader, size_t oldIndexingPayloadSizeInBytes, size_t newIndexingPayloadSizeInBytes)
 
static Butterfly * createOrGrowPropertyStorage (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: