diff options
author | Erik Verbruggen <[email protected]> | 2013-11-11 16:13:00 +0100 |
---|---|---|
committer | The Qt Project <[email protected]> | 2013-11-12 14:40:22 +0100 |
commit | 2e8dfb5d5cd02cf2ca281f19bfb9966c97f35db7 (patch) | |
tree | c08f57ed339a1a39e747352c370e87c07aead6d4 /src/qml/compiler/qqmlcodegenerator.cpp | |
parent | ff306b7829a6fcf1e1c28c3b0934ecebccd9e67d (diff) |
V4 IR: scan arguments when entering function scope in QML.
When doing IR generation for a function declaration in a QML object,
call through the helper methods to check for forbidden names, and most
importantly, also checks if the function has parameters. If the latter
is the case, they need to be added as a member for the current scope
in order to get IR generation correct.
Task-number: QTBUG-34493
Change-Id: I0ade15ee19e1b1ac8ee2f2d3fa186d1551800199
Reviewed-by: Lars Knoll <[email protected]>
Diffstat (limited to 'src/qml/compiler/qqmlcodegenerator.cpp')
-rw-r--r-- | src/qml/compiler/qqmlcodegenerator.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qml/compiler/qqmlcodegenerator.cpp b/src/qml/compiler/qqmlcodegenerator.cpp index c2f2feb6bf..19264493be 100644 --- a/src/qml/compiler/qqmlcodegenerator.cpp +++ b/src/qml/compiler/qqmlcodegenerator.cpp @@ -1236,7 +1236,11 @@ QVector<int> JSCodeGen::generateJSCodeForFunctionsAndBindings(const QList<AST::N Q_ASSERT(node != qmlRoot); AST::FunctionDeclaration *function = AST::cast<AST::FunctionDeclaration*>(node); - scan.enterEnvironment(node, function ? FunctionCode : QmlBinding); + if (function) + scan.enterQmlFunction(function); + else + scan.enterEnvironment(node, QmlBinding); + scan(function ? function->body : node); scan.leaveEnvironment(); } |