diff options
Diffstat (limited to 'src/qml/qml/qqmlirloader.cpp')
-rw-r--r-- | src/qml/qml/qqmlirloader.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/qml/qml/qqmlirloader.cpp b/src/qml/qml/qqmlirloader.cpp index 5137c4c1ab..e1019b804f 100644 --- a/src/qml/qml/qqmlirloader.cpp +++ b/src/qml/qml/qqmlirloader.cpp @@ -57,7 +57,7 @@ void QQmlIRLoader::load() const auto createValueTypePragma = [&]( Pragma::PragmaType type, - Pragma::ValueTypeBehaviorValue value) { + Pragma::ValueTypeBehaviorValues value) { createPragma(type)->valueTypeBehavior = value; }; @@ -74,14 +74,21 @@ void QQmlIRLoader::load() if (unit->flags & QV4::CompiledData::Unit::ComponentsBound) createComponentPragma(Pragma::ComponentBehavior, Pragma::Bound); - if (unit->flags & QV4::CompiledData::Unit::FunctionSignaturesEnforced) - createFunctionSignaturePragma(Pragma::FunctionSignatureBehavior, Pragma::Enforced); + if (unit->flags & QV4::CompiledData::Unit::FunctionSignaturesIgnored) + createFunctionSignaturePragma(Pragma::FunctionSignatureBehavior, Pragma::Ignored); if (unit->flags & QV4::CompiledData::Unit::NativeMethodsAcceptThisObject) createNativeMethodPragma(Pragma::NativeMethodBehavior, Pragma::AcceptThisObject); + Pragma::ValueTypeBehaviorValues valueTypeBehavior = {}; if (unit->flags & QV4::CompiledData::Unit::ValueTypesCopied) - createValueTypePragma(Pragma::ValueTypeBehavior, Pragma::Copy); + valueTypeBehavior |= Pragma::Copy; + if (unit->flags & QV4::CompiledData::Unit::ValueTypesAddressable) + valueTypeBehavior |= Pragma::Addressable; + if (unit->flags & QV4::CompiledData::Unit::ValueTypesAssertable) + valueTypeBehavior |= Pragma::Assertable; + if (valueTypeBehavior) + createValueTypePragma(Pragma::ValueTypeBehavior, valueTypeBehavior); for (uint i = 0; i < qmlUnit->nObjects; ++i) { const QV4::CompiledData::Object *serializedObject = qmlUnit->objectAt(i); |