QmlJS: Fix binding and scoping function expressions.

Reviewed-by: Erik Verbruggen
This commit is contained in:
Christian Kamm
2010-11-24 14:42:10 +01:00
parent 5dd92328fb
commit 05831a8ea5
3 changed files with 24 additions and 10 deletions

View File

@@ -201,6 +201,11 @@ protected:
}
virtual bool visit(AST::FunctionDeclaration *node)
{
return visit(static_cast<FunctionExpression *>(node));
}
virtual bool visit(AST::FunctionExpression *node)
{
if (node->name && node->name->asString() == _name) {
if (checkLookup())
@@ -328,6 +333,11 @@ protected:
}
virtual bool visit(AST::FunctionDeclaration *node)
{
return visit(static_cast<FunctionExpression *>(node));
}
virtual bool visit(AST::FunctionExpression *node)
{
Node::accept(node->formals, this);
_result.append(node);
@@ -422,9 +432,12 @@ protected:
return true;
}
// ### Misses function declaration, var declaration
virtual bool visit(FunctionDeclaration *node)
{
return visit(static_cast<FunctionExpression *>(node));
}
virtual bool visit(FunctionExpression *node)
{
if (containsOffset(node->identifierToken)) {
_result.second = node->name->asString();