aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypeloader.cpp
diff options
context:
space:
mode:
authorMatthew Vogt <matthew.vogt@nokia.com>2012-07-06 13:04:53 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-11 01:49:59 +0200
commita1a2c81d7fd5512b8c0531b01453656fc4c96bed (patch)
tree519b6c02482c3487d64a060041e95ae09a878c49 /src/qml/qml/qqmltypeloader.cpp
parentf5cb65b35e076facbce45e896902a34da7036135 (diff)
Improved error messages for malformed .import statements
Report errors in .import statements, rather than pass them through to V8 to yield 'Syntax error'. Task-number: QTBUG-24867 Change-Id: I111b3bd3d198e97f42b29591f61753e86295aeb2 Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
Diffstat (limited to 'src/qml/qml/qqmltypeloader.cpp')
-rw-r--r--src/qml/qml/qqmltypeloader.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
index e94d02c339..3a24625513 100644
--- a/src/qml/qml/qqmltypeloader.cpp
+++ b/src/qml/qml/qqmltypeloader.cpp
@@ -1969,8 +1969,17 @@ void QQmlScriptBlob::dataReceived(const Data &data)
m_source = QString::fromUtf8(data.data(), data.size());
+ m_scriptData = new QQmlScriptData();
+ m_scriptData->url = finalUrl();
+ m_scriptData->urlString = finalUrlString();
+
+ QQmlError metaDataError;
QQmlScript::Parser::JavaScriptMetaData metadata =
- QQmlScript::Parser::extractMetaData(m_source);
+ QQmlScript::Parser::extractMetaData(m_source, &metaDataError);
+ if (metaDataError.isValid()) {
+ metaDataError.setUrl(finalUrl());
+ m_scriptData->setError(metaDataError);
+ }
m_imports.setBaseUrl(finalUrl(), finalUrlString());
@@ -2052,9 +2061,7 @@ void QQmlScriptBlob::done()
return;
QQmlEngine *engine = typeLoader()->engine();
- m_scriptData = new QQmlScriptData();
- m_scriptData->url = finalUrl();
- m_scriptData->urlString = finalUrlString();
+
m_scriptData->importCache = new QQmlTypeNameCache();
QSet<QString> ns;