30#include "simple_number.h" 
   38  class ValueImpPrivate;
 
   86    ValueImp* ref() { 
if (!SimpleNumber::is(
this)) refcount++; 
return this; }
 
   87    bool deref() { 
if (SimpleNumber::is(
this)) 
return false; 
else return (!--refcount); }
 
   91    void* 
operator new(size_t);
 
   92    void operator delete(
void*);
 
  102    void setGcAllowedFast() { _flags |= VI_GCALLOWED; }
 
  106    unsigned int toUInt32(
ExecState *exec) 
const;
 
  107    unsigned short toUInt16(
ExecState *exec) 
const;
 
  111    Type dispatchType() 
const;
 
  112    Value dispatchToPrimitive(
ExecState *exec, Type preferredType = UnspecifiedType) 
const;
 
  113    bool dispatchToBoolean(
ExecState *exec) 
const;
 
  114    double dispatchToNumber(
ExecState *exec) 
const;
 
  116    bool dispatchToUInt32(
unsigned&) 
const;
 
  119    unsigned short int refcount;
 
  121    bool isDestroyed()
 const { 
return _flags & VI_DESTRUCTED; }
 
  124    unsigned short int _flags;
 
  126    virtual Type type() 
const = 0;
 
  130    virtual Value toPrimitive(
ExecState *exec, Type preferredType = UnspecifiedType) 
const = 0;
 
  131    virtual bool toBoolean(
ExecState *exec) 
const = 0;
 
  132    virtual double toNumber(
ExecState *exec) 
const = 0;
 
  136    virtual bool toUInt32(
unsigned&) 
const;
 
  145    ValueImpPrivate *_vd;
 
  187    ValueImp *imp()
 const { 
return rep; }
 
  195    Type 
type()
 const { 
return rep->dispatchType(); }
 
  203    bool isA(Type t)
 const { 
return rep->dispatchType() == t; }
 
  210                      Type preferredType = UnspecifiedType)
 const 
  211      { 
return rep->dispatchToPrimitive(exec, preferredType); }
 
  256    bool toUInt32(
unsigned& i)
 const { 
return rep->dispatchToUInt32(i); }
 
  284    friend class UndefinedImp;
 
  309    friend class NullImp;
 
  310    explicit Null(NullImp *v);
 
  333    friend class BooleanImp;
 
  334    explicit Boolean(BooleanImp *v);
 
  357    friend class StringImp;
 
  358    explicit String(StringImp *v);
 
  361  extern const double NaN;
 
  362  extern const double Inf;
 
  374    Number(
long unsigned int l);
 
  376    double value() 
const;
 
  377    int intValue() 
const;
 
  393    friend class NumberImp;
 
  394    explicit Number(NumberImp *v);
 
Represents an primitive Boolean value.
 
Represents the current state of script execution.
 
Represents an primitive Null value.
 
Represents an primitive Number value.
 
Represents an primitive String value.
 
Represents an primitive Undefined value.
 
ValueImp is the base type for all primitives (Undefined, Null, Boolean, String, Number) and objects i...
 
Value objects are act as wrappers ("smart pointers") around ValueImp objects and their descendents.
 
UString toString(ExecState *exec) const
Performs the ToString type conversion operation on this value (ECMA 9.8)
 
bool isA(Type t) const
Checks whether or not the value is of a particular tpye.
 
bool toUInt32(unsigned &i) const
Checks if we can do a lossless conversion to UInt32.
 
int toInteger(ExecState *exec) const
Performs the ToInteger type conversion operation on this value (ECMA 9.4)
 
unsigned int toUInt32(ExecState *exec) const
Performs the ToUInt32 type conversion operation on this value (ECMA 9.6)
 
int toInt32(ExecState *exec) const
Performs the ToInt32 type conversion operation on this value (ECMA 9.5)
 
Value toPrimitive(ExecState *exec, Type preferredType=UnspecifiedType) const
Performs the ToPrimitive type conversion operation on this value (ECMA 9.1)
 
bool toBoolean(ExecState *exec) const
Performs the ToBoolean type conversion operation on this value (ECMA 9.2)
 
bool isValid() const
Returns whether or not this is a valid value.
 
Type type() const
Returns the type of value.
 
unsigned short toUInt16(ExecState *exec) const
Performs the ToUInt16 type conversion operation on this value (ECMA 9.7)
 
double toNumber(ExecState *exec) const
Performs the ToNumber type conversion operation on this value (ECMA 9.3)