19 #ifndef GNASH_AS_VALUE_H
20 #define GNASH_AS_VALUE_H
24 #include <boost/variant.hpp>
26 #include <boost/utility/enable_if.hpp>
27 #include <boost/cstdint.hpp>
53 static const double NaN = std::numeric_limits<double>::quiet_NaN();
59 return isNaN(num - num);
123 _value(
boost::blank())
141 _value(
std::string(str))
148 _value(
std::string(str))
152 template <
typename T>
188 const char*
typeOf()
const;
346 _type =
static_cast<AsType>(
static_cast<int>(_type) + 1);
352 _type =
static_cast<AsType>(
static_cast<int>(_type) - 1);
408 typedef boost::variant<boost::blank,
417 bool operator==(
const as_value&
v)
const;
420 bool operator!=(
const as_value&
v)
const;
426 bool equalsSameType(
const as_value&
v)
const;
435 as_object* getObj()
const;
440 DisplayObject* getCharacter(
bool skipRebinding =
false)
const;
445 CharacterProxy getCharacterProxy()
const;
450 double getNum()
const {
452 return boost::get<double>(_value);
458 bool getBool()
const {
460 return boost::get<bool>(_value);
466 const std::string& getStr()
const {
468 return boost::get<std::string>(_value);
517 #endif // GNASH_AS_VALUE_H
Definition: as_value.h:116
primitive_types
These are the primitive types, see the ECMAScript reference.
Definition: as_value.h:64
DSOTEXPORT bool to_bool(int version) const
Conversion to boolean.
Definition: as_value.cpp:424
void set_bool(bool val)
Set to a primitive boolean.
Definition: as_value.cpp:747
Definition: GnashKey.h:150
A MovieClip is a container for DisplayObjects.
Definition: MovieClip.h:83
DisplayObject is the base class for all DisplayList objects.
Definition: DisplayObject.h:168
SWFStream & s
Definition: DefineBitsTag.cpp:73
DSOEXPORT bool equals(const as_value &v, int version) const
Return true if this value is abstractly equal to the given one.
Definition: as_value.cpp:556
ActionScript value type.
Definition: as_value.h:95
#define UNUSED(x)
Definition: utility.h:113
Definition: as_value.h:109
DSOEXPORT as_value(const std::string &str)
Construct a primitive String value.
Definition: as_value.h:145
void setNaN(as_value &v)
Set a value to NaN.
Definition: as_value.h:511
std::string doubleToString(double val, int radix)
Convert numeric value to string value, following ECMA-262 specification.
Definition: as_value.cpp:833
Definition: as_value.h:105
DSOEXPORT as_value & operator=(const as_value &v)
Assign to an as_value.
Definition: as_value.h:178
bool is_null() const
Definition: as_value.h:327
DisplayObject * toDisplayObject(bool skipRebinding=false) const
Return value as a DisplayObject or NULL if this is not possible.
Definition: as_value.cpp:491
Definition: as_value.h:107
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
A class to compose AMF buffers.
Definition: AMFConverter.h:55
as_value(double num)
Construct a primitive Number value.
Definition: as_value.h:163
type
Definition: GnashKey.h:329
Definition: as_value.h:103
Definition: as_value.h:106
Definition: as_value.h:104
as_value to_primitive(AsType hint) const
Return value as a primitive type, with a preference.
Definition: as_value.cpp:264
The base class for all ActionScript objects.
Definition: as_object.h:161
~as_value()
Definition: as_value.h:135
Definition: GnashKey.h:161
Definition: as_value.h:67
bool is_number() const
Return true if this value is strictly a number.
Definition: as_value.h:199
Definition: as_value.h:108
AsType
Definition: as_value.h:101
as_object * get_object() const
Return the value as an as_object only if it is an as_object.
Definition: as_value.cpp:510
std::ostream & operator<<(std::ostream &o, const URL &u)
Definition: URL.cpp:448
bool isInf(const T &num)
Definition: as_value.h:57
bool writeAMF0(amf::Writer &w) const
Serialize value in AMF0 format.
Definition: as_value.cpp:760
A proxy for DisplayObject pointers.
Definition: CharacterProxy.h:44
bool is_bool() const
Definition: as_value.h:331
friend std::ostream & operator<<(std::ostream &o, const as_value &)
Stream operator.
Definition: as_value.cpp:1035
boost::enable_if< boost::is_floating_point< T >, bool >::type isNaN(const T &num)
Definition: GnashNumeric.h:63
Definition: as_value.h:114
DSOTEXPORT bool strictly_equals(const as_value &v) const
Return true if this value is strictly equal to the given one.
Definition: as_value.cpp:685
AsType defaultPrimitive(int version) const
Definition: as_value.cpp:253
Definition: as_value.h:111
Definition: as_value.h:115
bool is_object() const
Return true if this value is an object.
Definition: as_value.h:206
void set_undefined()
Set to undefined.
Definition: as_value.cpp:520
tuple v
Definition: test.py:11
bool is_undefined() const
Definition: as_value.h:323
as_value(as_object *obj)
Construct a null, Object, or DisplayObject value.
Definition: as_value.h:170
Definition: as_value.h:110
DSOEXPORT as_value()
Construct an undefined value.
Definition: as_value.h:120
#define DSOEXPORT
Definition: dsodefs.h:55
const char * typeOf() const
Return the primitive type of this value as a string.
Definition: as_value.cpp:613
Definition: as_value.h:68
bool is_sprite() const
Return true if this value is a DISPLAYOBJECT.
Definition: as_value.h:211
void set_as_object(as_object *obj)
Make this value a NULL, OBJECT, DISPLAYOBJECT value.
Definition: as_value.cpp:534
MovieClip * toMovieClip(bool skipRebinding=false) const
Returns value as a MovieClip if it is a MovieClip.
Definition: as_value.cpp:481
The AVM1 virtual machine.
Definition: VM.h:71
Definition: GnashKey.h:132
bool parseNonDecimalInt(const std::string &s, double &d, bool whole)
Definition: as_value.cpp:794
Definition: as_value.h:112
void set_double(double val)
Set to a primitive number.
Definition: as_value.cpp:740
double to_number(int version) const
Get a number representation for this value.
Definition: as_value.cpp:319
void flag_exception()
Definition: as_value.h:344
void set_string(const std::string &str)
Set to a primitive string.
Definition: as_value.cpp:733
as_value(T val, typename boost::enable_if< boost::is_same< bool, T > >::type *dummy=0)
Construct a primitive Boolean value.
Definition: as_value.h:153
as_object * to_object(VM &vm) const
Return value as an object, converting primitive values as needed.
Definition: as_value.cpp:454
#define DSOTEXPORT
Definition: dsodefs.h:63
void unflag_exception()
Definition: as_value.h:350
bool is_function() const
Return true if this value is a function.
Definition: as_value.cpp:754
tuple w
Definition: test.py:8
bool is_string() const
Return true if this value is a string.
Definition: as_value.h:194
DSOEXPORT as_value(const char *str)
Construct a primitive String value.
Definition: as_value.h:138
as_function * to_function() const
Return the value as a function only if it is a function.
Definition: as_value.cpp:500
Definition: as_value.h:66
DSOTEXPORT std::string to_string(int version=7) const
Get a std::string representation for this value.
Definition: as_value.cpp:206
Definition: as_value.h:113
DSOEXPORT as_value(const as_value &v)
Copy constructor.
Definition: as_value.h:128
void setReachable() const
Set any object value as reachable (for the GC)
Definition: as_value.cpp:692
ActionScript Function, either builtin or SWF-defined.
Definition: as_function.h:62
void set_null()
Set this value to the NULL value.
Definition: as_value.cpp:527
bool is_exception() const
Definition: as_value.h:335