diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-03-25 19:14:23 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-05-02 14:17:03 +0000 |
commit | 1e974dd01c074ae9f32a5a1210f2fc55dba8dd3c (patch) | |
tree | 08d93f9278cfcab33d7ad4c1309737d45f1270ad /src/qml/parser/qqmljsast_p.h | |
parent | 3f82c8131fed248c24ed8c8be7449b4732afcd0b (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.h | 10 |
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; |