diff options
author | Matthew Vogt <matthew.vogt@nokia.com> | 2012-07-06 13:04:53 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-11 01:49:59 +0200 |
commit | a1a2c81d7fd5512b8c0531b01453656fc4c96bed (patch) | |
tree | 519b6c02482c3487d64a060041e95ae09a878c49 /src/qml/qml/qqmltypeloader.cpp | |
parent | f5cb65b35e076facbce45e896902a34da7036135 (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.cpp | 15 |
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; |