Go to the documentation of this file.
20 #ifndef GNASH_MACHINE_H
21 #define GNASH_MACHINE_H
44 template <
typename T>
class FunctionArgs;
232 unsigned char stack_in,
short stack_out);
235 as_value& storage,
unsigned char stack_in,
short stack_out);
238 unsigned char stack_in,
short stack_out) {
262 unsigned int _stackDepth;
263 unsigned int _stackTotalSize;
264 unsigned int _scopeStackDepth;
265 unsigned int mScopeTotalSize;
272 std::vector<as_value> _registers;
274 void to_debug_string(){
275 log_abc(
"StackDepth=%u StackTotalSize=%u ScopeStackDepth=%u ScopeTotalSize=%u",_stackDepth,_stackTotalSize,_scopeStackDepth,mScopeTotalSize);
283 unsigned int mHeightAfterPop;
286 Scope() : mHeightAfterPop(0), mScope(NULL) {}
287 Scope(
unsigned int i, as_object *
o) : mHeightAfterPop(
i),
295 as_value find_prop_strict(MultiName multiname);
299 void print_scope_stack();
301 void get_args(
size_t argc, FunctionArgs<as_value>& args);
303 void load_function(CodeStream* stream, std::uint32_t maxRegisters);
305 void executeCodeblock(CodeStream* stream);
307 void clearRegisters(std::uint32_t maxRegsiters);
309 const as_value& getRegister(
int index){
310 log_abc(
"Getting value at a register %d ", index);
311 return _registers[index];
314 void setRegister(
size_t index,
const as_value& val) {
315 log_abc(
"Putting %s in register %s", val, index);
316 if (_registers.size() <= index) {
317 log_abc(
"Register doesn't exist! Adding new registers!");
318 _registers.resize(index + 1);
320 _registers[index] = val;
323 void push_stack(as_value
object){
324 log_abc(
"Pushing value %s onto stack.",
object);
328 as_value pop_stack(){
329 as_value value = _stack.pop();
330 log_abc(
"Popping value %s off the stack.", value);
334 void push_scope_stack(as_value
object);
336 as_object* pop_scope_stack() {
337 log_abc(
"Popping value %s off the scope stack. There will be "
338 "%u items left.", as_value(_scopeStack.top(0)),
339 _scopeStack.size()-1);
340 return _scopeStack.pop();
343 as_object* get_scope_stack(std::uint8_t depth)
const {
344 log_abc(
"Getting value from scope stack %u from the bottom.",
346 return _scopeStack.value(depth);
349 SafeStack<as_value> _stack;
350 SafeStack<State> mStateStack;
351 std::vector<as_value> _registers;
361 SafeStack<as_object*> _scopeStack;
367 Namespace* mDefaultXMLNamespace;
368 as_object* mCurrentScope;
369 as_object* mGlobalScope;
370 as_object* mDefaultThis;
376 as_value mGlobalReturn;
377 as_value mIgnoreReturn;
379 bool mExitWithReturn;
380 AbcBlock* mPoolObject;
382 abc_function* mCurrentFunction;
@ ABC_ACTION_IFEQ
Definition: SWF.h:467
Property * findProperty(MultiName &)
Definition: Machine.h:165
void immediateFunction(const as_function *to_call, as_object *pThis, as_value &storage, unsigned char stack_in, short stack_out)
Definition: Machine.cpp:3033
@ ABC_ACTION_IN
Definition: SWF.h:1338
@ ABC_ACTION_URSHIFT
Definition: SWF.h:1246
@ ABC_ACTION_CALLSUPER
Definition: SWF.h:737
void setNaN(as_value &v)
Set a value to NaN.
Definition: as_value.h:524
@ ABC_ACTION_FINDPROPSTRICT
Definition: SWF.h:874
@ ABC_ACTION_CONVERT_O
Definition: SWF.h:1046
@ ABC_ACTION_ISTYPE
Definition: SWF.h:1323
double toNumber(const as_value &v, const VM &vm)
Convert an as_value to a double.
Definition: VM.cpp:451
DSOTEXPORT bool to_bool(int version) const
Conversion to boolean.
Definition: as_value.cpp:423
string_table::key getURI() const
What is the Uri of the namespace?
Definition: Namespace.h:76
@ ABC_ACTION_IFSTRICTNE
Definition: SWF.h:530
@ ABC_ACTION_NEGATE
Definition: SWF.h:1132
@ ABC_ACTION_NEWOBJECT
Definition: SWF.h:822
int completeName(MultiName &name, int initial=0)
Definition: Machine.cpp:2986
std::string name
Definition: LocalConnection_as.cpp:149
@ ABC_ACTION_SUBTRACT
Definition: SWF.h:1204
@ ABC_ACTION_NEWCLASS
Definition: SWF.h:846
@ ABC_ACTION_IFLT
Definition: SWF.h:485
std::int32_t toInt(const as_value &v, const VM &vm)
AS2-compatible conversion to 32bit integer.
Definition: VM.cpp:463
@ ABC_ACTION_DECLOCAL_I
See: 0x94 (ABC_ACTION_DECLOCAL), but forces types to int, not double.
Definition: SWF.h:1362
@ ABC_ACTION_CONSTRUCTSUPER
Definition: SWF.h:765
@ ABC_ACTION_JUMP
Definition: SWF.h:441
The base class for all ActionScript objects.
Definition: as_object.h:162
std::uint8_t read_as3op()
Read an opcode for ActionScript 3.
Definition: CodeStream.cpp:54
@ ABC_ACTION_DIVIDE
Definition: SWF.h:1218
const std::string & stringPoolAt(size_t i) const
Definition: AbcBlock.h:280
@ ABC_ACTION_IFSTRICTEQ
Definition: SWF.h:521
@ ABC_ACTION_CALLPROPVOID
Definition: SWF.h:802
string_table::key getName(const ObjectURI &o)
Get the name element of an ObjectURI.
Definition: ObjectURI.h:116
@ ABC_ACTION_PUSHDOUBLE
Definition: SWF.h:652
@ ABC_ACTION_COERCE_I
Definition: SWF.h:1084
@ ABC_ACTION_IFNE
Definition: SWF.h:476
@ ABC_ACTION_COERCE_S
Definition: SWF.h:1095
Class * getSuper() const
Retrieve the Class from which this Class derives.
Definition: Class.h:185
@ ABC_ACTION_NOT
Definition: SWF.h:1170
const std::string & value(key to_find) const
Find a string by its key.
Definition: string_table.h:102
void setMember(Class *, MultiName &, as_value &target, as_value &val)
Definition: Machine.cpp:2954
Method * getConstructor() const
Get the iinit method or 'constructor'.
Definition: Class.h:204
@ ABC_ACTION_FINDDEF
Definition: SWF.h:887
@ ABC_ACTION_IFNLT
Definition: SWF.h:409
void getMember(Class *pDefinition, MultiName &name, as_value &source)
Definition: Machine.cpp:2930
@ ABC_ACTION_HASNEXT2
Definition: SWF.h:673
void log_debug(StringType msg, Args... args)
Definition: log.h:301
Represent an ActionScript Namespace.
Definition: Namespace.h:49
@ ABC_ACTION_LSHIFT
Definition: SWF.h:1232
void seekBy(int change)
Change the current position by a relative value.
Definition: CodeStream.cpp:68
@ i
Definition: GnashKey.h:155
#define LOG_ONCE(x)
Definition: log.h:49
@ ABC_ACTION_GETPROPERTY
Definition: SWF.h:939
@ ABC_ACTION_NEWACTIVATION
Definition: SWF.h:837
void set_prototype(const as_value &proto)
Set this object's proto member.
Definition: as_object.cpp:518
@ ABC_ACTION_PUSHBYTE
Definition: SWF.h:594
Global_as * global()
Return the Global object for this Machine.
Definition: Machine.cpp:365
@ ABC_ACTION_BITXOR
Definition: SWF.h:1266
#define _(String)
Definition: log.h:44
@ ABC_ACTION_THROW
Definition: SWF.h:354
@ ABC_ACTION_BKPTLINE
Definition: SWF.h:1473
Provides information about timeline context.
Definition: as_environment.h:51
bool instanceOf(as_object *ctor)
Check whether this object is an instance of the given constructor.
Definition: as_object.cpp:769
@ ABC_ACTION_LESSEQUALS
Definition: SWF.h:1295
@ ABC_ACTION_SETLOCAL1
Definition: SWF.h:1417
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
The AVM1 virtual machine.
Definition: VM.h:72
@ ABC_ACTION_PUSHSCOPE
Definition: SWF.h:659
void initMachine(AbcBlock *pool_block)
Definition: Machine.cpp:3154
@ ABC_ACTION_IFLE
Definition: SWF.h:494
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:41
@ ABC_ACTION_NOP
Do: Nothing.
Definition: SWF.h:346
#define ABSTRACT_TYPELATE(st, checkval, matchval)
Definition: Machine.cpp:270
@ ABC_ACTION_DEBUG
Definition: SWF.h:1461
Class * findSuper(as_value &obj, bool find_primitive)
Definition: Machine.cpp:3012
An MultiName represents a single ABC multiname.
Definition: MultiName.h:52
@ ABC_ACTION_ABC_TYPEOF
Definition: SWF.h:1164
@ ABC_ACTION_IFNLE
Definition: SWF.h:418
@ ABC_ACTION_CONVERT_I
Definition: SWF.h:1021
@ g
Definition: GnashKey.h:153
#define ENSURE_STRING(vte)
Definition: Machine.cpp:206
@ ABC_ACTION_NEWFUNCTION
Definition: SWF.h:694
@ ABC_ACTION_TIMESTAMP
Do: Nothing.
Definition: SWF.h:1476
@ ABC_ACTION_SETLOCAL0
Definition: SWF.h:1410
@ ABC_ACTION_IFNGT
Definition: SWF.h:427
@ m
Definition: GnashKey.h:159
@ ABC_ACTION_PUSHFALSE
Definition: SWF.h:607
@ s
Definition: GnashKey.h:165
@ ABC_ACTION_SWAP
Definition: SWF.h:632
#define ENSURE_OBJECT(vte)
Definition: Machine.cpp:199
@ n
Definition: GnashKey.h:160
@ ABC_ACTION_CALLPROPERTY
Definition: SWF.h:747
@ ABC_ACTION_GETLEX
Definition: SWF.h:893
@ ABC_ACTION_ESC_XELEM
Definition: SWF.h:1009
T & pop()
Pop the top of the stack.
Definition: SafeStack.h:147
void pushCall(as_function *func, as_object *pThis, as_value &return_slot, unsigned char stack_in, short stack_out)
Definition: Machine.cpp:3084
#define ENSURE_NUMBER(vte)
Definition: Machine.cpp:175
The ActionScript bytecode of a single ABC tag in a SWF.
Definition: AbcBlock.h:209
@ ABC_ACTION_COERCE_B
Definition: SWF.h:1072
@ PROP_CONSTRUCTOR
Definition: namedStrings.h:68
VM & getVM(const as_environment &env)
Definition: as_environment.h:222
void markReachableResources() const
Definition: Machine.cpp:3218
abc_action_type
Definition: SWF.h:338
#define UNUSED(x)
Definition: utility.h:113
@ ABC_ACTION_PUSHNAN
Definition: SWF.h:611
@ ABC_ACTION_GETSCOPEOBJECT
Definition: SWF.h:928
void log_error(StringType msg, Args... args)
Definition: log.h:283
@ ABC_ACTION_ASTYPELATE
Definition: SWF.h:1109
void pushGet(as_object *this_obj, as_value &return_slot, Property *prop)
Definition: Machine.cpp:3057
std::uint32_t getMaxRegisters()
Definition: Method.h:71
@ ABC_ACTION_RSHIFT
Definition: SWF.h:1239
@ ABC_ACTION_MULTIPLY_I
See: 0xA2 (ABC_ACTION_MULTIPLY), but forces type to int.
Definition: SWF.h:1374
@ ABC_ACTION_PUSHUINT
Definition: SWF.h:647
@ ABC_ACTION_BITOR
Definition: SWF.h:1259
@ PROP_PUSH
Definition: namedStrings.h:88
@ ABC_ACTION_GETLOCAL2
Definition: SWF.h:1398
@ ABC_ACTION_DECREMENT
Definition: SWF.h:1153
@ ABC_ACTION_CALLMETHOD
Definition: SWF.h:719
@ ABC_ACTION_PUSHSTRING
Definition: SWF.h:637
std::uint32_t maxStack() const
Definition: Method.h:85
@ ABC_ACTION_RETURNVALUE
Definition: SWF.h:757
Parameters/environment for builtin or user-defined functions callable from ActionScript.
Definition: fn_call.h:118
@ ABC_ACTION_COERCE_A
Definition: SWF.h:1079
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
bool isGetterSetter() const
Is this a getter/setter property?
Definition: Property.h:377
Definition: SafeStack.h:29
StackSize size() const
Alias for getDownstop()
Definition: SafeStack.h:175
FunctionArgs< as_value > Args
Definition: fn_call.h:121
@ ABC_ACTION_MODULO
Definition: SWF.h:1225
@ a
Definition: GnashKey.h:147
as_value executeFunction(Method *function, const fn_call &fn)
Definition: Machine.cpp:3172
@ ABC_ACTION_INITPROPERTY
Definition: SWF.h:952
double to_number(int version) const
Get a number representation for this value.
Definition: as_value.cpp:318
as_object * getPrototype()
Necessary for the current bogus implementation.
Definition: Class.h:256
@ ABC_ACTION_INCREMENT
Definition: SWF.h:1140
@ ABC_ACTION_SETLOCAL3
Definition: SWF.h:1431
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
@ ABC_ACTION_NEXTNAME
Definition: SWF.h:564
@ ABC_ACTION_NEWARRAY
Definition: SWF.h:833
@ ABC_ACTION_CALLPROPLEX
Definition: SWF.h:789
@ ABC_ACTION_IFGE
Definition: SWF.h:512
type
Definition: GnashKey.h:330
@ ABC_ACTION_IFFALSE
Definition: SWF.h:458
DSOTEXPORT std::string to_string(int version=7) const
Get a std::string representation for this value.
Definition: as_value.cpp:205
A class to contain transferable arguments for a fn_call.
Definition: fn_call.h:57
@ ABC_ACTION_POPSCOPE
Definition: SWF.h:552
@ ABC_ACTION_GETLOCAL
Definition: SWF.h:911
@ ABC_ACTION_CALL
Definition: SWF.h:703
@ ABC_ACTION_NEGATE_I
See: 0x90 (ABC_ACTION_NEGATE), but forces type to int, not double.
Definition: SWF.h:1365
#define IF_VERBOSE_ASCODING_ERRORS(x)
Definition: log.h:397
void log_abc(StringType msg, Args... args)
Definition: log.h:337
@ ABC_ACTION_PUSHNULL
Definition: SWF.h:577
@ ABC_ACTION_GREATERTHAN
Definition: SWF.h:1302
Definition: CodeStream.h:41
@ ABC_ACTION_SETSUPER
Definition: SWF.h:376
DisplayObject * getTarget()
The DisplayObject which initiated these actions.
as_object * constructInstance(as_function &ctor, const as_environment &env, fn_call::Args &args)
Definition: as_function.cpp:47
@ ABC_ACTION_STRICTEQUALS
Definition: SWF.h:1281
@ ABC_ACTION_MULTIPLY
Definition: SWF.h:1211
An abstract property.
Definition: Property.h:277
void setTarget(DisplayObject *target)
@ ABC_ACTION_COERCE_O
Definition: SWF.h:1119
std::int32_t read_S24()
Read a signed 24 bit interger.
Definition: CodeStream.cpp:82
@ ABC_ACTION_POP
Definition: SWF.h:617
void immediateProcedure(const as_function *to_call, as_object *pthis, unsigned char stack_in, short stack_out)
Definition: Machine.h:237
virtual bool get_member(const ObjectURI &uri, as_value *val)
Get a property by name if it exists.
Definition: as_object.cpp:378
@ ABC_ACTION_PUSHNAMESPACE
Definition: SWF.h:664
std::uint32_t read_V32()
Read a variable length encoded 32 bit unsigned integer.
Definition: CodeStream.cpp:27
DSOTEXPORT as_value getValue(const as_object &this_ptr) const
Get value of this property.
Definition: Property.cpp:98
@ ABC_ACTION_GETSLOT
Definition: SWF.h:971
The virtual machine for executing ABC (ActionScript Bytecode).
Definition: Machine.h:74
@ ABC_ACTION_CONVERT_D
Definition: SWF.h:1033
void subtract(as_value &op1, const as_value &op2, const VM &vm)
Carry out ActionSubtract.
Definition: VM.cpp:392
Args::size_type nargs
Number of arguments to this ActionScript function call.
Definition: fn_call.h:178
A class to represent AS3 Classes.
Definition: Class.h:76
const std::vector< abc::Class * > & scripts() const
Scripts can contain several classes.
Definition: AbcBlock.h:271
@ ABC_ACTION_IFGT
Definition: SWF.h:503
as_object * to_object(VM &vm) const
Return value as an object, converting primitive values as needed.
Definition: as_value.cpp:453
void execute()
Definition: Machine.cpp:381
@ ABC_ACTION_IFTRUE
Definition: SWF.h:450
@ ABC_ACTION_ESC_XATTR
Definition: SWF.h:1015
@ ABC_ACTION_SETGLOBALSLOT
Definition: SWF.h:997
@ ABC_ACTION_PUSHUNDEFINED
n – an Undefined object.
Definition: SWF.h:580
@ ABC_ACTION_ADD
Definition: SWF.h:1197
bool needsActivation() const
Definition: abc_function.h:56
ActionScript value type.
Definition: as_value.h:95
@ ABC_ACTION_IFNGE
Definition: SWF.h:436
std::uint8_t read_u8()
Read an unsigned 8-bit character.
Definition: CodeStream.cpp:107
@ ABC_ACTION_GETGLOBALSCOPE
Definition: SWF.h:923
as_object * createArray()
Construct an Array.
Definition: Global_as.cpp:207
@ ABC_ACTION_DXNSLATE
Definition: SWF.h:388
@ ABC_ACTION_CHECKFILTER
Definition: SWF.h:1053
Property * findProperty(const ObjectURI &uri, as_object **owner=nullptr)
Find a property, scanning the inheritance chain.
Definition: as_object.cpp:477
@ ABC_ACTION_LABEL
Do: Unknown purpose, Tamarin does nothing.
Definition: SWF.h:397
@ ABC_ACTION_LOOKUPSWITCH
Definition: SWF.h:540
@ ABC_ACTION_END
AS3 Actions go below here.
Definition: SWF.h:340
@ ABC_ACTION_BITAND
Definition: SWF.h:1252
void seekTo(unsigned int set)
Set the current position to an absolute value (relative to the start)
Definition: CodeStream.cpp:75
const Args::value_type & arg(unsigned int n) const
Access a particular argument.
Definition: fn_call.h:194
virtual bool isBuiltin()
Return true if this is a built-in class.
Definition: as_function.h:107
key find(const std::string &to_find, bool insert_unfound=true)
Find a key for a string.
Definition: string_table.cpp:40
@ ABC_ACTION_ISTYPELATE
Definition: SWF.h:1330
@ ABC_ACTION_CALLSTATIC
Definition: SWF.h:727
void log_aserror(StringType msg, Args... args)
Definition: log.h:331
@ ABC_ACTION_PUSHSHORT
Definition: SWF.h:599
Property * getBinding(string_table::key name)
Definition: Class.h:228
@ ABC_ACTION_BITNOT
Definition: SWF.h:1176
void init()
Initialize the AS resources.
Definition: Machine.cpp:351
#define IF_VERBOSE_ACTION(x)
Definition: log.h:384
@ ABC_ACTION_BKPT
Do: Enter the debugger if one has been invoked.
Definition: SWF.h:343
@ ABC_ACTION_DUP
Definition: SWF.h:624
@ ABC_ACTION_DECREMENT_I
See: 0x93 (ABC_ACTION_DECREMENT), but forces types to int, not double.
Definition: SWF.h:1356
@ ABC_ACTION_INCLOCAL_I
See: 0x92 (ABC_ACTION_INCLOCAL), but forces types to int, not double.
Definition: SWF.h:1359
DSOTEXPORT std::pair< bool, bool > delProperty(const ObjectURI &uri)
Delete a property of this object, unless protected from deletion.
Definition: as_object.cpp:313
as_object * get_prototype() const
Return this object's proto member.
Definition: as_object.cpp:932
@ ABC_ACTION_SETLOCAL
Definition: SWF.h:919
std::uint32_t scopeDepth() const
Definition: Method.h:101
@ ABC_ACTION_INCLOCAL
Definition: SWF.h:1145
bool abstractEquality(const as_value &a, const as_value &b, bool strictness_on)
Definition: Machine.cpp:255
@ KIND_MultinameL
Definition: MultiName.h:65
@ ABC_ACTION_DEBUGFILE
Definition: SWF.h:1469
@ f
Definition: GnashKey.h:152
ABC-defined Function.
Definition: abc_function.h:41
abc::Class * locateClass(MultiName &m)
Definition: AbcBlock.cpp:437
The Global object ultimately contains all objects in an ActionScript run.
Definition: Global_as.h:50
@ ABC_ACTION_LESSTHAN
Definition: SWF.h:1288
uri
Definition: test.py:12
const T & top(StackSize i) const
From the top of the stack, get the i'th value down.
Definition: SafeStack.h:54
@ ABC_ACTION_DELETEPROPERTY
Definition: SWF.h:962
@ c
Definition: GnashKey.h:149
@ ABC_ACTION_CALLSUPERVOID
Definition: SWF.h:797
@ ABC_ACTION_COERCE_D
Definition: SWF.h:1089
string_table & getStringTable(const as_environment &env)
Definition: as_environment.cpp:639
@ ABC_ACTION_NEXTVALUE
Definition: SWF.h:589
@ ABC_ACTION_DEBUGLINE
Definition: SWF.h:1465
@ ABC_ACTION_GETDESCENDANTS
Definition: SWF.h:857
@ ABC_ACTION_FINDPROPERTY
Definition: SWF.h:882
@ ABC_ACTION_NEWCATCH
Definition: SWF.h:863
@ ABC_ACTION_RETURNVOID
Do: Return an Undefined object up the callstack.
Definition: SWF.h:750
@ ABC_ACTION_COERCE
Definition: SWF.h:1068
@ ABC_ACTION_ADD_I
See: 0xA0 (ABC_ACTION_ADD), but forces type to int.
Definition: SWF.h:1368
Machine(VM &vm)
Create an AS3 interpreter.
Definition: Machine.cpp:327
@ ABC_ACTION_PUSHWITH
Definition: SWF.h:548
void pushSet(as_object *this_obj, as_value &value, Property *prop)
Definition: Machine.cpp:3070
#define JUMPIF(jtruth)
Definition: Machine.cpp:292
@ ABC_ACTION_SETPROPERTY
Definition: SWF.h:905
@ ABC_ACTION_CONVERT_U
Definition: SWF.h:1027
@ ABC_ACTION_ASTYPE
Definition: SWF.h:1102
DisplayObject is the base class for all DisplayList objects.
Definition: DisplayObject.h:169
@ ABC_ACTION_CONSTRUCT
Definition: SWF.h:711
@ ABC_ACTION_CONVERT_B
Definition: SWF.h:1039
@ source
Definition: klash_part.cpp:329
std::size_t key
Definition: string_table.h:83
@ ABC_ACTION_GREATEREQUALS
Definition: SWF.h:1309
@ ABC_ACTION_INCREMENT_I
See: 0x91 (ABC_ACTION_INCREMENT), but forces types to int, not double.
Definition: SWF.h:1353
std::uint32_t maxScope() const
Definition: Method.h:93
@ ABC_ACTION_KILL
Definition: SWF.h:394
as_value newLessThan(const as_value &op1, const as_value &op2, const VM &vm)
Carry out ActionSubtract.
Definition: VM.cpp:400
@ ABC_ACTION_CONVERT_S
Definition: SWF.h:1003
@ ABC_ACTION_GETGLOBALSLOT
Definition: SWF.h:988
void skip_V32()
Definition: CodeStream.cpp:117
void instantiateClass(std::string className, as_object *global)
Definition: Machine.cpp:3224
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
@ ABC_ACTION_GETLOCAL3
Definition: SWF.h:1403
as_object * this_ptr
Definition: fn_call.h:170
@ o
Definition: GnashKey.h:161
#define ABSTRACT_COMPARE(store, rv1, rv2, truth_of_undefined)
Definition: Machine.cpp:225
@ ABC_ACTION_PUSHINT
Definition: SWF.h:642
@ ABC_ACTION_SETSLOT
Definition: SWF.h:980
void log_unimpl(StringType msg, Args... args)
Definition: log.h:289
int8_t read_s8()
Read a signed 8-bit character.
Definition: CodeStream.cpp:98
@ ABC_ACTION_GETSUPER
Definition: SWF.h:365
@ ABC_ACTION_CONSTRUCTPROP
Definition: SWF.h:775
bool is_object() const
Return true if this value is an object.
Definition: as_value.h:219
A URI for describing as_objects.
Definition: ObjectURI.h:45
void grow(StackSize i)
Definition: SafeStack.h:155
@ ABC_ACTION_INSTANCEOF
Definition: SWF.h:1316
@ ABC_ACTION_DECLOCAL
Definition: SWF.h:1158
@ b
Definition: GnashKey.h:148
CodeStream * getBody()
Definition: Method.h:136
Namespace * getNamespace() const
Definition: MultiName.h:96
@ e
Definition: GnashKey.h:151
@ ABC_ACTION_SETLOCAL2
Definition: SWF.h:1424
@ ABC_ACTION_GETLOCAL0
Definition: SWF.h:1388
abc_function * getPrototype()
Definition: Method.h:105
@ ABC_ACTION_DXNS
Definition: SWF.h:381
@ ABC_ACTION_COERCE_U
Definition: SWF.h:1113
@ ABC_ACTION_HASNEXT
Definition: SWF.h:573
string_table::key getGlobalName() const
Definition: MultiName.h:101
bool setValue(as_object &this_ptr, const as_value &value) const
Set value of this property.
Definition: Property.cpp:133
@ ABC_ACTION_GETLOCAL1
Definition: SWF.h:1393
@ ABC_ACTION_PUSHTRUE
Definition: SWF.h:603
ActionScript Function, either builtin or SWF-defined.
Definition: as_function.h:63
void setReachable() const
Mark this resource as being reachable.
Definition: GC.h:92
@ ABC_ACTION_SUBTRACT_I
See: 0xA1 (ABC_ACTION_SUBTRACT), but forces type to int.
Definition: SWF.h:1371
void newAdd(as_value &op1, const as_value &op2, const VM &vm)
Carry out ActionNewAdd.
Definition: VM.cpp:356
@ ABC_ACTION_EQUALS
Definition: SWF.h:1273