Go to the documentation of this file.
20 #ifndef GNASH_GLOBAL_H
21 #define GNASH_GLOBAL_H
85 void loadExtensions();
86 std::unique_ptr<Extension> _et;
172 fn_call call(this_ptr, env, args);
179 val = func->call(call);
183 log_aserror(
"Attempt to call a value which is not "
184 "a function (%s)", method);
228 template <
typename Param,
typename... Params>
237 template <
typename... Params>
Definition: extension.h:38
void stage_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Stage class.
Definition: Stage_as.cpp:51
@ CLASS_MOVIE_CLIP
Definition: namedStrings.h:227
static void registerNative(as_object &global)
Definition: AsBroadcaster.cpp:208
bool parseNonDecimalInt(const std::string &s, double &d, bool whole)
Definition: as_value.cpp:793
void flash_package_init(as_object &where, const ObjectURI &uri)
Definition: flash_pkg.cpp:58
@ CLASS_NET_STREAM
Definition: namedStrings.h:231
double toNumber(const as_value &v, const VM &vm)
Convert an as_value to a double.
Definition: VM.cpp:451
as_object * super
The "super" object in this function call context.
Definition: fn_call.h:175
void markReachableResources() const
Mark objects for garbage collector.
Definition: ClassHierarchy.h:115
void mouse_class_init(as_object &where, const ObjectURI &uri)
Definition: Mouse_as.cpp:57
void moviecliploader_class_init(as_object &where, const ObjectURI &uri)
Extern.
Definition: MovieClipLoader.cpp:64
bool isNaN(const T &num)
Definition: GnashNumeric.h:62
std::int32_t toInt(const as_value &v, const VM &vm)
AS2-compatible conversion to 32bit integer.
Definition: VM.cpp:463
@ d
Definition: GnashKey.h:150
The base class for all ActionScript objects.
Definition: as_object.h:162
void selection_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Selection class.
Definition: Selection_as.cpp:51
@ CLASS_TEXT_FORMAT
Definition: namedStrings.h:250
void registerSelectionNative(as_object &global)
Register native selection methods.
Definition: Selection_as.cpp:67
void registerBitmapDataNative(as_object &global)
Definition: BitmapData_as.cpp:673
DSOTEXPORT as_object(const Global_as &global)
Construct an ActionScript object with no prototype associated.
Definition: as_object.cpp:280
void key_class_init(as_object &where, const ObjectURI &uri)
Definition: Key_as.cpp:156
as_value getOwnProperty(as_object &o, const ObjectURI &uri)
Get an own member of an object.
Definition: as_object.h:777
as_object * toObject(const as_value &v, VM &vm)
Convert an as_value to an object.
Definition: VM.cpp:457
@ CLASS_OBJECT
Definition: namedStrings.h:233
void registerExternalInterfaceNative(as_object &global)
Definition: ExternalInterface_as.cpp:150
void registerXMLNodeNative(as_object &where)
Register ASnative methods.
Definition: XMLNode_as.cpp:508
void log_debug(StringType msg, Args... args)
Definition: log.h:301
std::int32_t y
Definition: BitmapData_as.cpp:435
@ i
Definition: GnashKey.h:155
void netconnection_class_init(as_object &where, const ObjectURI &uri)
Definition: NetConnection_as.cpp:424
#define LOG_ONCE(x)
Definition: log.h:49
void registerStringNative(as_object &global)
Definition: String_as.cpp:83
@ onlySWF9Up
Only visible by VM initialized for version 9 or higher.
Definition: PropFlags.h:57
@ CLASS_ACCESSIBILITY
Definition: namedStrings.h:196
@ PROP_LENGTH
Definition: namedStrings.h:83
@ CLASS_FUNCTION
Definition: namedStrings.h:216
#define _(String)
Definition: log.h:44
#define USE_EXTENSIONS
Definition: gnashconfig.h:653
@ CLASS_SHARED_OBJECT
Definition: namedStrings.h:237
Provides information about timeline context.
Definition: as_environment.h:51
void registerNumberNative(as_object &global)
Definition: Number_as.cpp:168
void init_member(const std::string &name, const as_value &val, int flags=DefaultFlags)
Initialize a member value by string.
Definition: as_object.cpp:669
void textformat_class_init(as_object &global, const ObjectURI &uri)
Definition: TextFormat_as.cpp:374
The AVM1 virtual machine.
Definition: VM.h:72
void registerXMLSocketNative(as_object &global)
Definition: XMLSocket_as.cpp:285
void number_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Number class.
Definition: Number_as.cpp:149
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:41
void accessibility_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Accessibility class.
Definition: Accessibility_as.cpp:41
as_object * registerBuiltinObject(as_object &where, Global_as::Properties p, const ObjectURI &uri)
Register a built-in object.
Definition: Global_as.h:114
#define ASSERT_FN_ARGS_IS_1
Definition: Global_as.cpp:96
void initObjectClass(as_object *proto, as_object &where, const ObjectURI &uri)
Initialize the global Object class.
Definition: Object.cpp:80
virtual void markReachableResources() const
Mark all reachable resources, override from GcResource.
Definition: Global_as.cpp:227
bool enableExtensions() const
Definition: rc.h:98
virtual ~Global_as()
Definition: Global_as.cpp:154
@ dontEnum
Protect from enumeration.
Definition: PropFlags.h:36
@ dontDelete
Protect from deletion.
Definition: PropFlags.h:39
@ CLASS_CONTEXTMENUITEM
Definition: namedStrings.h:206
void registerSoundNative(as_object &global)
Definition: Sound_as.cpp:300
@ CLASS_VIDEO
Definition: namedStrings.h:256
@ s
Definition: GnashKey.h:165
void clearProperties()
Drop all properties from this object.
Definition: as_object.h:533
void registerKeyNative(as_object &global)
Definition: Key_as.cpp:103
This is a special type of function implementing AS-code in C++.
Definition: builtin_function.h:42
@ CLASS_LOCALCONNECTION
Definition: namedStrings.h:223
@ CLASS_MOVIE_CLIP_LOADER
Definition: namedStrings.h:228
void registerFunctionNative(as_object &global)
Register Function native functions.
Definition: Function_as.cpp:58
#define __FUNCTION__
Definition: log.h:437
Global_as & getGlobal(const as_environment &env)
Definition: as_environment.cpp:651
@ PROP_CONSTRUCTOR
Definition: namedStrings.h:68
void registerButtonNative(as_object &global)
Definition: Button.cpp:923
VM & getVM(const as_environment &env)
Definition: as_environment.h:222
@ CLASS_TEXT_FIELD
Definition: namedStrings.h:248
void declareAll(const NativeClasses &classes)
Declare a list of native classes.
Definition: ClassHierarchy.cpp:123
void color_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Color class.
Definition: Color_as.cpp:64
void sound_class_init(as_object &where, const ObjectURI &uri)
Definition: Sound_as.cpp:286
Client program's interface to the definition of a movie or sprite.
Definition: movie_definition.h:96
@ CLASS_STAGE
Definition: namedStrings.h:241
void textfield_class_init(as_object &where, const ObjectURI &uri)
This provides the prototype and static methods for TextField.
Definition: TextField_as.cpp:105
as_value getMember(as_object &o, const ObjectURI &uri)
Get a member of an object using AS lookup rules.
Definition: as_object.h:756
bool array() const
Return true if this object should be treated as an array.
Definition: as_object.h:625
void log_trace(StringType msg, Args... args)
Definition: log.h:295
as_object * createObject(const Global_as &gl)
Definition: Global_as.cpp:303
void registerStageNative(as_object &o)
This is the Stage ActionScript object.
Definition: Stage_as.cpp:58
void camera_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Camera class.
Definition: Camera_as.cpp:68
@ CLASS_CAMERA
Definition: namedStrings.h:203
void registerSharedObjectNative(as_object &o)
Definition: SharedObject_as.cpp:604
bool isFinite(double d)
Definition: GnashNumeric.h:47
Parameters/environment for builtin or user-defined functions callable from ActionScript.
Definition: fn_call.h:118
static const int DefaultFlags
The most common flags for built-in properties.
Definition: as_object.h:192
void boolean_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Boolean class.
Definition: Boolean_as.cpp:60
void xmlnode_class_init(as_object &where, const ObjectURI &uri)
Definition: XMLNode_as.cpp:522
void registerColorNative(as_object &o)
Definition: Color_as.cpp:52
void registerMathNative(as_object &proto)
Definition: Math_as.cpp:61
as_value callMethod(fn_call::Args &args, as_object *obj, const ObjectURI &uri)
Call a member function of this object in an AS-compatible way.
Definition: Global_as.h:219
void registerXMLNative(as_object &where)
Register XML native functions.
Definition: XML_as.cpp:540
void registerColorTransformNative(as_object &global)
Definition: ColorTransform_as.cpp:96
void netstream_class_init(as_object &where, const ObjectURI &uri)
Definition: NetStream_as.cpp:130
void microphone_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Microphone class.
Definition: Microphone_as.cpp:65
void function_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Function constructor.
Definition: Function_as.cpp:66
@ ignoreSWF6
Ignore in SWF6-initialized VM.
Definition: PropFlags.h:48
FunctionArgs< as_value > Args
Definition: fn_call.h:121
static void encode(std::string &str)
Encode a string to URL-encoded format converting all dodgy characters to AB hex sequences.
Definition: URL.cpp:391
void system_class_init(as_object &where, const ObjectURI &uri)
Initialize the global System class.
Definition: System_as.cpp:61
as_object * createClass(Global_as::ASFunction ctor, as_object *prototype)
Create an ActionScript class.
Definition: Global_as.cpp:180
void registerLoadableNative(as_object &o)
Register methods as native for use by XML_as and LoadVars_as.
Definition: LoadableObject.cpp:68
static void decode(std::string &str)
Decode a string from URL-encoded format converting all hexadecimal sequences to ASCII characters.
Definition: URL.cpp:418
as_function * createFunction(Global_as::ASFunction function)
Create an ActionScript function.
Definition: Global_as.cpp:159
DSOEXPORT as_value invoke(const as_value &method, const as_environment &env, as_object *this_ptr, fn_call::Args &args, as_object *super=nullptr, const movie_definition *callerDef=nullptr)
Call an as_value on an as_object.
Definition: Global_as.h:166
An ActionScript type error.
Definition: GnashException.h:161
as_function * to_function() const
Return the value as a function only if it is a function.
Definition: as_value.cpp:499
A class to contain transferable arguments for a fn_call.
Definition: fn_call.h:57
static void registerNative(as_object &where)
Register native functions with the VM.
Definition: Mouse_as.cpp:46
@ CLASS_DATE
Definition: namedStrings.h:208
#define IF_VERBOSE_ASCODING_ERRORS(x)
Definition: log.h:397
void makeObject(as_object &o) const
Definition: Global_as.cpp:331
void registerTextFieldNative(as_object &global)
Definition: TextField_as.cpp:123
as_value emptyFunction(const fn_call &)
Definition: Global_as.h:256
Global_as(VM &vm)
Definition: Global_as.cpp:143
as_object * constructInstance(as_function &ctor, const as_environment &env, fn_call::Args &args)
Definition: as_function.cpp:47
void array_class_init(as_object &where, const ObjectURI &uri)
Initialize the global.Array object.
Definition: Array_as.cpp:973
virtual bool get_member(const ObjectURI &uri, as_value *val)
Get a property by name if it exists.
Definition: as_object.cpp:378
@ p
Definition: GnashKey.h:162
void registerAccessibilityNative(as_object &global)
Definition: Accessibility_as.cpp:61
void registerObjectNative(as_object &global)
Definition: Object.cpp:62
VM & getVM() const
Definition: Global_as.h:63
@ CLASS_STRING
Definition: namedStrings.h:243
NativeFunction * getNative(unsigned int x, unsigned int y) const
Return a native function or null.
Definition: VM.cpp:276
@ CLASS_MATH
Definition: namedStrings.h:224
@ CLASS_BOOLEAN
Definition: namedStrings.h:201
void xmlsocket_class_init(as_object &where, const ObjectURI &uri)
Initialize the global XMLSocket class.
Definition: XMLSocket_as.cpp:278
as_function * getClassConstructor(const fn_call &fn, const std::string &s)
Convenience function for finding a class constructor.
Definition: Global_as.h:249
void registerMicrophoneNative(as_object &global)
Definition: Microphone_as.cpp:72
@ CLASS_XML
Definition: namedStrings.h:257
@ CLASS_TEXT_SNAPSHOT
Definition: namedStrings.h:252
@ onlySWF8Up
Only visible by VM initialized for version 8 or higher.
Definition: PropFlags.h:54
ActionScript value type.
Definition: as_value.h:95
as_object * createArray()
Construct an Array.
Definition: Global_as.cpp:207
void registerArrayNative(as_object &global)
Definition: Array_as.cpp:954
@ CLASS_MICROPHONE
Definition: namedStrings.h:225
void sharedobject_class_init(as_object &where, const ObjectURI &uri)
Initialize the global SharedObject class.
Definition: SharedObject_as.cpp:591
@ onlySWF7Up
Only visible by VM initialized for version 7 or higher.
Definition: PropFlags.h:51
bool is_undefined() const
Definition: as_value.h:336
VM & vm() const
Return a reference to this as_object's global object.
Definition: as_object.h:205
void log_aserror(StringType msg, Args... args)
Definition: log.h:331
Definition: ClassHierarchy.h:65
movie_root & getRoot(const as_environment &env)
Definition: as_environment.cpp:645
@ CLASS_NET_CONNECTION
Definition: namedStrings.h:230
@ CLASS_SELECTION
Definition: namedStrings.h:235
@ onlySWF6Up
Only visible by VM initialized for version 6 or higher.
Definition: PropFlags.h:45
void math_class_init(as_object &where, const ObjectURI &uri)
Definition: Math_as.cpp:87
void registerMovieClipLoaderNative(as_object &global)
Definition: MovieClipLoader.cpp:54
@ CLASS_LOAD_VARS
Definition: namedStrings.h:222
void registerMovieClipNative(as_object &where)
Register ASNative MovieClip methods (AS2 only).
Definition: MovieClip_as.cpp:128
void registerTextSnapshotNative(as_object &global)
Definition: TextSnapshot_as.cpp:406
as_value(* ASFunction)(const fn_call &fn)
Definition: Global_as.h:53
void button_class_init(as_object &global, const ObjectURI &uri)
Initialize the global Button class.
Definition: Button.cpp:910
void registerBitmapFilterNative(as_object &global)
Definition: BitmapFilter_as.cpp:64
@ f
Definition: GnashKey.h:152
void movieclip_class_init(as_object &where, const ObjectURI &uri)
Initialize the global MovieClip class.
Definition: MovieClip_as.cpp:116
void contextmenu_class_init(as_object &where, const ObjectURI &uri)
Initialize the global ContextMenu class.
Definition: ContextMenu_as.cpp:45
static RcInitFile & getDefaultInstance()
Return the default instance of RC file.
Definition: rc.cpp:61
void registerClasses()
Definition: Global_as.cpp:235
#define DSOTEXPORT
Definition: dsodefs.h:63
The Global object ultimately contains all objects in an ActionScript run.
Definition: Global_as.h:50
void registerTextFormatNative(as_object &o)
Definition: TextFormat_as.cpp:241
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:144
uri
Definition: test.py:12
const movie_definition * callerDef
Definition containing caller code. 0 if spontaneous (system event).
Definition: fn_call.h:181
@ c
Definition: GnashKey.h:149
void registerBooleanNative(as_object &global)
Definition: Boolean_as.cpp:78
virtual void markReachableResources() const
Mark all reachable resources, override from GcResource.
Definition: as_object.cpp:1011
@ CLASS_NUMBER
Definition: namedStrings.h:232
static void init(as_object &global, const ObjectURI &uri)
Definition: AsBroadcaster.cpp:216
void log_security(StringType msg, Args... args)
Definition: log.h:319
#define DSOEXPORT
Definition: dsodefs.h:55
void registerNetStreamNative(as_object &global)
Definition: NetStream_as.cpp:139
@ CLASS_SOUND
Definition: namedStrings.h:239
@ PROP_uuPROTOuu
Definition: namedStrings.h:118
ObjectURI getURI(const VM &vm, const std::string &str, bool lowerCaseHint=false)
Definition: VM.h:290
@ CLASS_MOUSE
Definition: namedStrings.h:226
void registerVideoNative(as_object &global)
Definition: Video_as.cpp:70
@ CLASS_XMLNODE
Definition: namedStrings.h:259
@ CLASS_BUTTON
Definition: namedStrings.h:202
@ CLASS_COLOR
Definition: namedStrings.h:204
@ CLASS_ARRAY
Definition: namedStrings.h:198
@ CLASS_AS_BROADCASTER
Definition: namedStrings.h:199
void registerSystemNative(as_object &where)
Definition: System_as.cpp:68
Register all of the ActionScript classes, with their dependencies.
Definition: ClassHierarchy.h:41
void set_null()
Set this value to the NULL value.
Definition: as_value.cpp:526
void registerLocalConnectionNative(as_object &global)
Definition: LocalConnection_as.cpp:489
void date_class_init(as_object &global, const ObjectURI &uri)
Definition: Date_as.cpp:205
@ o
Definition: GnashKey.h:161
std::vector< NativeClass > NativeClasses
Definition: ClassHierarchy.h:101
@ readOnly
Protect from assigning a value.
Definition: PropFlags.h:42
void log_unimpl(StringType msg, Args... args)
Definition: log.h:289
@ N
Definition: GnashKey.h:126
void video_class_init(as_object &global, const ObjectURI &uri)
Definition: Video_as.cpp:58
@ PROP_PROTOTYPE
Definition: namedStrings.h:87
A URI for describing as_objects.
Definition: ObjectURI.h:45
@ CLASS_XMLSOCKET
Definition: namedStrings.h:260
std::int32_t x
Definition: BitmapData_as.cpp:434
@ CLASS_SYSTEM
Definition: namedStrings.h:245
void xml_class_init(as_object &where, const ObjectURI &uri)
Register the XML class.
Definition: XML_as.cpp:519
void contextmenuitem_class_init(as_object &where, const ObjectURI &uri)
Initialize the global ContextMenuItem class.
Definition: ContextMenuItem_as.cpp:40
void Error_class_init(as_object &where, const ObjectURI &uri)
Initialize the global Error class.
Definition: Error_as.cpp:46
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
@ CLASS_KEY
Definition: namedStrings.h:220
@ CLASS_CONTEXTMENU
Definition: namedStrings.h:205
void registerCameraNative(as_object &global)
Definition: Camera_as.cpp:75
@ CLASS_ERROR
Definition: namedStrings.h:211
void loadvars_class_init(as_object &where, const ObjectURI &uri)
Initialize the global LoadVars class.
Definition: LoadVars_as.cpp:53
@ e
Definition: GnashKey.h:151
void string_class_init(as_object &where, const ObjectURI &uri)
Initialize the global String class.
Definition: String_as.cpp:107
const as_environment & env() const
Definition: fn_call.h:209
void textsnapshot_class_init(as_object &where, const ObjectURI &uri)
Definition: TextSnapshot_as.cpp:143
ActionScript Function, either builtin or SWF-defined.
Definition: as_function.h:63
void registerDateNative(as_object &global)
Definition: Date_as.cpp:227
void setReachable() const
Mark this resource as being reachable.
Definition: GC.h:92
void(* Properties)(as_object &)
Definition: Global_as.h:54
void localconnection_class_init(as_object &where, const ObjectURI &uri)
Definition: LocalConnection_as.cpp:482