diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-08-06 15:57:54 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-08-06 15:59:09 +0200 |
commit | 27deff6d2b5a9eb1d98cd7b377ab934a35086664 (patch) | |
tree | 4c34e422a8a838c59de68e7017d533cfb56d8eb5 /src/imports/testlib | |
parent | 0cca56f30d6a0290841859a58f517cece13d8d81 (diff) | |
parent | f3cbd0b8aa96abfc4b3660df4426ed10b11b18e0 (diff) |
Merge branch 'wip/v4' of ssh://codereview.qt-project.org/qt/qtdeclarative into dev
Change-Id: I278524d0f43d2237201d9cf78c1c36a5ecc83d84
Diffstat (limited to 'src/imports/testlib')
-rw-r--r-- | src/imports/testlib/main.cpp | 34 | ||||
-rw-r--r-- | src/imports/testlib/plugins.qmltypes | 6 | ||||
-rw-r--r-- | src/imports/testlib/testlib.pro | 2 |
3 files changed, 22 insertions, 20 deletions
diff --git a/src/imports/testlib/main.cpp b/src/imports/testlib/main.cpp index 2ddb9deddc..81dcaa2fc3 100644 --- a/src/imports/testlib/main.cpp +++ b/src/imports/testlib/main.cpp @@ -82,7 +82,7 @@ Q_SIGNALS: public Q_SLOTS: - QQmlV8Handle typeName(const QVariant& v) const + QQmlV4Handle typeName(const QVariant& v) const { QString name(v.typeName()); if (v.canConvert<QObject*>()) { @@ -97,31 +97,33 @@ public Q_SLOTS: } } - return QQmlV8Handle::fromHandle(v8::String::New(name.toUtf8())); + QQmlEngine *engine = qmlEngine(this); + QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine->handle()); + return QQmlV4Handle(QV4::Value::fromString(v4->newString(name))); } bool compare(const QVariant& act, const QVariant& exp) const { return act == exp; } - QQmlV8Handle callerFile(int frameIndex = 0) const + QQmlV4Handle callerFile(int frameIndex = 0) const { - v8::Local<v8::StackTrace> stacks = v8::StackTrace::CurrentStackTrace(10, v8::StackTrace::kDetailed); - int count = stacks->GetFrameCount(); - if (count >= frameIndex + 1) { - v8::Local<v8::StackFrame> frame = stacks->GetFrame(frameIndex + 1); - return QQmlV8Handle::fromHandle(frame->GetScriptNameOrSourceURL()); - } - return QQmlV8Handle(); + QQmlEngine *engine = qmlEngine(this); + QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine->handle()); + + QVector<QV4::ExecutionEngine::StackFrame> stack = v4->stackTrace(frameIndex + 1); + if (stack.size() > frameIndex) + return QQmlV4Handle(QV4::Value::fromString(v4->newString(stack.at(frameIndex).source))); + return QQmlV4Handle(); } int callerLine(int frameIndex = 0) const { - v8::Local<v8::StackTrace> stacks = v8::StackTrace::CurrentStackTrace(10, v8::StackTrace::kDetailed); - int count = stacks->GetFrameCount(); - if (count >= frameIndex + 1) { - v8::Local<v8::StackFrame> frame = stacks->GetFrame(frameIndex + 1); - return frame->GetLineNumber(); - } + QQmlEngine *engine = qmlEngine(this); + QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine->handle()); + + QVector<QV4::ExecutionEngine::StackFrame> stack = v4->stackTrace(frameIndex + 1); + if (stack.size() > frameIndex) + return stack.at(frameIndex).line; return -1; } }; diff --git a/src/imports/testlib/plugins.qmltypes b/src/imports/testlib/plugins.qmltypes index 7530e490f3..2865812eb2 100644 --- a/src/imports/testlib/plugins.qmltypes +++ b/src/imports/testlib/plugins.qmltypes @@ -259,7 +259,7 @@ Module { Property { name: "dragThreshold"; type: "int"; isReadonly: true } Method { name: "typeName" - type: "QQmlV8Handle" + type: "QQmlV4Handle" Parameter { name: "v"; type: "QVariant" } } Method { @@ -270,10 +270,10 @@ Module { } Method { name: "callerFile" - type: "QQmlV8Handle" + type: "QQmlV4Handle" Parameter { name: "frameIndex"; type: "int" } } - Method { name: "callerFile"; type: "QQmlV8Handle" } + Method { name: "callerFile"; type: "QQmlV4Handle" } Method { name: "callerLine" type: "int" diff --git a/src/imports/testlib/testlib.pro b/src/imports/testlib/testlib.pro index 56f0ea4806..6e8a6aee72 100644 --- a/src/imports/testlib/testlib.pro +++ b/src/imports/testlib/testlib.pro @@ -3,7 +3,7 @@ TARGET = qmltestplugin TARGETPATH = QtTest IMPORT_VERSION = 1.0 -QT += qml quick qmltest qmltest-private v8-private qml-private core-private testlib +QT += qml quick qmltest qmltest-private qml-private core-private testlib SOURCES += main.cpp |