aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4function.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2017-02-06 15:51:01 +0100
committerLars Knoll <lars.knoll@qt.io>2017-03-09 08:59:01 +0000
commit38221427bc21a11b96de7fa7666264c34298c0c0 (patch)
tree3a5bd84b10a7ca4d96acba04db6dbb4fd1a90807 /src/qml/jsruntime/qv4function.cpp
parentb214d6cc2f96837d6502c9a3068bbd0d08b5b929 (diff)
Get rid of QV4::Function::needsActivation()
We can just as well simply check whether we have a simple or regular CallContext instead. Change-Id: Iddd4ca249ab6b3b13d7ef0a732c22a26bcb23dbb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
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