diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-06-04 09:55:14 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-06-21 13:30:23 +0000 |
commit | 491a2c2186f9caf01002a44aa04df894f3604b76 (patch) | |
tree | 693c489da0008935fea249e8308c478fef8dfe3a /src | |
parent | 4b7d56f65dcb29718a0aee33863e7687b1cb6e5f (diff) |
Allow a trailing comma in parameter lists
This got changed in ES8, but let's already take this in now,
as there are quite a few tests checking this behavior.
Change-Id: I73f86b8fd8a681881bcc9cc3132bef1589d5194f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/parser/qqmljs.g | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index 405513b435..5fd927a51b 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -3532,17 +3532,32 @@ FormalParameters: ; } break; ./ +FormalParameters: BindingRestElement; +/. + case $rule_number: { + AST::FormalParameterList *node = (new (pool) AST::FormalParameterList(nullptr, sym(1).PatternElement))->finish(); + sym(1).Node = node; + } break; +./ + FormalParameters: FormalParameterList; +/. case $rule_number: ./ +FormalParameters: FormalParameterList T_COMMA; /. case $rule_number: { sym(1).Node = sym(1).FormalParameterList->finish(); } break; ./ -FormalsList: BindingElement; -/. case $rule_number: ./ +FormalParameters: FormalParameterList T_COMMA BindingRestElement; +/. + case $rule_number: { + AST::FormalParameterList *node = (new (pool) AST::FormalParameterList(sym(1).FormalParameterList, sym(3).PatternElement))->finish(); + sym(1).Node = node; + } break; +./ -FormalParameterList: BindingRestElement; +FormalParameterList: BindingElement; /. case $rule_number: { AST::FormalParameterList *node = new (pool) AST::FormalParameterList(nullptr, sym(1).PatternElement); @@ -3550,12 +3565,8 @@ FormalParameterList: BindingRestElement; } break; ./ -FormalParameterList: FormalsList; - -FormalParameterList: FormalsList T_COMMA BindingRestElement; -/. case $rule_number: ./ -FormalsList: FormalsList T_COMMA BindingElement; +FormalParameterList: FormalParameterList T_COMMA BindingElement; /. case $rule_number: { AST::FormalParameterList *node = new (pool) AST::FormalParameterList(sym(1).FormalParameterList, sym(3).PatternElement); |