diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2019-07-12 20:36:14 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2019-07-12 20:36:48 +0200 |
commit | 880a143eb572de3e8a6734cc663ed4b6e309b99d (patch) | |
tree | 4d1ad149dff7d9708e5981ea7b0ec7f8aee24bbf /src/qml/jsruntime | |
parent | c433b78660923b6268653b437a2a04078de0f058 (diff) | |
parent | a6057b46eebc71772d584ea5d318d130e2f40a19 (diff) |
Merge remote-tracking branch 'origin/dev' into wip/qt6
Change-Id: I4476733af61fcf3a2af1d121a4585c3fae1c240e
Diffstat (limited to 'src/qml/jsruntime')
27 files changed, 69 insertions, 51 deletions
diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index 98e0ef9e70..206e2b9aa4 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -38,13 +38,14 @@ ****************************************************************************/ #include <qv4argumentsobject_p.h> #include <qv4arrayobject_p.h> -#include <qv4alloca_p.h> #include <qv4scopedvalue_p.h> #include <qv4string_p.h> #include <qv4function_p.h> #include <qv4jscall_p.h> #include <qv4symbol_p.h> +#include <private/qv4alloca_p.h> + using namespace QV4; DEFINE_OBJECT_VTABLE(ArgumentsObject); diff --git a/src/qml/jsruntime/qv4compilationunitmapper.cpp b/src/qml/jsruntime/qv4compilationunitmapper.cpp index 350f6f9485..74f34a284d 100644 --- a/src/qml/jsruntime/qv4compilationunitmapper.cpp +++ b/src/qml/jsruntime/qv4compilationunitmapper.cpp @@ -39,7 +39,7 @@ #include "qv4compilationunitmapper_p.h" -#include "qv4compileddata_p.h" +#include <private/qv4compileddata_p.h> #include <QFileInfo> #include <QDateTime> #include <QCoreApplication> diff --git a/src/qml/jsruntime/qv4dateobject.cpp b/src/qml/jsruntime/qv4dateobject.cpp index 21c6a5d06b..1b26608bf3 100644 --- a/src/qml/jsruntime/qv4dateobject.cpp +++ b/src/qml/jsruntime/qv4dateobject.cpp @@ -52,8 +52,6 @@ #include <time.h> -#include <private/qqmljsengine_p.h> - #include <wtf/MathExtras.h> #if defined(Q_OS_LINUX) && QT_CONFIG(timezone) diff --git a/src/qml/jsruntime/qv4debugging_p.h b/src/qml/jsruntime/qv4debugging_p.h index 9b41bb6e7a..52263105fa 100644 --- a/src/qml/jsruntime/qv4debugging_p.h +++ b/src/qml/jsruntime/qv4debugging_p.h @@ -52,6 +52,7 @@ // #include "qv4global_p.h" +#include <private/qv4staticvalue_p.h> #include <QtCore/qobject.h> QT_BEGIN_NAMESPACE diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 0d3ae71b05..be0de09d79 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -39,8 +39,6 @@ #include <qv4engine_p.h> #include <private/qv4compileddata_p.h> -#include <private/qv4compiler_p.h> -#include <private/qv4compilercontext_p.h> #include <private/qv4codegen_p.h> #include <private/qqmljsdiagnosticmessage_p.h> diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index ce25ab16b1..d233347060 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -57,7 +57,6 @@ #include <private/qintrusivelist_p.h> #include "qv4enginebase_p.h" #include <private/qqmlrefcount_p.h> -#include <private/qqmljsengine_p.h> #include <private/qqmldelayedcallqueue_p.h> #include <QtCore/qelapsedtimer.h> #include <QtCore/qmutex.h> diff --git a/src/qml/jsruntime/qv4errorobject.cpp b/src/qml/jsruntime/qv4errorobject.cpp index c6d6c77d11..525d3458f4 100644 --- a/src/qml/jsruntime/qv4errorobject.cpp +++ b/src/qml/jsruntime/qv4errorobject.cpp @@ -47,7 +47,7 @@ #include "qv4string_p.h" #include <private/qv4mm_p.h> -#include <qv4codegen_p.h> +#include <private/qv4codegen_p.h> #ifndef Q_OS_WIN # include <time.h> diff --git a/src/qml/jsruntime/qv4executablecompilationunit.cpp b/src/qml/jsruntime/qv4executablecompilationunit.cpp index 492d1f4d03..a9283cfa54 100644 --- a/src/qml/jsruntime/qv4executablecompilationunit.cpp +++ b/src/qml/jsruntime/qv4executablecompilationunit.cpp @@ -44,11 +44,11 @@ #include <private/qv4lookup_p.h> #include <private/qv4qmlcontext_p.h> #include <private/qv4identifiertable_p.h> -#include <private/qv4instr_moth_p.h> #include <private/qv4objectproto_p.h> #include <private/qqmlengine_p.h> #include <private/qv4qobjectwrapper_p.h> #include <private/qqmlvaluetypewrapper_p.h> +#include <private/qqmlscriptdata_p.h> #include <private/qv4module_p.h> #include <private/qv4compilationunitmapper_p.h> #include <private/qml_compile_hash_p.h> @@ -784,7 +784,7 @@ QString ExecutableCompilationUnit::bindingValueAsString(const CompiledData::Bind case Binding::Type_Boolean: return binding->value.b ? QStringLiteral("true") : QStringLiteral("false"); case Binding::Type_Number: - return QString::number(bindingValueAsNumber(binding)); + return QString::number(bindingValueAsNumber(binding), 'g', QLocale::FloatingPointShortest); case Binding::Type_Invalid: return QString(); #if !QT_CONFIG(translation) diff --git a/src/qml/jsruntime/qv4executablecompilationunit_p.h b/src/qml/jsruntime/qv4executablecompilationunit_p.h index 010b8a2fd0..6eef3b12c3 100644 --- a/src/qml/jsruntime/qv4executablecompilationunit_p.h +++ b/src/qml/jsruntime/qv4executablecompilationunit_p.h @@ -61,9 +61,13 @@ QT_BEGIN_NAMESPACE +class QQmlScriptData; class QQmlEnginePrivate; namespace QV4 { +// index is per-object binding index +typedef QVector<QQmlPropertyData*> BindingPropertyData; + class CompilationUnitMapper; struct ResolvedTypeReference; // map from name index @@ -131,7 +135,7 @@ public: // index is object index. This allows fast access to the // property data when initializing bindings, avoiding expensive // lookups by string (property name). - QVector<CompiledData::BindingPropertyData> bindingPropertyDataPerObject; + QVector<BindingPropertyData> bindingPropertyDataPerObject; // mapping from component object index (CompiledData::Unit object index that points to component) to identifier hash of named objects // this is initialized on-demand by QQmlContextData diff --git a/src/qml/jsruntime/qv4function.cpp b/src/qml/jsruntime/qv4function.cpp index d870cec68a..aeb4835c40 100644 --- a/src/qml/jsruntime/qv4function.cpp +++ b/src/qml/jsruntime/qv4function.cpp @@ -100,9 +100,9 @@ Function::Function(ExecutionEngine *engine, ExecutableCompilationUnit *unit, for (quint32 i = 0; i < compiledFunction->nLocals; ++i) ic = ic->addMember(engine->identifierTable->asPropertyKey(compilationUnit->runtimeStrings[localsIndices[i]]), Attr_NotConfigurable); - const quint32_le *formalsIndices = compiledFunction->formalsTable(); + const CompiledData::Parameter *formalsIndices = compiledFunction->formalsTable(); for (quint32 i = 0; i < compiledFunction->nFormals; ++i) - ic = ic->addMember(engine->identifierTable->asPropertyKey(compilationUnit->runtimeStrings[formalsIndices[i]]), Attr_NotConfigurable); + ic = ic->addMember(engine->identifierTable->asPropertyKey(compilationUnit->runtimeStrings[formalsIndices[i].nameIndex]), Attr_NotConfigurable); internalClass = ic->d(); nFormals = compiledFunction->nFormals; diff --git a/src/qml/jsruntime/qv4function_p.h b/src/qml/jsruntime/qv4function_p.h index cbbb61c68c..51960863c4 100644 --- a/src/qml/jsruntime/qv4function_p.h +++ b/src/qml/jsruntime/qv4function_p.h @@ -53,6 +53,7 @@ #include "qv4global_p.h" #include <private/qv4executablecompilationunit_p.h> #include <private/qv4context_p.h> +#include <private/qv4string_p.h> namespace JSC { class MacroAssemblerCodeRef; @@ -93,7 +94,7 @@ public: return static_cast<QV4::ExecutableCompilationUnit *>(compilationUnit); } - QV4::Heap::String *runtimeString(uint i) + QV4::Heap::String *runtimeString(uint i) const { return compilationUnit->runtimeStrings[i]; } @@ -120,7 +121,7 @@ public: void updateInternalClass(ExecutionEngine *engine, const QList<QByteArray> ¶meters); inline Heap::String *name() const { - return compilationUnit->runtimeStrings[compiledFunction->nameIndex]; + return runtimeString(compiledFunction->nameIndex); } static QString prettyName(const Function *function, const void *address); diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index b1b0d67e64..6fb7946023 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -59,10 +59,10 @@ #include "private/qqmlbuiltinfunctions_p.h" #include <private/qv4jscall_p.h> #include <private/qv4vme_moth_p.h> +#include <private/qv4alloca_p.h> #include <QtCore/QDebug> #include <algorithm> -#include "qv4alloca_p.h" #include "qv4profiling_p.h" using namespace QV4; diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index ebd21b3543..c6a737b467 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -52,6 +52,7 @@ // #include <QtCore/qglobal.h> +#include <private/qv4compilerglobal_p.h> #include <QString> #ifdef QT_NO_DEBUG @@ -207,11 +208,6 @@ struct SetMapObject; struct PromiseObject; struct PromiseCapability; -// ReturnedValue is used to return values from runtime methods -// the type has to be a primitive type (no struct or union), so that the compiler -// will return it in a register on all platforms. -// It will be returned in rax on x64, [eax,edx] on x86 and [r0,r1] on arm -typedef quint64 ReturnedValue; struct CallData; struct Scope; struct ScopedValue; @@ -341,13 +337,6 @@ struct Q_QML_EXPORT StackFrame { }; typedef QVector<StackFrame> StackTrace; -enum class ObjectLiteralArgument { - Value, - Method, - Getter, - Setter -}; - namespace JIT { enum class CallResultDestination { diff --git a/src/qml/jsruntime/qv4globalobject.cpp b/src/qml/jsruntime/qv4globalobject.cpp index becdc3bc55..bb81fb52d4 100644 --- a/src/qml/jsruntime/qv4globalobject.cpp +++ b/src/qml/jsruntime/qv4globalobject.cpp @@ -49,18 +49,14 @@ #include "qv4string_p.h" #include "qv4jscall_p.h" -#include <private/qqmljsengine_p.h> -#include <private/qqmljslexer_p.h> -#include <private/qqmljsparser_p.h> -#include <private/qqmljsast_p.h> -#include <qv4codegen_p.h> +#include <private/qv4codegen_p.h> +#include <private/qv4alloca_p.h> #include "private/qlocale_tools_p.h" #include "private/qtools_p.h" #include <QtCore/QDebug> #include <QtCore/QString> #include <iostream> -#include "qv4alloca_p.h" #include <wtf/MathExtras.h> diff --git a/src/qml/jsruntime/qv4include.cpp b/src/qml/jsruntime/qv4include.cpp index c0885a418c..92face6f94 100644 --- a/src/qml/jsruntime/qv4include.cpp +++ b/src/qml/jsruntime/qv4include.cpp @@ -167,7 +167,6 @@ void QV4Include::finished() QByteArray data = m_reply->readAll(); QString code = QString::fromUtf8(data); - QmlIR::Document::removeScriptPragmas(code); QV4::Scoped<QV4::QmlContext> qml(scope, m_qmlContext.value()); QV4::Script script(v4, qml, /*parse as QML binding*/false, code, m_url.toString()); diff --git a/src/qml/jsruntime/qv4math_p.h b/src/qml/jsruntime/qv4math_p.h index bca4c2ef66..6632d69c27 100644 --- a/src/qml/jsruntime/qv4math_p.h +++ b/src/qml/jsruntime/qv4math_p.h @@ -52,7 +52,7 @@ #include <qglobal.h> -#include <QtQml/private/qv4staticvalue_p.h> +#include <private/qv4staticvalue_p.h> #include <QtCore/qnumeric.h> #include <QtCore/private/qnumeric_p.h> #include <cmath> diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index 8a4adfe69a..c36da3815d 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -57,6 +57,7 @@ #include <private/qv4variantobject_p.h> #include <private/qv4identifiertable_p.h> #include <private/qv4lookup_p.h> +#include <private/qv4qmlcontext_p.h> #if QT_CONFIG(qml_sequence_object) #include <private/qv4sequenceobject_p.h> @@ -80,7 +81,9 @@ #include <QtCore/qtimer.h> #include <QtCore/qatomic.h> #include <QtCore/qmetaobject.h> +#if QT_CONFIG(qml_itemmodel) #include <QtCore/qabstractitemmodel.h> +#endif #include <QtCore/qloggingcategory.h> #include <vector> @@ -1233,7 +1236,9 @@ private: std::vector<bool> *stdVectorBoolPtr; std::vector<QString> *stdVectorQStringPtr; std::vector<QUrl> *stdVectorQUrlPtr; +#if QT_CONFIG(qml_itemmodel) std::vector<QModelIndex> *stdVectorQModelIndexPtr; +#endif char allocData[MaxSizeOf7<QVariant, QString, @@ -1693,8 +1698,10 @@ void *CallArgument::dataPtr() return stdVectorQStringPtr; else if (type == qMetaTypeId<std::vector<QUrl>>()) return stdVectorQUrlPtr; +#if QT_CONFIG(qml_itemmodel) else if (type == qMetaTypeId<std::vector<QModelIndex>>()) return stdVectorQModelIndexPtr; +#endif else if (type != 0) return (void *)&allocData; return nullptr; @@ -1845,7 +1852,10 @@ bool CallArgument::fromValue(int callType, QV4::ExecutionEngine *engine, const Q || callType == qMetaTypeId<std::vector<bool>>() || callType == qMetaTypeId<std::vector<QString>>() || callType == qMetaTypeId<std::vector<QUrl>>() - || callType == qMetaTypeId<std::vector<QModelIndex>>()) { +#if QT_CONFIG(qml_itemmodel) + || callType == qMetaTypeId<std::vector<QModelIndex>>() +#endif + ) { queryEngine = true; const QV4::Object* object = value.as<QV4::Object>(); if (callType == qMetaTypeId<std::vector<int>>()) { @@ -1863,9 +1873,11 @@ bool CallArgument::fromValue(int callType, QV4::ExecutionEngine *engine, const Q } else if (callType == qMetaTypeId<std::vector<QUrl>>()) { stdVectorQUrlPtr = nullptr; fromContainerValue<std::vector<QUrl>>(object, callType, &CallArgument::stdVectorQUrlPtr, queryEngine); +#if QT_CONFIG(qml_itemmodel) } else if (callType == qMetaTypeId<std::vector<QModelIndex>>()) { stdVectorQModelIndexPtr = nullptr; fromContainerValue<std::vector<QModelIndex>>(object, callType, &CallArgument::stdVectorQModelIndexPtr, queryEngine); +#endif } #endif } else if (QMetaType::typeFlags(callType) diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index 64aba1d85c..c1a42c4afa 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -56,7 +56,7 @@ #include <cassert> #include <typeinfo> #include <iostream> -#include "qv4alloca_p.h" +#include <private/qv4alloca_p.h> QT_BEGIN_NAMESPACE diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 38cce2a7a9..8a7cbdfb2a 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -59,6 +59,7 @@ #include <private/qqmltypewrapper_p.h> #include <private/qqmlengine_p.h> #include <private/qqmljavascriptexpression_p.h> +#include <private/qqmljsast_p.h> #include "qv4qobjectwrapper_p.h" #include "qv4symbol_p.h" #include "qv4generatorobject_p.h" diff --git a/src/qml/jsruntime/qv4runtimeapi_p.h b/src/qml/jsruntime/qv4runtimeapi_p.h index 13a73b7046..05ffb84d58 100644 --- a/src/qml/jsruntime/qv4runtimeapi_p.h +++ b/src/qml/jsruntime/qv4runtimeapi_p.h @@ -51,6 +51,7 @@ // #include <private/qv4global_p.h> +#include <private/qv4staticvalue_p.h> QT_BEGIN_NAMESPACE diff --git a/src/qml/jsruntime/qv4runtimecodegen.cpp b/src/qml/jsruntime/qv4runtimecodegen.cpp index 8d324acbd0..162d75db63 100644 --- a/src/qml/jsruntime/qv4runtimecodegen.cpp +++ b/src/qml/jsruntime/qv4runtimecodegen.cpp @@ -39,9 +39,10 @@ #include "qv4engine_p.h" #include "qv4runtimecodegen_p.h" -#include "qv4compilerscanfunctions_p.h" +#include <private/qv4compilerscanfunctions_p.h> using namespace QV4; +using namespace QQmlJS; void RuntimeCodegen::generateFromFunctionExpression(const QString &fileName, const QString &sourceCode, diff --git a/src/qml/jsruntime/qv4runtimecodegen_p.h b/src/qml/jsruntime/qv4runtimecodegen_p.h index 006a6a3cde..71aaf1fb55 100644 --- a/src/qml/jsruntime/qv4runtimecodegen_p.h +++ b/src/qml/jsruntime/qv4runtimecodegen_p.h @@ -66,11 +66,11 @@ public: void generateFromFunctionExpression(const QString &fileName, const QString &sourceCode, - AST::FunctionExpression *ast, + QQmlJS::AST::FunctionExpression *ast, Compiler::Module *module); - void throwSyntaxError(const AST::SourceLocation &loc, const QString &detail) override; - void throwReferenceError(const AST::SourceLocation &loc, const QString &detail) override; + void throwSyntaxError(const QQmlJS::AST::SourceLocation &loc, const QString &detail) override; + void throwReferenceError(const QQmlJS::AST::SourceLocation &loc, const QString &detail) override; private: ExecutionEngine *engine; diff --git a/src/qml/jsruntime/qv4script.cpp b/src/qml/jsruntime/qv4script.cpp index c463812590..2fab9e4b7b 100644 --- a/src/qml/jsruntime/qv4script.cpp +++ b/src/qml/jsruntime/qv4script.cpp @@ -60,6 +60,7 @@ #include <QScopedValueRollback> using namespace QV4; +using namespace QQmlJS; Script::Script(ExecutionEngine *v4, QmlContext *qml, const QQmlRefPointer<ExecutableCompilationUnit> &compilationUnit) : line(1), column(0), context(v4->rootContext()), strictMode(false), inheritContext(true), parsed(false) @@ -245,7 +246,6 @@ Script *Script::createFromFileOrCache(ExecutionEngine *engine, QmlContext *qmlCo QByteArray data = f.readAll(); QString sourceCode = QString::fromUtf8(data); - QmlIR::Document::removeScriptPragmas(sourceCode); auto result = new QV4::Script(engine, qmlContext, /*parseAsBinding*/false, sourceCode, originalUrl.toString()); result->contextType = QV4::Compiler::ContextType::ScriptImportedByQML; diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index 1eef12a491..77a98247ac 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -49,8 +49,10 @@ #include "qv4runtime_p.h" #include "qv4objectiterator_p.h" #include <private/qqmlvaluetypewrapper_p.h> +#if QT_CONFIG(qml_itemmodel) #include <private/qqmlmodelindexvaluetype_p.h> #include <QtCore/qabstractitemmodel.h> +#endif #include <algorithm> @@ -75,6 +77,16 @@ static void generateWarning(QV4::ExecutionEngine *v4, const QString& description } // F(elementType, elementTypeName, sequenceType, defaultValue) +#if QT_CONFIG(qml_itemmodel) +#define FOREACH_QML_SEQUENCE_TYPE_FOR_ITEMMODEL(F) \ + F(QModelIndex, QModelIndex, QModelIndexList, QModelIndex()) \ + F(QModelIndex, QModelIndexVector, QVector<QModelIndex>, QModelIndex()) \ + F(QModelIndex, QModelIndexStdVector, std::vector<QModelIndex>, QModelIndex()) \ + F(QItemSelectionRange, QItemSelectionRange, QItemSelection, QItemSelectionRange()) +#else +#define FOREACH_QML_SEQUENCE_TYPE_FOR_ITEMMODEL(F) +#endif + #define FOREACH_QML_SEQUENCE_TYPE(F) \ F(int, IntVector, QVector<int>, 0) \ F(qreal, RealVector, QVector<qreal>, 0.0) \ @@ -92,10 +104,7 @@ static void generateWarning(QV4::ExecutionEngine *v4, const QString& description F(QUrl, Url, QList<QUrl>, QUrl()) \ F(QUrl, UrlVector, QVector<QUrl>, QUrl()) \ F(QUrl, UrlStdVector, std::vector<QUrl>, QUrl()) \ - F(QModelIndex, QModelIndex, QModelIndexList, QModelIndex()) \ - F(QModelIndex, QModelIndexVector, QVector<QModelIndex>, QModelIndex()) \ - F(QModelIndex, QModelIndexStdVector, std::vector<QModelIndex>, QModelIndex()) \ - F(QItemSelectionRange, QItemSelectionRange, QItemSelection, QItemSelectionRange()) + FOREACH_QML_SEQUENCE_TYPE_FOR_ITEMMODEL(F) static QV4::ReturnedValue convertElementToValue(QV4::ExecutionEngine *engine, const QString &element) { @@ -112,6 +121,7 @@ static QV4::ReturnedValue convertElementToValue(QV4::ExecutionEngine *engine, co return engine->newString(element.toString())->asReturnedValue(); } +#if QT_CONFIG(qml_itemmodel) static QV4::ReturnedValue convertElementToValue(QV4::ExecutionEngine *engine, const QModelIndex &element) { const QMetaObject *vtmo = QQmlValueTypeFactory::metaObjectForMetaType(QMetaType::QModelIndex); @@ -124,6 +134,7 @@ static QV4::ReturnedValue convertElementToValue(QV4::ExecutionEngine *engine, co const QMetaObject *vtmo = QQmlValueTypeFactory::metaObjectForMetaType(metaTypeId); return QV4::QQmlValueTypeWrapper::create(engine, QVariant::fromValue(element), vtmo, metaTypeId); } +#endif static QV4::ReturnedValue convertElementToValue(QV4::ExecutionEngine *, qreal element) { @@ -150,6 +161,7 @@ static QString convertElementToString(const QUrl &element) return element.toString(); } +#if QT_CONFIG(qml_itemmodel) static QString convertElementToString(const QModelIndex &element) { return reinterpret_cast<const QQmlModelIndexValueType *>(&element)->toString(); @@ -159,6 +171,7 @@ static QString convertElementToString(const QItemSelectionRange &element) { return reinterpret_cast<const QQmlItemSelectionRangeValueType *>(&element)->toString(); } +#endif static QString convertElementToString(qreal element) { @@ -192,6 +205,7 @@ template <> QUrl convertValueToElement(const Value &value) return QUrl(value.toQString()); } +#if QT_CONFIG(qml_itemmodel) template <> QModelIndex convertValueToElement(const Value &value) { const QQmlValueTypeWrapper *v = value.as<QQmlValueTypeWrapper>(); @@ -207,6 +221,7 @@ template <> QItemSelectionRange convertValueToElement(const Value &value) return v->toVariant().value<QItemSelectionRange>(); return QItemSelectionRange(); } +#endif template <> qreal convertValueToElement(const Value &value) { @@ -667,6 +682,7 @@ typedef QQmlSequence<QVector<QUrl> > QQmlUrlVectorList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlUrlVectorList); typedef QQmlSequence<std::vector<QUrl> > QQmlUrlStdVectorList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlUrlStdVectorList); +#if QT_CONFIG(qml_itemmodel) typedef QQmlSequence<QModelIndexList> QQmlQModelIndexList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlQModelIndexList); typedef QQmlSequence<QVector<QModelIndex> > QQmlQModelIndexVectorList; @@ -675,6 +691,7 @@ typedef QQmlSequence<std::vector<QModelIndex> > QQmlQModelIndexStdVectorList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlQModelIndexStdVectorList); typedef QQmlSequence<QItemSelection> QQmlQItemSelectionRangeList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlQItemSelectionRangeList); +#endif typedef QQmlSequence<QList<bool> > QQmlBoolList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlBoolList); typedef QQmlSequence<QList<qreal> > QQmlRealList; diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index 227df4014e..9b4a2d575e 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -45,7 +45,7 @@ #include <private/qv4mm_p.h> #include "qv4scopedvalue_p.h" #include "qv4symbol_p.h" -#include "qv4alloca_p.h" +#include <private/qv4alloca_p.h> #include "qv4jscall_p.h" #include "qv4stringiterator_p.h" #include <QtCore/QDateTime> diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index b2bbe985d3..b4c34d60fa 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -38,11 +38,11 @@ ****************************************************************************/ #include "qv4vme_moth_p.h" -#include "qv4instr_moth_p.h" #include <QtCore/qjsondocument.h> #include <QtCore/qjsonobject.h> +#include <private/qv4instr_moth_p.h> #include <private/qv4value_p.h> #include <private/qv4debugging_p.h> #include <private/qv4function_p.h> @@ -56,11 +56,10 @@ #include <private/qv4profiling_p.h> #include <private/qv4jscall_p.h> #include <private/qv4generatorobject_p.h> +#include <private/qv4alloca_p.h> #include <private/qqmljavascriptexpression_p.h> #include <iostream> -#include "qv4alloca_p.h" - #if QT_CONFIG(qml_jit) #include <private/qv4baselinejit_p.h> #endif diff --git a/src/qml/jsruntime/qv4vme_moth_p.h b/src/qml/jsruntime/qv4vme_moth_p.h index 8a76e60f20..b3944f5454 100644 --- a/src/qml/jsruntime/qv4vme_moth_p.h +++ b/src/qml/jsruntime/qv4vme_moth_p.h @@ -52,6 +52,7 @@ // #include <private/qv4global_p.h> +#include <private/qv4staticvalue_p.h> QT_BEGIN_NAMESPACE |