diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-03-16 20:06:34 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-04-26 21:37:32 +0000 |
commit | cfac31cd823bd8eb83900adeecbfd3d789a3ee1d (patch) | |
tree | adae81751dde118240dc870ad1edd42bc568ddad /src/qml/parser | |
parent | a62101f2df57997158f69c2483323287fb018d26 (diff) |
Implement support for function declarations in object literals
{ foo(args) {} } now works correctly.
Change-Id: Ibd271fe957a5259863af793ad74380473690f4ab
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/parser')
-rw-r--r-- | src/qml/parser/qqmljs.g | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index 87b666b25f..4a4e3dfd12 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -3520,9 +3520,22 @@ ConciseBodyLookahead: ; ./ MethodDefinition: PropertyName T_LPAREN StrictFormalParameters T_RPAREN FunctionLBrace FunctionBody FunctionRBrace; -/. case $rule_number: { UNIMPLEMENTED; } ./ +/. + case $rule_number: { + AST::FunctionExpression *f = new (pool) AST::FunctionExpression(stringRef(1), sym(3).FormalParameterList, sym(6).StatementList); + f->functionToken = loc(1); + f->lparenToken = loc(2); + f->rparenToken = loc(4); + f->lbraceToken = loc(5); + f->rbraceToken = loc(7); + AST::PropertyNameAndValue *node = new (pool) AST::PropertyNameAndValue(sym(1).PropertyName, f); + node->colonToken = loc(2); + sym(1).Node = node; + } break; +./ MethodDefinition: GeneratorMethod; +/. case $rule_number: { UNIMPLEMENTED; } ./ MethodDefinition: T_GET PropertyName T_LPAREN T_RPAREN FunctionLBrace FunctionBody FunctionRBrace; /. |