aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4function.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4function.cpp')
-rw-r--r--src/qml/jsruntime/qv4function.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/qml/jsruntime/qv4function.cpp b/src/qml/jsruntime/qv4function.cpp
index dd3208c7e9..b3feae4293 100644
--- a/src/qml/jsruntime/qv4function.cpp
+++ b/src/qml/jsruntime/qv4function.cpp
@@ -83,11 +83,12 @@ Function::Function(ExecutionEngine *engine, CompiledData::CompilationUnit *unit,
for (quint32 i = 0; i < compiledFunction->nLocals; ++i)
internalClass = internalClass->addMember(compilationUnit->runtimeStrings[localsIndices[i]]->identifier, Attr_NotConfigurable);
- activationRequired = compiledFunction->nInnerFunctions > 0 || (compiledFunction->flags & (CompiledData::Function::HasDirectEval | CompiledData::Function::UsesArgumentsObject));
-
- canUseSimpleCall = !needsActivation() && !(compiledFunction->flags & CompiledData::Function::HasCatchOrWith) &&
- compiledFunction->nFormals <= QV4::Global::ReservedArgumentCount &&
- compiledFunction->nLocals == 0 && !isNamedExpression();
+ canUseSimpleCall = compiledFunction->nInnerFunctions == 0 &&
+ !(compiledFunction->flags & CompiledData::Function::HasDirectEval) &&
+ !(compiledFunction->flags & CompiledData::Function::UsesArgumentsObject) &&
+ !(compiledFunction->flags & CompiledData::Function::HasCatchOrWith) &&
+ nFormals <= QV4::Global::ReservedArgumentCount &&
+ compiledFunction->nLocals == 0 && !isNamedExpression();
}
Function::~Function()
@@ -119,7 +120,7 @@ void Function::updateInternalClass(ExecutionEngine *engine, const QList<QByteArr
for (quint32 i = 0; i < compiledFunction->nLocals; ++i)
internalClass = internalClass->addMember(compilationUnit->runtimeStrings[localsIndices[i]]->identifier, Attr_NotConfigurable);
- activationRequired = true;
+ canUseSimpleCall = false;
}
QT_END_NAMESPACE