aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4script.cpp')
-rw-r--r--src/qml/jsruntime/qv4script.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4script.cpp b/src/qml/jsruntime/qv4script.cpp
index c72e1c4e19..395409ad4b 100644
--- a/src/qml/jsruntime/qv4script.cpp
+++ b/src/qml/jsruntime/qv4script.cpp
@@ -188,9 +188,16 @@ Script *Script::createFromFileOrCache(ExecutionEngine *engine, QmlContext *qmlCo
error->clear();
QQmlMetaType::CachedUnitLookupError cacheError = QQmlMetaType::CachedUnitLookupError::NoError;
- if (const QQmlPrivate::CachedQmlUnit *cachedUnit = engine->diskCacheEnabled()
- ? QQmlMetaType::findCachedCompilationUnit(originalUrl, &cacheError)
- : nullptr) {
+ const ExecutionEngine::DiskCacheOptions options = engine->diskCacheOptions();
+ if (const QQmlPrivate::CachedQmlUnit *cachedUnit
+ = (options & ExecutionEngine::DiskCache::Aot)
+ ? QQmlMetaType::findCachedCompilationUnit(
+ originalUrl,
+ (options & ExecutionEngine::DiskCache::AotByteCode)
+ ? QQmlMetaType::AcceptUntyped
+ : QQmlMetaType::RequireFullyTyped,
+ &cacheError)
+ : nullptr) {
QQmlRefPointer<QV4::ExecutableCompilationUnit> jsUnit
= QV4::ExecutableCompilationUnit::create(
QV4::CompiledData::CompilationUnit(cachedUnit->qmlData, cachedUnit->aotCompiledFunctions));