aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/parser/qqmljsast_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-03-25 19:14:23 +0200
committerLars Knoll <lars.knoll@qt.io>2018-05-02 14:17:03 +0000
commit1e974dd01c074ae9f32a5a1210f2fc55dba8dd3c (patch)
tree08d93f9278cfcab33d7ad4c1309737d45f1270ad /src/qml/parser/qqmljsast_p.h
parent3f82c8131fed248c24ed8c8be7449b4732afcd0b (diff)
Properly set names of most anonymous functions
In ES6, anonymous functions assigned to a variable/property with a known name, inherit the name of that variable/property. Change-Id: I79479b9358b24d610e3e696eb19fe0ec4aee15d1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/parser/qqmljsast_p.h')
-rw-r--r--src/qml/parser/qqmljsast_p.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/qml/parser/qqmljsast_p.h b/src/qml/parser/qqmljsast_p.h
index 10fe2e9e72..e14e058e83 100644
--- a/src/qml/parser/qqmljsast_p.h
+++ b/src/qml/parser/qqmljsast_p.h
@@ -128,6 +128,8 @@ T1 cast(T2 *ast)
return 0;
}
+FunctionExpression *asAnonymousFunctionDefinition(AST::Node *n);
+
class QML_PARSER_EXPORT Node: public Managed
{
public:
@@ -254,6 +256,8 @@ public:
virtual UiObjectMember *uiObjectMemberCast();
virtual LeftHandSideExpression *leftHandSideExpressionCast();
virtual Pattern *patternCast();
+ // implements the IsFunctionDefinition rules in the spec
+ virtual FunctionExpression *asFunctionDefinition();
void accept(Visitor *visitor);
static void accept(Node *node, Visitor *visitor);
@@ -307,6 +311,9 @@ public:
SourceLocation lastSourceLocation() const override
{ return rparenToken; }
+ FunctionExpression *asFunctionDefinition() override;
+
+
// attributes
ExpressionNode *expression;
SourceLocation lparenToken;
@@ -2140,6 +2147,9 @@ public:
SourceLocation lastSourceLocation() const override
{ return rbraceToken; }
+ FunctionExpression *asFunctionDefinition() override;
+
+
// attributes
QStringRef name;
bool isArrowFunction = false;