summaryrefslogtreecommitdiffstats
path: root/src/script/api/qscriptvalue.cpp
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-03-31 15:08:29 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-03-31 15:08:29 (GMT)
commit9d7ab0dc82e15f5960fc0e695da95477b518804f (patch)
tree172d9e8f30d5b1a6efaa8bf626aa53140a4401d1 /src/script/api/qscriptvalue.cpp
parent0373325dd1390682922dd07614214c453d473ce3 (diff)
parent1552a6930d02bd574f5bb7c17fa5994dcb8a9e43 (diff)
downloadQt-9d7ab0dc82e15f5960fc0e695da95477b518804f.zip
Qt-9d7ab0dc82e15f5960fc0e695da95477b518804f.tar.gz
Qt-9d7ab0dc82e15f5960fc0e695da95477b518804f.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (60 commits) Total makeover of SVG image reader Add a QGraphicsItem::updateMicroFocus() to QGraphicsItem. Micro optimization after feedback from Jan-Arve. Show only one dialog when using QFileDialog on Mac. Re-fix compilation: re-add symbols introduced in Qt 4.6.3 to Qt 4.7 Fix bad merge from 4.6. Doc: Updated the qdoc manual with i18n info. Fixed a code example. Fix QStaticText test on Mac Support the pen set on the painter in QStaticText when using rich text Fix setting font for QStaticText on Linux and Mac Hack .pro files on windows to define QT_NO_EGL Fix QDate::isLeapYear() for years < 1 One more test for chinese codecs QScript: More missing APIShim QScriptEngine: Fix reentrency involving creation and desctructions of QScriptEngines Work-around Symbian 10.1's broken egl.h Add some #warnings to debug Symbian EGL build failure Don't detect EGLImage presence by testing function pointers Implement proper QStaticText support in QPaintBuffer Make QStaticText layout lazy ...
Diffstat (limited to 'src/script/api/qscriptvalue.cpp')
-rw-r--r--src/script/api/qscriptvalue.cpp78
1 files changed, 58 insertions, 20 deletions
diff --git a/src/script/api/qscriptvalue.cpp b/src/script/api/qscriptvalue.cpp
index 4cd84a4..3aab268 100644
--- a/src/script/api/qscriptvalue.cpp
+++ b/src/script/api/qscriptvalue.cpp
@@ -561,6 +561,7 @@ QScriptValue QScriptValue::scope() const
Q_D(const QScriptValue);
if (!d || !d->isObject())
return QScriptValue();
+ QScript::APIShim shim(d->engine);
// ### make hidden property
JSC::JSValue result = d->property("__qt_scope__", QScriptValue::ResolveLocal);
return d->engine->scriptValueFromJSCValue(result);
@@ -650,11 +651,12 @@ static Type type(const QScriptValue &v)
return Object;
}
-QScriptValue ToPrimitive(const QScriptValue &object, JSC::PreferredPrimitiveType hint = JSC::NoPreference)
+static QScriptValue ToPrimitive(const QScriptValue &object, JSC::PreferredPrimitiveType hint = JSC::NoPreference)
{
Q_ASSERT(object.isObject());
QScriptValuePrivate *pp = QScriptValuePrivate::get(object);
Q_ASSERT(pp->engine != 0);
+ QScript::APIShim shim(pp->engine);
JSC::ExecState *exec = pp->engine->currentFrame;
JSC::JSValue savedException;
QScriptEnginePrivate::saveException(exec, &savedException);
@@ -848,6 +850,7 @@ bool QScriptValue::equals(const QScriptValue &other) const
if (!eng_p)
eng_p = other.d_ptr->engine;
if (eng_p) {
+ QScript::APIShim shim(eng_p);
JSC::ExecState *exec = eng_p->currentFrame;
JSC::JSValue savedException;
QScriptEnginePrivate::saveException(exec, &savedException);
@@ -940,9 +943,12 @@ QString QScriptValue::toString() const
return QString();
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toString(exec, d->jscValue);
- }
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toString(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toString(0, d->jscValue);
+ } }
case QScriptValuePrivate::Number:
return QScript::ToString(d->numberValue);
case QScriptValuePrivate::String:
@@ -970,8 +976,12 @@ qsreal QScriptValue::toNumber() const
return 0;
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toNumber(exec, d->jscValue);
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toNumber(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toNumber(0, d->jscValue);
+ }
}
case QScriptValuePrivate::Number:
return d->numberValue;
@@ -993,8 +1003,12 @@ bool QScriptValue::toBoolean() const
return false;
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toBool(exec, d->jscValue);
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toBool(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toBool(0, d->jscValue);
+ }
}
case QScriptValuePrivate::Number:
return QScript::ToBool(d->numberValue);
@@ -1025,8 +1039,12 @@ bool QScriptValue::toBool() const
return false;
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toBool(exec, d->jscValue);
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toBool(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toBool(0, d->jscValue);
+ }
}
case QScriptValuePrivate::Number:
return QScript::ToBool(d->numberValue);
@@ -1055,8 +1073,12 @@ qint32 QScriptValue::toInt32() const
return 0;
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toInt32(exec, d->jscValue);
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toInt32(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toInt32(0, d->jscValue);
+ }
}
case QScriptValuePrivate::Number:
return QScript::ToInt32(d->numberValue);
@@ -1085,8 +1107,12 @@ quint32 QScriptValue::toUInt32() const
return 0;
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toUInt32(exec, d->jscValue);
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toUInt32(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toUInt32(0, d->jscValue);
+ }
}
case QScriptValuePrivate::Number:
return QScript::ToUInt32(d->numberValue);
@@ -1115,8 +1141,12 @@ quint16 QScriptValue::toUInt16() const
return 0;
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toUInt16(exec, d->jscValue);
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toUInt16(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toUInt16(0, d->jscValue);
+ }
}
case QScriptValuePrivate::Number:
return QScript::ToUInt16(d->numberValue);
@@ -1145,8 +1175,12 @@ qsreal QScriptValue::toInteger() const
return 0;
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toInteger(exec, d->jscValue);
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toInteger(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toInteger(0, d->jscValue);
+ }
}
case QScriptValuePrivate::Number:
return QScript::ToInteger(d->numberValue);
@@ -1185,8 +1219,12 @@ QVariant QScriptValue::toVariant() const
return QVariant();
switch (d->type) {
case QScriptValuePrivate::JavaScriptCore: {
- JSC::ExecState *exec = d->engine ? d->engine->currentFrame : 0;
- return QScriptEnginePrivate::toVariant(exec, d->jscValue);
+ if (d->engine) {
+ QScript::APIShim shim(d->engine);
+ return QScriptEnginePrivate::toVariant(d->engine->currentFrame, d->jscValue);
+ } else {
+ return QScriptEnginePrivate::toVariant(0, d->jscValue);
+ }
}
case QScriptValuePrivate::Number:
return QVariant(d->numberValue);