Gnash
0.8.11dev
|
The implementation of a 'Class' type in ActionScript 3. More...
#include <as_class.h>
Public Member Functions | |
as_class (Global_as &gl, Class *c) | |
virtual | ~as_class () |
virtual const std::string & | stringValue () const |
Return the string representation for this object. More... | |
![]() | |
DSOTEXPORT | as_object (const Global_as &global) |
Construct an ActionScript object with no prototype associated. More... | |
virtual | ~as_object () |
The as_object dtor does nothing special. More... | |
virtual as_value | call (const fn_call &fn) |
Function dispatch. More... | |
Property * | findProperty (const ObjectURI &uri, as_object **owner=nullptr) |
Find a property, scanning the inheritance chain. More... | |
VM & | vm () const |
Return a reference to this as_object's global object. More... | |
void | dump_members () |
Dump all properties using log_debug. More... | |
virtual bool | set_member (const ObjectURI &uri, const as_value &val, bool ifFound=false) |
Set a member value. More... | |
void | init_member (const std::string &name, const as_value &val, int flags=DefaultFlags) |
Initialize a member value by string. More... | |
void | init_member (const ObjectURI &uri, const as_value &val, int flags=DefaultFlags) |
Initialize a member value by key. More... | |
void | init_property (const std::string &key, as_function &getter, as_function &setter, int flags=DefaultFlags) |
Initialize a getter/setter property by name. More... | |
void | init_property (const std::string &key, as_c_function_ptr getter, as_c_function_ptr setter, int flags=DefaultFlags) |
Initialize a getter/setter property by name. More... | |
void | init_property (const ObjectURI &uri, as_function &getter, as_function &setter, int flags=DefaultFlags) |
Initialize a getter/setter property by key. More... | |
void | init_property (const ObjectURI &uri, as_c_function_ptr getter, as_c_function_ptr setter, int flags=DefaultFlags) |
Initialize a getter/setter property by key. More... | |
bool | init_destructive_property (const ObjectURI &uri, as_function &getter, int flags=PropFlags::dontEnum) |
Initialize a destructive getter property. More... | |
bool | init_destructive_property (const ObjectURI &uri, as_c_function_ptr getter, int flags=PropFlags::dontEnum) |
Initialize a destructive getter property. More... | |
void | init_readonly_property (const std::string &key, as_function &getter, int flags=DefaultFlags) |
Use this method for read-only properties. More... | |
void | init_readonly_property (const std::string &key, as_c_function_ptr getter, int flags=DefaultFlags) |
Use this method for read-only properties. More... | |
bool | watch (const ObjectURI &uri, as_function &trig, const as_value &cust) |
Add a watch trigger, overriding any other defined for same name. More... | |
bool | unwatch (const ObjectURI &uri) |
Remove a watch trigger. More... | |
virtual bool | get_member (const ObjectURI &uri, as_value *val) |
Get a property by name if it exists. More... | |
virtual as_object * | get_super (const ObjectURI &fname) |
as_object * | get_super () |
DSOTEXPORT std::pair< bool, bool > | delProperty (const ObjectURI &uri) |
Delete a property of this object, unless protected from deletion. More... | |
Property * | getOwnProperty (const ObjectURI &uri) |
Get this object's own named property, if existing. More... | |
void | set_member_flags (const ObjectURI &uri, int setTrue, int setFalse=0) |
Set member flags (probably used by ASSetPropFlags) More... | |
virtual as_function * | to_function () |
Cast to a as_function, or return NULL. More... | |
virtual bool | isSuper () const |
Return true if this is a 'super' object. More... | |
void | addInterface (as_object *ctor) |
Add an interface to the list of interfaces. More... | |
bool | instanceOf (as_object *ctor) |
Check whether this object is an instance of the given constructor. More... | |
bool | prototypeOf (as_object &instance) |
Check whether this object is in another object's inheritance chain. More... | |
void | setPropFlags (const as_value &props, int set_false, int set_true) |
Set property flags. More... | |
void | copyProperties (const as_object &o) |
Copy properties from the given object. More... | |
void | clearProperties () |
Drop all properties from this object. More... | |
template<typename T > | |
void | visitProperties (PropertyVisitor &visitor) const |
Visit the properties of this object by key/as_value pairs. More... | |
void | visitKeys (KeyVisitor &visitor) const |
Visit all visible property identifiers. More... | |
void | add_property (const std::string &key, as_function &getter, as_function *setter) |
Add a getter/setter property if no member already has that name. More... | |
as_object * | get_prototype () const |
Return this object's proto member. More... | |
void | set_prototype (const as_value &proto) |
Set this object's proto member. More... | |
void | setRelay (Relay *p) |
Set the as_object's Relay object. More... | |
Relay * | relay () const |
Access the as_object's Relay object. More... | |
bool | array () const |
Return true if this object should be treated as an array. More... | |
void | setArray (bool array=true) |
Set whether this object should be treated as an array. More... | |
DisplayObject * | displayObject () const |
Return the DisplayObject associated with this object. More... | |
void | setDisplayObject (DisplayObject *d) |
Set the DisplayObject associated with this as_object. More... | |
![]() | |
GcResource (GC &gc) | |
Create a Garbage-collected resource associated with a GC. More... | |
void | setReachable () const |
Mark this resource as being reachable. More... | |
bool | isReachable () const |
Return true if this object is marked as reachable. More... | |
void | clearReachable () const |
Clear the reachable flag. More... | |
Additional Inherited Members | |
![]() | |
static const int | DefaultFlags |
The most common flags for built-in properties. More... | |
![]() | |
as_object (VM &vm) | |
Construct an as_object associated with a VM. More... | |
virtual void | markReachableResources () const |
Mark all reachable resources, override from GcResource. More... | |
![]() | |
virtual | ~GcResource () |
Delete this resource. More... | |
The implementation of a 'Class' type in ActionScript 3.
A Class is a first-class type, i.e. it can be referenced itself in ActionScript. Although Classes are nominally 'dynamic' types, there seems to be no way to alter them in ActionScript, or to create them dynamically. In order to reference them, the Class must already be constructed and known in the execution scope, then retrieved by name. Accordingly, all as_class objects have an associated Class, which is its static definition. TODO: see how to implement "[class Class]", the prototype of all classes.
|
inlinevirtual |
|
virtual |
Return the string representation for this object.
This is dependent on the VM version and the type of object, function, or class.
Reimplemented from gnash::as_object.