1d0825bca7fe65beaee391d30da42e937db621564Steve Block/* 2d0825bca7fe65beaee391d30da42e937db621564Steve Block Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) 3d0825bca7fe65beaee391d30da42e937db621564Steve Block 4d0825bca7fe65beaee391d30da42e937db621564Steve Block This library is free software; you can redistribute it and/or 5d0825bca7fe65beaee391d30da42e937db621564Steve Block modify it under the terms of the GNU Library General Public 6d0825bca7fe65beaee391d30da42e937db621564Steve Block License as published by the Free Software Foundation; either 7d0825bca7fe65beaee391d30da42e937db621564Steve Block version 2 of the License, or (at your option) any later version. 8d0825bca7fe65beaee391d30da42e937db621564Steve Block 9d0825bca7fe65beaee391d30da42e937db621564Steve Block This library is distributed in the hope that it will be useful, 10d0825bca7fe65beaee391d30da42e937db621564Steve Block but WITHOUT ANY WARRANTY; without even the implied warranty of 11d0825bca7fe65beaee391d30da42e937db621564Steve Block MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12d0825bca7fe65beaee391d30da42e937db621564Steve Block Library General Public License for more details. 13d0825bca7fe65beaee391d30da42e937db621564Steve Block 14d0825bca7fe65beaee391d30da42e937db621564Steve Block You should have received a copy of the GNU Library General Public License 15d0825bca7fe65beaee391d30da42e937db621564Steve Block along with this library; see the file COPYING.LIB. If not, write to 16d0825bca7fe65beaee391d30da42e937db621564Steve Block the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17d0825bca7fe65beaee391d30da42e937db621564Steve Block Boston, MA 02110-1301, USA. 18d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 19d0825bca7fe65beaee391d30da42e937db621564Steve Block 20d0825bca7fe65beaee391d30da42e937db621564Steve Block#include "config.h" 21d0825bca7fe65beaee391d30da42e937db621564Steve Block 22d0825bca7fe65beaee391d30da42e937db621564Steve Block#include "qscriptvalue.h" 23d0825bca7fe65beaee391d30da42e937db621564Steve Block 24d0825bca7fe65beaee391d30da42e937db621564Steve Block#include "qscriptengine.h" 25d0825bca7fe65beaee391d30da42e937db621564Steve Block#include "qscriptengine_p.h" 26d0825bca7fe65beaee391d30da42e937db621564Steve Block#include "qscriptvalue_p.h" 27d0825bca7fe65beaee391d30da42e937db621564Steve Block#include <QtCore/qdebug.h> 28d0825bca7fe65beaee391d30da42e937db621564Steve Block 29d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 30d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs an invalid value. 31d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 32d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue() 33d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(new QScriptValuePrivate()) 34d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 35d0825bca7fe65beaee391d30da42e937db621564Steve Block} 36d0825bca7fe65beaee391d30da42e937db621564Steve Block 37d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 38d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with a boolean \a value. 39d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 40d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(bool value) 41d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(new QScriptValuePrivate(value)) 42d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 43d0825bca7fe65beaee391d30da42e937db621564Steve Block} 44d0825bca7fe65beaee391d30da42e937db621564Steve Block 45d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 46d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with a number \a value. 47d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 48d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(int value) 49d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(new QScriptValuePrivate(value)) 50d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 51d0825bca7fe65beaee391d30da42e937db621564Steve Block} 52d0825bca7fe65beaee391d30da42e937db621564Steve Block 53d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 54d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with a number \a value. 55d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 56d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(uint value) 57d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(new QScriptValuePrivate(value)) 58d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 59d0825bca7fe65beaee391d30da42e937db621564Steve Block} 60d0825bca7fe65beaee391d30da42e937db621564Steve Block 61d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 62d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with a number \a value. 63d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 64d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(qsreal value) 65d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(new QScriptValuePrivate(value)) 66d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 67d0825bca7fe65beaee391d30da42e937db621564Steve Block} 68d0825bca7fe65beaee391d30da42e937db621564Steve Block 69d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 70d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with a string \a value. 71d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 72d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(const QString& value) 73d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(new QScriptValuePrivate(value)) 74d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 75d0825bca7fe65beaee391d30da42e937db621564Steve Block} 76d0825bca7fe65beaee391d30da42e937db621564Steve Block 77d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 78d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with a special \a value. 79d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 80d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(SpecialValue value) 81d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(new QScriptValuePrivate(value)) 82d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 83d0825bca7fe65beaee391d30da42e937db621564Steve Block} 84d0825bca7fe65beaee391d30da42e937db621564Steve Block 85d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 86d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with a string \a value. 87d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 88d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(const char* value) 89d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(new QScriptValuePrivate(QString::fromUtf8(value))) 90d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 91d0825bca7fe65beaee391d30da42e937db621564Steve Block} 92d0825bca7fe65beaee391d30da42e937db621564Steve Block 93d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 94d0825bca7fe65beaee391d30da42e937db621564Steve Block Block automatic convertion to bool 95d0825bca7fe65beaee391d30da42e937db621564Steve Block \internal 96d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 97d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(void* d) 98d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 99d0825bca7fe65beaee391d30da42e937db621564Steve Block Q_ASSERT(false); 100d0825bca7fe65beaee391d30da42e937db621564Steve Block} 101d0825bca7fe65beaee391d30da42e937db621564Steve Block 102d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 103d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue from private 104d0825bca7fe65beaee391d30da42e937db621564Steve Block \internal 105d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 106d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(QScriptValuePrivate* d) 107d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(d) 108d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 109d0825bca7fe65beaee391d30da42e937db621564Steve Block} 110d0825bca7fe65beaee391d30da42e937db621564Steve Block 111d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 112d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 113d0825bca7fe65beaee391d30da42e937db621564Steve Block 114d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with the boolean \a value and 115d0825bca7fe65beaee391d30da42e937db621564Steve Block registers it with the script \a engine. 116d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 117d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(QScriptEngine* engine, bool value) 118d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 11921939df44de1705786c545cd1bf519d47250322dBen Murdoch if (engine) 12021939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(QScriptEnginePrivate::get(engine), value); 12121939df44de1705786c545cd1bf519d47250322dBen Murdoch else 12221939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(value); 123d0825bca7fe65beaee391d30da42e937db621564Steve Block} 124d0825bca7fe65beaee391d30da42e937db621564Steve Block 125d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 126d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 127d0825bca7fe65beaee391d30da42e937db621564Steve Block 128d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with the integer \a value and 129d0825bca7fe65beaee391d30da42e937db621564Steve Block registers it with the script \a engine. 130d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 131d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(QScriptEngine* engine, int value) 132d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 13321939df44de1705786c545cd1bf519d47250322dBen Murdoch if (engine) 13421939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(QScriptEnginePrivate::get(engine), value); 13521939df44de1705786c545cd1bf519d47250322dBen Murdoch else 13621939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(value); 137d0825bca7fe65beaee391d30da42e937db621564Steve Block} 138d0825bca7fe65beaee391d30da42e937db621564Steve Block 139d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 140d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 141d0825bca7fe65beaee391d30da42e937db621564Steve Block 142d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with the unsigned integer \a value and 143d0825bca7fe65beaee391d30da42e937db621564Steve Block registers it with the script \a engine. 144d0825bca7fe65beaee391d30da42e937db621564Steve Block */ 145d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(QScriptEngine* engine, uint value) 146d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 14721939df44de1705786c545cd1bf519d47250322dBen Murdoch if (engine) 14821939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(QScriptEnginePrivate::get(engine), value); 14921939df44de1705786c545cd1bf519d47250322dBen Murdoch else 15021939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(value); 151d0825bca7fe65beaee391d30da42e937db621564Steve Block} 152d0825bca7fe65beaee391d30da42e937db621564Steve Block 153d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 154d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 155d0825bca7fe65beaee391d30da42e937db621564Steve Block 156d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with the qsreal \a value and 157d0825bca7fe65beaee391d30da42e937db621564Steve Block registers it with the script \a engine. 158d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 159d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(QScriptEngine* engine, qsreal value) 160d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 16121939df44de1705786c545cd1bf519d47250322dBen Murdoch if (engine) 16221939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(QScriptEnginePrivate::get(engine), value); 16321939df44de1705786c545cd1bf519d47250322dBen Murdoch else 16421939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(value); 165d0825bca7fe65beaee391d30da42e937db621564Steve Block} 166d0825bca7fe65beaee391d30da42e937db621564Steve Block 167d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 168d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 169d0825bca7fe65beaee391d30da42e937db621564Steve Block 170d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with the string \a value and 171d0825bca7fe65beaee391d30da42e937db621564Steve Block registers it with the script \a engine. 172d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 173d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(QScriptEngine* engine, const QString& value) 174d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 17521939df44de1705786c545cd1bf519d47250322dBen Murdoch if (engine) 17621939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(QScriptEnginePrivate::get(engine), value); 17721939df44de1705786c545cd1bf519d47250322dBen Murdoch else 17821939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(value); 179d0825bca7fe65beaee391d30da42e937db621564Steve Block} 180d0825bca7fe65beaee391d30da42e937db621564Steve Block 181d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 182d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 183d0825bca7fe65beaee391d30da42e937db621564Steve Block 184d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with the string \a value and 185d0825bca7fe65beaee391d30da42e937db621564Steve Block registers it with the script \a engine. 186d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 187d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(QScriptEngine* engine, const char* value) 188d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 18921939df44de1705786c545cd1bf519d47250322dBen Murdoch if (engine) 19021939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(QScriptEnginePrivate::get(engine), QString::fromUtf8(value)); 19121939df44de1705786c545cd1bf519d47250322dBen Murdoch else 19221939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(QString::fromUtf8(value)); 193d0825bca7fe65beaee391d30da42e937db621564Steve Block} 194d0825bca7fe65beaee391d30da42e937db621564Steve Block 195d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 196d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 197d0825bca7fe65beaee391d30da42e937db621564Steve Block 198d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue with the special \a value and 199d0825bca7fe65beaee391d30da42e937db621564Steve Block registers it with the script \a engine. 200d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 201d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(QScriptEngine* engine, SpecialValue value) 202d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 20321939df44de1705786c545cd1bf519d47250322dBen Murdoch if (engine) 20421939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(QScriptEnginePrivate::get(engine), value); 20521939df44de1705786c545cd1bf519d47250322dBen Murdoch else 20621939df44de1705786c545cd1bf519d47250322dBen Murdoch d_ptr = new QScriptValuePrivate(value); 207d0825bca7fe65beaee391d30da42e937db621564Steve Block} 208d0825bca7fe65beaee391d30da42e937db621564Steve Block 209d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 210d0825bca7fe65beaee391d30da42e937db621564Steve Block Constructs a new QScriptValue that is a copy of \a other. 211d0825bca7fe65beaee391d30da42e937db621564Steve Block 212d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if \a other is an object (i.e., isObject() would return 213d0825bca7fe65beaee391d30da42e937db621564Steve Block true), then only a reference to the underlying object is copied into 214d0825bca7fe65beaee391d30da42e937db621564Steve Block the new script value (i.e., the object itself is not copied). 215d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 216d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::QScriptValue(const QScriptValue& other) 217d0825bca7fe65beaee391d30da42e937db621564Steve Block : d_ptr(other.d_ptr) 218d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 219d0825bca7fe65beaee391d30da42e937db621564Steve Block} 220d0825bca7fe65beaee391d30da42e937db621564Steve Block 221d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 222d0825bca7fe65beaee391d30da42e937db621564Steve Block Destroys this QScriptValue. 223d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 224d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue::~QScriptValue() 225d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 226d0825bca7fe65beaee391d30da42e937db621564Steve Block} 227d0825bca7fe65beaee391d30da42e937db621564Steve Block 228d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 229d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is valid; otherwise returns 230d0825bca7fe65beaee391d30da42e937db621564Steve Block false. 231d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 232d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isValid() const 233d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 234d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isValid(); 235d0825bca7fe65beaee391d30da42e937db621564Steve Block} 236d0825bca7fe65beaee391d30da42e937db621564Steve Block 237d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 238d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is of the primitive type Boolean; 239d0825bca7fe65beaee391d30da42e937db621564Steve Block otherwise returns false. 240d0825bca7fe65beaee391d30da42e937db621564Steve Block 241d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa toBool() 242d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 243d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isBool() const 244d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 245d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isBool(); 246d0825bca7fe65beaee391d30da42e937db621564Steve Block} 247d0825bca7fe65beaee391d30da42e937db621564Steve Block 248d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 249d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 250d0825bca7fe65beaee391d30da42e937db621564Steve Block 251d0825bca7fe65beaee391d30da42e937db621564Steve Block Use isBool() instead. 252d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is of the primitive type Boolean; 253d0825bca7fe65beaee391d30da42e937db621564Steve Block otherwise returns false. 254d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 255d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isBoolean() const 256d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 257d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isBool(); 258d0825bca7fe65beaee391d30da42e937db621564Steve Block} 259d0825bca7fe65beaee391d30da42e937db621564Steve Block 260d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 261d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is of the primitive type Number; 262d0825bca7fe65beaee391d30da42e937db621564Steve Block otherwise returns false. 263d0825bca7fe65beaee391d30da42e937db621564Steve Block 264d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa toNumber() 265d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 266d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isNumber() const 267d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 268d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isNumber(); 269d0825bca7fe65beaee391d30da42e937db621564Steve Block} 270d0825bca7fe65beaee391d30da42e937db621564Steve Block 271d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 272d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is of the primitive type Null; 273d0825bca7fe65beaee391d30da42e937db621564Steve Block otherwise returns false. 274d0825bca7fe65beaee391d30da42e937db621564Steve Block 275d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa QScriptEngine::nullValue() 276d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 277d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isNull() const 278d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 279d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isNull(); 280d0825bca7fe65beaee391d30da42e937db621564Steve Block} 281d0825bca7fe65beaee391d30da42e937db621564Steve Block 282d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 283d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is of the primitive type String; 284d0825bca7fe65beaee391d30da42e937db621564Steve Block otherwise returns false. 285d0825bca7fe65beaee391d30da42e937db621564Steve Block 286d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa toString() 287d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 288d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isString() const 289d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 290d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isString(); 291d0825bca7fe65beaee391d30da42e937db621564Steve Block} 292d0825bca7fe65beaee391d30da42e937db621564Steve Block 293d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 294d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is of the primitive type Undefined; 295d0825bca7fe65beaee391d30da42e937db621564Steve Block otherwise returns false. 296d0825bca7fe65beaee391d30da42e937db621564Steve Block 297d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa QScriptEngine::undefinedValue() 298d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 299d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isUndefined() const 300d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 301d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isUndefined(); 302d0825bca7fe65beaee391d30da42e937db621564Steve Block} 303d0825bca7fe65beaee391d30da42e937db621564Steve Block 304d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 305d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is an object of the Error class; 306d0825bca7fe65beaee391d30da42e937db621564Steve Block otherwise returns false. 307d0825bca7fe65beaee391d30da42e937db621564Steve Block 308d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa QScriptContext::throwError() 309d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 310d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isError() const 311d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 312d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isError(); 313d0825bca7fe65beaee391d30da42e937db621564Steve Block} 314d0825bca7fe65beaee391d30da42e937db621564Steve Block 315d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 316e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke Returns true if this QScriptValue is an object of the Array class; 317e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke otherwise returns false. 318e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 319e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke \sa QScriptEngine::newArray() 320e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke*/ 321e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkebool QScriptValue::isArray() const 322e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 323e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke return d_ptr->isArray(); 324e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 325e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 326e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/*! 327bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen Returns true if this QScriptValue is an object of the Date class; 328bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen otherwise returns false. 329bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 330bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen \sa QScriptEngine::newDate() 331bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen*/ 332bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenbool QScriptValue::isDate() const 333bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{ 334bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen return d_ptr->isDate(); 335bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen} 336bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 337bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen/*! 338d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is of the Object type; otherwise 339d0825bca7fe65beaee391d30da42e937db621564Steve Block returns false. 340d0825bca7fe65beaee391d30da42e937db621564Steve Block 341d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that function values, variant values, and QObject values are 342d0825bca7fe65beaee391d30da42e937db621564Steve Block objects, so this function returns true for such values. 343d0825bca7fe65beaee391d30da42e937db621564Steve Block 344d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa toObject(), QScriptEngine::newObject() 345d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 346d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isObject() const 347d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 348d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isObject(); 349d0825bca7fe65beaee391d30da42e937db621564Steve Block} 350d0825bca7fe65beaee391d30da42e937db621564Steve Block 351d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 352d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is a function; otherwise returns 353d0825bca7fe65beaee391d30da42e937db621564Steve Block false. 354d0825bca7fe65beaee391d30da42e937db621564Steve Block 355d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa call() 356d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 357d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::isFunction() const 358d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 359d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->isFunction(); 360d0825bca7fe65beaee391d30da42e937db621564Steve Block} 361d0825bca7fe65beaee391d30da42e937db621564Steve Block 362d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 363d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns the string value of this QScriptValue, as defined in 364d0825bca7fe65beaee391d30da42e937db621564Steve Block \l{ECMA-262} section 9.8, "ToString". 365d0825bca7fe65beaee391d30da42e937db621564Steve Block 366d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if this QScriptValue is an object, calling this function 367d0825bca7fe65beaee391d30da42e937db621564Steve Block has side effects on the script engine, since the engine will call 368d0825bca7fe65beaee391d30da42e937db621564Steve Block the object's toString() function (and possibly valueOf()) in an 369d0825bca7fe65beaee391d30da42e937db621564Steve Block attempt to convert the object to a primitive value (possibly 370d0825bca7fe65beaee391d30da42e937db621564Steve Block resulting in an uncaught script exception). 371d0825bca7fe65beaee391d30da42e937db621564Steve Block 372d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa isString() 373d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 374d0825bca7fe65beaee391d30da42e937db621564Steve BlockQString QScriptValue::toString() const 375d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 376d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->toString(); 377d0825bca7fe65beaee391d30da42e937db621564Steve Block} 378d0825bca7fe65beaee391d30da42e937db621564Steve Block 379d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 380d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns the number value of this QScriptValue, as defined in 381d0825bca7fe65beaee391d30da42e937db621564Steve Block \l{ECMA-262} section 9.3, "ToNumber". 382d0825bca7fe65beaee391d30da42e937db621564Steve Block 383d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if this QScriptValue is an object, calling this function 384d0825bca7fe65beaee391d30da42e937db621564Steve Block has side effects on the script engine, since the engine will call 385d0825bca7fe65beaee391d30da42e937db621564Steve Block the object's valueOf() function (and possibly toString()) in an 386d0825bca7fe65beaee391d30da42e937db621564Steve Block attempt to convert the object to a primitive value (possibly 387d0825bca7fe65beaee391d30da42e937db621564Steve Block resulting in an uncaught script exception). 388d0825bca7fe65beaee391d30da42e937db621564Steve Block 389d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa isNumber(), toInteger(), toInt32(), toUInt32(), toUInt16() 390d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 391d0825bca7fe65beaee391d30da42e937db621564Steve Blockqsreal QScriptValue::toNumber() const 392d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 393d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->toNumber(); 394d0825bca7fe65beaee391d30da42e937db621564Steve Block} 395d0825bca7fe65beaee391d30da42e937db621564Steve Block 396d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 397d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns the boolean value of this QScriptValue, using the conversion 398d0825bca7fe65beaee391d30da42e937db621564Steve Block rules described in \l{ECMA-262} section 9.2, "ToBoolean". 399d0825bca7fe65beaee391d30da42e937db621564Steve Block 400d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if this QScriptValue is an object, calling this function 401d0825bca7fe65beaee391d30da42e937db621564Steve Block has side effects on the script engine, since the engine will call 402d0825bca7fe65beaee391d30da42e937db621564Steve Block the object's valueOf() function (and possibly toString()) in an 403d0825bca7fe65beaee391d30da42e937db621564Steve Block attempt to convert the object to a primitive value (possibly 404d0825bca7fe65beaee391d30da42e937db621564Steve Block resulting in an uncaught script exception). 405d0825bca7fe65beaee391d30da42e937db621564Steve Block 406d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa isBool() 407d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 408d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::toBool() const 409d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 410d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->toBool(); 411d0825bca7fe65beaee391d30da42e937db621564Steve Block} 412d0825bca7fe65beaee391d30da42e937db621564Steve Block 413d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 414d0825bca7fe65beaee391d30da42e937db621564Steve Block \obsolete 415d0825bca7fe65beaee391d30da42e937db621564Steve Block 416d0825bca7fe65beaee391d30da42e937db621564Steve Block Use toBool() instead. 417d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 418d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::toBoolean() const 419d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 420d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->toBool(); 421d0825bca7fe65beaee391d30da42e937db621564Steve Block} 422d0825bca7fe65beaee391d30da42e937db621564Steve Block 423d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 424d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns the integer value of this QScriptValue, using the conversion 425d0825bca7fe65beaee391d30da42e937db621564Steve Block rules described in \l{ECMA-262} section 9.4, "ToInteger". 426d0825bca7fe65beaee391d30da42e937db621564Steve Block 427d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if this QScriptValue is an object, calling this function 428d0825bca7fe65beaee391d30da42e937db621564Steve Block has side effects on the script engine, since the engine will call 429d0825bca7fe65beaee391d30da42e937db621564Steve Block the object's valueOf() function (and possibly toString()) in an 430d0825bca7fe65beaee391d30da42e937db621564Steve Block attempt to convert the object to a primitive value (possibly 431d0825bca7fe65beaee391d30da42e937db621564Steve Block resulting in an uncaught script exception). 432d0825bca7fe65beaee391d30da42e937db621564Steve Block 433d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa toNumber() 434d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 435d0825bca7fe65beaee391d30da42e937db621564Steve Blockqsreal QScriptValue::toInteger() const 436d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 437d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->toInteger(); 438d0825bca7fe65beaee391d30da42e937db621564Steve Block} 439d0825bca7fe65beaee391d30da42e937db621564Steve Block 440d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 441d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns the signed 32-bit integer value of this QScriptValue, using 442d0825bca7fe65beaee391d30da42e937db621564Steve Block the conversion rules described in \l{ECMA-262} section 9.5, "ToInt32". 443d0825bca7fe65beaee391d30da42e937db621564Steve Block 444d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if this QScriptValue is an object, calling this function 445d0825bca7fe65beaee391d30da42e937db621564Steve Block has side effects on the script engine, since the engine will call 446d0825bca7fe65beaee391d30da42e937db621564Steve Block the object's valueOf() function (and possibly toString()) in an 447d0825bca7fe65beaee391d30da42e937db621564Steve Block attempt to convert the object to a primitive value (possibly 448d0825bca7fe65beaee391d30da42e937db621564Steve Block resulting in an uncaught script exception). 449d0825bca7fe65beaee391d30da42e937db621564Steve Block 450d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa toNumber(), toUInt32() 451d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 452d0825bca7fe65beaee391d30da42e937db621564Steve Blockqint32 QScriptValue::toInt32() const 453d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 454d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->toInt32(); 455d0825bca7fe65beaee391d30da42e937db621564Steve Block} 456d0825bca7fe65beaee391d30da42e937db621564Steve Block 457d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 458d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns the unsigned 32-bit integer value of this QScriptValue, using 459d0825bca7fe65beaee391d30da42e937db621564Steve Block the conversion rules described in \l{ECMA-262} section 9.6, "ToUint32". 460d0825bca7fe65beaee391d30da42e937db621564Steve Block 461d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if this QScriptValue is an object, calling this function 462d0825bca7fe65beaee391d30da42e937db621564Steve Block has side effects on the script engine, since the engine will call 463d0825bca7fe65beaee391d30da42e937db621564Steve Block the object's valueOf() function (and possibly toString()) in an 464d0825bca7fe65beaee391d30da42e937db621564Steve Block attempt to convert the object to a primitive value (possibly 465d0825bca7fe65beaee391d30da42e937db621564Steve Block resulting in an uncaught script exception). 466d0825bca7fe65beaee391d30da42e937db621564Steve Block 467d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa toNumber(), toInt32() 468d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 469d0825bca7fe65beaee391d30da42e937db621564Steve Blockquint32 QScriptValue::toUInt32() const 470d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 471d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->toUInt32(); 472d0825bca7fe65beaee391d30da42e937db621564Steve Block} 473d0825bca7fe65beaee391d30da42e937db621564Steve Block 474d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 475d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns the unsigned 16-bit integer value of this QScriptValue, using 476d0825bca7fe65beaee391d30da42e937db621564Steve Block the conversion rules described in \l{ECMA-262} section 9.7, "ToUint16". 477d0825bca7fe65beaee391d30da42e937db621564Steve Block 478d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if this QScriptValue is an object, calling this function 479d0825bca7fe65beaee391d30da42e937db621564Steve Block has side effects on the script engine, since the engine will call 480d0825bca7fe65beaee391d30da42e937db621564Steve Block the object's valueOf() function (and possibly toString()) in an 481d0825bca7fe65beaee391d30da42e937db621564Steve Block attempt to convert the object to a primitive value (possibly 482d0825bca7fe65beaee391d30da42e937db621564Steve Block resulting in an uncaught script exception). 483d0825bca7fe65beaee391d30da42e937db621564Steve Block 484d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa toNumber() 485d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 486d0825bca7fe65beaee391d30da42e937db621564Steve Blockquint16 QScriptValue::toUInt16() const 487d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 488d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->toUInt16(); 489d0825bca7fe65beaee391d30da42e937db621564Steve Block} 490d0825bca7fe65beaee391d30da42e937db621564Steve Block 491d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 4926c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \obsolete 4936c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 4946c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen This function is obsolete; use QScriptEngine::toObject() instead. 4956c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen*/ 4966c2af9490927c3c5959b5cb07461b646f8b32f6cKristian MonsenQScriptValue QScriptValue::toObject() const 4976c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 4986c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return QScriptValuePrivate::get(d_ptr->toObject()); 4996c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 5006c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 5016c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen/*! 502bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen Returns a QDateTime representation of this value, in local time. 503bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen If this QScriptValue is not a date, or the value of the date is 504bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen NaN (Not-a-Number), an invalid QDateTime is returned. 505bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 506bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen \sa isDate() 507bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen*/ 508bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian MonsenQDateTime QScriptValue::toDateTime() const 509bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{ 510bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen return d_ptr->toDateTime(); 511bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen} 512bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 513bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen/*! 514d0825bca7fe65beaee391d30da42e937db621564Steve Block Calls this QScriptValue as a function, using \a thisObject as 515d0825bca7fe65beaee391d30da42e937db621564Steve Block the `this' object in the function call, and passing \a args 516d0825bca7fe65beaee391d30da42e937db621564Steve Block as arguments to the function. Returns the value returned from 517d0825bca7fe65beaee391d30da42e937db621564Steve Block the function. 518d0825bca7fe65beaee391d30da42e937db621564Steve Block 519d0825bca7fe65beaee391d30da42e937db621564Steve Block If this QScriptValue is not a function, call() does nothing 520d0825bca7fe65beaee391d30da42e937db621564Steve Block and returns an invalid QScriptValue. 521d0825bca7fe65beaee391d30da42e937db621564Steve Block 522d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if \a thisObject is not an object, the global object 523d0825bca7fe65beaee391d30da42e937db621564Steve Block (see \l{QScriptEngine::globalObject()}) will be used as the 524d0825bca7fe65beaee391d30da42e937db621564Steve Block `this' object. 525d0825bca7fe65beaee391d30da42e937db621564Steve Block 526d0825bca7fe65beaee391d30da42e937db621564Steve Block Calling call() can cause an exception to occur in the script engine; 527d0825bca7fe65beaee391d30da42e937db621564Steve Block in that case, call() returns the value that was thrown (typically an 528d0825bca7fe65beaee391d30da42e937db621564Steve Block \c{Error} object). You can call 529d0825bca7fe65beaee391d30da42e937db621564Steve Block QScriptEngine::hasUncaughtException() to determine if an exception 530d0825bca7fe65beaee391d30da42e937db621564Steve Block occurred. 531d0825bca7fe65beaee391d30da42e937db621564Steve Block 532d0825bca7fe65beaee391d30da42e937db621564Steve Block \snippet doc/src/snippets/code/src_script_qscriptvalue.cpp 2 533d0825bca7fe65beaee391d30da42e937db621564Steve Block 534d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa construct() 535d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 536d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue QScriptValue::call(const QScriptValue& thisObject, const QScriptValueList& args) 537d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 538d0825bca7fe65beaee391d30da42e937db621564Steve Block return d_ptr->call(thisObject.d_ptr.data(), args); 539d0825bca7fe65beaee391d30da42e937db621564Steve Block} 540d0825bca7fe65beaee391d30da42e937db621564Steve Block 541d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 542d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns the QScriptEngine that created this QScriptValue, 543d0825bca7fe65beaee391d30da42e937db621564Steve Block or 0 if this QScriptValue is invalid or the value is not 544d0825bca7fe65beaee391d30da42e937db621564Steve Block associated with a particular engine. 545d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 546d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptEngine* QScriptValue::engine() const 547d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 548d0825bca7fe65beaee391d30da42e937db621564Steve Block QScriptEnginePrivate* engine = d_ptr->engine(); 549d0825bca7fe65beaee391d30da42e937db621564Steve Block if (engine) 550d0825bca7fe65beaee391d30da42e937db621564Steve Block return QScriptEnginePrivate::get(engine); 551d0825bca7fe65beaee391d30da42e937db621564Steve Block return 0; 552d0825bca7fe65beaee391d30da42e937db621564Steve Block} 553d0825bca7fe65beaee391d30da42e937db621564Steve Block 554d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 55506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen If this QScriptValue is an object, returns the internal prototype 55606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen (\c{__proto__} property) of this object; otherwise returns an 55706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen invalid QScriptValue. 55806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 55906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen \sa setPrototype(), isObject() 56006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen*/ 56106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian MonsenQScriptValue QScriptValue::prototype() const 56206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 56306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return QScriptValuePrivate::get(d_ptr->prototype()); 56406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 56506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 56606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen/*! 56706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen If this QScriptValue is an object, sets the internal prototype 56806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen (\c{__proto__} property) of this object to be \a prototype; 56906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen otherwise does nothing. 57006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 57106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen The internal prototype should not be confused with the public 57206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen property with name "prototype"; the public prototype is usually 57306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen only set on functions that act as constructors. 57406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 57506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen \sa prototype(), isObject() 57606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen*/ 57706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid QScriptValue::setPrototype(const QScriptValue& prototype) 57806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen{ 57906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen d_ptr->setPrototype(QScriptValuePrivate::get(prototype)); 58006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen} 58106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 58206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen/*! 583d0825bca7fe65beaee391d30da42e937db621564Steve Block Assigns the \a other value to this QScriptValue. 584d0825bca7fe65beaee391d30da42e937db621564Steve Block 585d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if \a other is an object (isObject() returns true), 586d0825bca7fe65beaee391d30da42e937db621564Steve Block only a reference to the underlying object will be assigned; 587d0825bca7fe65beaee391d30da42e937db621564Steve Block the object itself will not be copied. 588d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 589d0825bca7fe65beaee391d30da42e937db621564Steve BlockQScriptValue& QScriptValue::operator=(const QScriptValue& other) 590d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 591d0825bca7fe65beaee391d30da42e937db621564Steve Block d_ptr = other.d_ptr; 592d0825bca7fe65beaee391d30da42e937db621564Steve Block return *this; 593d0825bca7fe65beaee391d30da42e937db621564Steve Block} 594d0825bca7fe65beaee391d30da42e937db621564Steve Block 595d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 596d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is equal to \a other, otherwise 597d0825bca7fe65beaee391d30da42e937db621564Steve Block returns false. The comparison follows the behavior described in 598d0825bca7fe65beaee391d30da42e937db621564Steve Block \l{ECMA-262} section 11.9.3, "The Abstract Equality Comparison 599d0825bca7fe65beaee391d30da42e937db621564Steve Block Algorithm". 600d0825bca7fe65beaee391d30da42e937db621564Steve Block 601d0825bca7fe65beaee391d30da42e937db621564Steve Block This function can return true even if the type of this QScriptValue 602d0825bca7fe65beaee391d30da42e937db621564Steve Block is different from the type of the \a other value; i.e. the 603d0825bca7fe65beaee391d30da42e937db621564Steve Block comparison is not strict. For example, comparing the number 9 to 604d0825bca7fe65beaee391d30da42e937db621564Steve Block the string "9" returns true; comparing an undefined value to a null 605d0825bca7fe65beaee391d30da42e937db621564Steve Block value returns true; comparing a \c{Number} object whose primitive 606d0825bca7fe65beaee391d30da42e937db621564Steve Block value is 6 to a \c{String} object whose primitive value is "6" 607d0825bca7fe65beaee391d30da42e937db621564Steve Block returns true; and comparing the number 1 to the boolean value 608d0825bca7fe65beaee391d30da42e937db621564Steve Block \c{true} returns true. If you want to perform a comparison 609d0825bca7fe65beaee391d30da42e937db621564Steve Block without such implicit value conversion, use strictlyEquals(). 610d0825bca7fe65beaee391d30da42e937db621564Steve Block 611d0825bca7fe65beaee391d30da42e937db621564Steve Block Note that if this QScriptValue or the \a other value are objects, 612d0825bca7fe65beaee391d30da42e937db621564Steve Block calling this function has side effects on the script engine, since 613d0825bca7fe65beaee391d30da42e937db621564Steve Block the engine will call the object's valueOf() function (and possibly 614d0825bca7fe65beaee391d30da42e937db621564Steve Block toString()) in an attempt to convert the object to a primitive value 615d0825bca7fe65beaee391d30da42e937db621564Steve Block (possibly resulting in an uncaught script exception). 616d0825bca7fe65beaee391d30da42e937db621564Steve Block 617d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa strictlyEquals(), lessThan() 618d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 619d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::equals(const QScriptValue& other) const 620d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 621545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return d_ptr->equals(QScriptValuePrivate::get(other)); 622d0825bca7fe65beaee391d30da42e937db621564Steve Block} 623d0825bca7fe65beaee391d30da42e937db621564Steve Block 624d0825bca7fe65beaee391d30da42e937db621564Steve Block/*! 625d0825bca7fe65beaee391d30da42e937db621564Steve Block Returns true if this QScriptValue is equal to \a other using strict 626d0825bca7fe65beaee391d30da42e937db621564Steve Block comparison (no conversion), otherwise returns false. The comparison 627d0825bca7fe65beaee391d30da42e937db621564Steve Block follows the behavior described in \l{ECMA-262} section 11.9.6, "The 628d0825bca7fe65beaee391d30da42e937db621564Steve Block Strict Equality Comparison Algorithm". 629d0825bca7fe65beaee391d30da42e937db621564Steve Block 630d0825bca7fe65beaee391d30da42e937db621564Steve Block If the type of this QScriptValue is different from the type of the 631d0825bca7fe65beaee391d30da42e937db621564Steve Block \a other value, this function returns false. If the types are equal, 632d0825bca7fe65beaee391d30da42e937db621564Steve Block the result depends on the type, as shown in the following table: 633d0825bca7fe65beaee391d30da42e937db621564Steve Block 634d0825bca7fe65beaee391d30da42e937db621564Steve Block \table 635d0825bca7fe65beaee391d30da42e937db621564Steve Block \header \o Type \o Result 636d0825bca7fe65beaee391d30da42e937db621564Steve Block \row \o Undefined \o true 637d0825bca7fe65beaee391d30da42e937db621564Steve Block \row \o Null \o true 638d0825bca7fe65beaee391d30da42e937db621564Steve Block \row \o Boolean \o true if both values are true, false otherwise 639d0825bca7fe65beaee391d30da42e937db621564Steve Block \row \o Number \o false if either value is NaN (Not-a-Number); true if values are equal, false otherwise 640d0825bca7fe65beaee391d30da42e937db621564Steve Block \row \o String \o true if both values are exactly the same sequence of characters, false otherwise 641d0825bca7fe65beaee391d30da42e937db621564Steve Block \row \o Object \o true if both values refer to the same object, false otherwise 642d0825bca7fe65beaee391d30da42e937db621564Steve Block \endtable 643d0825bca7fe65beaee391d30da42e937db621564Steve Block 644d0825bca7fe65beaee391d30da42e937db621564Steve Block \sa equals() 645d0825bca7fe65beaee391d30da42e937db621564Steve Block*/ 646d0825bca7fe65beaee391d30da42e937db621564Steve Blockbool QScriptValue::strictlyEquals(const QScriptValue& other) const 647d0825bca7fe65beaee391d30da42e937db621564Steve Block{ 648545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return d_ptr->strictlyEquals(QScriptValuePrivate::get(other)); 649545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch} 650545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 651545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch/*! 652545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch Returns true if this QScriptValue is an instance of 653545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch \a other; otherwise returns false. 654545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 655545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch This QScriptValue is considered to be an instance of \a other if 656545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch \a other is a function and the value of the \c{prototype} 657545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch property of \a other is in the prototype chain of this 658545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch QScriptValue. 659545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch*/ 660545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdochbool QScriptValue::instanceOf(const QScriptValue& other) const 661545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch{ 662545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch return d_ptr->instanceOf(QScriptValuePrivate::get(other)); 663d0825bca7fe65beaee391d30da42e937db621564Steve Block} 664ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 665ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block/*! 666ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block Returns the value of this QScriptValue's property with the given \a name, 667ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block using the given \a mode to resolve the property. 668ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 669ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block If no such property exists, an invalid QScriptValue is returned. 670ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 671ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block If the property is implemented using a getter function (i.e. has the 672ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block PropertyGetter flag set), calling property() has side-effects on the 673ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block script engine, since the getter function will be called (possibly 674ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block resulting in an uncaught script exception). If an exception 675ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block occurred, property() returns the value that was thrown (typically 676ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block an \c{Error} object). 677ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 678ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block \sa setProperty(), propertyFlags(), QScriptValueIterator 679ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block*/ 680ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve BlockQScriptValue QScriptValue::property(const QString& name, const ResolveFlags& mode) const 681ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 682ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block return QScriptValuePrivate::get(d_ptr->property(name, mode)); 683ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} 684ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 685ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block/*! 686ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block \overload 687ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 688e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke Returns the value of this QScriptValue's property with the given \a name, 689e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke using the given \a mode to resolve the property. 690e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 691e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke This overload of property() is useful when you need to look up the 692e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke same property repeatedly, since the lookup can be performed faster 693e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke when the name is represented as an interned string. 694e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 695e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke \sa QScriptEngine::toStringHandle(), setProperty() 696e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke*/ 697e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeQScriptValue QScriptValue::property(const QScriptString& name, const ResolveFlags& mode) const 698e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 699e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke return QScriptValuePrivate::get(d_ptr->property(QScriptStringPrivate::get(name).constData(), mode)); 700e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 701e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 702e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/*! 703e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke \overload 704e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 705ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block Returns the property at the given \a arrayIndex, using the given \a 706ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block mode to resolve the property. 707ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 708ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block This function is provided for convenience and performance when 709ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block working with array objects. 710ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 711ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block If this QScriptValue is not an Array object, this function behaves 712ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block as if property() was called with the string representation of \a 713ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block arrayIndex. 714ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block*/ 715ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve BlockQScriptValue QScriptValue::property(quint32 arrayIndex, const ResolveFlags& mode) const 716ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 717ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block return QScriptValuePrivate::get(d_ptr->property(arrayIndex, mode)); 718ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} 719e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 720e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/*! 721e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke Sets the value of this QScriptValue's property with the given \a name to 722e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke the given \a value. 723e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 724e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke If this QScriptValue is not an object, this function does nothing. 725e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 726e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke If this QScriptValue does not already have a property with name \a name, 727e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke a new property is created; the given \a flags then specify how this 728e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke property may be accessed by script code. 729e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 730e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke If \a value is invalid, the property is removed. 731e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 732e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke If the property is implemented using a setter function (i.e. has the 733e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke PropertySetter flag set), calling setProperty() has side-effects on 734e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke the script engine, since the setter function will be called with the 735e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke given \a value as argument (possibly resulting in an uncaught script 736e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke exception). 737e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 738e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke Note that you cannot specify custom getter or setter functions for 739e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke built-in properties, such as the \c{length} property of Array objects 740e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke or meta properties of QObject objects. 741e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 742e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke \sa property() 743e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke*/ 744e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid QScriptValue::setProperty(const QString& name, const QScriptValue& value, const PropertyFlags& flags) 745e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 746e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke d_ptr->setProperty(name, QScriptValuePrivate::get(value), flags); 747e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 748e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 749e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/*! 750e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke \overload 751e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 752e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke Sets the property at the given \a arrayIndex to the given \a value. 753e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 754e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke This function is provided for convenience and performance when 755e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke working with array objects. 756e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 757e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke If this QScriptValue is not an Array object, this function behaves 758e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke as if setProperty() was called with the string representation of \a 759e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke arrayIndex. 760e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke*/ 761e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid QScriptValue::setProperty(quint32 arrayIndex, const QScriptValue& value, const PropertyFlags& flags) 762e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 763e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke d_ptr->setProperty(arrayIndex, QScriptValuePrivate::get(value), flags); 764e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 765e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 766e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/*! 767e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke Sets the value of this QScriptValue's property with the given \a 768e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke name to the given \a value. The given \a flags specify how this 769e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke property may be accessed by script code. 770e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 771e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke This overload of setProperty() is useful when you need to set the 772e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke same property repeatedly, since the operation can be performed 773e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke faster when the name is represented as an interned string. 774e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 775e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke \sa QScriptEngine::toStringHandle() 776e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke*/ 777e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid QScriptValue::setProperty(const QScriptString& name, const QScriptValue& value, const PropertyFlags& flags) 778e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 779e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke d_ptr->setProperty(QScriptStringPrivate::get(name).constData(), QScriptValuePrivate::get(value), flags); 780e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 781e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 782e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/*! 783e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke Returns the flags of the property with the given \a name, using the 784e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke given \a mode to resolve the property. 785e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 786e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke \sa property() 787e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke*/ 788e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeQScriptValue::PropertyFlags QScriptValue::propertyFlags(const QString& name, const ResolveFlags& mode) const 789e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 790e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke return d_ptr->propertyFlags(name, mode); 791e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 792e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 793e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/*! 794e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke Returns the flags of the property with the given \a name, using the 795e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke given \a mode to resolve the property. 796e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 797e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke \sa property() 798e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke*/ 799e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeQScriptValue::PropertyFlags QScriptValue::propertyFlags(const QScriptString& name, const ResolveFlags& mode) const 800e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{ 801e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke return d_ptr->propertyFlags(QScriptStringPrivate::get(name).constData(), mode); 802e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} 803