From 491a2c2186f9caf01002a44aa04df894f3604b76 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 4 Jun 2018 09:55:14 +0200 Subject: 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 --- src/qml/parser/qqmljs.g | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'src/qml/parser') 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); -- cgit v1.2.3