diff options
Diffstat (limited to 'src/qml/compiler/qv4compilercontext_p.h')
-rw-r--r-- | src/qml/compiler/qv4compilercontext_p.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/qml/compiler/qv4compilercontext_p.h b/src/qml/compiler/qv4compilercontext_p.h index 63306b3672..a29f4ea4cb 100644 --- a/src/qml/compiler/qv4compilercontext_p.h +++ b/src/qml/compiler/qv4compilercontext_p.h @@ -343,6 +343,17 @@ struct Context { void emitBlockFooter(Compiler::Codegen *codegen); void setupFunctionIndices(Moth::BytecodeGenerator *bytecodeGenerator); + + bool canHaveTailCalls() const + { + if (!isStrict) + return false; + if (contextType == ContextType::Function) + return !isGenerator; + if (contextType == ContextType::Block && parent) + return parent->canHaveTailCalls(); + return false; + } }; |