20 #ifndef GNASH_GLOBAL_H
21 #define GNASH_GLOBAL_H
24 #include <boost/preprocessor/arithmetic/inc.hpp>
25 #include <boost/preprocessor/repetition/enum_params.hpp>
26 #include <boost/preprocessor/repetition/repeat.hpp>
27 #include <boost/preprocessor/repetition/repeat_from_to.hpp>
28 #include <boost/preprocessor/seq/for_each.hpp>
29 #include <boost/preprocessor/facilities/empty.hpp>
30 #include <boost/scoped_ptr.hpp>
91 void loadExtensions();
92 boost::scoped_ptr<Extension> _et;
178 fn_call call(this_ptr, env, args);
185 val = func->call(call);
189 log_aserror(
"Attempt to call a value which is not "
190 "a function (%s)", method);
198 log_aserror(
"%s", e.what());
205 #define FUNC_PARAM(z, n, t) BOOST_PP_COMMA_IF(n) t arg##n
206 #define VALUE_ARG(z, n, t) BOOST_PP_COMMA_IF(n) arg##n
227 #define CALL_METHOD(x, n, t) \
229 callMethod(as_object* obj, const ObjectURI& uri BOOST_PP_COMMA_IF(n)\
230 BOOST_PP_REPEAT(n, FUNC_PARAM, const as_value&)) {\
231 if (!obj) return as_value();\
233 if (!obj->get_member(uri, &func)) return as_value();\
235 BOOST_PP_EXPR_IF(n, (args += BOOST_PP_REPEAT(n, VALUE_ARG, BOOST_PP_EMPTY));)\
236 return invoke(func, as_environment(getVM(*obj)), obj, args);\
An ActionScript type error.
Definition: GnashException.h:160
as_object * toObject(const as_value &v, VM &vm)
Convert an as_value to an object.
Definition: VM.cpp:457
void makeObject(as_object &o) const
Definition: Global_as.cpp:332
Client program's interface to the definition of a movie or sprite.
Definition: movie_definition.h:95
as_function * getClassConstructor(const fn_call &fn, const std::string &s)
Convenience function for finding a class constructor.
Definition: Global_as.h:252
as_value emptyFunction(const fn_call &)
Definition: Global_as.h:259
SWFStream & s
Definition: DefineBitsTag.cpp:73
ActionScript value type.
Definition: as_value.h:95
Global_as & getGlobal(const as_environment &env)
Definition: as_environment.cpp:651
const movie_definition * callerDef
Definition containing caller code. 0 if spontaneous (system event).
Definition: fn_call.h:171
virtual void markReachableResources() const
Mark all reachable resources, override from GcResource.
Definition: Global_as.cpp:228
as_object * createArray()
Construct an Array.
Definition: Global_as.cpp:208
Definition: GnashKey.h:149
The base class for all ActionScript objects.
Definition: as_object.h:161
as_function * createFunction(Global_as::ASFunction function)
Create an ActionScript function.
Definition: Global_as.cpp:160
Definition: GnashKey.h:161
void(* Properties)(as_object &)
Definition: Global_as.h:60
Register all of the ActionScript classes, with their dependencies.
Definition: ClassHierarchy.h:40
A URI for describing as_objects.
Definition: ObjectURI.h:44
as_value(* ASFunction)(const fn_call &fn)
Definition: Global_as.h:59
void
Definition: npapi/plugin.cpp:1286
Provides information about timeline context.
Definition: as_environment.h:50
DSOEXPORT as_value invoke(const as_value &method, const as_environment &env, as_object *this_ptr, fn_call::Args &args, as_object *super=0, const movie_definition *callerDef=0)
Call an as_value on an as_object.
Definition: Global_as.h:172
as_object * super
The "super" object in this function call context.
Definition: fn_call.h:165
VM & getVM(const as_environment &env)
Definition: as_environment.h:222
static const int DefaultFlags
The most common flags for built-in properties.
Definition: as_object.h:192
as_object * createClass(Global_as::ASFunction ctor, as_object *prototype)
Create an ActionScript class.
Definition: Global_as.cpp:181
A class to contain transferable arguments for a fn_call.
Definition: as_function.h:30
#define IF_VERBOSE_ASCODING_ERRORS(x)
Definition: log.h:383
VM & getVM() const
Definition: Global_as.h:69
as_object * registerBuiltinClass(as_object &where, Global_as::ASFunction ctor, Global_as::Properties p, Global_as::Properties c, const ObjectURI &uri)
Register a built-in class.
Definition: Global_as.h:150
bool is_undefined() const
Definition: as_value.h:323
VM & vm() const
Return a reference to this as_object's global object.
Definition: as_object.h:205
as_object * findObject(const as_environment &ctx, const std::string &path, const as_environment::ScopeStack *scope)
Find the object referenced by the given path.
Definition: as_environment.cpp:116
#define DSOEXPORT
Definition: dsodefs.h:55
as_object * registerBuiltinObject(as_object &where, Global_as::Properties p, const ObjectURI &uri)
Register a built-in object.
Definition: Global_as.h:120
The Global object ultimately contains all objects in an ActionScript run.
Definition: Global_as.h:55
The AVM1 virtual machine.
Definition: VM.h:71
void init_member(const std::string &name, const as_value &val, int flags=DefaultFlags)
Initialize a member value by string.
Definition: as_object.cpp:670
Global_as(VM &vm)
Definition: Global_as.cpp:144
Definition: GnashKey.h:162
Definition: GnashKey.h:151
#define DSOTEXPORT
Definition: dsodefs.h:63
as_object * createObject(const Global_as &gl)
Definition: Global_as.cpp:304
#define CALL_METHOD(x, n, t)
Call a member function of this object in an AS-compatible way.
Definition: Global_as.h:227
void registerClasses()
Definition: Global_as.cpp:236
const as_environment & env() const
Definition: fn_call.h:199
as_function * to_function() const
Return the value as a function only if it is a function.
Definition: as_value.cpp:500
Parameters/environment for builtin or user-defined functions callable from ActionScript.
Definition: fn_call.h:107
#define MAX_ARGS
The maximum number of as_value arguments allowed in callMethod functions.
Definition: Global_as.h:240
ActionScript Function, either builtin or SWF-defined.
Definition: as_function.h:62
virtual ~Global_as()
Definition: Global_as.cpp:155