diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-02-06 15:51:01 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-03-09 08:59:01 +0000 |
commit | 38221427bc21a11b96de7fa7666264c34298c0c0 (patch) | |
tree | 3a5bd84b10a7ca4d96acba04db6dbb4fd1a90807 /src/qml/jsruntime/qv4function.cpp | |
parent | b214d6cc2f96837d6502c9a3068bbd0d08b5b929 (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.cpp | 13 |
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 |