diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-08-08 16:59:32 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-20 14:20:44 +0200 |
commit | e43b6bd9c7a3d584e488cd3c84f9deb2d8955b64 (patch) | |
tree | 0d1a33571d2f75630db3dfe84b1a4ead23f87958 /src/qml/qml/qqmljavascriptexpression.cpp | |
parent | 42b2685d0069e746dee344054831b6f08e482860 (diff) |
Remove QV4::DiagnosticMessage
QQmlError provides the same functionality, so let's rather
use that where required. Remove the dependency of
codegen onto the ExecutionContext that was only
required for error handling.
Change-Id: Ib0b61c0e138f89ff989c32996c93c339e4b62223
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/qqmljavascriptexpression.cpp')
-rw-r--r-- | src/qml/qml/qqmljavascriptexpression.cpp | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/qml/qml/qqmljavascriptexpression.cpp b/src/qml/qml/qqmljavascriptexpression.cpp index 3b3227cbbb..3b703c9c2a 100644 --- a/src/qml/qml/qqmljavascriptexpression.cpp +++ b/src/qml/qml/qqmljavascriptexpression.cpp @@ -298,24 +298,18 @@ QQmlDelayedError *QQmlJavaScriptExpression::delayedError() void QQmlJavaScriptExpression::exceptionToError(const QV4::Exception &e, QQmlError &error) { + QV4::ExecutionEngine::StackTrace trace = e.stackTrace(); + if (!trace.isEmpty()) { + QV4::ExecutionEngine::StackFrame frame = trace.first(); + error.setUrl(QUrl(frame.source)); + error.setLine(frame.line); + error.setColumn(frame.column); + } QV4::ErrorObject *errorObj = e.value().asErrorObject(); - if (errorObj && errorObj->subtype == QV4::ErrorObject::SyntaxError) { - QV4::DiagnosticMessage *msg = static_cast<QV4::SyntaxErrorObject*>(errorObj)->message(); - error.setUrl(QUrl(msg->fileName)); - error.setLine(msg->startLine); - error.setColumn(msg->startColumn); - error.setDescription(msg->message); - // ### FIXME: support msg->next - } else { - QV4::ExecutionEngine::StackTrace trace = e.stackTrace(); - if (!trace.isEmpty()) { - QV4::ExecutionEngine::StackFrame frame = trace.first(); - error.setUrl(QUrl(frame.source)); - error.setLine(frame.line); - error.setColumn(frame.column); - } + if (errorObj && errorObj->asSyntaxError()) + error.setDescription(errorObj->get(errorObj->engine()->newString("message")).toQString()); + else error.setDescription(e.value().toQString()); - } } QV4::PersistentValue |