@awayfl/avm2
Version:
Virtual machine for executing AS3 code
65 lines (63 loc) • 4.93 kB
text/typescript
/*
* +--------------------------+
* | Base Prototype |
* +--------------------------+
* |- axHasPropertyInternal |
* |- axHasProperty | +-------------------+
* |- axSetProperty | +-----#| objectPrototype |
* |- axGetProperty | | +-------------------+
* |- axSetPublicProperty | | | - sec |
* |- axGetSlot |<----+ +-------------------+
* |- axSetSlot | |
* | … | |
* | | | +-------------------+
* | | +-----#| objectPrototype |
* | | +-------------------+
* +--------------------------+ | - sec |
* +-------------------+
* ^
* |
* |
* #
* +-----------------+ +------------+
* +-#| Class Object |----------------------->| tPrototype |<-----------------<--------------------+
* | +-----------------+ +------------+ | |
* | ^ | |
* | | | |
* | |--------+ | |
* | | | # #
* | +------------+ | | +-----------------+ +-----------------+
* | | - traits | # | | Number | | Uint |
* | +-----------------+ +------------+ +------------+ | +-----------------+ +-----------------+
* +-#| Class Class |--->| tPrototype |#---->| dPrototype | | | - value | | - value |
* | +-----------------+ +------------+ +------------+ | +-----------------+ +-----------------+
* | ^ |
* | | | +-----------------+ +-----------------+
* +--------------------------------+----------------------------+-----#| Boolean | | Array |
* | | +-----------------+ +-----------------+
* | | | - value | | - value |
* | +-----------------+ +------------+ +------------+ | +-----------------+ +-----------------+
* +-#| Class A |--->| tPrototype |#---->| dPrototype |#-+
* | +-----------------+ +------------+ +------------+ +-----------------+ +-----------------+
* | | - traits |--+ ^ | Int | | Function |
* | +------------+ | | +-----------------+ +-----------------+
* | ^ | | | - value | | - value |
* | | | +--------+ +-----------------+ +-----------------+
* | # | |
* | +------------+ | +------------+ | +-----------------+
* | | Object A | +-->| Traits | | | String |
* | +------------+ +------------+ | +-----------------+
* | | | - value |
* | | +-----------------+
* | |
* | |
* | |
* | |
* | |
* | +-----------------+ +------------+ +------------+ |
* +#|Class B extends A|---->| tPrototype |#---->| dPrototype |#-+
* +-----------------+ +------------+ +------------+
* | - traits |
* +------------+
*
*/