Don't assert on incorrect file url
authorAaron Kennedy <aaron.kennedy@nokia.com>
Tue, 12 Jul 2011 05:09:18 +0000 (15:09 +1000)
committerQt by Nokia <qt-info@nokia.com>
Mon, 25 Jul 2011 04:08:56 +0000 (06:08 +0200)
Exceptions thrown from within a QObject method have the same special
origin "string" that we use to identify QObject function objects as
QObject function objects.  Until we can modify this, or switch to
function objects in a later V8, we can't get correct source information
for these exceptions.

Task-number: QTBUG-20344

Change-Id: I02aa2d81ac78c2951d7ea714f33612160ded2476
Reviewed-on: http://codereview.qt.nokia.com/1475
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
src/declarative/qml/qdeclarativeexpression.cpp

index 93f1b3b..ebbfb8c 100644 (file)
@@ -407,10 +407,8 @@ void QDeclarativeExpressionPrivate::exceptionToError(v8::Handle<v8::Message> mes
     v8::Handle<v8::String> description = message->Get();
     int lineNumber = message->GetLineNumber();
 
-    Q_ASSERT(name->IsString());
-
-    v8::Local<v8::String> file = name->ToString();
-    if (file->Length() == 0) 
+    v8::Local<v8::String> file = name->IsString()?name->ToString():v8::Local<v8::String>();
+    if (file.IsEmpty() || file->Length() == 0) 
         error.setUrl(QUrl(QLatin1String("<Unknown File>")));
     else 
         error.setUrl(QUrl(QV8Engine::toStringStatic(file)));