Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QV4::Value Struct Reference

#include <qv4value_p.h>

Inheritance diagram for QV4::Value:
Collaboration diagram for QV4::Value:

Public Types

using ManagedPtr = Managed *
Public Types inherited from QV4::StaticValue
enum class  TagBit {
  SpecialNegative = 0b10000000000000000000 << 12 , SpecialQNaN = 0b00000000000010000000 << 12 , Special = 0b00000000000001000000 << 12 , IntCompat = 0b00000000000000100000 << 12 ,
  Unmanaged = 0b00000000000000010000 << 12 , IntOrBool = 0b00000000000000001000 << 12 , Number = 0b00000000000000000100 << 12
}
enum  Type {
  Managed_Type = 0 , Double_Type = 1 , Undefined_Type = 2 , Empty_Type = quint32(TagBit::Unmanaged) ,
  Null_Type = Empty_Type | quint32(TagBit::IntCompat) , Boolean_Type = Null_Type | quint32(TagBit::IntOrBool) , Integer_Type = Boolean_Type | quint32(TagBit::Number)
}
enum  {
  Tag_Shift = 32 , IsIntegerConvertible_Shift = 48 , IsIntegerConvertible_Value = 3 , IsIntegerOrBool_Shift = 47 ,
  IsIntegerOrBool_Value = 7
}
enum class  QuickType : quint32 {
  Managed = Managed_Type , Empty = Empty_Type , Null = Null_Type , Boolean = Boolean_Type ,
  Integer = Integer_Type , PlusInf = quint32(TagBit::Number) | quint32(TagBit::Special) | quint32(TagBit::Unmanaged) , MinusInf = PlusInf | quint32(TagBit::SpecialNegative) , NaN = PlusInf | quint32(TagBit::SpecialQNaN) ,
  MinusNaN = NaN | quint32(TagBit::SpecialNegative)
}
enum  {
  QT_Empty = Empty_Type , QT_Null = Null_Type , QT_Bool = Boolean_Type , QT_Int = Integer_Type ,
  QuickType_Shift = Tag_Shift
}
using HeapBasePtr = Heap::Base *
using ValueTypeInternal = QuickType

Public Member Functions

bool isString () const
bool isStringOrSymbol () const
bool isSymbol () const
bool isObject () const
bool isFunctionObject () const
QML_NEARLY_ALWAYS_INLINE StringstringValue () const
QML_NEARLY_ALWAYS_INLINE StringOrSymbolstringOrSymbolValue () const
QML_NEARLY_ALWAYS_INLINE SymbolsymbolValue () const
QML_NEARLY_ALWAYS_INLINE ObjectobjectValue () const
QML_NEARLY_ALWAYS_INLINE ManagedPtr managed () const
QML_NEARLY_ALWAYS_INLINE Value::HeapBasePtr heapObject () const
int toUInt16 () const
int toInt32 () const
unsigned int toUInt32 () const
qint64 toLength () const
qint64 toIndex () const
bool toBoolean () const
double toInteger () const
ReturnedValue convertedToNumber () const
double toNumber () const
double toNumberImpl () const
QString toQStringNoThrow () const
QString toQString () const
QString toQString (bool *ok) const
Heap::StringtoString (ExecutionEngine *e) const
QV4::PropertyKey toPropertyKey (ExecutionEngine *e) const
Heap::Object * toObject (ExecutionEngine *e) const
bool isPrimitive () const
template<typename T>
const T * as () const
template<typename T>
T * as ()
template<typename T>
T * cast ()
template<typename T>
const T * cast () const
uint asArrayLength (bool *ok) const
bool sameValue (Value other) const
bool sameValueZero (Value other) const
void mark (MarkStack *markStack)
Valueoperator= (const ScopedValue &v)
Valueoperator= (ReturnedValue v)
Valueoperator= (ManagedPtr m)
Valueoperator= (HeapBasePtr o)
template<typename T>
Valueoperator= (const Scoped< T > &t)
template<>
const ArrayObjectas () const
template<>
const FunctionObjectas () const
template<>
const StringOrSymbolas () const
template<>
const Stringas () const
template<>
const DateObjectas () const
template<>
const Managedas () const
template<>
const Objectas () const
template<>
const ErrorObjectas () const
template<>
const UrlObjectas () const
template<>
const UrlSearchParamsObjectas () const
Public Member Functions inherited from QV4::StaticValue
 StaticValue ()=default
constexpr StaticValue (quint64 val)
StaticValueoperator= (ReturnedValue v)
template<typename Value>
StaticValueoperator= (const Value &)
template<typename Value>
const ValueasValue () const
template<typename Value>
ValueasValue ()
QV4_NEARLY_ALWAYS_INLINE constexpr quint64rawValueRef ()
QV4_NEARLY_ALWAYS_INLINE constexpr quint64 rawValue () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setRawValue (quint64 raw)
QV4_NEARLY_ALWAYS_INLINE constexpr void setTagValue (quint32 tag, quint32 value)
QV4_NEARLY_ALWAYS_INLINE constexpr quint32 value () const
QV4_NEARLY_ALWAYS_INLINE constexpr quint32 tag () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setTag (quint32 tag)
QV4_NEARLY_ALWAYS_INLINE constexpr int int_32 () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setInt_32 (int i)
QV4_NEARLY_ALWAYS_INLINE uint uint_32 () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setEmpty ()
Type type () const
quint64 quickType () const
bool isEmpty () const
bool isNull () const
bool isBoolean () const
bool isInteger () const
bool isNullOrUndefined () const
bool isUndefined () const
bool isDouble () const
bool isNumber () const
bool isManagedOrUndefined () const
bool isManaged () const
bool isIntOrBool () const
bool integerCompatible () const
bool isNaN () const
bool isPositiveInt () const
QV4_NEARLY_ALWAYS_INLINE double doubleValue () const
QV4_NEARLY_ALWAYS_INLINE void setDouble (double d)
bool isInt32 ()
double asDouble () const
bool booleanValue () const
int integerValue () const
bool tryIntegerConversion ()
bool toBoolean () const
int toInt32 () const
ReturnedValuedata_ptr ()
constexpr ReturnedValue asReturnedValue () const
template<>
StaticValueoperator= (const Value &value)
template<typename Managed>
StaticValueoperator= (const Managed &m)
template<>
ValueasValue ()
template<>
const ValueasValue () const

Static Public Member Functions

static constexpr Value fromStaticValue (StaticValue staticValue)
static constexpr Value undefined ()
static Value fromHeapObject (HeapBasePtr m)
static bool toBooleanImpl (Value val)
static double toNumberImpl (Value v)
static Heap::StringtoString (ExecutionEngine *e, Value val)
static Heap::Object * toObject (ExecutionEngine *e, Value val)
static constexpr Value fromReturnedValue (ReturnedValue val)
static double toInteger (double d)
static int toInt32 (double d)
static unsigned int toUInt32 (double d)
static constexpr Value emptyValue ()
static constexpr Value fromBoolean (bool b)
static constexpr Value fromInt32 (int i)
static constexpr Value undefinedValue ()
static constexpr Value nullValue ()
static Value fromDouble (double d)
static Value fromUInt32 (uint i)
Static Public Member Functions inherited from QV4::StaticValue
static int valueOffset ()
static int tagOffset ()
static constexpr quint64 tagValue (quint32 tag, quint32 value)
static constexpr quint64 tagBitMask (TagBit bit)
static bool integerCompatible (StaticValue a, StaticValue b)
static bool bothDouble (StaticValue a, StaticValue b)
static QV4_NEARLY_ALWAYS_INLINE bool isInt32 (double d)
static constexpr StaticValue fromReturnedValue (ReturnedValue val)
static constexpr StaticValue emptyValue ()
static constexpr StaticValue fromBoolean (bool b)
static constexpr StaticValue fromInt32 (int i)
static constexpr StaticValue undefinedValue ()
static constexpr StaticValue nullValue ()
static StaticValue fromDouble (double d)
static StaticValue fromUInt32 (uint i)
static double toInteger (double d)
static int toInt32 (double d)
static unsigned int toUInt32 (double d)

Additional Inherited Members

Public Attributes inherited from QV4::StaticValue
quint64 _val
Static Public Attributes inherited from QV4::StaticValue
static constexpr quint64 ExponentMask = 0b0111111111110000ull << 48
static constexpr quint64 Top1Mask = 0b1000000000000000ull << 48
static constexpr quint64 Upper3Mask = 0b0000000000001110ull << 48
static constexpr quint64 Lower5Mask = 0b0000000000011111ull
static constexpr quint64 ManagedMask = ExponentMask | quint64(TagBit::Unmanaged) << Tag_Shift
static constexpr quint64 DoubleMask = ManagedMask | quint64(TagBit::Special) << Tag_Shift
static constexpr quint64 NumberMask = ManagedMask | quint64(TagBit::Number) << Tag_Shift
static constexpr quint64 IntOrBoolMask = ManagedMask | quint64(TagBit::IntOrBool) << Tag_Shift
static constexpr quint64 IntCompatMask = ManagedMask | quint64(TagBit::IntCompat) << Tag_Shift
static constexpr quint64 EncodeMask = DoubleMask | NumberMask
static constexpr quint64 DoubleDiscriminator = ((quint64(TagBit::Unmanaged) | quint64(TagBit::Special)) << Tag_Shift)
static constexpr quint64 NumberDiscriminator = ((quint64(TagBit::Unmanaged) | quint64(TagBit::Number)) << Tag_Shift)

Detailed Description

Definition at line 38 of file qv4value_p.h.

Member Typedef Documentation

◆ ManagedPtr

Definition at line 40 of file qv4value_p.h.

Member Function Documentation

◆ as() [1/12]

template<typename T>
T * QV4::Value::as ( )
inline

Definition at line 152 of file qv4value_p.h.

◆ as() [2/12]

template<>
const DateObject * QV4::Value::as ( ) const
inline

Definition at line 300 of file qv4dateobject_p.h.

◆ as() [3/12]

template<>
const ErrorObject * QV4::Value::as ( ) const
inline

Definition at line 147 of file qv4errorobject_p.h.

◆ as() [4/12]

template<>
const FunctionObject * QV4::Value::as ( ) const
inline

Definition at line 229 of file qv4functionobject_p.h.

◆ as() [5/12]

template<>
const Managed * QV4::Value::as ( ) const
inline

Definition at line 187 of file qv4managed_p.h.

◆ as() [6/12]

template<>
const Object * QV4::Value::as ( ) const
inline

Definition at line 192 of file qv4managed_p.h.

◆ as() [7/12]

template<>
const ArrayObject * QV4::Value::as ( ) const
inline

Definition at line 515 of file qv4object_p.h.

◆ as() [8/12]

template<>
const StringOrSymbol * QV4::Value::as ( ) const
inline

Definition at line 269 of file qv4string_p.h.

◆ as() [9/12]

template<>
const String * QV4::Value::as ( ) const
inline

Definition at line 274 of file qv4string_p.h.

◆ as() [10/12]

template<>
const UrlObject * QV4::Value::as ( ) const
inline

Definition at line 126 of file qv4urlobject_p.h.

◆ as() [11/12]

template<>
const UrlSearchParamsObject * QV4::Value::as ( ) const
inline

Definition at line 242 of file qv4urlobject_p.h.

◆ as() [12/12]

template<typename T>
const T * QV4::Value::as ( ) const
inline

Definition at line 135 of file qv4value_p.h.

◆ asArrayLength()

uint Value::asArrayLength ( bool * ok) const

Definition at line 276 of file qv4value.cpp.

◆ cast() [1/2]

template<typename T>
T * QV4::Value::cast ( )
inline

Definition at line 159 of file qv4value_p.h.

◆ cast() [2/2]

template<typename T>
const T * QV4::Value::cast ( ) const
inline

Definition at line 162 of file qv4value_p.h.

◆ convertedToNumber()

ReturnedValue QV4::Value::convertedToNumber ( ) const
inline

Definition at line 335 of file qv4value_p.h.

◆ emptyValue()

constexpr Value QV4::Value::emptyValue ( )
inlinestaticconstexpr

Definition at line 182 of file qv4value_p.h.

◆ fromBoolean()

constexpr Value QV4::Value::fromBoolean ( bool b)
inlinestaticconstexpr

Definition at line 186 of file qv4value_p.h.

◆ fromDouble()

Value QV4::Value::fromDouble ( double d)
inlinestatic

Definition at line 202 of file qv4value_p.h.

◆ fromHeapObject()

Value QV4::Value::fromHeapObject ( HeapBasePtr m)
inlinestatic

Definition at line 87 of file qv4value_p.h.

◆ fromInt32()

constexpr Value QV4::Value::fromInt32 ( int i)
inlinestaticconstexpr

Definition at line 190 of file qv4value_p.h.

◆ fromReturnedValue()

constexpr Value QV4::Value::fromReturnedValue ( ReturnedValue val)
inlinestaticconstexpr

Definition at line 168 of file qv4value_p.h.

◆ fromStaticValue()

constexpr Value QV4::Value::fromStaticValue ( StaticValue staticValue)
inlinestaticconstexpr

Definition at line 42 of file qv4value_p.h.

◆ fromUInt32()

Value QV4::Value::fromUInt32 ( uint i)
inlinestatic

Definition at line 206 of file qv4value_p.h.

◆ heapObject()

QML_NEARLY_ALWAYS_INLINE Value::HeapBasePtr QV4::Value::heapObject ( ) const
inline

Definition at line 83 of file qv4value_p.h.

◆ isFunctionObject()

bool QV4::Value::isFunctionObject ( ) const
inline

Definition at line 312 of file qv4value_p.h.

◆ isObject()

bool QV4::Value::isObject ( ) const
inline

Definition at line 305 of file qv4value_p.h.

◆ isPrimitive()

bool QV4::Value::isPrimitive ( ) const
inline

Definition at line 321 of file qv4value_p.h.

◆ isString()

bool QV4::Value::isString ( ) const
inline

Definition at line 287 of file qv4value_p.h.

◆ isStringOrSymbol()

bool QV4::Value::isStringOrSymbol ( ) const
inline

Definition at line 293 of file qv4value_p.h.

◆ isSymbol()

bool QV4::Value::isSymbol ( ) const
inline

Definition at line 299 of file qv4value_p.h.

◆ managed()

QML_NEARLY_ALWAYS_INLINE ManagedPtr QV4::Value::managed ( ) const
inline

Definition at line 78 of file qv4value_p.h.

◆ mark()

void QV4::Value::mark ( MarkStack * markStack)
inline

Definition at line 280 of file qv4value_p.h.

◆ nullValue()

constexpr Value QV4::Value::nullValue ( )
inlinestaticconstexpr

Definition at line 198 of file qv4value_p.h.

◆ objectValue()

QML_NEARLY_ALWAYS_INLINE Object * QV4::Value::objectValue ( ) const
inline

Definition at line 73 of file qv4value_p.h.

◆ operator=() [1/5]

template<typename T>
Value & QV4::Value::operator= ( const Scoped< T > & t)
inline

Definition at line 407 of file qv4scopedvalue_p.h.

◆ operator=() [2/5]

Value & QV4::Value::operator= ( const ScopedValue & v)
inline

Definition at line 400 of file qv4scopedvalue_p.h.

◆ operator=() [3/5]

Value & QV4::Value::operator= ( HeapBasePtr o)
inline

Definition at line 225 of file qv4value_p.h.

◆ operator=() [4/5]

Value & QV4::Value::operator= ( ManagedPtr m)
inline

Definition at line 217 of file qv4value_p.h.

◆ operator=() [5/5]

Value & QV4::Value::operator= ( ReturnedValue v)
inline

Definition at line 212 of file qv4value_p.h.

◆ sameValue()

bool Value::sameValue ( Value other) const

Definition at line 227 of file qv4value.cpp.

◆ sameValueZero()

bool Value::sameValueZero ( Value other) const

Definition at line 245 of file qv4value.cpp.

◆ stringOrSymbolValue()

QML_NEARLY_ALWAYS_INLINE StringOrSymbol * QV4::Value::stringOrSymbolValue ( ) const
inline

Definition at line 63 of file qv4value_p.h.

◆ stringValue()

QML_NEARLY_ALWAYS_INLINE String * QV4::Value::stringValue ( ) const
inline

Definition at line 58 of file qv4value_p.h.

◆ symbolValue()

QML_NEARLY_ALWAYS_INLINE Symbol * QV4::Value::symbolValue ( ) const
inline

Definition at line 68 of file qv4value_p.h.

◆ toBoolean()

bool QV4::Value::toBoolean ( ) const
inline

Definition at line 100 of file qv4value_p.h.

◆ toBooleanImpl()

bool Value::toBooleanImpl ( Value val)
static

Definition at line 43 of file qv4value.cpp.

◆ toIndex()

qint64 QV4::Value::toIndex ( ) const
inline

Definition at line 384 of file qv4value_p.h.

◆ toInt32() [1/2]

int QV4::Value::toInt32 ( ) const
inline

Definition at line 356 of file qv4value_p.h.

◆ toInt32() [2/2]

int QV4::Value::toInt32 ( double d)
inlinestatic

Definition at line 180 of file qv4value_p.h.

◆ toInteger() [1/2]

double QV4::Value::toInteger ( ) const
inline

Definition at line 397 of file qv4value_p.h.

◆ toInteger() [2/2]

double QV4::Value::toInteger ( double d)
inlinestatic

Definition at line 179 of file qv4value_p.h.

◆ toLength()

qint64 QV4::Value::toLength ( ) const
inline

Definition at line 372 of file qv4value_p.h.

◆ toNumber()

double QV4::Value::toNumber ( ) const
inline

Definition at line 326 of file qv4value_p.h.

◆ toNumberImpl() [1/2]

double QV4::Value::toNumberImpl ( ) const
inline

Definition at line 111 of file qv4value_p.h.

◆ toNumberImpl() [2/2]

double Value::toNumberImpl ( Value v)
static

Definition at line 59 of file qv4value.cpp.

◆ toObject() [1/2]

Heap::Object * QV4::Value::toObject ( ExecutionEngine * e) const
inline

Definition at line 125 of file qv4value_p.h.

◆ toObject() [2/2]

Heap::Object * Value::toObject ( ExecutionEngine * e,
Value val )
static

Definition at line 271 of file qv4value.cpp.

◆ toPropertyKey()

QV4::PropertyKey Value::toPropertyKey ( ExecutionEngine * e) const

Definition at line 208 of file qv4value.cpp.

◆ toQString() [1/2]

QString Value::toQString ( ) const

Definition at line 159 of file qv4value.cpp.

◆ toQString() [2/2]

QString Value::toQString ( bool * ok) const

Definition at line 179 of file qv4value.cpp.

◆ toQStringNoThrow()

QString Value::toQStringNoThrow ( ) const

Definition at line 123 of file qv4value.cpp.

◆ toString() [1/2]

Heap::String * QV4::Value::toString ( ExecutionEngine * e) const
inline

Definition at line 117 of file qv4value_p.h.

◆ toString() [2/2]

Heap::String * Value::toString ( ExecutionEngine * e,
Value val )
static

Definition at line 266 of file qv4value.cpp.

◆ toUInt16()

int Value::toUInt16 ( ) const

Definition at line 17 of file qv4value.cpp.

◆ toUInt32() [1/2]

unsigned int QV4::Value::toUInt32 ( ) const
inline

Definition at line 367 of file qv4value_p.h.

◆ toUInt32() [2/2]

unsigned int QV4::Value::toUInt32 ( double d)
inlinestatic

Definition at line 181 of file qv4value_p.h.

◆ undefined()

constexpr Value QV4::Value::undefined ( )
inlinestaticconstexpr

Definition at line 47 of file qv4value_p.h.

◆ undefinedValue()

constexpr Value QV4::Value::undefinedValue ( )
inlinestaticconstexpr

Definition at line 194 of file qv4value_p.h.


The documentation for this struct was generated from the following files: