Gnash
0.8.11dev
|
Class describing a static property. More...
#include <AbcBlock.h>
Public Types | |
enum | Kind { KIND_SLOT = 0, KIND_CONST = 6, KIND_METHOD = 1, KIND_GETTER = 2, KIND_SETTER = 3, KIND_CLASS = 4, KIND_FUNCTION = 5 } |
Public Member Functions | |
Trait () | |
bool | read (SWFStream *in, AbcBlock *block) |
Read an AS3 'trait'. More... | |
bool | finalize (AbcBlock *block, abc::Class *cl, bool do_static) |
bool | finalize_mbody (AbcBlock *block, Method *m) |
void | set_target (abc::Class *cl, bool do_static) |
void | set_target (Method *m) |
bool | finalize (AbcBlock *block) |
Friends | |
class | AbcBlock |
Class describing a static property.
Traits are non-dynamic properties. That is, they are not deletable or modifiable in certain ways through ActionScript. They exist for reasons of performance. A property lookup on an object always checks the Traits before dynamic properties. Traits can belong to Methods, Classes, and Scripts. Classes have both instance and Class traits. TODO: Traits currently need finalization. This performs two tasks. At least one, and possibly both, are wrong:
|
inline |
bool gnash::abc::Trait::finalize | ( | AbcBlock * | block, |
abc::Class * | cl, | ||
bool | do_static | ||
) |
References _, gnash::abc::Class::addGetter(), gnash::abc::Class::addMemberScript(), gnash::abc::Class::addMethod(), gnash::abc::Class::addSetter(), gnash::abc::Class::addSlotFunction(), gnash::abc::Class::addValue(), gnash::abc::Class::getName(), KIND_CLASS, KIND_CONST, KIND_FUNCTION, KIND_GETTER, KIND_METHOD, KIND_SETTER, KIND_SLOT, gnash::abc::AbcBlock::locateClass(), gnash::log_abc(), gnash::log_error(), and gnash::string_table::value().
Referenced by gnash::abc::Method::initTraits(), and gnash::abc::Class::initTraits().
|
inline |
References _, gnash::abc::Method::addGetter(), gnash::abc::Method::addMemberScript(), gnash::abc::Method::addMethod(), gnash::abc::Method::addSetter(), gnash::abc::Method::addSlotFunction(), gnash::abc::Method::addValue(), KIND_CLASS, KIND_CONST, KIND_FUNCTION, KIND_GETTER, KIND_METHOD, KIND_SETTER, KIND_SLOT, gnash::abc::AbcBlock::locateClass(), gnash::log_abc(), and gnash::log_error().
Read an AS3 'trait'.
References _, gnash::key::c, gnash::abc::MultiName::getABCName(), gnash::key::i, KIND_CLASS, KIND_CONST, KIND_FUNCTION, KIND_GETTER, KIND_METHOD, KIND_SETTER, KIND_SLOT, gnash::log_abc(), gnash::log_error(), name, gnash::SWFStream::read_u8(), gnash::SWFStream::read_V32(), gnash::SWFStream::skip_V32(), and gnash::string_table::value().
Referenced by gnash::abc::AbcBlock::locateClass().
|
inline |
Referenced by gnash::abc::AbcBlock::locateClass().
|
inline |
References gnash::key::m.
|
friend |