From 6d5c17b4e0ec8288c720bc2b93a97db4db7f215e Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Fri, 26 Jun 2009 13:16:59 +0200 Subject: implement QScriptValue::isQMetaObject() and QScriptValue::toQMetaObject() --- src/script/api/qscriptvalue.cpp | 18 ++++++++---------- tests/auto/qscriptengine/tst_qscriptengine.cpp | 4 ---- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/script/api/qscriptvalue.cpp b/src/script/api/qscriptvalue.cpp index 12461d5..caa8730 100644 --- a/src/script/api/qscriptvalue.cpp +++ b/src/script/api/qscriptvalue.cpp @@ -713,7 +713,7 @@ bool QScriptValue::isError() const Q_D(const QScriptValue); if (!d || !d->isJSC() || !d->jscValue.isObject()) return false; - return JSC::asObject(d->jscValue)->isObject(&JSC::ErrorInstance::info); + return d->jscValue.isObject(&JSC::ErrorInstance::info); } /*! @@ -727,7 +727,7 @@ bool QScriptValue::isArray() const Q_D(const QScriptValue); if (!d || !d->isJSC() || !d->jscValue.isObject()) return false; - return JSC::asObject(d->jscValue)->isObject(&JSC::JSArray::info); + return d->jscValue.isObject(&JSC::JSArray::info); } /*! @@ -741,7 +741,7 @@ bool QScriptValue::isDate() const Q_D(const QScriptValue); if (!d || !d->isJSC() || !d->jscValue.isObject()) return false; - return JSC::asObject(d->jscValue)->isObject(&JSC::DateInstance::info); + return d->jscValue.isObject(&JSC::DateInstance::info); } /*! @@ -755,7 +755,7 @@ bool QScriptValue::isRegExp() const Q_D(const QScriptValue); if (!d || !d->isJSC() || !d->jscValue.isObject()) return false; - return JSC::asObject(d->jscValue)->isObject(&JSC::RegExpObject::info); + return d->jscValue.isObject(&JSC::RegExpObject::info); } /*! @@ -1550,10 +1550,9 @@ QObject *QScriptValue::toQObject() const */ const QMetaObject *QScriptValue::toQMetaObject() const { - Q_ASSERT_X(false, Q_FUNC_INFO, "not implemented"); -// Q_D(const QScriptValue); -// if (isQMetaObject()) -// return static_cast(JSC::asObject(d->jscValue))->value(); + Q_D(const QScriptValue); + if (isQMetaObject()) + return static_cast(JSC::asObject(d->jscValue))->value(); return 0; } @@ -2258,8 +2257,7 @@ bool QScriptValue::isQMetaObject() const Q_D(const QScriptValue); if (!d || !d->isJSC() || !d->jscValue.isObject()) return false; - Q_ASSERT_X(false, Q_FUNC_INFO, "not implemented"); -// return JSC::asObject(d->jscValue)->isObject(&QScript::QMetaObjectWrapperObject::info); + return JSC::asObject(d->jscValue)->isObject(&QScript::QMetaObjectWrapperObject::info); return false; } diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp index 800319d..4c3b7e1 100644 --- a/tests/auto/qscriptengine/tst_qscriptengine.cpp +++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp @@ -220,9 +220,7 @@ void tst_QScriptEngine::newFunction() QScriptValue prot = fun.property("prototype", QScriptValue::ResolveLocal); QVERIFY(prot.isObject()); QVERIFY(prot.property("constructor").strictlyEquals(fun)); - QEXPECT_FAIL("", "Flags are wrong", Continue); QCOMPARE(fun.propertyFlags("prototype"), QScriptValue::Undeletable); - QEXPECT_FAIL("", "Flags are wrong", Continue); QCOMPARE(prot.propertyFlags("constructor"), QScriptValue::Undeletable | QScriptValue::SkipInEnumeration); } // prototype should be Function.prototype @@ -244,9 +242,7 @@ void tst_QScriptEngine::newFunction() QScriptValue prot = fun.property("prototype", QScriptValue::ResolveLocal); QVERIFY(prot.isObject()); QVERIFY(prot.property("constructor").strictlyEquals(fun)); - QEXPECT_FAIL("", "Flags are wrong", Continue); QCOMPARE(fun.propertyFlags("prototype"), QScriptValue::Undeletable); - QEXPECT_FAIL("", "Flags are wrong", Continue); QCOMPARE(prot.propertyFlags("constructor"), QScriptValue::Undeletable | QScriptValue::SkipInEnumeration); } // prototype should be Function.prototype -- cgit v0.12