aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-03-16 20:06:34 +0100
committerLars Knoll <lars.knoll@qt.io>2018-04-26 21:37:32 +0000
commitcfac31cd823bd8eb83900adeecbfd3d789a3ee1d (patch)
treeadae81751dde118240dc870ad1edd42bc568ddad /src
parenta62101f2df57997158f69c2483323287fb018d26 (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')
-rw-r--r--src/qml/parser/qqmljs.g15
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;
/.