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 | |
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>
-rw-r--r-- | src/qml/parser/qqmljs.g | 27 | ||||
-rw-r--r-- | tests/auto/qml/ecmascripttests/TestExpectations | 24 |
2 files changed, 19 insertions, 32 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); diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations index 34ac22de66..23fb435b24 100644 --- a/tests/auto/qml/ecmascripttests/TestExpectations +++ b/tests/auto/qml/ecmascripttests/TestExpectations @@ -537,9 +537,7 @@ built-ins/Map/prototype/set/append-new-values.js fails built-ins/Map/prototype/set/does-not-have-mapdata-internal-slot-weakmap.js fails built-ins/Map/prototype/set/length.js fails built-ins/Map/prototype/size/does-not-have-mapdata-internal-slot-weakmap.js fails -built-ins/Map/prototype/size/name.js fails built-ins/Map/prototype/size/returns-count-of-present-values-by-iterable.js fails -built-ins/Map/prototype/size/size.js fails built-ins/Map/prototype/values/does-not-have-mapdata-internal-slot-weakmap.js fails built-ins/Math/acosh/arg-is-infinity.js fails built-ins/Math/acosh/arg-is-one.js fails @@ -1509,8 +1507,6 @@ built-ins/Set/prototype/forEach/iterates-values-deleted-then-readded.js fails built-ins/Set/prototype/forEach/iterates-values-revisits-after-delete-re-add.js fails built-ins/Set/prototype/forEach/this-arg-explicit-cannot-override-lexical-this-arrow.js fails built-ins/Set/prototype/has/does-not-have-setdata-internal-slot-weakset.js fails -built-ins/Set/prototype/size/name.js fails -built-ins/Set/prototype/size/size.js fails built-ins/Set/prototype/values/does-not-have-setdata-internal-slot-weakset.js fails built-ins/SharedArrayBuffer/allocation-limit.js fails built-ins/SharedArrayBuffer/data-allocation-after-object-creation.js fails @@ -1936,9 +1932,7 @@ built-ins/TypedArray/prototype/set/array-arg-set-values-in-order.js fails built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws.js fails built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-tointeger-offset-throws.js fails built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-throws.js fails -built-ins/TypedArray/prototype/set/typedarray-arg-src-byteoffset-internal.js fails built-ins/TypedArray/prototype/set/typedarray-arg-srcbuffer-detached-during-tointeger-offset-throws.js fails -built-ins/TypedArray/prototype/set/typedarray-arg-target-byteoffset-internal.js fails built-ins/TypedArray/prototype/set/typedarray-arg-targetbuffer-detached-during-tointeger-offset-throws.js fails built-ins/TypedArray/prototype/slice/arraylength-internal.js fails built-ins/TypedArray/prototype/slice/bit-precision.js fails @@ -3550,7 +3544,6 @@ language/expressions/function/arguments-with-arguments-fn.js sloppyFails language/expressions/function/arguments-with-arguments-lex.js sloppyFails language/expressions/function/dflt-params-ref-later.js fails language/expressions/function/dflt-params-ref-self.js fails -language/expressions/function/dflt-params-trailing-comma.js fails language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js fails language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails @@ -3573,8 +3566,6 @@ language/expressions/function/dstr-obj-ptrn-id-init-fn-name-fn.js fails language/expressions/function/dstr-obj-ptrn-id-init-fn-name-gen.js fails language/expressions/function/name.js fails language/expressions/function/param-dflt-yield-non-strict.js sloppyFails -language/expressions/function/params-trailing-comma-multiple.js fails -language/expressions/function/params-trailing-comma-single.js fails language/expressions/function/scope-body-lex-distinct.js sloppyFails language/expressions/function/scope-name-var-open-non-strict.js sloppyFails language/expressions/function/scope-name-var-open-strict.js strictFails @@ -3588,7 +3579,6 @@ language/expressions/generators/arguments-with-arguments-lex.js sloppyFails language/expressions/generators/default-proto.js fails language/expressions/generators/dflt-params-ref-later.js fails language/expressions/generators/dflt-params-ref-self.js fails -language/expressions/generators/dflt-params-trailing-comma.js fails language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js fails language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails @@ -3614,8 +3604,6 @@ language/expressions/generators/name.js fails language/expressions/generators/named-yield-identifier-non-strict.js sloppyFails language/expressions/generators/named-yield-spread-arr-multiple.js fails language/expressions/generators/named-yield-spread-arr-single.js fails -language/expressions/generators/params-trailing-comma-multiple.js fails -language/expressions/generators/params-trailing-comma-single.js fails language/expressions/generators/scope-body-lex-distinct.js sloppyFails language/expressions/generators/scope-name-var-open-non-strict.js sloppyFails language/expressions/generators/scope-name-var-open-strict.js strictFails @@ -3725,9 +3713,6 @@ language/expressions/object/method-definition/fn-name-fn.js fails language/expressions/object/method-definition/fn-name-gen.js fails language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js fails language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js fails -language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js fails -language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js fails -language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js fails language/expressions/object/method-definition/gen-yield-identifier-non-strict.js sloppyFails language/expressions/object/method-definition/gen-yield-spread-arr-multiple.js fails language/expressions/object/method-definition/gen-yield-spread-arr-single.js fails @@ -3736,9 +3721,6 @@ language/expressions/object/method-definition/generator-super-prop-body.js fails language/expressions/object/method-definition/generator-super-prop-param.js fails language/expressions/object/method-definition/meth-dflt-params-ref-later.js fails language/expressions/object/method-definition/meth-dflt-params-ref-self.js fails -language/expressions/object/method-definition/meth-dflt-params-trailing-comma.js fails -language/expressions/object/method-definition/meth-params-trailing-comma-multiple.js fails -language/expressions/object/method-definition/meth-params-trailing-comma-single.js fails language/expressions/object/method-definition/name-invoke-ctor.js fails language/expressions/object/method-definition/name-name-prop-symbol.js fails language/expressions/object/method-definition/name-prototype-prop.js fails @@ -5241,7 +5223,6 @@ language/statements/function/arguments-with-arguments-fn.js sloppyFails language/statements/function/arguments-with-arguments-lex.js sloppyFails language/statements/function/dflt-params-ref-later.js fails language/statements/function/dflt-params-ref-self.js fails -language/statements/function/dflt-params-trailing-comma.js fails language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js fails language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails @@ -5263,8 +5244,6 @@ language/statements/function/dstr-obj-ptrn-id-init-fn-name-cover.js fails language/statements/function/dstr-obj-ptrn-id-init-fn-name-fn.js fails language/statements/function/dstr-obj-ptrn-id-init-fn-name-gen.js fails language/statements/function/param-dflt-yield-non-strict.js sloppyFails -language/statements/function/params-trailing-comma-multiple.js fails -language/statements/function/params-trailing-comma-single.js fails language/statements/function/scope-body-lex-distinct.js sloppyFails language/statements/function/scope-param-elem-var-close.js sloppyFails language/statements/function/scope-param-elem-var-open.js sloppyFails @@ -5276,7 +5255,6 @@ language/statements/generators/arguments-with-arguments-lex.js sloppyFails language/statements/generators/default-proto.js fails language/statements/generators/dflt-params-ref-later.js fails language/statements/generators/dflt-params-ref-self.js fails -language/statements/generators/dflt-params-trailing-comma.js fails language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js fails language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails @@ -5297,8 +5275,6 @@ language/statements/generators/dstr-obj-ptrn-id-init-fn-name-class.js fails language/statements/generators/dstr-obj-ptrn-id-init-fn-name-cover.js fails language/statements/generators/dstr-obj-ptrn-id-init-fn-name-fn.js fails language/statements/generators/dstr-obj-ptrn-id-init-fn-name-gen.js fails -language/statements/generators/params-trailing-comma-multiple.js fails -language/statements/generators/params-trailing-comma-single.js fails language/statements/generators/scope-body-lex-distinct.js sloppyFails language/statements/generators/scope-param-elem-var-close.js sloppyFails language/statements/generators/scope-param-elem-var-open.js sloppyFails |