From d74f58cddd0df34efb73dc3443cb76808a35bf01 Mon Sep 17 00:00:00 2001
From: Leo Balter <leonardo.balter@gmail.com>
Date: Thu, 20 Apr 2017 12:31:29 -0400
Subject: [PATCH] Generate tests

---
 ...-gen-meth-args-trailing-comma-multiple.js} |  2 +-
 ...decl-gen-meth-args-trailing-comma-null.js} |  2 +-
 ...n-meth-args-trailing-comma-single-args.js} |  2 +-
 ...gen-meth-args-trailing-comma-undefined.js} |  2 +-
 ...th-static-args-trailing-comma-multiple.js} |  2 +-
 ...n-meth-static-args-trailing-comma-null.js} |  2 +-
 ...static-args-trailing-comma-single-args.js} |  2 +-
 ...h-static-args-trailing-comma-undefined.js} |  2 +-
 ...decl-meth-args-trailing-comma-multiple.js} |  2 +-
 ...cls-decl-meth-args-trailing-comma-null.js} |  2 +-
 ...l-meth-args-trailing-comma-single-args.js} |  2 +-
 ...ecl-meth-args-trailing-comma-undefined.js} |  2 +-
 ...th-static-args-trailing-comma-multiple.js} |  2 +-
 ...l-meth-static-args-trailing-comma-null.js} |  2 +-
 ...static-args-trailing-comma-single-args.js} |  2 +-
 ...h-static-args-trailing-comma-undefined.js} |  2 +-
 ...-gen-meth-args-trailing-comma-multiple.js} |  2 +-
 ...expr-gen-meth-args-trailing-comma-null.js} |  2 +-
 ...n-meth-args-trailing-comma-single-args.js} |  2 +-
 ...gen-meth-args-trailing-comma-undefined.js} |  2 +-
 ...th-static-args-trailing-comma-multiple.js} |  2 +-
 ...n-meth-static-args-trailing-comma-null.js} |  2 +-
 ...static-args-trailing-comma-single-args.js} |  2 +-
 ...h-static-args-trailing-comma-undefined.js} |  2 +-
 ...expr-meth-args-trailing-comma-multiple.js} |  2 +-
 ...cls-expr-meth-args-trailing-comma-null.js} |  2 +-
 ...r-meth-args-trailing-comma-single-args.js} |  2 +-
 ...xpr-meth-args-trailing-comma-undefined.js} |  2 +-
 ...th-static-args-trailing-comma-multiple.js} |  2 +-
 ...r-meth-static-args-trailing-comma-null.js} |  2 +-
 ...static-args-trailing-comma-single-args.js} |  2 +-
 ...h-static-args-trailing-comma-undefined.js} |  2 +-
 ...func-decl-args-trailing-comma-multiple.js} |  2 +-
 ... => func-decl-args-trailing-comma-null.js} |  2 +-
 ...c-decl-args-trailing-comma-single-args.js} |  2 +-
 ...unc-decl-args-trailing-comma-undefined.js} |  2 +-
 ...func-expr-args-trailing-comma-multiple.js} |  2 +-
 ... => func-expr-args-trailing-comma-null.js} |  2 +-
 ...c-expr-args-trailing-comma-single-args.js} |  2 +-
 ...unc-expr-args-trailing-comma-undefined.js} |  2 +-
 ...func-decl-args-trailing-comma-multiple.js} |  2 +-
 ...gen-func-decl-args-trailing-comma-null.js} |  2 +-
 ...c-decl-args-trailing-comma-single-args.js} |  2 +-
 ...unc-decl-args-trailing-comma-undefined.js} |  2 +-
 ...func-expr-args-trailing-comma-multiple.js} |  2 +-
 ...gen-func-expr-args-trailing-comma-null.js} |  2 +-
 ...c-expr-args-trailing-comma-single-args.js} |  2 +-
 ...unc-expr-args-trailing-comma-undefined.js} |  2 +-
 ... gen-meth-args-trailing-comma-multiple.js} |  2 +-
 ...s => gen-meth-args-trailing-comma-null.js} |  2 +-
 ...n-meth-args-trailing-comma-single-args.js} |  2 +-
 ...gen-meth-args-trailing-comma-undefined.js} |  2 +-
 ...s => meth-args-trailing-comma-multiple.js} |  2 +-
 ...ll.js => meth-args-trailing-comma-null.js} |  2 +-
 ...> meth-args-trailing-comma-single-args.js} |  2 +-
 ... => meth-args-trailing-comma-undefined.js} |  2 +-
 ...s-dflt-abrupt.js => dflt-params-abrupt.js} |  2 +-
 ...s => dflt-params-arg-val-not-undefined.js} |  2 +-
 ...ed.js => dflt-params-arg-val-undefined.js} |  2 +-
 ...uplicates.js => dflt-params-duplicates.js} |  2 +-
 ...-ref-later.js => dflt-params-ref-later.js} |  2 +-
 ...-ref-prior.js => dflt-params-ref-prior.js} |  2 +-
 ...lt-ref-self.js => dflt-params-ref-self.js} |  2 +-
 ...arams-dflt-rest.js => dflt-params-rest.js} |  2 +-
 ...param.js => dflt-params-trailing-comma.js} |  2 +-
 ...m.js => params-trailing-comma-multiple.js} |  2 +-
 ...ram.js => params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 .../dflt-params-abrupt.js                     | 58 ++++++++++++
 .../dflt-params-arg-val-not-undefined.js      | 77 ++++++++++++++++
 .../dflt-params-arg-val-undefined.js          | 60 +++++++++++++
 .../dflt-params-duplicates.js                 | 51 +++++++++++
 .../dflt-params-ref-later.js                  | 59 ++++++++++++
 .../dflt-params-ref-prior.js                  | 57 ++++++++++++
 .../dflt-params-ref-self.js                   | 59 ++++++++++++
 .../async-arrow-function/dflt-params-rest.js  | 55 ++++++++++++
 .../dflt-params-trailing-comma.js             | 51 +++++++++++
 .../params-trailing-comma-multiple.js         | 51 +++++++++++
 .../params-trailing-comma-single.js           | 50 +++++++++++
 .../rest-params-trailing-comma-early-error.js | 47 ++++++++++
 .../named-dflt-params-abrupt.js               | 42 +++++++++
 ...named-dflt-params-arg-val-not-undefined.js | 63 +++++++++++++
 .../named-dflt-params-arg-val-undefined.js    | 46 ++++++++++
 .../named-dflt-params-duplicates.js           | 37 ++++++++
 .../named-dflt-params-ref-later.js            | 43 +++++++++
 .../named-dflt-params-ref-prior.js            | 43 +++++++++
 .../named-dflt-params-ref-self.js             | 43 +++++++++
 .../async-function/named-dflt-params-rest.js  | 41 +++++++++
 .../named-dflt-params-trailing-comma.js       | 37 ++++++++
 .../named-params-trailing-comma-multiple.js   | 37 ++++++++
 .../named-params-trailing-comma-single.js     | 36 ++++++++
 ...-rest-params-trailing-comma-early-error.js | 33 +++++++
 .../nameless-dflt-params-abrupt.js            | 42 +++++++++
 ...eless-dflt-params-arg-val-not-undefined.js | 63 +++++++++++++
 .../nameless-dflt-params-arg-val-undefined.js | 46 ++++++++++
 .../nameless-dflt-params-duplicates.js        | 36 ++++++++
 .../nameless-dflt-params-ref-later.js         | 43 +++++++++
 .../nameless-dflt-params-ref-prior.js         | 43 +++++++++
 .../nameless-dflt-params-ref-self.js          | 43 +++++++++
 .../nameless-dflt-params-rest.js              | 40 +++++++++
 .../nameless-dflt-params-trailing-comma.js    | 37 ++++++++
 ...nameless-params-trailing-comma-multiple.js | 37 ++++++++
 .../nameless-params-trailing-comma-single.js  | 36 ++++++++
 ...-rest-params-trailing-comma-early-error.js | 32 +++++++
 .../args-trailing-comma-multiple.js           | 39 ++++++++
 .../args-trailing-comma-null.js               | 39 ++++++++
 .../args-trailing-comma-single-args.js        | 38 ++++++++
 .../args-trailing-comma-undefined.js          | 39 ++++++++
 ...s-dflt-abrupt.js => dflt-params-abrupt.js} |  2 +-
 ...s => dflt-params-arg-val-not-undefined.js} |  2 +-
 ...ed.js => dflt-params-arg-val-undefined.js} |  2 +-
 ...uplicates.js => dflt-params-duplicates.js} |  2 +-
 ...-ref-later.js => dflt-params-ref-later.js} |  2 +-
 ...-ref-prior.js => dflt-params-ref-prior.js} |  2 +-
 ...lt-ref-self.js => dflt-params-ref-self.js} |  2 +-
 ...arams-dflt-rest.js => dflt-params-rest.js} |  2 +-
 ...param.js => dflt-params-trailing-comma.js} |  2 +-
 .../named-args-trailing-comma-multiple.js     | 39 ++++++++
 .../named-args-trailing-comma-null.js         | 39 ++++++++
 .../named-args-trailing-comma-single-args.js  | 38 ++++++++
 .../named-args-trailing-comma-undefined.js    | 39 ++++++++
 ...-abrupt.js => named-dflt-params-abrupt.js} |  2 +-
 ...amed-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...=> named-dflt-params-arg-val-undefined.js} |  2 +-
 ...tes.js => named-dflt-params-duplicates.js} |  2 +-
 ...ater.js => named-dflt-params-ref-later.js} |  2 +-
 ...rior.js => named-dflt-params-ref-prior.js} |  2 +-
 ...-self.js => named-dflt-params-ref-self.js} |  2 +-
 ...dflt-rest.js => named-dflt-params-rest.js} |  2 +-
 ...js => named-dflt-params-trailing-comma.js} |  2 +-
 ...> named-params-trailing-comma-multiple.js} |  2 +-
 ... => named-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...m.js => params-trailing-comma-multiple.js} |  2 +-
 ...ram.js => params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...c-gen-meth-args-trailing-comma-multiple.js | 67 ++++++++++++++
 ...async-gen-meth-args-trailing-comma-null.js | 67 ++++++++++++++
 ...en-meth-args-trailing-comma-single-args.js | 66 ++++++++++++++
 ...-gen-meth-args-trailing-comma-undefined.js | 67 ++++++++++++++
 ...s => async-gen-meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...gen-meth-dflt-params-arg-val-undefined.js} |  2 +-
 ... async-gen-meth-dflt-params-duplicates.js} |  2 +-
 ...> async-gen-meth-dflt-params-ref-later.js} |  2 +-
 ...> async-gen-meth-dflt-params-ref-prior.js} |  2 +-
 ...=> async-gen-meth-dflt-params-ref-self.js} |  2 +-
 ....js => async-gen-meth-dflt-params-rest.js} |  2 +-
 ...nc-gen-meth-dflt-params-trailing-comma.js} |  2 +-
 ...en-meth-params-trailing-comma-multiple.js} |  2 +-
 ...-gen-meth-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...eth-static-args-trailing-comma-multiple.js | 66 ++++++++++++++
 ...en-meth-static-args-trailing-comma-null.js | 66 ++++++++++++++
 ...-static-args-trailing-comma-single-args.js | 65 ++++++++++++++
 ...th-static-args-trailing-comma-undefined.js | 66 ++++++++++++++
 ...ync-gen-meth-static-dflt-params-abrupt.js} |  2 +-
 ...atic-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...h-static-dflt-params-arg-val-undefined.js} |  2 +-
 ...gen-meth-static-dflt-params-duplicates.js} |  2 +-
 ...-gen-meth-static-dflt-params-ref-later.js} |  2 +-
 ...-gen-meth-static-dflt-params-ref-prior.js} |  2 +-
 ...c-gen-meth-static-dflt-params-ref-self.js} |  2 +-
 ...async-gen-meth-static-dflt-params-rest.js} |  2 +-
 ...meth-static-dflt-params-trailing-comma.js} |  2 +-
 ...-static-params-trailing-comma-multiple.js} |  2 +-
 ...th-static-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 .../class/async-meth-dflt-params-abrupt.js    | 69 ++++++++++++++
 ...-meth-dflt-params-arg-val-not-undefined.js | 89 +++++++++++++++++++
 ...sync-meth-dflt-params-arg-val-undefined.js | 72 +++++++++++++++
 .../async-meth-dflt-params-duplicates.js      | 63 +++++++++++++
 .../class/async-meth-dflt-params-ref-later.js | 70 +++++++++++++++
 .../class/async-meth-dflt-params-ref-prior.js | 69 ++++++++++++++
 .../class/async-meth-dflt-params-ref-self.js  | 70 +++++++++++++++
 .../class/async-meth-dflt-params-rest.js      | 67 ++++++++++++++
 .../async-meth-dflt-params-trailing-comma.js  | 63 +++++++++++++
 ...ync-meth-params-trailing-comma-multiple.js | 63 +++++++++++++
 ...async-meth-params-trailing-comma-single.js | 62 +++++++++++++
 ...-rest-params-trailing-comma-early-error.js | 59 ++++++++++++
 .../async-meth-static-dflt-params-abrupt.js   | 70 +++++++++++++++
 ...tatic-dflt-params-arg-val-not-undefined.js | 89 +++++++++++++++++++
 ...th-static-dflt-params-arg-val-undefined.js | 72 +++++++++++++++
 ...sync-meth-static-dflt-params-duplicates.js | 63 +++++++++++++
 ...async-meth-static-dflt-params-ref-later.js | 71 +++++++++++++++
 ...async-meth-static-dflt-params-ref-prior.js | 69 ++++++++++++++
 .../async-meth-static-dflt-params-ref-self.js | 71 +++++++++++++++
 .../async-meth-static-dflt-params-rest.js     | 67 ++++++++++++++
 ...-meth-static-dflt-params-trailing-comma.js | 63 +++++++++++++
 ...h-static-params-trailing-comma-multiple.js | 63 +++++++++++++
 ...eth-static-params-trailing-comma-single.js | 62 +++++++++++++
 ...-rest-params-trailing-comma-early-error.js | 59 ++++++++++++
 ...rupt.js => gen-meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...gen-meth-dflt-params-arg-val-undefined.js} |  2 +-
 ....js => gen-meth-dflt-params-duplicates.js} |  2 +-
 ...r.js => gen-meth-dflt-params-ref-later.js} |  2 +-
 ...r.js => gen-meth-dflt-params-ref-prior.js} |  2 +-
 ...lf.js => gen-meth-dflt-params-ref-self.js} |  2 +-
 ...t-rest.js => gen-meth-dflt-params-rest.js} |  2 +-
 ...=> gen-meth-dflt-params-trailing-comma.js} |  2 +-
 ...en-meth-params-trailing-comma-multiple.js} |  2 +-
 ... gen-meth-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ... => gen-meth-static-dflt-params-abrupt.js} |  2 +-
 ...atic-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...h-static-dflt-params-arg-val-undefined.js} |  2 +-
 ...gen-meth-static-dflt-params-duplicates.js} |  2 +-
 ... gen-meth-static-dflt-params-ref-later.js} |  2 +-
 ... gen-meth-static-dflt-params-ref-prior.js} |  2 +-
 ...> gen-meth-static-dflt-params-ref-self.js} |  2 +-
 ...js => gen-meth-static-dflt-params-rest.js} |  2 +-
 ...meth-static-dflt-params-trailing-comma.js} |  2 +-
 ...-static-params-trailing-comma-multiple.js} |  2 +-
 ...th-static-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...t-abrupt.js => meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  2 +-
 ... => meth-dflt-params-arg-val-undefined.js} |  2 +-
 ...ates.js => meth-dflt-params-duplicates.js} |  2 +-
 ...later.js => meth-dflt-params-ref-later.js} |  2 +-
 ...prior.js => meth-dflt-params-ref-prior.js} |  2 +-
 ...f-self.js => meth-dflt-params-ref-self.js} |  2 +-
 ...-dflt-rest.js => meth-dflt-params-rest.js} |  2 +-
 ....js => meth-dflt-params-trailing-comma.js} |  2 +-
 ...=> meth-params-trailing-comma-multiple.js} |  2 +-
 ...s => meth-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...t.js => meth-static-dflt-params-abrupt.js} |  2 +-
 ...atic-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...h-static-dflt-params-arg-val-undefined.js} |  2 +-
 ... => meth-static-dflt-params-duplicates.js} |  2 +-
 ...s => meth-static-dflt-params-ref-later.js} |  2 +-
 ...s => meth-static-dflt-params-ref-prior.js} |  2 +-
 ...js => meth-static-dflt-params-ref-self.js} |  2 +-
 ...est.js => meth-static-dflt-params-rest.js} |  2 +-
 ...meth-static-dflt-params-trailing-comma.js} |  2 +-
 ...-static-params-trailing-comma-multiple.js} |  2 +-
 ...th-static-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...s-dflt-abrupt.js => dflt-params-abrupt.js} |  2 +-
 ...s => dflt-params-arg-val-not-undefined.js} |  2 +-
 ...ed.js => dflt-params-arg-val-undefined.js} |  2 +-
 ...uplicates.js => dflt-params-duplicates.js} |  2 +-
 ...-ref-later.js => dflt-params-ref-later.js} |  2 +-
 ...-ref-prior.js => dflt-params-ref-prior.js} |  2 +-
 ...lt-ref-self.js => dflt-params-ref-self.js} |  2 +-
 ...arams-dflt-rest.js => dflt-params-rest.js} |  2 +-
 ...param.js => dflt-params-trailing-comma.js} |  2 +-
 ...m.js => params-trailing-comma-multiple.js} |  2 +-
 ...ram.js => params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...s-dflt-abrupt.js => dflt-params-abrupt.js} |  2 +-
 ...s => dflt-params-arg-val-not-undefined.js} |  2 +-
 ...ed.js => dflt-params-arg-val-undefined.js} |  2 +-
 ...uplicates.js => dflt-params-duplicates.js} |  2 +-
 ...-ref-later.js => dflt-params-ref-later.js} |  2 +-
 ...-ref-prior.js => dflt-params-ref-prior.js} |  2 +-
 ...lt-ref-self.js => dflt-params-ref-self.js} |  2 +-
 ...arams-dflt-rest.js => dflt-params-rest.js} |  2 +-
 ...param.js => dflt-params-trailing-comma.js} |  2 +-
 ...m.js => params-trailing-comma-multiple.js} |  2 +-
 ...ram.js => params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...c-gen-meth-args-trailing-comma-multiple.js | 46 ++++++++++
 ...async-gen-meth-args-trailing-comma-null.js | 46 ++++++++++
 ...en-meth-args-trailing-comma-single-args.js | 45 ++++++++++
 ...-gen-meth-args-trailing-comma-undefined.js | 46 ++++++++++
 ...s => async-gen-meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...gen-meth-dflt-params-arg-val-undefined.js} |  2 +-
 ... async-gen-meth-dflt-params-duplicates.js} |  2 +-
 ...> async-gen-meth-dflt-params-ref-later.js} |  2 +-
 ...> async-gen-meth-dflt-params-ref-prior.js} |  2 +-
 ...=> async-gen-meth-dflt-params-ref-self.js} |  2 +-
 ....js => async-gen-meth-dflt-params-rest.js} |  2 +-
 ...nc-gen-meth-dflt-params-trailing-comma.js} |  2 +-
 ...en-meth-params-trailing-comma-multiple.js} |  2 +-
 ...-gen-meth-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 .../async-meth-dflt-params-abrupt.js          | 45 ++++++++++
 ...-meth-dflt-params-arg-val-not-undefined.js | 65 ++++++++++++++
 ...sync-meth-dflt-params-arg-val-undefined.js | 48 ++++++++++
 .../async-meth-dflt-params-duplicates.js      | 38 ++++++++
 .../async-meth-dflt-params-ref-later.js       | 46 ++++++++++
 .../async-meth-dflt-params-ref-prior.js       | 45 ++++++++++
 .../async-meth-dflt-params-ref-self.js        | 46 ++++++++++
 .../async-meth-dflt-params-rest.js            | 42 +++++++++
 .../async-meth-dflt-params-trailing-comma.js  | 39 ++++++++
 ...ync-meth-params-trailing-comma-multiple.js | 39 ++++++++
 ...async-meth-params-trailing-comma-single.js | 38 ++++++++
 ...-rest-params-trailing-comma-early-error.js | 34 +++++++
 ...rupt.js => gen-meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...gen-meth-dflt-params-arg-val-undefined.js} |  2 +-
 ....js => gen-meth-dflt-params-duplicates.js} |  2 +-
 ...r.js => gen-meth-dflt-params-ref-later.js} |  2 +-
 ...r.js => gen-meth-dflt-params-ref-prior.js} |  2 +-
 ...lf.js => gen-meth-dflt-params-ref-self.js} |  2 +-
 ...t-rest.js => gen-meth-dflt-params-rest.js} |  2 +-
 ...=> gen-meth-dflt-params-trailing-comma.js} |  2 +-
 ...en-meth-params-trailing-comma-multiple.js} |  2 +-
 ... gen-meth-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...t-abrupt.js => meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  2 +-
 ... => meth-dflt-params-arg-val-undefined.js} |  2 +-
 ...ates.js => meth-dflt-params-duplicates.js} |  2 +-
 ...later.js => meth-dflt-params-ref-later.js} |  2 +-
 ...prior.js => meth-dflt-params-ref-prior.js} |  2 +-
 ...f-self.js => meth-dflt-params-ref-self.js} |  2 +-
 ...-dflt-rest.js => meth-dflt-params-rest.js} |  2 +-
 ....js => meth-dflt-params-trailing-comma.js} |  2 +-
 ...=> meth-params-trailing-comma-multiple.js} |  2 +-
 ...s => meth-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 .../async-function/dflt-params-abrupt.js      | 42 +++++++++
 .../dflt-params-arg-val-not-undefined.js      | 62 +++++++++++++
 .../dflt-params-arg-val-undefined.js          | 45 ++++++++++
 .../async-function/dflt-params-duplicates.js  | 36 ++++++++
 .../async-function/dflt-params-ref-later.js   | 43 +++++++++
 .../async-function/dflt-params-ref-prior.js   | 42 +++++++++
 .../async-function/dflt-params-ref-self.js    | 43 +++++++++
 .../async-function/dflt-params-rest.js        | 40 +++++++++
 .../dflt-params-trailing-comma.js             | 36 ++++++++
 .../params-trailing-comma-multiple.js         | 36 ++++++++
 .../params-trailing-comma-single.js           | 35 ++++++++
 .../rest-params-trailing-comma-early-error.js | 32 +++++++
 .../args-trailing-comma-multiple.js           | 38 ++++++++
 .../args-trailing-comma-null.js               | 38 ++++++++
 .../args-trailing-comma-single-args.js        | 37 ++++++++
 .../args-trailing-comma-undefined.js          | 38 ++++++++
 ...s-dflt-abrupt.js => dflt-params-abrupt.js} |  2 +-
 ...s => dflt-params-arg-val-not-undefined.js} |  2 +-
 ...ed.js => dflt-params-arg-val-undefined.js} |  2 +-
 ...uplicates.js => dflt-params-duplicates.js} |  2 +-
 ...-ref-later.js => dflt-params-ref-later.js} |  2 +-
 ...-ref-prior.js => dflt-params-ref-prior.js} |  2 +-
 ...lt-ref-self.js => dflt-params-ref-self.js} |  2 +-
 ...arams-dflt-rest.js => dflt-params-rest.js} |  2 +-
 ...param.js => dflt-params-trailing-comma.js} |  2 +-
 ...m.js => params-trailing-comma-multiple.js} |  2 +-
 ...ram.js => params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...c-gen-meth-args-trailing-comma-multiple.js | 64 +++++++++++++
 ...async-gen-meth-args-trailing-comma-null.js | 64 +++++++++++++
 ...en-meth-args-trailing-comma-single-args.js | 63 +++++++++++++
 ...-gen-meth-args-trailing-comma-undefined.js | 64 +++++++++++++
 ...s => async-gen-meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  4 +-
 ...gen-meth-dflt-params-arg-val-undefined.js} |  4 +-
 ... async-gen-meth-dflt-params-duplicates.js} |  2 +-
 ...> async-gen-meth-dflt-params-ref-later.js} |  2 +-
 ...> async-gen-meth-dflt-params-ref-prior.js} |  4 +-
 ...=> async-gen-meth-dflt-params-ref-self.js} |  2 +-
 ....js => async-gen-meth-dflt-params-rest.js} |  2 +-
 ...nc-gen-meth-dflt-params-trailing-comma.js} |  4 +-
 ...en-meth-params-trailing-comma-multiple.js} |  4 +-
 ...-gen-meth-params-trailing-comma-single.js} |  4 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...eth-static-args-trailing-comma-multiple.js | 65 ++++++++++++++
 ...en-meth-static-args-trailing-comma-null.js | 65 ++++++++++++++
 ...-static-args-trailing-comma-single-args.js | 64 +++++++++++++
 ...th-static-args-trailing-comma-undefined.js | 65 ++++++++++++++
 ...ync-gen-meth-static-dflt-params-abrupt.js} |  2 +-
 ...atic-dflt-params-arg-val-not-undefined.js} |  4 +-
 ...h-static-dflt-params-arg-val-undefined.js} |  4 +-
 ...gen-meth-static-dflt-params-duplicates.js} |  2 +-
 ...-gen-meth-static-dflt-params-ref-later.js} |  2 +-
 ...-gen-meth-static-dflt-params-ref-prior.js} |  4 +-
 ...c-gen-meth-static-dflt-params-ref-self.js} |  2 +-
 ...async-gen-meth-static-dflt-params-rest.js} |  2 +-
 ...meth-static-dflt-params-trailing-comma.js} |  4 +-
 ...-static-params-trailing-comma-multiple.js} |  4 +-
 ...th-static-params-trailing-comma-single.js} |  4 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 .../class/async-meth-dflt-params-abrupt.js    | 68 ++++++++++++++
 ...-meth-dflt-params-arg-val-not-undefined.js | 89 +++++++++++++++++++
 ...sync-meth-dflt-params-arg-val-undefined.js | 72 +++++++++++++++
 .../async-meth-dflt-params-duplicates.js      | 63 +++++++++++++
 .../class/async-meth-dflt-params-ref-later.js | 69 ++++++++++++++
 .../class/async-meth-dflt-params-ref-prior.js | 69 ++++++++++++++
 .../class/async-meth-dflt-params-ref-self.js  | 69 ++++++++++++++
 .../class/async-meth-dflt-params-rest.js      | 67 ++++++++++++++
 .../async-meth-dflt-params-trailing-comma.js  | 63 +++++++++++++
 ...ync-meth-params-trailing-comma-multiple.js | 63 +++++++++++++
 ...async-meth-params-trailing-comma-single.js | 62 +++++++++++++
 ...-rest-params-trailing-comma-early-error.js | 59 ++++++++++++
 .../async-meth-static-dflt-params-abrupt.js   | 68 ++++++++++++++
 ...tatic-dflt-params-arg-val-not-undefined.js | 89 +++++++++++++++++++
 ...th-static-dflt-params-arg-val-undefined.js | 72 +++++++++++++++
 ...sync-meth-static-dflt-params-duplicates.js | 62 +++++++++++++
 ...async-meth-static-dflt-params-ref-later.js | 69 ++++++++++++++
 ...async-meth-static-dflt-params-ref-prior.js | 69 ++++++++++++++
 .../async-meth-static-dflt-params-ref-self.js | 69 ++++++++++++++
 .../async-meth-static-dflt-params-rest.js     | 66 ++++++++++++++
 ...-meth-static-dflt-params-trailing-comma.js | 63 +++++++++++++
 ...h-static-params-trailing-comma-multiple.js | 63 +++++++++++++
 ...eth-static-params-trailing-comma-single.js | 62 +++++++++++++
 ...-rest-params-trailing-comma-early-error.js | 58 ++++++++++++
 ...rupt.js => gen-meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...gen-meth-dflt-params-arg-val-undefined.js} |  2 +-
 ....js => gen-meth-dflt-params-duplicates.js} |  2 +-
 ...r.js => gen-meth-dflt-params-ref-later.js} |  2 +-
 ...r.js => gen-meth-dflt-params-ref-prior.js} |  2 +-
 ...lf.js => gen-meth-dflt-params-ref-self.js} |  2 +-
 ...t-rest.js => gen-meth-dflt-params-rest.js} |  2 +-
 ...=> gen-meth-dflt-params-trailing-comma.js} |  2 +-
 ...en-meth-params-trailing-comma-multiple.js} |  2 +-
 ... gen-meth-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ... => gen-meth-static-dflt-params-abrupt.js} |  2 +-
 ...atic-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...h-static-dflt-params-arg-val-undefined.js} |  2 +-
 ...gen-meth-static-dflt-params-duplicates.js} |  2 +-
 ... gen-meth-static-dflt-params-ref-later.js} |  2 +-
 ... gen-meth-static-dflt-params-ref-prior.js} |  2 +-
 ...> gen-meth-static-dflt-params-ref-self.js} |  2 +-
 ...js => gen-meth-static-dflt-params-rest.js} |  2 +-
 ...meth-static-dflt-params-trailing-comma.js} |  2 +-
 ...-static-params-trailing-comma-multiple.js} |  2 +-
 ...th-static-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...t-abrupt.js => meth-dflt-params-abrupt.js} |  2 +-
 ...meth-dflt-params-arg-val-not-undefined.js} |  2 +-
 ... => meth-dflt-params-arg-val-undefined.js} |  2 +-
 ...ates.js => meth-dflt-params-duplicates.js} |  2 +-
 ...later.js => meth-dflt-params-ref-later.js} |  2 +-
 ...prior.js => meth-dflt-params-ref-prior.js} |  2 +-
 ...f-self.js => meth-dflt-params-ref-self.js} |  2 +-
 ...-dflt-rest.js => meth-dflt-params-rest.js} |  2 +-
 ....js => meth-dflt-params-trailing-comma.js} |  2 +-
 ...=> meth-params-trailing-comma-multiple.js} |  2 +-
 ...s => meth-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...t.js => meth-static-dflt-params-abrupt.js} |  2 +-
 ...atic-dflt-params-arg-val-not-undefined.js} |  2 +-
 ...h-static-dflt-params-arg-val-undefined.js} |  2 +-
 ... => meth-static-dflt-params-duplicates.js} |  2 +-
 ...s => meth-static-dflt-params-ref-later.js} |  2 +-
 ...s => meth-static-dflt-params-ref-prior.js} |  2 +-
 ...js => meth-static-dflt-params-ref-self.js} |  2 +-
 ...est.js => meth-static-dflt-params-rest.js} |  2 +-
 ...meth-static-dflt-params-trailing-comma.js} |  2 +-
 ...-static-params-trailing-comma-multiple.js} |  2 +-
 ...th-static-params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...s-dflt-abrupt.js => dflt-params-abrupt.js} |  2 +-
 ...s => dflt-params-arg-val-not-undefined.js} |  2 +-
 ...ed.js => dflt-params-arg-val-undefined.js} |  2 +-
 ...uplicates.js => dflt-params-duplicates.js} |  2 +-
 ...-ref-later.js => dflt-params-ref-later.js} |  2 +-
 ...-ref-prior.js => dflt-params-ref-prior.js} |  2 +-
 ...lt-ref-self.js => dflt-params-ref-self.js} |  2 +-
 ...arams-dflt-rest.js => dflt-params-rest.js} |  2 +-
 ...param.js => dflt-params-trailing-comma.js} |  2 +-
 ...m.js => params-trailing-comma-multiple.js} |  2 +-
 ...ram.js => params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 ...s-dflt-abrupt.js => dflt-params-abrupt.js} |  2 +-
 ...s => dflt-params-arg-val-not-undefined.js} |  2 +-
 ...ed.js => dflt-params-arg-val-undefined.js} |  2 +-
 ...uplicates.js => dflt-params-duplicates.js} |  2 +-
 ...-ref-later.js => dflt-params-ref-later.js} |  2 +-
 ...-ref-prior.js => dflt-params-ref-prior.js} |  2 +-
 ...lt-ref-self.js => dflt-params-ref-self.js} |  2 +-
 ...arams-dflt-rest.js => dflt-params-rest.js} |  2 +-
 ...param.js => dflt-params-trailing-comma.js} |  2 +-
 ...m.js => params-trailing-comma-multiple.js} |  2 +-
 ...ram.js => params-trailing-comma-single.js} |  2 +-
 ...rest-params-trailing-comma-early-error.js} |  2 +-
 472 files changed, 7981 insertions(+), 344 deletions(-)
 rename test/language/arguments-object/{cls-decl-gen-meth-trailing-comma-multiple-args.js => cls-decl-gen-meth-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{cls-decl-gen-meth-trailing-comma-null.js => cls-decl-gen-meth-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{cls-decl-gen-meth-trailing-comma-single-args.js => cls-decl-gen-meth-args-trailing-comma-single-args.js} (95%)
 rename test/language/arguments-object/{cls-decl-gen-meth-trailing-comma-undefined.js => cls-decl-gen-meth-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{cls-decl-gen-meth-static-trailing-comma-multiple-args.js => cls-decl-gen-meth-static-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{cls-decl-gen-meth-static-trailing-comma-null.js => cls-decl-gen-meth-static-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{cls-decl-gen-meth-static-trailing-comma-single-args.js => cls-decl-gen-meth-static-args-trailing-comma-single-args.js} (95%)
 rename test/language/arguments-object/{cls-decl-gen-meth-static-trailing-comma-undefined.js => cls-decl-gen-meth-static-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{cls-decl-meth-trailing-comma-multiple-args.js => cls-decl-meth-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{cls-decl-meth-trailing-comma-null.js => cls-decl-meth-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{cls-decl-meth-trailing-comma-single-args.js => cls-decl-meth-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{cls-decl-meth-trailing-comma-undefined.js => cls-decl-meth-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{cls-decl-meth-static-trailing-comma-multiple-args.js => cls-decl-meth-static-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{cls-decl-meth-static-trailing-comma-null.js => cls-decl-meth-static-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{cls-decl-meth-static-trailing-comma-single-args.js => cls-decl-meth-static-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{cls-decl-meth-static-trailing-comma-undefined.js => cls-decl-meth-static-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{cls-expr-gen-meth-trailing-comma-multiple-args.js => cls-expr-gen-meth-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{cls-expr-gen-meth-trailing-comma-null.js => cls-expr-gen-meth-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{cls-expr-gen-meth-trailing-comma-single-args.js => cls-expr-gen-meth-args-trailing-comma-single-args.js} (95%)
 rename test/language/arguments-object/{cls-expr-gen-meth-trailing-comma-undefined.js => cls-expr-gen-meth-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{cls-expr-gen-meth-static-trailing-comma-multiple-args.js => cls-expr-gen-meth-static-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{cls-expr-gen-meth-static-trailing-comma-null.js => cls-expr-gen-meth-static-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{cls-expr-gen-meth-static-trailing-comma-single-args.js => cls-expr-gen-meth-static-args-trailing-comma-single-args.js} (95%)
 rename test/language/arguments-object/{cls-expr-gen-meth-static-trailing-comma-undefined.js => cls-expr-gen-meth-static-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{cls-expr-meth-trailing-comma-multiple-args.js => cls-expr-meth-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{cls-expr-meth-trailing-comma-null.js => cls-expr-meth-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{cls-expr-meth-trailing-comma-single-args.js => cls-expr-meth-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{cls-expr-meth-trailing-comma-undefined.js => cls-expr-meth-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{cls-expr-meth-static-trailing-comma-multiple-args.js => cls-expr-meth-static-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{cls-expr-meth-static-trailing-comma-null.js => cls-expr-meth-static-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{cls-expr-meth-static-trailing-comma-single-args.js => cls-expr-meth-static-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{cls-expr-meth-static-trailing-comma-undefined.js => cls-expr-meth-static-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{func-decl-trailing-comma-multiple-args.js => func-decl-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{func-decl-trailing-comma-null.js => func-decl-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{func-decl-trailing-comma-single-args.js => func-decl-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{func-decl-trailing-comma-undefined.js => func-decl-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{func-expr-trailing-comma-multiple-args.js => func-expr-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{func-expr-trailing-comma-null.js => func-expr-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{func-expr-trailing-comma-single-args.js => func-expr-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{func-expr-trailing-comma-undefined.js => func-expr-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{gen-func-decl-trailing-comma-multiple-args.js => gen-func-decl-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{gen-func-decl-trailing-comma-null.js => gen-func-decl-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{gen-func-decl-trailing-comma-single-args.js => gen-func-decl-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{gen-func-decl-trailing-comma-undefined.js => gen-func-decl-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{gen-func-expr-trailing-comma-multiple-args.js => gen-func-expr-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{gen-func-expr-trailing-comma-null.js => gen-func-expr-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{gen-func-expr-trailing-comma-single-args.js => gen-func-expr-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{gen-func-expr-trailing-comma-undefined.js => gen-func-expr-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{gen-meth-trailing-comma-multiple-args.js => gen-meth-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{gen-meth-trailing-comma-null.js => gen-meth-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{gen-meth-trailing-comma-single-args.js => gen-meth-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{gen-meth-trailing-comma-undefined.js => gen-meth-args-trailing-comma-undefined.js} (95%)
 rename test/language/arguments-object/{meth-trailing-comma-multiple-args.js => meth-args-trailing-comma-multiple.js} (95%)
 rename test/language/arguments-object/{meth-trailing-comma-null.js => meth-args-trailing-comma-null.js} (95%)
 rename test/language/arguments-object/{meth-trailing-comma-single-args.js => meth-args-trailing-comma-single-args.js} (94%)
 rename test/language/arguments-object/{meth-trailing-comma-undefined.js => meth-args-trailing-comma-undefined.js} (95%)
 rename test/language/expressions/arrow-function/{params-dflt-abrupt.js => dflt-params-abrupt.js} (97%)
 rename test/language/expressions/arrow-function/{params-dflt-arg-val-not-undefined.js => dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/expressions/arrow-function/{params-dflt-arg-val-undefined.js => dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/arrow-function/{params-dflt-duplicates.js => dflt-params-duplicates.js} (97%)
 rename test/language/expressions/arrow-function/{params-dflt-ref-later.js => dflt-params-ref-later.js} (97%)
 rename test/language/expressions/arrow-function/{params-dflt-ref-prior.js => dflt-params-ref-prior.js} (97%)
 rename test/language/expressions/arrow-function/{params-dflt-ref-self.js => dflt-params-ref-self.js} (97%)
 rename test/language/expressions/arrow-function/{params-dflt-rest.js => dflt-params-rest.js} (97%)
 rename test/language/expressions/arrow-function/{params-trailing-comma-dflt-param.js => dflt-params-trailing-comma.js} (96%)
 rename test/language/expressions/arrow-function/{params-trailing-comma-multiple-param.js => params-trailing-comma-multiple.js} (96%)
 rename test/language/expressions/arrow-function/{params-trailing-comma-single-param.js => params-trailing-comma-single.js} (96%)
 rename test/language/expressions/arrow-function/{params-trailing-comma-rest-early-error.js => rest-params-trailing-comma-early-error.js} (95%)
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-abrupt.js
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-arg-val-undefined.js
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-duplicates.js
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-ref-later.js
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-ref-prior.js
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-ref-self.js
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-rest.js
 create mode 100644 test/language/expressions/async-arrow-function/dflt-params-trailing-comma.js
 create mode 100644 test/language/expressions/async-arrow-function/params-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/async-arrow-function/params-trailing-comma-single.js
 create mode 100644 test/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-abrupt.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-arg-val-undefined.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-duplicates.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-ref-later.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-ref-prior.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-ref-self.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-rest.js
 create mode 100644 test/language/expressions/async-function/named-dflt-params-trailing-comma.js
 create mode 100644 test/language/expressions/async-function/named-params-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/async-function/named-params-trailing-comma-single.js
 create mode 100644 test/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-abrupt.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-arg-val-undefined.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-duplicates.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-ref-later.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-ref-prior.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-ref-self.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-rest.js
 create mode 100644 test/language/expressions/async-function/nameless-dflt-params-trailing-comma.js
 create mode 100644 test/language/expressions/async-function/nameless-params-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/async-function/nameless-params-trailing-comma-single.js
 create mode 100644 test/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js
 create mode 100644 test/language/expressions/async-generator/args-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/async-generator/args-trailing-comma-null.js
 create mode 100644 test/language/expressions/async-generator/args-trailing-comma-single-args.js
 create mode 100644 test/language/expressions/async-generator/args-trailing-comma-undefined.js
 rename test/language/expressions/async-generator/{params-dflt-abrupt.js => dflt-params-abrupt.js} (96%)
 rename test/language/expressions/async-generator/{params-dflt-arg-val-not-undefined.js => dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/expressions/async-generator/{params-dflt-arg-val-undefined.js => dflt-params-arg-val-undefined.js} (96%)
 rename test/language/expressions/async-generator/{params-dflt-duplicates.js => dflt-params-duplicates.js} (95%)
 rename test/language/expressions/async-generator/{params-dflt-ref-later.js => dflt-params-ref-later.js} (96%)
 rename test/language/expressions/async-generator/{params-dflt-ref-prior.js => dflt-params-ref-prior.js} (96%)
 rename test/language/expressions/async-generator/{params-dflt-ref-self.js => dflt-params-ref-self.js} (96%)
 rename test/language/expressions/async-generator/{params-dflt-rest.js => dflt-params-rest.js} (95%)
 rename test/language/expressions/async-generator/{params-trailing-comma-dflt-param.js => dflt-params-trailing-comma.js} (95%)
 create mode 100644 test/language/expressions/async-generator/named-args-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/async-generator/named-args-trailing-comma-null.js
 create mode 100644 test/language/expressions/async-generator/named-args-trailing-comma-single-args.js
 create mode 100644 test/language/expressions/async-generator/named-args-trailing-comma-undefined.js
 rename test/language/expressions/async-generator/{params-named-dflt-abrupt.js => named-dflt-params-abrupt.js} (96%)
 rename test/language/expressions/async-generator/{params-named-dflt-arg-val-not-undefined.js => named-dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/expressions/async-generator/{params-named-dflt-arg-val-undefined.js => named-dflt-params-arg-val-undefined.js} (96%)
 rename test/language/expressions/async-generator/{params-named-dflt-duplicates.js => named-dflt-params-duplicates.js} (95%)
 rename test/language/expressions/async-generator/{params-named-dflt-ref-later.js => named-dflt-params-ref-later.js} (96%)
 rename test/language/expressions/async-generator/{params-named-dflt-ref-prior.js => named-dflt-params-ref-prior.js} (96%)
 rename test/language/expressions/async-generator/{params-named-dflt-ref-self.js => named-dflt-params-ref-self.js} (96%)
 rename test/language/expressions/async-generator/{params-named-dflt-rest.js => named-dflt-params-rest.js} (95%)
 rename test/language/expressions/async-generator/{params-named-trailing-comma-dflt-param.js => named-dflt-params-trailing-comma.js} (95%)
 rename test/language/expressions/async-generator/{params-named-trailing-comma-multiple-param.js => named-params-trailing-comma-multiple.js} (95%)
 rename test/language/expressions/async-generator/{params-named-trailing-comma-single-param.js => named-params-trailing-comma-single.js} (95%)
 rename test/language/expressions/async-generator/{params-named-trailing-comma-rest-early-error.js => named-rest-params-trailing-comma-early-error.js} (94%)
 rename test/language/expressions/async-generator/{params-trailing-comma-multiple-param.js => params-trailing-comma-multiple.js} (95%)
 rename test/language/expressions/async-generator/{params-trailing-comma-single-param.js => params-trailing-comma-single.js} (95%)
 rename test/language/expressions/async-generator/{params-trailing-comma-rest-early-error.js => rest-params-trailing-comma-early-error.js} (94%)
 create mode 100644 test/language/expressions/class/async-gen-meth-args-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/class/async-gen-meth-args-trailing-comma-null.js
 create mode 100644 test/language/expressions/class/async-gen-meth-args-trailing-comma-single-args.js
 create mode 100644 test/language/expressions/class/async-gen-meth-args-trailing-comma-undefined.js
 rename test/language/expressions/class/{params-async-gen-meth-dflt-abrupt.js => async-gen-meth-dflt-params-abrupt.js} (98%)
 rename test/language/expressions/class/{params-async-gen-meth-dflt-arg-val-not-undefined.js => async-gen-meth-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/expressions/class/{params-async-gen-meth-dflt-arg-val-undefined.js => async-gen-meth-dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-dflt-duplicates.js => async-gen-meth-dflt-params-duplicates.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-dflt-ref-later.js => async-gen-meth-dflt-params-ref-later.js} (98%)
 rename test/language/expressions/class/{params-async-gen-meth-dflt-ref-prior.js => async-gen-meth-dflt-params-ref-prior.js} (98%)
 rename test/language/expressions/class/{params-async-gen-meth-dflt-ref-self.js => async-gen-meth-dflt-params-ref-self.js} (98%)
 rename test/language/expressions/class/{params-async-gen-meth-dflt-rest.js => async-gen-meth-dflt-params-rest.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-trailing-comma-dflt-param.js => async-gen-meth-dflt-params-trailing-comma.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-trailing-comma-multiple-param.js => async-gen-meth-params-trailing-comma-multiple.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-trailing-comma-single-param.js => async-gen-meth-params-trailing-comma-single.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-trailing-comma-rest-early-error.js => async-gen-meth-rest-params-trailing-comma-early-error.js} (96%)
 create mode 100644 test/language/expressions/class/async-gen-meth-static-args-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/class/async-gen-meth-static-args-trailing-comma-null.js
 create mode 100644 test/language/expressions/class/async-gen-meth-static-args-trailing-comma-single-args.js
 create mode 100644 test/language/expressions/class/async-gen-meth-static-args-trailing-comma-undefined.js
 rename test/language/expressions/class/{params-async-gen-meth-static-dflt-abrupt.js => async-gen-meth-static-dflt-params-abrupt.js} (98%)
 rename test/language/expressions/class/{params-async-gen-meth-static-dflt-arg-val-not-undefined.js => async-gen-meth-static-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/expressions/class/{params-async-gen-meth-static-dflt-arg-val-undefined.js => async-gen-meth-static-dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-static-dflt-duplicates.js => async-gen-meth-static-dflt-params-duplicates.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-static-dflt-ref-later.js => async-gen-meth-static-dflt-params-ref-later.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-static-dflt-ref-prior.js => async-gen-meth-static-dflt-params-ref-prior.js} (98%)
 rename test/language/expressions/class/{params-async-gen-meth-static-dflt-ref-self.js => async-gen-meth-static-dflt-params-ref-self.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-static-dflt-rest.js => async-gen-meth-static-dflt-params-rest.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-static-trailing-comma-dflt-param.js => async-gen-meth-static-dflt-params-trailing-comma.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-static-trailing-comma-multiple-param.js => async-gen-meth-static-params-trailing-comma-multiple.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-static-trailing-comma-single-param.js => async-gen-meth-static-params-trailing-comma-single.js} (97%)
 rename test/language/expressions/class/{params-async-gen-meth-static-trailing-comma-rest-early-error.js => async-gen-meth-static-rest-params-trailing-comma-early-error.js} (96%)
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-abrupt.js
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-arg-val-undefined.js
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-duplicates.js
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-ref-later.js
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-ref-prior.js
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-ref-self.js
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-rest.js
 create mode 100644 test/language/expressions/class/async-meth-dflt-params-trailing-comma.js
 create mode 100644 test/language/expressions/class/async-meth-params-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/class/async-meth-params-trailing-comma-single.js
 create mode 100644 test/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-abrupt.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-arg-val-undefined.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-duplicates.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-ref-later.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-ref-prior.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-ref-self.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-rest.js
 create mode 100644 test/language/expressions/class/async-meth-static-dflt-params-trailing-comma.js
 create mode 100644 test/language/expressions/class/async-meth-static-params-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/class/async-meth-static-params-trailing-comma-single.js
 create mode 100644 test/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js
 rename test/language/expressions/class/{params-gen-meth-dflt-abrupt.js => gen-meth-dflt-params-abrupt.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-dflt-arg-val-not-undefined.js => gen-meth-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-dflt-arg-val-undefined.js => gen-meth-dflt-params-arg-val-undefined.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-dflt-duplicates.js => gen-meth-dflt-params-duplicates.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-dflt-ref-later.js => gen-meth-dflt-params-ref-later.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-dflt-ref-prior.js => gen-meth-dflt-params-ref-prior.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-dflt-ref-self.js => gen-meth-dflt-params-ref-self.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-dflt-rest.js => gen-meth-dflt-params-rest.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-trailing-comma-dflt-param.js => gen-meth-dflt-params-trailing-comma.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-trailing-comma-multiple-param.js => gen-meth-params-trailing-comma-multiple.js} (97%)
 rename test/language/expressions/class/{params-gen-meth-trailing-comma-single-param.js => gen-meth-params-trailing-comma-single.js} (97%)
 rename test/language/expressions/class/{params-gen-meth-trailing-comma-rest-early-error.js => gen-meth-rest-params-trailing-comma-early-error.js} (97%)
 rename test/language/expressions/class/{params-gen-meth-static-dflt-abrupt.js => gen-meth-static-dflt-params-abrupt.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-dflt-arg-val-not-undefined.js => gen-meth-static-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-dflt-arg-val-undefined.js => gen-meth-static-dflt-params-arg-val-undefined.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-dflt-duplicates.js => gen-meth-static-dflt-params-duplicates.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-dflt-ref-later.js => gen-meth-static-dflt-params-ref-later.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-dflt-ref-prior.js => gen-meth-static-dflt-params-ref-prior.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-dflt-ref-self.js => gen-meth-static-dflt-params-ref-self.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-dflt-rest.js => gen-meth-static-dflt-params-rest.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-trailing-comma-dflt-param.js => gen-meth-static-dflt-params-trailing-comma.js} (98%)
 rename test/language/expressions/class/{params-gen-meth-static-trailing-comma-multiple-param.js => gen-meth-static-params-trailing-comma-multiple.js} (97%)
 rename test/language/expressions/class/{params-gen-meth-static-trailing-comma-single-param.js => gen-meth-static-params-trailing-comma-single.js} (97%)
 rename test/language/expressions/class/{params-gen-meth-static-trailing-comma-rest-early-error.js => gen-meth-static-rest-params-trailing-comma-early-error.js} (97%)
 rename test/language/expressions/class/{params-meth-dflt-abrupt.js => meth-dflt-params-abrupt.js} (98%)
 rename test/language/expressions/class/{params-meth-dflt-arg-val-not-undefined.js => meth-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/expressions/class/{params-meth-dflt-arg-val-undefined.js => meth-dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/class/{params-meth-dflt-duplicates.js => meth-dflt-params-duplicates.js} (98%)
 rename test/language/expressions/class/{params-meth-dflt-ref-later.js => meth-dflt-params-ref-later.js} (98%)
 rename test/language/expressions/class/{params-meth-dflt-ref-prior.js => meth-dflt-params-ref-prior.js} (98%)
 rename test/language/expressions/class/{params-meth-dflt-ref-self.js => meth-dflt-params-ref-self.js} (98%)
 rename test/language/expressions/class/{params-meth-dflt-rest.js => meth-dflt-params-rest.js} (98%)
 rename test/language/expressions/class/{params-meth-trailing-comma-dflt-param.js => meth-dflt-params-trailing-comma.js} (97%)
 rename test/language/expressions/class/{params-meth-trailing-comma-multiple-param.js => meth-params-trailing-comma-multiple.js} (97%)
 rename test/language/expressions/class/{params-meth-trailing-comma-single-param.js => meth-params-trailing-comma-single.js} (97%)
 rename test/language/expressions/class/{params-meth-trailing-comma-rest-early-error.js => meth-rest-params-trailing-comma-early-error.js} (97%)
 rename test/language/expressions/class/{params-meth-static-dflt-abrupt.js => meth-static-dflt-params-abrupt.js} (98%)
 rename test/language/expressions/class/{params-meth-static-dflt-arg-val-not-undefined.js => meth-static-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/expressions/class/{params-meth-static-dflt-arg-val-undefined.js => meth-static-dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/class/{params-meth-static-dflt-duplicates.js => meth-static-dflt-params-duplicates.js} (98%)
 rename test/language/expressions/class/{params-meth-static-dflt-ref-later.js => meth-static-dflt-params-ref-later.js} (98%)
 rename test/language/expressions/class/{params-meth-static-dflt-ref-prior.js => meth-static-dflt-params-ref-prior.js} (98%)
 rename test/language/expressions/class/{params-meth-static-dflt-ref-self.js => meth-static-dflt-params-ref-self.js} (98%)
 rename test/language/expressions/class/{params-meth-static-dflt-rest.js => meth-static-dflt-params-rest.js} (98%)
 rename test/language/expressions/class/{params-meth-static-trailing-comma-dflt-param.js => meth-static-dflt-params-trailing-comma.js} (97%)
 rename test/language/expressions/class/{params-meth-static-trailing-comma-multiple-param.js => meth-static-params-trailing-comma-multiple.js} (97%)
 rename test/language/expressions/class/{params-meth-static-trailing-comma-single-param.js => meth-static-params-trailing-comma-single.js} (97%)
 rename test/language/expressions/class/{params-meth-static-trailing-comma-rest-early-error.js => meth-static-rest-params-trailing-comma-early-error.js} (97%)
 rename test/language/expressions/function/{params-dflt-abrupt.js => dflt-params-abrupt.js} (97%)
 rename test/language/expressions/function/{params-dflt-arg-val-not-undefined.js => dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/expressions/function/{params-dflt-arg-val-undefined.js => dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/function/{params-dflt-duplicates.js => dflt-params-duplicates.js} (97%)
 rename test/language/expressions/function/{params-dflt-ref-later.js => dflt-params-ref-later.js} (97%)
 rename test/language/expressions/function/{params-dflt-ref-prior.js => dflt-params-ref-prior.js} (97%)
 rename test/language/expressions/function/{params-dflt-ref-self.js => dflt-params-ref-self.js} (97%)
 rename test/language/expressions/function/{params-dflt-rest.js => dflt-params-rest.js} (97%)
 rename test/language/expressions/function/{params-trailing-comma-dflt-param.js => dflt-params-trailing-comma.js} (96%)
 rename test/language/expressions/function/{params-trailing-comma-multiple-param.js => params-trailing-comma-multiple.js} (96%)
 rename test/language/expressions/function/{params-trailing-comma-single-param.js => params-trailing-comma-single.js} (96%)
 rename test/language/expressions/function/{params-trailing-comma-rest-early-error.js => rest-params-trailing-comma-early-error.js} (96%)
 rename test/language/expressions/generators/{params-dflt-abrupt.js => dflt-params-abrupt.js} (97%)
 rename test/language/expressions/generators/{params-dflt-arg-val-not-undefined.js => dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/expressions/generators/{params-dflt-arg-val-undefined.js => dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/generators/{params-dflt-duplicates.js => dflt-params-duplicates.js} (97%)
 rename test/language/expressions/generators/{params-dflt-ref-later.js => dflt-params-ref-later.js} (97%)
 rename test/language/expressions/generators/{params-dflt-ref-prior.js => dflt-params-ref-prior.js} (97%)
 rename test/language/expressions/generators/{params-dflt-ref-self.js => dflt-params-ref-self.js} (97%)
 rename test/language/expressions/generators/{params-dflt-rest.js => dflt-params-rest.js} (97%)
 rename test/language/expressions/generators/{params-trailing-comma-dflt-param.js => dflt-params-trailing-comma.js} (96%)
 rename test/language/expressions/generators/{params-trailing-comma-multiple-param.js => params-trailing-comma-multiple.js} (96%)
 rename test/language/expressions/generators/{params-trailing-comma-single-param.js => params-trailing-comma-single.js} (96%)
 rename test/language/expressions/generators/{params-trailing-comma-rest-early-error.js => rest-params-trailing-comma-early-error.js} (96%)
 create mode 100644 test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-null.js
 create mode 100644 test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-single-args.js
 create mode 100644 test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-undefined.js
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-dflt-abrupt.js => async-gen-meth-dflt-params-abrupt.js} (97%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-dflt-arg-val-not-undefined.js => async-gen-meth-dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-dflt-arg-val-undefined.js => async-gen-meth-dflt-params-arg-val-undefined.js} (96%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-dflt-duplicates.js => async-gen-meth-dflt-params-duplicates.js} (96%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-dflt-ref-later.js => async-gen-meth-dflt-params-ref-later.js} (97%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-dflt-ref-prior.js => async-gen-meth-dflt-params-ref-prior.js} (97%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-dflt-ref-self.js => async-gen-meth-dflt-params-ref-self.js} (97%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-dflt-rest.js => async-gen-meth-dflt-params-rest.js} (96%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-trailing-comma-dflt-param.js => async-gen-meth-dflt-params-trailing-comma.js} (96%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-trailing-comma-multiple-param.js => async-gen-meth-params-trailing-comma-multiple.js} (96%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-trailing-comma-single-param.js => async-gen-meth-params-trailing-comma-single.js} (96%)
 rename test/language/expressions/object/method-definition/{params-async-gen-meth-trailing-comma-rest-early-error.js => async-gen-meth-rest-params-trailing-comma-early-error.js} (95%)
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-abrupt.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-undefined.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-ref-later.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-ref-prior.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-ref-self.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-rest.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-dflt-params-trailing-comma.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-params-trailing-comma-multiple.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-params-trailing-comma-single.js
 create mode 100644 test/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js
 rename test/language/expressions/object/method-definition/{params-gen-meth-dflt-abrupt.js => gen-meth-dflt-params-abrupt.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-dflt-arg-val-not-undefined.js => gen-meth-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-dflt-arg-val-undefined.js => gen-meth-dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-dflt-duplicates.js => gen-meth-dflt-params-duplicates.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-dflt-ref-later.js => gen-meth-dflt-params-ref-later.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-dflt-ref-prior.js => gen-meth-dflt-params-ref-prior.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-dflt-ref-self.js => gen-meth-dflt-params-ref-self.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-dflt-rest.js => gen-meth-dflt-params-rest.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-trailing-comma-dflt-param.js => gen-meth-dflt-params-trailing-comma.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-trailing-comma-multiple-param.js => gen-meth-params-trailing-comma-multiple.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-trailing-comma-single-param.js => gen-meth-params-trailing-comma-single.js} (97%)
 rename test/language/expressions/object/method-definition/{params-gen-meth-trailing-comma-rest-early-error.js => gen-meth-rest-params-trailing-comma-early-error.js} (96%)
 rename test/language/expressions/object/method-definition/{params-meth-dflt-abrupt.js => meth-dflt-params-abrupt.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-dflt-arg-val-not-undefined.js => meth-dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-dflt-arg-val-undefined.js => meth-dflt-params-arg-val-undefined.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-dflt-duplicates.js => meth-dflt-params-duplicates.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-dflt-ref-later.js => meth-dflt-params-ref-later.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-dflt-ref-prior.js => meth-dflt-params-ref-prior.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-dflt-ref-self.js => meth-dflt-params-ref-self.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-dflt-rest.js => meth-dflt-params-rest.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-trailing-comma-dflt-param.js => meth-dflt-params-trailing-comma.js} (97%)
 rename test/language/expressions/object/method-definition/{params-meth-trailing-comma-multiple-param.js => meth-params-trailing-comma-multiple.js} (96%)
 rename test/language/expressions/object/method-definition/{params-meth-trailing-comma-single-param.js => meth-params-trailing-comma-single.js} (96%)
 rename test/language/expressions/object/method-definition/{params-meth-trailing-comma-rest-early-error.js => meth-rest-params-trailing-comma-early-error.js} (96%)
 create mode 100644 test/language/statements/async-function/dflt-params-abrupt.js
 create mode 100644 test/language/statements/async-function/dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/statements/async-function/dflt-params-arg-val-undefined.js
 create mode 100644 test/language/statements/async-function/dflt-params-duplicates.js
 create mode 100644 test/language/statements/async-function/dflt-params-ref-later.js
 create mode 100644 test/language/statements/async-function/dflt-params-ref-prior.js
 create mode 100644 test/language/statements/async-function/dflt-params-ref-self.js
 create mode 100644 test/language/statements/async-function/dflt-params-rest.js
 create mode 100644 test/language/statements/async-function/dflt-params-trailing-comma.js
 create mode 100644 test/language/statements/async-function/params-trailing-comma-multiple.js
 create mode 100644 test/language/statements/async-function/params-trailing-comma-single.js
 create mode 100644 test/language/statements/async-function/rest-params-trailing-comma-early-error.js
 create mode 100644 test/language/statements/async-generator/args-trailing-comma-multiple.js
 create mode 100644 test/language/statements/async-generator/args-trailing-comma-null.js
 create mode 100644 test/language/statements/async-generator/args-trailing-comma-single-args.js
 create mode 100644 test/language/statements/async-generator/args-trailing-comma-undefined.js
 rename test/language/statements/async-generator/{params-dflt-abrupt.js => dflt-params-abrupt.js} (96%)
 rename test/language/statements/async-generator/{params-dflt-arg-val-not-undefined.js => dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/statements/async-generator/{params-dflt-arg-val-undefined.js => dflt-params-arg-val-undefined.js} (96%)
 rename test/language/statements/async-generator/{params-dflt-duplicates.js => dflt-params-duplicates.js} (95%)
 rename test/language/statements/async-generator/{params-dflt-ref-later.js => dflt-params-ref-later.js} (96%)
 rename test/language/statements/async-generator/{params-dflt-ref-prior.js => dflt-params-ref-prior.js} (96%)
 rename test/language/statements/async-generator/{params-dflt-ref-self.js => dflt-params-ref-self.js} (96%)
 rename test/language/statements/async-generator/{params-dflt-rest.js => dflt-params-rest.js} (95%)
 rename test/language/statements/async-generator/{params-trailing-comma-dflt-param.js => dflt-params-trailing-comma.js} (95%)
 rename test/language/statements/async-generator/{params-trailing-comma-multiple-param.js => params-trailing-comma-multiple.js} (95%)
 rename test/language/statements/async-generator/{params-trailing-comma-single-param.js => params-trailing-comma-single.js} (95%)
 rename test/language/statements/async-generator/{params-trailing-comma-rest-early-error.js => rest-params-trailing-comma-early-error.js} (94%)
 create mode 100644 test/language/statements/class/async-gen-meth-args-trailing-comma-multiple.js
 create mode 100644 test/language/statements/class/async-gen-meth-args-trailing-comma-null.js
 create mode 100644 test/language/statements/class/async-gen-meth-args-trailing-comma-single-args.js
 create mode 100644 test/language/statements/class/async-gen-meth-args-trailing-comma-undefined.js
 rename test/language/statements/class/{params-async-gen-meth-dflt-abrupt.js => async-gen-meth-dflt-params-abrupt.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-dflt-arg-val-not-undefined.js => async-gen-meth-dflt-params-arg-val-not-undefined.js} (96%)
 rename test/language/statements/class/{params-async-gen-meth-dflt-arg-val-undefined.js => async-gen-meth-dflt-params-arg-val-undefined.js} (95%)
 rename test/language/statements/class/{params-async-gen-meth-dflt-duplicates.js => async-gen-meth-dflt-params-duplicates.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-dflt-ref-later.js => async-gen-meth-dflt-params-ref-later.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-dflt-ref-prior.js => async-gen-meth-dflt-params-ref-prior.js} (95%)
 rename test/language/statements/class/{params-async-gen-meth-dflt-ref-self.js => async-gen-meth-dflt-params-ref-self.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-dflt-rest.js => async-gen-meth-dflt-params-rest.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-trailing-comma-dflt-param.js => async-gen-meth-dflt-params-trailing-comma.js} (94%)
 rename test/language/statements/class/{params-async-gen-meth-trailing-comma-multiple-param.js => async-gen-meth-params-trailing-comma-multiple.js} (93%)
 rename test/language/statements/class/{params-async-gen-meth-trailing-comma-single-param.js => async-gen-meth-params-trailing-comma-single.js} (93%)
 rename test/language/statements/class/{params-async-gen-meth-trailing-comma-rest-early-error.js => async-gen-meth-rest-params-trailing-comma-early-error.js} (96%)
 create mode 100644 test/language/statements/class/async-gen-meth-static-args-trailing-comma-multiple.js
 create mode 100644 test/language/statements/class/async-gen-meth-static-args-trailing-comma-null.js
 create mode 100644 test/language/statements/class/async-gen-meth-static-args-trailing-comma-single-args.js
 create mode 100644 test/language/statements/class/async-gen-meth-static-args-trailing-comma-undefined.js
 rename test/language/statements/class/{params-async-gen-meth-static-dflt-abrupt.js => async-gen-meth-static-dflt-params-abrupt.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-static-dflt-arg-val-not-undefined.js => async-gen-meth-static-dflt-params-arg-val-not-undefined.js} (96%)
 rename test/language/statements/class/{params-async-gen-meth-static-dflt-arg-val-undefined.js => async-gen-meth-static-dflt-params-arg-val-undefined.js} (95%)
 rename test/language/statements/class/{params-async-gen-meth-static-dflt-duplicates.js => async-gen-meth-static-dflt-params-duplicates.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-static-dflt-ref-later.js => async-gen-meth-static-dflt-params-ref-later.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-static-dflt-ref-prior.js => async-gen-meth-static-dflt-params-ref-prior.js} (95%)
 rename test/language/statements/class/{params-async-gen-meth-static-dflt-ref-self.js => async-gen-meth-static-dflt-params-ref-self.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-static-dflt-rest.js => async-gen-meth-static-dflt-params-rest.js} (97%)
 rename test/language/statements/class/{params-async-gen-meth-static-trailing-comma-dflt-param.js => async-gen-meth-static-dflt-params-trailing-comma.js} (93%)
 rename test/language/statements/class/{params-async-gen-meth-static-trailing-comma-multiple-param.js => async-gen-meth-static-params-trailing-comma-multiple.js} (93%)
 rename test/language/statements/class/{params-async-gen-meth-static-trailing-comma-single-param.js => async-gen-meth-static-params-trailing-comma-single.js} (93%)
 rename test/language/statements/class/{params-async-gen-meth-static-trailing-comma-rest-early-error.js => async-gen-meth-static-rest-params-trailing-comma-early-error.js} (96%)
 create mode 100644 test/language/statements/class/async-meth-dflt-params-abrupt.js
 create mode 100644 test/language/statements/class/async-meth-dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/statements/class/async-meth-dflt-params-arg-val-undefined.js
 create mode 100644 test/language/statements/class/async-meth-dflt-params-duplicates.js
 create mode 100644 test/language/statements/class/async-meth-dflt-params-ref-later.js
 create mode 100644 test/language/statements/class/async-meth-dflt-params-ref-prior.js
 create mode 100644 test/language/statements/class/async-meth-dflt-params-ref-self.js
 create mode 100644 test/language/statements/class/async-meth-dflt-params-rest.js
 create mode 100644 test/language/statements/class/async-meth-dflt-params-trailing-comma.js
 create mode 100644 test/language/statements/class/async-meth-params-trailing-comma-multiple.js
 create mode 100644 test/language/statements/class/async-meth-params-trailing-comma-single.js
 create mode 100644 test/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-abrupt.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-arg-val-not-undefined.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-arg-val-undefined.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-duplicates.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-ref-later.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-ref-prior.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-ref-self.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-rest.js
 create mode 100644 test/language/statements/class/async-meth-static-dflt-params-trailing-comma.js
 create mode 100644 test/language/statements/class/async-meth-static-params-trailing-comma-multiple.js
 create mode 100644 test/language/statements/class/async-meth-static-params-trailing-comma-single.js
 create mode 100644 test/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js
 rename test/language/statements/class/{params-gen-meth-dflt-abrupt.js => gen-meth-dflt-params-abrupt.js} (98%)
 rename test/language/statements/class/{params-gen-meth-dflt-arg-val-not-undefined.js => gen-meth-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/statements/class/{params-gen-meth-dflt-arg-val-undefined.js => gen-meth-dflt-params-arg-val-undefined.js} (98%)
 rename test/language/statements/class/{params-gen-meth-dflt-duplicates.js => gen-meth-dflt-params-duplicates.js} (98%)
 rename test/language/statements/class/{params-gen-meth-dflt-ref-later.js => gen-meth-dflt-params-ref-later.js} (98%)
 rename test/language/statements/class/{params-gen-meth-dflt-ref-prior.js => gen-meth-dflt-params-ref-prior.js} (98%)
 rename test/language/statements/class/{params-gen-meth-dflt-ref-self.js => gen-meth-dflt-params-ref-self.js} (98%)
 rename test/language/statements/class/{params-gen-meth-dflt-rest.js => gen-meth-dflt-params-rest.js} (98%)
 rename test/language/statements/class/{params-gen-meth-trailing-comma-dflt-param.js => gen-meth-dflt-params-trailing-comma.js} (97%)
 rename test/language/statements/class/{params-gen-meth-trailing-comma-multiple-param.js => gen-meth-params-trailing-comma-multiple.js} (97%)
 rename test/language/statements/class/{params-gen-meth-trailing-comma-single-param.js => gen-meth-params-trailing-comma-single.js} (97%)
 rename test/language/statements/class/{params-gen-meth-trailing-comma-rest-early-error.js => gen-meth-rest-params-trailing-comma-early-error.js} (97%)
 rename test/language/statements/class/{params-gen-meth-static-dflt-abrupt.js => gen-meth-static-dflt-params-abrupt.js} (98%)
 rename test/language/statements/class/{params-gen-meth-static-dflt-arg-val-not-undefined.js => gen-meth-static-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/statements/class/{params-gen-meth-static-dflt-arg-val-undefined.js => gen-meth-static-dflt-params-arg-val-undefined.js} (98%)
 rename test/language/statements/class/{params-gen-meth-static-dflt-duplicates.js => gen-meth-static-dflt-params-duplicates.js} (98%)
 rename test/language/statements/class/{params-gen-meth-static-dflt-ref-later.js => gen-meth-static-dflt-params-ref-later.js} (98%)
 rename test/language/statements/class/{params-gen-meth-static-dflt-ref-prior.js => gen-meth-static-dflt-params-ref-prior.js} (98%)
 rename test/language/statements/class/{params-gen-meth-static-dflt-ref-self.js => gen-meth-static-dflt-params-ref-self.js} (98%)
 rename test/language/statements/class/{params-gen-meth-static-dflt-rest.js => gen-meth-static-dflt-params-rest.js} (98%)
 rename test/language/statements/class/{params-gen-meth-static-trailing-comma-dflt-param.js => gen-meth-static-dflt-params-trailing-comma.js} (97%)
 rename test/language/statements/class/{params-gen-meth-static-trailing-comma-multiple-param.js => gen-meth-static-params-trailing-comma-multiple.js} (97%)
 rename test/language/statements/class/{params-gen-meth-static-trailing-comma-single-param.js => gen-meth-static-params-trailing-comma-single.js} (97%)
 rename test/language/statements/class/{params-gen-meth-static-trailing-comma-rest-early-error.js => gen-meth-static-rest-params-trailing-comma-early-error.js} (97%)
 rename test/language/statements/class/{params-meth-dflt-abrupt.js => meth-dflt-params-abrupt.js} (98%)
 rename test/language/statements/class/{params-meth-dflt-arg-val-not-undefined.js => meth-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/statements/class/{params-meth-dflt-arg-val-undefined.js => meth-dflt-params-arg-val-undefined.js} (97%)
 rename test/language/statements/class/{params-meth-dflt-duplicates.js => meth-dflt-params-duplicates.js} (97%)
 rename test/language/statements/class/{params-meth-dflt-ref-later.js => meth-dflt-params-ref-later.js} (98%)
 rename test/language/statements/class/{params-meth-dflt-ref-prior.js => meth-dflt-params-ref-prior.js} (98%)
 rename test/language/statements/class/{params-meth-dflt-ref-self.js => meth-dflt-params-ref-self.js} (98%)
 rename test/language/statements/class/{params-meth-dflt-rest.js => meth-dflt-params-rest.js} (98%)
 rename test/language/statements/class/{params-meth-trailing-comma-dflt-param.js => meth-dflt-params-trailing-comma.js} (97%)
 rename test/language/statements/class/{params-meth-trailing-comma-multiple-param.js => meth-params-trailing-comma-multiple.js} (97%)
 rename test/language/statements/class/{params-meth-trailing-comma-single-param.js => meth-params-trailing-comma-single.js} (97%)
 rename test/language/statements/class/{params-meth-trailing-comma-rest-early-error.js => meth-rest-params-trailing-comma-early-error.js} (97%)
 rename test/language/statements/class/{params-meth-static-dflt-abrupt.js => meth-static-dflt-params-abrupt.js} (98%)
 rename test/language/statements/class/{params-meth-static-dflt-arg-val-not-undefined.js => meth-static-dflt-params-arg-val-not-undefined.js} (98%)
 rename test/language/statements/class/{params-meth-static-dflt-arg-val-undefined.js => meth-static-dflt-params-arg-val-undefined.js} (97%)
 rename test/language/statements/class/{params-meth-static-dflt-duplicates.js => meth-static-dflt-params-duplicates.js} (97%)
 rename test/language/statements/class/{params-meth-static-dflt-ref-later.js => meth-static-dflt-params-ref-later.js} (98%)
 rename test/language/statements/class/{params-meth-static-dflt-ref-prior.js => meth-static-dflt-params-ref-prior.js} (98%)
 rename test/language/statements/class/{params-meth-static-dflt-ref-self.js => meth-static-dflt-params-ref-self.js} (98%)
 rename test/language/statements/class/{params-meth-static-dflt-rest.js => meth-static-dflt-params-rest.js} (98%)
 rename test/language/statements/class/{params-meth-static-trailing-comma-dflt-param.js => meth-static-dflt-params-trailing-comma.js} (97%)
 rename test/language/statements/class/{params-meth-static-trailing-comma-multiple-param.js => meth-static-params-trailing-comma-multiple.js} (97%)
 rename test/language/statements/class/{params-meth-static-trailing-comma-single-param.js => meth-static-params-trailing-comma-single.js} (97%)
 rename test/language/statements/class/{params-meth-static-trailing-comma-rest-early-error.js => meth-static-rest-params-trailing-comma-early-error.js} (97%)
 rename test/language/statements/function/{params-dflt-abrupt.js => dflt-params-abrupt.js} (97%)
 rename test/language/statements/function/{params-dflt-arg-val-not-undefined.js => dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/statements/function/{params-dflt-arg-val-undefined.js => dflt-params-arg-val-undefined.js} (97%)
 rename test/language/statements/function/{params-dflt-duplicates.js => dflt-params-duplicates.js} (97%)
 rename test/language/statements/function/{params-dflt-ref-later.js => dflt-params-ref-later.js} (97%)
 rename test/language/statements/function/{params-dflt-ref-prior.js => dflt-params-ref-prior.js} (97%)
 rename test/language/statements/function/{params-dflt-ref-self.js => dflt-params-ref-self.js} (97%)
 rename test/language/statements/function/{params-dflt-rest.js => dflt-params-rest.js} (97%)
 rename test/language/statements/function/{params-trailing-comma-dflt-param.js => dflt-params-trailing-comma.js} (96%)
 rename test/language/statements/function/{params-trailing-comma-multiple-param.js => params-trailing-comma-multiple.js} (96%)
 rename test/language/statements/function/{params-trailing-comma-single-param.js => params-trailing-comma-single.js} (96%)
 rename test/language/statements/function/{params-trailing-comma-rest-early-error.js => rest-params-trailing-comma-early-error.js} (96%)
 rename test/language/statements/generators/{params-dflt-abrupt.js => dflt-params-abrupt.js} (97%)
 rename test/language/statements/generators/{params-dflt-arg-val-not-undefined.js => dflt-params-arg-val-not-undefined.js} (97%)
 rename test/language/statements/generators/{params-dflt-arg-val-undefined.js => dflt-params-arg-val-undefined.js} (97%)
 rename test/language/statements/generators/{params-dflt-duplicates.js => dflt-params-duplicates.js} (97%)
 rename test/language/statements/generators/{params-dflt-ref-later.js => dflt-params-ref-later.js} (97%)
 rename test/language/statements/generators/{params-dflt-ref-prior.js => dflt-params-ref-prior.js} (97%)
 rename test/language/statements/generators/{params-dflt-ref-self.js => dflt-params-ref-self.js} (97%)
 rename test/language/statements/generators/{params-dflt-rest.js => dflt-params-rest.js} (97%)
 rename test/language/statements/generators/{params-trailing-comma-dflt-param.js => dflt-params-trailing-comma.js} (96%)
 rename test/language/statements/generators/{params-trailing-comma-multiple-param.js => params-trailing-comma-multiple.js} (96%)
 rename test/language/statements/generators/{params-trailing-comma-single-param.js => params-trailing-comma-single.js} (96%)
 rename test/language/statements/generators/{params-trailing-comma-rest-early-error.js => rest-params-trailing-comma-early-error.js} (96%)

diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-gen-meth-trailing-comma-multiple-args.js
rename to test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-multiple.js
index 19404642d0..edb29e6bbf 100644
--- a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/cls-decl-gen-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (class declaration generator method)
diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js
rename to test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-null.js
index 8a960cdcb0..59230245c6 100644
--- a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js
+++ b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/cls-decl-gen-meth.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (class declaration generator method)
diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-single-args.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-gen-meth-trailing-comma-single-args.js
rename to test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-single-args.js
index d507f4e5ec..a2db1f0d38 100644
--- a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-single-args.js
+++ b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/cls-decl-gen-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (class declaration generator method)
diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js
rename to test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-undefined.js
index 453f515a4b..fa7da08f9c 100644
--- a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js
+++ b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/cls-decl-gen-meth.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (class declaration generator method)
diff --git a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-multiple-args.js
rename to test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-multiple.js
index af22068be0..f6d54e0356 100644
--- a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/cls-decl-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (class declaration generator method)
diff --git a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-null.js
rename to test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-null.js
index 04b050d3fd..6f5b19c4c4 100644
--- a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-null.js
+++ b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/cls-decl-gen-meth-static.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (class declaration generator method)
diff --git a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-single-args.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-single-args.js
rename to test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-single-args.js
index f277d51337..c0cbc32511 100644
--- a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-single-args.js
+++ b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/cls-decl-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (class declaration generator method)
diff --git a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-undefined.js
rename to test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-undefined.js
index b2782f1cd6..fcc01479a5 100644
--- a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-undefined.js
+++ b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/cls-decl-gen-meth-static.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (class declaration generator method)
diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js
rename to test/language/arguments-object/cls-decl-meth-args-trailing-comma-multiple.js
index b5910ff593..2fd2c18f52 100644
--- a/test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/cls-decl-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (class declaration method)
diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-null.js b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-meth-trailing-comma-null.js
rename to test/language/arguments-object/cls-decl-meth-args-trailing-comma-null.js
index 32a9d3a764..f8ad3d0387 100644
--- a/test/language/arguments-object/cls-decl-meth-trailing-comma-null.js
+++ b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/cls-decl-meth.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (class declaration method)
diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js
rename to test/language/arguments-object/cls-decl-meth-args-trailing-comma-single-args.js
index b3a6ba8a71..8c5c84e307 100644
--- a/test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js
+++ b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/cls-decl-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (class declaration method)
diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js
rename to test/language/arguments-object/cls-decl-meth-args-trailing-comma-undefined.js
index ac3710a870..2369485c96 100644
--- a/test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js
+++ b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/cls-decl-meth.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (class declaration method)
diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-meth-static-trailing-comma-multiple-args.js
rename to test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-multiple.js
index 7d0c69d154..41eb07215d 100644
--- a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/cls-decl-meth-static.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (static class declaration method)
diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js
rename to test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-null.js
index 6ac2ace1c0..d33ef1805f 100644
--- a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js
+++ b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/cls-decl-meth-static.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (static class declaration method)
diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/cls-decl-meth-static-trailing-comma-single-args.js
rename to test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-single-args.js
index 7389cc51e9..dca6c135ce 100644
--- a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-single-args.js
+++ b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/cls-decl-meth-static.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (static class declaration method)
diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js
rename to test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-undefined.js
index 3ee1f645ba..dbdbfea745 100644
--- a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js
+++ b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/cls-decl-meth-static.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (static class declaration method)
diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-gen-meth-trailing-comma-multiple-args.js
rename to test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-multiple.js
index 67ce4d54c5..ad9cd75f3a 100644
--- a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/cls-expr-gen-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (class expression generator method)
diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js
rename to test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-null.js
index b3b8402818..da9ef74e14 100644
--- a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js
+++ b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/cls-expr-gen-meth.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (class expression generator method)
diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-single-args.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-gen-meth-trailing-comma-single-args.js
rename to test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-single-args.js
index 2b025b1f27..cb44370169 100644
--- a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-single-args.js
+++ b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/cls-expr-gen-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (class expression generator method)
diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js
rename to test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-undefined.js
index 666723a9a1..c12734f96f 100644
--- a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js
+++ b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/cls-expr-gen-meth.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (class expression generator method)
diff --git a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-multiple-args.js
rename to test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-multiple.js
index 1a797aa980..c93b91741e 100644
--- a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/cls-expr-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (static class expression generator method)
diff --git a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-null.js
rename to test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-null.js
index 770887168c..7358363b9e 100644
--- a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-null.js
+++ b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/cls-expr-gen-meth-static.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (static class expression generator method)
diff --git a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-single-args.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-single-args.js
rename to test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-single-args.js
index f729a442ca..699ee48466 100644
--- a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-single-args.js
+++ b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/cls-expr-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (static class expression generator method)
diff --git a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-undefined.js
rename to test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-undefined.js
index 5a36a31ab2..798bc69179 100644
--- a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-undefined.js
+++ b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/cls-expr-gen-meth-static.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (static class expression generator method)
diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js
rename to test/language/arguments-object/cls-expr-meth-args-trailing-comma-multiple.js
index cf08d53d0b..1a0fcf7785 100644
--- a/test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/cls-expr-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (class expression method)
diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-null.js b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-meth-trailing-comma-null.js
rename to test/language/arguments-object/cls-expr-meth-args-trailing-comma-null.js
index b1460168d4..04d0bf5e83 100644
--- a/test/language/arguments-object/cls-expr-meth-trailing-comma-null.js
+++ b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/cls-expr-meth.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (class expression method)
diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js
rename to test/language/arguments-object/cls-expr-meth-args-trailing-comma-single-args.js
index 4b68d6fd37..841ed2e637 100644
--- a/test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js
+++ b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/cls-expr-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (class expression method)
diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js
rename to test/language/arguments-object/cls-expr-meth-args-trailing-comma-undefined.js
index ffd2447438..f96b481511 100644
--- a/test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js
+++ b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/cls-expr-meth.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (class expression method)
diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-meth-static-trailing-comma-multiple-args.js
rename to test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-multiple.js
index 9720302d40..6b92f2abfa 100644
--- a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/cls-expr-meth-static.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (static class expression method)
diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js
rename to test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-null.js
index 02ebc63c38..6dc103bcc1 100644
--- a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js
+++ b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/cls-expr-meth-static.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (static class expression method)
diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/cls-expr-meth-static-trailing-comma-single-args.js
rename to test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-single-args.js
index 81cb12a473..02910ed585 100644
--- a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-single-args.js
+++ b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/cls-expr-meth-static.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (static class expression method)
diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js
rename to test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-undefined.js
index 1c4d255317..8aa68aa06b 100644
--- a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js
+++ b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/cls-expr-meth-static.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (static class expression method)
diff --git a/test/language/arguments-object/func-decl-trailing-comma-multiple-args.js b/test/language/arguments-object/func-decl-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/func-decl-trailing-comma-multiple-args.js
rename to test/language/arguments-object/func-decl-args-trailing-comma-multiple.js
index a431a3a944..5914d38a2f 100644
--- a/test/language/arguments-object/func-decl-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/func-decl-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/func-decl.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (function declaration)
diff --git a/test/language/arguments-object/func-decl-trailing-comma-null.js b/test/language/arguments-object/func-decl-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/func-decl-trailing-comma-null.js
rename to test/language/arguments-object/func-decl-args-trailing-comma-null.js
index 2aa8c8284e..5eccfc29de 100644
--- a/test/language/arguments-object/func-decl-trailing-comma-null.js
+++ b/test/language/arguments-object/func-decl-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/func-decl.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (function declaration)
diff --git a/test/language/arguments-object/func-decl-trailing-comma-single-args.js b/test/language/arguments-object/func-decl-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/func-decl-trailing-comma-single-args.js
rename to test/language/arguments-object/func-decl-args-trailing-comma-single-args.js
index 19f4eab18c..fd0d787d3c 100644
--- a/test/language/arguments-object/func-decl-trailing-comma-single-args.js
+++ b/test/language/arguments-object/func-decl-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/func-decl.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (function declaration)
diff --git a/test/language/arguments-object/func-decl-trailing-comma-undefined.js b/test/language/arguments-object/func-decl-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/func-decl-trailing-comma-undefined.js
rename to test/language/arguments-object/func-decl-args-trailing-comma-undefined.js
index cb4bb55ca0..a4158e2241 100644
--- a/test/language/arguments-object/func-decl-trailing-comma-undefined.js
+++ b/test/language/arguments-object/func-decl-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/func-decl.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (function declaration)
diff --git a/test/language/arguments-object/func-expr-trailing-comma-multiple-args.js b/test/language/arguments-object/func-expr-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/func-expr-trailing-comma-multiple-args.js
rename to test/language/arguments-object/func-expr-args-trailing-comma-multiple.js
index 07a9ca9fd9..a40af7de8c 100644
--- a/test/language/arguments-object/func-expr-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/func-expr-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/func-expr.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (function expression)
diff --git a/test/language/arguments-object/func-expr-trailing-comma-null.js b/test/language/arguments-object/func-expr-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/func-expr-trailing-comma-null.js
rename to test/language/arguments-object/func-expr-args-trailing-comma-null.js
index 242d0dd28b..d6b035aaf1 100644
--- a/test/language/arguments-object/func-expr-trailing-comma-null.js
+++ b/test/language/arguments-object/func-expr-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/func-expr.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (function expression)
diff --git a/test/language/arguments-object/func-expr-trailing-comma-single-args.js b/test/language/arguments-object/func-expr-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/func-expr-trailing-comma-single-args.js
rename to test/language/arguments-object/func-expr-args-trailing-comma-single-args.js
index 3fc9a95c35..21aa7b209f 100644
--- a/test/language/arguments-object/func-expr-trailing-comma-single-args.js
+++ b/test/language/arguments-object/func-expr-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/func-expr.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (function expression)
diff --git a/test/language/arguments-object/func-expr-trailing-comma-undefined.js b/test/language/arguments-object/func-expr-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/func-expr-trailing-comma-undefined.js
rename to test/language/arguments-object/func-expr-args-trailing-comma-undefined.js
index 1516acf3de..66e01cc6c1 100644
--- a/test/language/arguments-object/func-expr-trailing-comma-undefined.js
+++ b/test/language/arguments-object/func-expr-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/func-expr.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (function expression)
diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js
rename to test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js
index ff1ac6f609..f3179cd0ec 100644
--- a/test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/gen-func-decl.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (generator function declaration)
diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-null.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/gen-func-decl-trailing-comma-null.js
rename to test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js
index 7d3a1ecf3f..443700eaee 100644
--- a/test/language/arguments-object/gen-func-decl-trailing-comma-null.js
+++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/gen-func-decl.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (generator function declaration)
diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js
rename to test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js
index 000a932a56..d7c2446816 100644
--- a/test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js
+++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/gen-func-decl.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (generator function declaration)
diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js
rename to test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js
index e1d772bc39..56f4d99359 100644
--- a/test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js
+++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/gen-func-decl.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (generator function declaration)
diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js
rename to test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js
index 63f0911461..18fd3e114e 100644
--- a/test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/gen-func-expr.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (generator function expression)
diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-null.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/gen-func-expr-trailing-comma-null.js
rename to test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js
index cac540994a..ff31fd5455 100644
--- a/test/language/arguments-object/gen-func-expr-trailing-comma-null.js
+++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/gen-func-expr.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (generator function expression)
diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js
rename to test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js
index a8a977ec15..0056f61443 100644
--- a/test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js
+++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/gen-func-expr.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (generator function expression)
diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js
rename to test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js
index 8c9f829e65..acbcdab2df 100644
--- a/test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js
+++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/gen-func-expr.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (generator function expression)
diff --git a/test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-meth-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js
rename to test/language/arguments-object/gen-meth-args-trailing-comma-multiple.js
index 633968c46b..2dfd4ac88a 100644
--- a/test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/gen-meth-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/gen-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (generator method)
diff --git a/test/language/arguments-object/gen-meth-trailing-comma-null.js b/test/language/arguments-object/gen-meth-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/gen-meth-trailing-comma-null.js
rename to test/language/arguments-object/gen-meth-args-trailing-comma-null.js
index f39d4abf8e..5744ae0858 100644
--- a/test/language/arguments-object/gen-meth-trailing-comma-null.js
+++ b/test/language/arguments-object/gen-meth-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/gen-meth.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (generator method)
diff --git a/test/language/arguments-object/gen-meth-trailing-comma-single-args.js b/test/language/arguments-object/gen-meth-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/gen-meth-trailing-comma-single-args.js
rename to test/language/arguments-object/gen-meth-args-trailing-comma-single-args.js
index b162f30b3e..0d3586bbdd 100644
--- a/test/language/arguments-object/gen-meth-trailing-comma-single-args.js
+++ b/test/language/arguments-object/gen-meth-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/gen-meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (generator method)
diff --git a/test/language/arguments-object/gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/gen-meth-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/gen-meth-trailing-comma-undefined.js
rename to test/language/arguments-object/gen-meth-args-trailing-comma-undefined.js
index 438aeae9ea..0a4c5cd131 100644
--- a/test/language/arguments-object/gen-meth-trailing-comma-undefined.js
+++ b/test/language/arguments-object/gen-meth-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/gen-meth.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (generator method)
diff --git a/test/language/arguments-object/meth-trailing-comma-multiple-args.js b/test/language/arguments-object/meth-args-trailing-comma-multiple.js
similarity index 95%
rename from test/language/arguments-object/meth-trailing-comma-multiple-args.js
rename to test/language/arguments-object/meth-args-trailing-comma-multiple.js
index 6bd15dcc08..61870a87e9 100644
--- a/test/language/arguments-object/meth-trailing-comma-multiple-args.js
+++ b/test/language/arguments-object/meth-args-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-multiple-args.case
+// - src/arguments/args-trailing-comma-multiple.case
 // - src/arguments/default/meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (method)
diff --git a/test/language/arguments-object/meth-trailing-comma-null.js b/test/language/arguments-object/meth-args-trailing-comma-null.js
similarity index 95%
rename from test/language/arguments-object/meth-trailing-comma-null.js
rename to test/language/arguments-object/meth-args-trailing-comma-null.js
index 9645f4739c..27c6ca0ff4 100644
--- a/test/language/arguments-object/meth-trailing-comma-null.js
+++ b/test/language/arguments-object/meth-args-trailing-comma-null.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-null.case
+// - src/arguments/args-trailing-comma-null.case
 // - src/arguments/default/meth.template
 /*---
 description: A trailing comma after null should not increase the arguments.length (method)
diff --git a/test/language/arguments-object/meth-trailing-comma-single-args.js b/test/language/arguments-object/meth-args-trailing-comma-single-args.js
similarity index 94%
rename from test/language/arguments-object/meth-trailing-comma-single-args.js
rename to test/language/arguments-object/meth-args-trailing-comma-single-args.js
index 571fe47a8f..039e1e19f9 100644
--- a/test/language/arguments-object/meth-trailing-comma-single-args.js
+++ b/test/language/arguments-object/meth-args-trailing-comma-single-args.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-single-args.case
+// - src/arguments/args-trailing-comma-single-args.case
 // - src/arguments/default/meth.template
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (method)
diff --git a/test/language/arguments-object/meth-trailing-comma-undefined.js b/test/language/arguments-object/meth-args-trailing-comma-undefined.js
similarity index 95%
rename from test/language/arguments-object/meth-trailing-comma-undefined.js
rename to test/language/arguments-object/meth-args-trailing-comma-undefined.js
index aee2de278d..6b9bf88ea4 100644
--- a/test/language/arguments-object/meth-trailing-comma-undefined.js
+++ b/test/language/arguments-object/meth-args-trailing-comma-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/arguments/trailing-comma-undefined.case
+// - src/arguments/args-trailing-comma-undefined.case
 // - src/arguments/default/meth.template
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (method)
diff --git a/test/language/expressions/arrow-function/params-dflt-abrupt.js b/test/language/expressions/arrow-function/dflt-params-abrupt.js
similarity index 97%
rename from test/language/expressions/arrow-function/params-dflt-abrupt.js
rename to test/language/expressions/arrow-function/dflt-params-abrupt.js
index de17e0dcb1..92ef0c97d3 100644
--- a/test/language/expressions/arrow-function/params-dflt-abrupt.js
+++ b/test/language/expressions/arrow-function/dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/arrow-function.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-dflt-arg-val-not-undefined.js b/test/language/expressions/arrow-function/dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/expressions/arrow-function/params-dflt-arg-val-not-undefined.js
rename to test/language/expressions/arrow-function/dflt-params-arg-val-not-undefined.js
index 7bb2faff13..0559222be5 100644
--- a/test/language/expressions/arrow-function/params-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/arrow-function/dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/arrow-function.template
 /*---
 description: Use of intializer when argument value is not `undefined` (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-dflt-arg-val-undefined.js b/test/language/expressions/arrow-function/dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/arrow-function/params-dflt-arg-val-undefined.js
rename to test/language/expressions/arrow-function/dflt-params-arg-val-undefined.js
index d9294149f6..5c7f48400b 100644
--- a/test/language/expressions/arrow-function/params-dflt-arg-val-undefined.js
+++ b/test/language/expressions/arrow-function/dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/arrow-function.template
 /*---
 description: Use of intializer when argument value is `undefined` (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-dflt-duplicates.js b/test/language/expressions/arrow-function/dflt-params-duplicates.js
similarity index 97%
rename from test/language/expressions/arrow-function/params-dflt-duplicates.js
rename to test/language/expressions/arrow-function/dflt-params-duplicates.js
index c552f8da7d..a737290183 100644
--- a/test/language/expressions/arrow-function/params-dflt-duplicates.js
+++ b/test/language/expressions/arrow-function/dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/arrow-function.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-dflt-ref-later.js b/test/language/expressions/arrow-function/dflt-params-ref-later.js
similarity index 97%
rename from test/language/expressions/arrow-function/params-dflt-ref-later.js
rename to test/language/expressions/arrow-function/dflt-params-ref-later.js
index 342636e73d..36a72a414d 100644
--- a/test/language/expressions/arrow-function/params-dflt-ref-later.js
+++ b/test/language/expressions/arrow-function/dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/arrow-function.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-dflt-ref-prior.js b/test/language/expressions/arrow-function/dflt-params-ref-prior.js
similarity index 97%
rename from test/language/expressions/arrow-function/params-dflt-ref-prior.js
rename to test/language/expressions/arrow-function/dflt-params-ref-prior.js
index 135f650de9..3649b6937a 100644
--- a/test/language/expressions/arrow-function/params-dflt-ref-prior.js
+++ b/test/language/expressions/arrow-function/dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/arrow-function.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-dflt-ref-self.js b/test/language/expressions/arrow-function/dflt-params-ref-self.js
similarity index 97%
rename from test/language/expressions/arrow-function/params-dflt-ref-self.js
rename to test/language/expressions/arrow-function/dflt-params-ref-self.js
index a4f4b7c752..bfe25d1a72 100644
--- a/test/language/expressions/arrow-function/params-dflt-ref-self.js
+++ b/test/language/expressions/arrow-function/dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/arrow-function.template
 /*---
 description: Referencing a parameter from within its own initializer (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-dflt-rest.js b/test/language/expressions/arrow-function/dflt-params-rest.js
similarity index 97%
rename from test/language/expressions/arrow-function/params-dflt-rest.js
rename to test/language/expressions/arrow-function/dflt-params-rest.js
index 6d3523ab00..c5664b523c 100644
--- a/test/language/expressions/arrow-function/params-dflt-rest.js
+++ b/test/language/expressions/arrow-function/dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/arrow-function.template
 /*---
 description: RestParameter does not support an initializer (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-trailing-comma-dflt-param.js b/test/language/expressions/arrow-function/dflt-params-trailing-comma.js
similarity index 96%
rename from test/language/expressions/arrow-function/params-trailing-comma-dflt-param.js
rename to test/language/expressions/arrow-function/dflt-params-trailing-comma.js
index 5153f1a29e..7ded24cd5f 100644
--- a/test/language/expressions/arrow-function/params-trailing-comma-dflt-param.js
+++ b/test/language/expressions/arrow-function/dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/arrow-function.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-trailing-comma-multiple-param.js b/test/language/expressions/arrow-function/params-trailing-comma-multiple.js
similarity index 96%
rename from test/language/expressions/arrow-function/params-trailing-comma-multiple-param.js
rename to test/language/expressions/arrow-function/params-trailing-comma-multiple.js
index 16c0e2654c..2b66692334 100644
--- a/test/language/expressions/arrow-function/params-trailing-comma-multiple-param.js
+++ b/test/language/expressions/arrow-function/params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/arrow-function.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-trailing-comma-single-param.js b/test/language/expressions/arrow-function/params-trailing-comma-single.js
similarity index 96%
rename from test/language/expressions/arrow-function/params-trailing-comma-single-param.js
rename to test/language/expressions/arrow-function/params-trailing-comma-single.js
index 2f588adbe3..55e41408c4 100644
--- a/test/language/expressions/arrow-function/params-trailing-comma-single-param.js
+++ b/test/language/expressions/arrow-function/params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/arrow-function.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (arrow function expression)
diff --git a/test/language/expressions/arrow-function/params-trailing-comma-rest-early-error.js b/test/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js
similarity index 95%
rename from test/language/expressions/arrow-function/params-trailing-comma-rest-early-error.js
rename to test/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js
index cb5a19a168..3b0b26029c 100644
--- a/test/language/expressions/arrow-function/params-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/arrow-function.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (arrow function expression)
diff --git a/test/language/expressions/async-arrow-function/dflt-params-abrupt.js b/test/language/expressions/async-arrow-function/dflt-params-abrupt.js
new file mode 100644
index 0000000000..4a92b9d365
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-abrupt.js
@@ -0,0 +1,58 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/async-arrow-function.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+var f;
+f = async (_ = (function() { throw new Test262Error(); }())) => {
+  
+  callCount = callCount + 1;
+};
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-arrow-function/dflt-params-arg-val-not-undefined.js b/test/language/expressions/async-arrow-function/dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..b6e9ea786d
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,77 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/async-arrow-function.template
+/*---
+description: Use of intializer when argument value is not `undefined` (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref = async (aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) => {
+  assert.sameValue(aFalse, false);
+  assert.sameValue(aString, '');
+  assert.sameValue(aNaN, NaN);
+  assert.sameValue(a0, 0);
+  assert.sameValue(aNull, null);
+  assert.sameValue(aObj, obj);
+  callCount = callCount + 1;
+};
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+  assert.sameValue(callCount, 1, 'async arrow function invoked exactly once')
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/expressions/async-arrow-function/dflt-params-arg-val-undefined.js b/test/language/expressions/async-arrow-function/dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..75fbf246a4
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-arg-val-undefined.js
@@ -0,0 +1,60 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/async-arrow-function.template
+/*---
+description: Use of intializer when argument value is `undefined` (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref = async (fromLiteral = 23, fromExpr = 45, fromHole = 99) => {
+  assert.sameValue(fromLiteral, 23);
+  assert.sameValue(fromExpr, 45);
+  assert.sameValue(fromHole, 99);
+  callCount = callCount + 1;
+};
+
+ref(undefined, void 0).then(() => {
+  assert.sameValue(callCount, 1, 'async arrow function invoked exactly once')
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-arrow-function/dflt-params-duplicates.js b/test/language/expressions/async-arrow-function/dflt-params-duplicates.js
new file mode 100644
index 0000000000..dc99f2c139
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-duplicates.js
@@ -0,0 +1,51 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/async-arrow-function.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+
+(async (x = 0, x) => {
+  
+});
diff --git a/test/language/expressions/async-arrow-function/dflt-params-ref-later.js b/test/language/expressions/async-arrow-function/dflt-params-ref-later.js
new file mode 100644
index 0000000000..b1f1c9fca3
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-ref-later.js
@@ -0,0 +1,59 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/async-arrow-function.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var f;
+f = async (x = y, y) => {
+  
+  callCount = callCount + 1;
+};
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-arrow-function/dflt-params-ref-prior.js b/test/language/expressions/async-arrow-function/dflt-params-ref-prior.js
new file mode 100644
index 0000000000..6225f7633d
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-ref-prior.js
@@ -0,0 +1,57 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/async-arrow-function.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref = async (x, y = x, z = y) => {
+  assert.sameValue(x, 3, 'first argument value');
+  assert.sameValue(y, 3, 'second argument value');
+  assert.sameValue(z, 3, 'third argument value');
+  callCount = callCount + 1;
+};
+
+ref(3).then(() => {
+  assert.sameValue(callCount, 1, 'async arrow function invoked exactly once')
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-arrow-function/dflt-params-ref-self.js b/test/language/expressions/async-arrow-function/dflt-params-ref-self.js
new file mode 100644
index 0000000000..b2c3a2ec0e
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-ref-self.js
@@ -0,0 +1,59 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/async-arrow-function.template
+/*---
+description: Referencing a parameter from within its own initializer (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var f;
+f = async (x = x) => {
+  
+  callCount = callCount + 1;
+};
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-arrow-function/dflt-params-rest.js b/test/language/expressions/async-arrow-function/dflt-params-rest.js
new file mode 100644
index 0000000000..ee34c1f109
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-rest.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/async-arrow-function.template
+/*---
+description: RestParameter does not support an initializer (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+
+(async (...x = []) => {
+  
+});
diff --git a/test/language/expressions/async-arrow-function/dflt-params-trailing-comma.js b/test/language/expressions/async-arrow-function/dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..c573b2003b
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/dflt-params-trailing-comma.js
@@ -0,0 +1,51 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/async-arrow-function.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref = async (a, b = 39,) => {
+  assert.sameValue(a, 42);
+  assert.sameValue(b, 39);
+  callCount = callCount + 1;
+};
+
+ref(42, undefined, 1).then(() => {
+  assert.sameValue(callCount, 1, 'async arrow function invoked exactly once')
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/async-arrow-function/params-trailing-comma-multiple.js b/test/language/expressions/async-arrow-function/params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..71c1803d29
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/params-trailing-comma-multiple.js
@@ -0,0 +1,51 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/async-arrow-function.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref = async (a, b,) => {
+  assert.sameValue(a, 42);
+  assert.sameValue(b, 39);
+  callCount = callCount + 1;
+};
+
+ref(42, 39, 1).then(() => {
+  assert.sameValue(callCount, 1, 'async arrow function invoked exactly once')
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/expressions/async-arrow-function/params-trailing-comma-single.js b/test/language/expressions/async-arrow-function/params-trailing-comma-single.js
new file mode 100644
index 0000000000..47612e2807
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/params-trailing-comma-single.js
@@ -0,0 +1,50 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/async-arrow-function.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+flags: [generated, async]
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref = async (a,) => {
+  assert.sameValue(a, 42);
+  callCount = callCount + 1;
+};
+
+ref(42, 39).then(() => {
+  assert.sameValue(callCount, 1, 'async arrow function invoked exactly once')
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js b/test/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..6c16952d6b
--- /dev/null
+++ b/test/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js
@@ -0,0 +1,47 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/async-arrow-function.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async arrow function expression)
+esid: sec-async-arrow-function-definitions
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.7 Async Arrow Function Definitions
+
+    AsyncArrowFunction :
+      ...
+      CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
+
+    AsyncConciseBody :
+      { AsyncFunctionBody }
+
+    ...
+
+    Supplemental Syntax
+
+    When processing an instance of the production AsyncArrowFunction :
+    CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of
+    CoverCallExpressionAndAsyncArrowHead is refined using the following grammar:
+
+    AsyncArrowHead :
+      async ArrowFormalParameters
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+
+(async (...a,) => {
+  
+});
diff --git a/test/language/expressions/async-function/named-dflt-params-abrupt.js b/test/language/expressions/async-function/named-dflt-params-abrupt.js
new file mode 100644
index 0000000000..59bf344175
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-abrupt.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/async-func-expr-named.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (async function named expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+var f = async function f(_ = (function() { throw new Test262Error(); }())) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/named-dflt-params-arg-val-not-undefined.js b/test/language/expressions/async-function/named-dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..883b59530c
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/async-func-expr-named.template
+/*---
+description: Use of intializer when argument value is not `undefined` (async function named expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function ref(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) {
+  assert.sameValue(aFalse, false);
+  assert.sameValue(aString, '');
+  assert.sameValue(aNaN, NaN);
+  assert.sameValue(a0, 0);
+  assert.sameValue(aNull, null);
+  assert.sameValue(aObj, obj);
+  callCount = callCount + 1;
+};
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/expressions/async-function/named-dflt-params-arg-val-undefined.js b/test/language/expressions/async-function/named-dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..896528a2b8
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-arg-val-undefined.js
@@ -0,0 +1,46 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/async-func-expr-named.template
+/*---
+description: Use of intializer when argument value is `undefined` (async function named expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function ref(fromLiteral = 23, fromExpr = 45, fromHole = 99) {
+  assert.sameValue(fromLiteral, 23);
+  assert.sameValue(fromExpr, 45);
+  assert.sameValue(fromHole, 99);
+  callCount = callCount + 1;
+};
+
+ref(undefined, void 0).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/named-dflt-params-duplicates.js b/test/language/expressions/async-function/named-dflt-params-duplicates.js
new file mode 100644
index 0000000000..943b1f98dd
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-duplicates.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/async-func-expr-named.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async function named expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+
+(async function f(x = 0, x) {
+  
+});
diff --git a/test/language/expressions/async-function/named-dflt-params-ref-later.js b/test/language/expressions/async-function/named-dflt-params-ref-later.js
new file mode 100644
index 0000000000..df85f734fb
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-ref-later.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/async-func-expr-named.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (async function named expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var f = async function f(x = y, y) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/named-dflt-params-ref-prior.js b/test/language/expressions/async-function/named-dflt-params-ref-prior.js
new file mode 100644
index 0000000000..e58f833f95
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-ref-prior.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/async-func-expr-named.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (async function named expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function ref(x, y = x, z = y) {
+  assert.sameValue(x, 3, 'first argument value');
+  assert.sameValue(y, 3, 'second argument value');
+  assert.sameValue(z, 3, 'third argument value');
+  callCount = callCount + 1;
+};
+
+ref(3).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/named-dflt-params-ref-self.js b/test/language/expressions/async-function/named-dflt-params-ref-self.js
new file mode 100644
index 0000000000..3b2141252f
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-ref-self.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/async-func-expr-named.template
+/*---
+description: Referencing a parameter from within its own initializer (async function named expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var f = async function f(x = x) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/named-dflt-params-rest.js b/test/language/expressions/async-function/named-dflt-params-rest.js
new file mode 100644
index 0000000000..a646952812
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-rest.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/async-func-expr-named.template
+/*---
+description: RestParameter does not support an initializer (async function named expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+
+(async function f(...x = []) {
+  
+});
diff --git a/test/language/expressions/async-function/named-dflt-params-trailing-comma.js b/test/language/expressions/async-function/named-dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..b85f48d055
--- /dev/null
+++ b/test/language/expressions/async-function/named-dflt-params-trailing-comma.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/async-func-expr-named.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (async function named expression)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function ref(a, b = 39,) {
+  assert.sameValue(a, 42);
+  assert.sameValue(b, 39);
+  callCount = callCount + 1;
+};
+
+ref(42, undefined, 1).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/async-function/named-params-trailing-comma-multiple.js b/test/language/expressions/async-function/named-params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..d75b5340f6
--- /dev/null
+++ b/test/language/expressions/async-function/named-params-trailing-comma-multiple.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/async-func-expr-named.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (async function named expression)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function ref(a, b,) {
+  assert.sameValue(a, 42);
+  assert.sameValue(b, 39);
+  callCount = callCount + 1;
+};
+
+ref(42, 39, 1).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/expressions/async-function/named-params-trailing-comma-single.js b/test/language/expressions/async-function/named-params-trailing-comma-single.js
new file mode 100644
index 0000000000..b1e4a4745f
--- /dev/null
+++ b/test/language/expressions/async-function/named-params-trailing-comma-single.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/async-func-expr-named.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (async function named expression)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function ref(a,) {
+  assert.sameValue(a, 42);
+  callCount = callCount + 1;
+};
+
+ref(42, 39).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js b/test/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..d37212158f
--- /dev/null
+++ b/test/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js
@@ -0,0 +1,33 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/async-func-expr-named.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async function named expression)
+esid: sec-async-function-definitions
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+
+(async function f(...a,) {
+  
+});
diff --git a/test/language/expressions/async-function/nameless-dflt-params-abrupt.js b/test/language/expressions/async-function/nameless-dflt-params-abrupt.js
new file mode 100644
index 0000000000..6ce5cda340
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-abrupt.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/async-func-expr-nameless.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (async function nameless expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+var f = async function(_ = (function() { throw new Test262Error(); }())) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/nameless-dflt-params-arg-val-not-undefined.js b/test/language/expressions/async-function/nameless-dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..4dee97e98b
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/async-func-expr-nameless.template
+/*---
+description: Use of intializer when argument value is not `undefined` (async function nameless expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) {
+  assert.sameValue(aFalse, false);
+  assert.sameValue(aString, '');
+  assert.sameValue(aNaN, NaN);
+  assert.sameValue(a0, 0);
+  assert.sameValue(aNull, null);
+  assert.sameValue(aObj, obj);
+  callCount = callCount + 1;
+};
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/expressions/async-function/nameless-dflt-params-arg-val-undefined.js b/test/language/expressions/async-function/nameless-dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..d359183ce0
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-arg-val-undefined.js
@@ -0,0 +1,46 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/async-func-expr-nameless.template
+/*---
+description: Use of intializer when argument value is `undefined` (async function nameless expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function(fromLiteral = 23, fromExpr = 45, fromHole = 99) {
+  assert.sameValue(fromLiteral, 23);
+  assert.sameValue(fromExpr, 45);
+  assert.sameValue(fromHole, 99);
+  callCount = callCount + 1;
+};
+
+ref(undefined, void 0).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/nameless-dflt-params-duplicates.js b/test/language/expressions/async-function/nameless-dflt-params-duplicates.js
new file mode 100644
index 0000000000..f29eae0159
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-duplicates.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/async-func-expr-nameless.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async function nameless expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+
+(async function(x = 0, x) {
+  
+});
diff --git a/test/language/expressions/async-function/nameless-dflt-params-ref-later.js b/test/language/expressions/async-function/nameless-dflt-params-ref-later.js
new file mode 100644
index 0000000000..c0da90a866
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-ref-later.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/async-func-expr-nameless.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (async function nameless expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var f = async function(x = y, y) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/nameless-dflt-params-ref-prior.js b/test/language/expressions/async-function/nameless-dflt-params-ref-prior.js
new file mode 100644
index 0000000000..42e1111132
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-ref-prior.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/async-func-expr-nameless.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (async function nameless expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function(x, y = x, z = y) {
+  assert.sameValue(x, 3, 'first argument value');
+  assert.sameValue(y, 3, 'second argument value');
+  assert.sameValue(z, 3, 'third argument value');
+  callCount = callCount + 1;
+};
+
+ref(3).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/nameless-dflt-params-ref-self.js b/test/language/expressions/async-function/nameless-dflt-params-ref-self.js
new file mode 100644
index 0000000000..a98a3afd6e
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-ref-self.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/async-func-expr-nameless.template
+/*---
+description: Referencing a parameter from within its own initializer (async function nameless expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var f = async function(x = x) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/async-function/nameless-dflt-params-rest.js b/test/language/expressions/async-function/nameless-dflt-params-rest.js
new file mode 100644
index 0000000000..01925e0626
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-rest.js
@@ -0,0 +1,40 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/async-func-expr-nameless.template
+/*---
+description: RestParameter does not support an initializer (async function nameless expression)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+
+(async function(...x = []) {
+  
+});
diff --git a/test/language/expressions/async-function/nameless-dflt-params-trailing-comma.js b/test/language/expressions/async-function/nameless-dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..f19210db6c
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-dflt-params-trailing-comma.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/async-func-expr-nameless.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (async function nameless expression)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function(a, b = 39,) {
+  assert.sameValue(a, 42);
+  assert.sameValue(b, 39);
+  callCount = callCount + 1;
+};
+
+ref(42, undefined, 1).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/async-function/nameless-params-trailing-comma-multiple.js b/test/language/expressions/async-function/nameless-params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..48e741e259
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-params-trailing-comma-multiple.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/async-func-expr-nameless.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (async function nameless expression)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function(a, b,) {
+  assert.sameValue(a, 42);
+  assert.sameValue(b, 39);
+  callCount = callCount + 1;
+};
+
+ref(42, 39, 1).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/expressions/async-function/nameless-params-trailing-comma-single.js b/test/language/expressions/async-function/nameless-params-trailing-comma-single.js
new file mode 100644
index 0000000000..07def87fd7
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-params-trailing-comma-single.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/async-func-expr-nameless.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (async function nameless expression)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function(a,) {
+  assert.sameValue(a, 42);
+  callCount = callCount + 1;
+};
+
+ref(42, 39).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js b/test/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..a296afa076
--- /dev/null
+++ b/test/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js
@@ -0,0 +1,32 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/async-func-expr-nameless.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async function nameless expression)
+esid: sec-async-function-definitions
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionExpression :
+      async function ( FormalParameters ) { AsyncFunctionBody }
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+
+(async function(...a,) {
+  
+});
diff --git a/test/language/expressions/async-generator/args-trailing-comma-multiple.js b/test/language/expressions/async-generator/args-trailing-comma-multiple.js
new file mode 100644
index 0000000000..e9c6dbee3f
--- /dev/null
+++ b/test/language/expressions/async-generator/args-trailing-comma-multiple.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-multiple.case
+// - src/arguments/default/async-gen-func-expr.template
+/*---
+description: A trailing comma should not increase the arguments.length, using multiple args (async generator function expression)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
+        AsyncGeneratorBody }
+
+        [...]
+        3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+           AsyncGeneratorBody, scope, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function*() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], 'TC39');
+  callCount = callCount + 1;
+};
+
+ref(42, 'TC39',).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-generator/args-trailing-comma-null.js b/test/language/expressions/async-generator/args-trailing-comma-null.js
new file mode 100644
index 0000000000..855395b654
--- /dev/null
+++ b/test/language/expressions/async-generator/args-trailing-comma-null.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-null.case
+// - src/arguments/default/async-gen-func-expr.template
+/*---
+description: A trailing comma after null should not increase the arguments.length (async generator function expression)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
+        AsyncGeneratorBody }
+
+        [...]
+        3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+           AsyncGeneratorBody, scope, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function*() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], null);
+  callCount = callCount + 1;
+};
+
+ref(42, null,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-generator/args-trailing-comma-single-args.js b/test/language/expressions/async-generator/args-trailing-comma-single-args.js
new file mode 100644
index 0000000000..fdda70572a
--- /dev/null
+++ b/test/language/expressions/async-generator/args-trailing-comma-single-args.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-single-args.case
+// - src/arguments/default/async-gen-func-expr.template
+/*---
+description: A trailing comma should not increase the arguments.length, using a single arg (async generator function expression)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
+        AsyncGeneratorBody }
+
+        [...]
+        3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+           AsyncGeneratorBody, scope, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function*() {
+  assert.sameValue(arguments.length, 1);
+  assert.sameValue(arguments[0], 42);
+  callCount = callCount + 1;
+};
+
+ref(42,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-generator/args-trailing-comma-undefined.js b/test/language/expressions/async-generator/args-trailing-comma-undefined.js
new file mode 100644
index 0000000000..5869273810
--- /dev/null
+++ b/test/language/expressions/async-generator/args-trailing-comma-undefined.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-undefined.case
+// - src/arguments/default/async-gen-func-expr.template
+/*---
+description: A trailing comma after undefined should not increase the arguments.length (async generator function expression)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
+        AsyncGeneratorBody }
+
+        [...]
+        3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+           AsyncGeneratorBody, scope, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function*() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], undefined);
+  callCount = callCount + 1;
+};
+
+ref(42, undefined,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-generator/params-dflt-abrupt.js b/test/language/expressions/async-generator/dflt-params-abrupt.js
similarity index 96%
rename from test/language/expressions/async-generator/params-dflt-abrupt.js
rename to test/language/expressions/async-generator/dflt-params-abrupt.js
index 039ca48e9a..3f27f74668 100644
--- a/test/language/expressions/async-generator/params-dflt-abrupt.js
+++ b/test/language/expressions/async-generator/dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/async-gen-func-expr.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-dflt-arg-val-not-undefined.js b/test/language/expressions/async-generator/dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/expressions/async-generator/params-dflt-arg-val-not-undefined.js
rename to test/language/expressions/async-generator/dflt-params-arg-val-not-undefined.js
index 6459d01f70..712be07ebb 100644
--- a/test/language/expressions/async-generator/params-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/async-generator/dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/async-gen-func-expr.template
 /*---
 description: Use of intializer when argument value is not `undefined` (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-dflt-arg-val-undefined.js b/test/language/expressions/async-generator/dflt-params-arg-val-undefined.js
similarity index 96%
rename from test/language/expressions/async-generator/params-dflt-arg-val-undefined.js
rename to test/language/expressions/async-generator/dflt-params-arg-val-undefined.js
index 3efac12182..d9112e057f 100644
--- a/test/language/expressions/async-generator/params-dflt-arg-val-undefined.js
+++ b/test/language/expressions/async-generator/dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/async-gen-func-expr.template
 /*---
 description: Use of intializer when argument value is `undefined` (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-dflt-duplicates.js b/test/language/expressions/async-generator/dflt-params-duplicates.js
similarity index 95%
rename from test/language/expressions/async-generator/params-dflt-duplicates.js
rename to test/language/expressions/async-generator/dflt-params-duplicates.js
index c87f18a69b..98c19a6c06 100644
--- a/test/language/expressions/async-generator/params-dflt-duplicates.js
+++ b/test/language/expressions/async-generator/dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/async-gen-func-expr.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-dflt-ref-later.js b/test/language/expressions/async-generator/dflt-params-ref-later.js
similarity index 96%
rename from test/language/expressions/async-generator/params-dflt-ref-later.js
rename to test/language/expressions/async-generator/dflt-params-ref-later.js
index aee03311f1..301e861d69 100644
--- a/test/language/expressions/async-generator/params-dflt-ref-later.js
+++ b/test/language/expressions/async-generator/dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/async-gen-func-expr.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-dflt-ref-prior.js b/test/language/expressions/async-generator/dflt-params-ref-prior.js
similarity index 96%
rename from test/language/expressions/async-generator/params-dflt-ref-prior.js
rename to test/language/expressions/async-generator/dflt-params-ref-prior.js
index 2b9dc29ef1..6200ab6180 100644
--- a/test/language/expressions/async-generator/params-dflt-ref-prior.js
+++ b/test/language/expressions/async-generator/dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/async-gen-func-expr.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-dflt-ref-self.js b/test/language/expressions/async-generator/dflt-params-ref-self.js
similarity index 96%
rename from test/language/expressions/async-generator/params-dflt-ref-self.js
rename to test/language/expressions/async-generator/dflt-params-ref-self.js
index f49711c3f8..7cb0833ad0 100644
--- a/test/language/expressions/async-generator/params-dflt-ref-self.js
+++ b/test/language/expressions/async-generator/dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/async-gen-func-expr.template
 /*---
 description: Referencing a parameter from within its own initializer (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-dflt-rest.js b/test/language/expressions/async-generator/dflt-params-rest.js
similarity index 95%
rename from test/language/expressions/async-generator/params-dflt-rest.js
rename to test/language/expressions/async-generator/dflt-params-rest.js
index f5df8e6036..949a609e44 100644
--- a/test/language/expressions/async-generator/params-dflt-rest.js
+++ b/test/language/expressions/async-generator/dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/async-gen-func-expr.template
 /*---
 description: RestParameter does not support an initializer (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-trailing-comma-dflt-param.js b/test/language/expressions/async-generator/dflt-params-trailing-comma.js
similarity index 95%
rename from test/language/expressions/async-generator/params-trailing-comma-dflt-param.js
rename to test/language/expressions/async-generator/dflt-params-trailing-comma.js
index cecedbc44a..13b609f669 100644
--- a/test/language/expressions/async-generator/params-trailing-comma-dflt-param.js
+++ b/test/language/expressions/async-generator/dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/async-gen-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (async generator function expression)
diff --git a/test/language/expressions/async-generator/named-args-trailing-comma-multiple.js b/test/language/expressions/async-generator/named-args-trailing-comma-multiple.js
new file mode 100644
index 0000000000..00dc217d68
--- /dev/null
+++ b/test/language/expressions/async-generator/named-args-trailing-comma-multiple.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-multiple.case
+// - src/arguments/default/async-gen-named-func-expr.template
+/*---
+description: A trailing comma should not increase the arguments.length, using multiple args (async generator named function expression)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
+        ( FormalParameters ) { AsyncGeneratorBody }
+
+        [...]
+        7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+           AsyncGeneratorBody, funcEnv, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function* g() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], 'TC39');
+  callCount = callCount + 1;
+};
+
+ref(42, 'TC39',).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-generator/named-args-trailing-comma-null.js b/test/language/expressions/async-generator/named-args-trailing-comma-null.js
new file mode 100644
index 0000000000..f6f8ad42ca
--- /dev/null
+++ b/test/language/expressions/async-generator/named-args-trailing-comma-null.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-null.case
+// - src/arguments/default/async-gen-named-func-expr.template
+/*---
+description: A trailing comma after null should not increase the arguments.length (async generator named function expression)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
+        ( FormalParameters ) { AsyncGeneratorBody }
+
+        [...]
+        7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+           AsyncGeneratorBody, funcEnv, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function* g() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], null);
+  callCount = callCount + 1;
+};
+
+ref(42, null,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-generator/named-args-trailing-comma-single-args.js b/test/language/expressions/async-generator/named-args-trailing-comma-single-args.js
new file mode 100644
index 0000000000..9fd49fb9c2
--- /dev/null
+++ b/test/language/expressions/async-generator/named-args-trailing-comma-single-args.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-single-args.case
+// - src/arguments/default/async-gen-named-func-expr.template
+/*---
+description: A trailing comma should not increase the arguments.length, using a single arg (async generator named function expression)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
+        ( FormalParameters ) { AsyncGeneratorBody }
+
+        [...]
+        7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+           AsyncGeneratorBody, funcEnv, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function* g() {
+  assert.sameValue(arguments.length, 1);
+  assert.sameValue(arguments[0], 42);
+  callCount = callCount + 1;
+};
+
+ref(42,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-generator/named-args-trailing-comma-undefined.js b/test/language/expressions/async-generator/named-args-trailing-comma-undefined.js
new file mode 100644
index 0000000000..349642e230
--- /dev/null
+++ b/test/language/expressions/async-generator/named-args-trailing-comma-undefined.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-undefined.case
+// - src/arguments/default/async-gen-named-func-expr.template
+/*---
+description: A trailing comma after undefined should not increase the arguments.length (async generator named function expression)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
+        ( FormalParameters ) { AsyncGeneratorBody }
+
+        [...]
+        7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+           AsyncGeneratorBody, funcEnv, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+var ref;
+ref = async function* g() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], undefined);
+  callCount = callCount + 1;
+};
+
+ref(42, undefined,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/async-generator/params-named-dflt-abrupt.js b/test/language/expressions/async-generator/named-dflt-params-abrupt.js
similarity index 96%
rename from test/language/expressions/async-generator/params-named-dflt-abrupt.js
rename to test/language/expressions/async-generator/named-dflt-params-abrupt.js
index f571306a44..96dff245b3 100644
--- a/test/language/expressions/async-generator/params-named-dflt-abrupt.js
+++ b/test/language/expressions/async-generator/named-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/async-gen-named-func-expr.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-dflt-arg-val-not-undefined.js b/test/language/expressions/async-generator/named-dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/expressions/async-generator/params-named-dflt-arg-val-not-undefined.js
rename to test/language/expressions/async-generator/named-dflt-params-arg-val-not-undefined.js
index bbd83f9396..7203d255a7 100644
--- a/test/language/expressions/async-generator/params-named-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/async-generator/named-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/async-gen-named-func-expr.template
 /*---
 description: Use of intializer when argument value is not `undefined` (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-dflt-arg-val-undefined.js b/test/language/expressions/async-generator/named-dflt-params-arg-val-undefined.js
similarity index 96%
rename from test/language/expressions/async-generator/params-named-dflt-arg-val-undefined.js
rename to test/language/expressions/async-generator/named-dflt-params-arg-val-undefined.js
index e1b0da273b..ac2fb37f94 100644
--- a/test/language/expressions/async-generator/params-named-dflt-arg-val-undefined.js
+++ b/test/language/expressions/async-generator/named-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/async-gen-named-func-expr.template
 /*---
 description: Use of intializer when argument value is `undefined` (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-dflt-duplicates.js b/test/language/expressions/async-generator/named-dflt-params-duplicates.js
similarity index 95%
rename from test/language/expressions/async-generator/params-named-dflt-duplicates.js
rename to test/language/expressions/async-generator/named-dflt-params-duplicates.js
index ee00423e63..610d7f6f04 100644
--- a/test/language/expressions/async-generator/params-named-dflt-duplicates.js
+++ b/test/language/expressions/async-generator/named-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/async-gen-named-func-expr.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-dflt-ref-later.js b/test/language/expressions/async-generator/named-dflt-params-ref-later.js
similarity index 96%
rename from test/language/expressions/async-generator/params-named-dflt-ref-later.js
rename to test/language/expressions/async-generator/named-dflt-params-ref-later.js
index 3cfdb11c85..77513032f8 100644
--- a/test/language/expressions/async-generator/params-named-dflt-ref-later.js
+++ b/test/language/expressions/async-generator/named-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/async-gen-named-func-expr.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-dflt-ref-prior.js b/test/language/expressions/async-generator/named-dflt-params-ref-prior.js
similarity index 96%
rename from test/language/expressions/async-generator/params-named-dflt-ref-prior.js
rename to test/language/expressions/async-generator/named-dflt-params-ref-prior.js
index b04e4ceae2..8965eadc57 100644
--- a/test/language/expressions/async-generator/params-named-dflt-ref-prior.js
+++ b/test/language/expressions/async-generator/named-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/async-gen-named-func-expr.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-dflt-ref-self.js b/test/language/expressions/async-generator/named-dflt-params-ref-self.js
similarity index 96%
rename from test/language/expressions/async-generator/params-named-dflt-ref-self.js
rename to test/language/expressions/async-generator/named-dflt-params-ref-self.js
index 769be4780f..519d3f284d 100644
--- a/test/language/expressions/async-generator/params-named-dflt-ref-self.js
+++ b/test/language/expressions/async-generator/named-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/async-gen-named-func-expr.template
 /*---
 description: Referencing a parameter from within its own initializer (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-dflt-rest.js b/test/language/expressions/async-generator/named-dflt-params-rest.js
similarity index 95%
rename from test/language/expressions/async-generator/params-named-dflt-rest.js
rename to test/language/expressions/async-generator/named-dflt-params-rest.js
index 0efea64c0c..53908d36d8 100644
--- a/test/language/expressions/async-generator/params-named-dflt-rest.js
+++ b/test/language/expressions/async-generator/named-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/async-gen-named-func-expr.template
 /*---
 description: RestParameter does not support an initializer (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-trailing-comma-dflt-param.js b/test/language/expressions/async-generator/named-dflt-params-trailing-comma.js
similarity index 95%
rename from test/language/expressions/async-generator/params-named-trailing-comma-dflt-param.js
rename to test/language/expressions/async-generator/named-dflt-params-trailing-comma.js
index 974189c026..ad024be5df 100644
--- a/test/language/expressions/async-generator/params-named-trailing-comma-dflt-param.js
+++ b/test/language/expressions/async-generator/named-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/async-gen-named-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-trailing-comma-multiple-param.js b/test/language/expressions/async-generator/named-params-trailing-comma-multiple.js
similarity index 95%
rename from test/language/expressions/async-generator/params-named-trailing-comma-multiple-param.js
rename to test/language/expressions/async-generator/named-params-trailing-comma-multiple.js
index 638c033275..aac5a3bd74 100644
--- a/test/language/expressions/async-generator/params-named-trailing-comma-multiple-param.js
+++ b/test/language/expressions/async-generator/named-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/async-gen-named-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-trailing-comma-single-param.js b/test/language/expressions/async-generator/named-params-trailing-comma-single.js
similarity index 95%
rename from test/language/expressions/async-generator/params-named-trailing-comma-single-param.js
rename to test/language/expressions/async-generator/named-params-trailing-comma-single.js
index 1e36fa7a9b..592a0a090c 100644
--- a/test/language/expressions/async-generator/params-named-trailing-comma-single-param.js
+++ b/test/language/expressions/async-generator/named-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/async-gen-named-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-named-trailing-comma-rest-early-error.js b/test/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js
similarity index 94%
rename from test/language/expressions/async-generator/params-named-trailing-comma-rest-early-error.js
rename to test/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js
index 68dbdedf50..8a8f80557d 100644
--- a/test/language/expressions/async-generator/params-named-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/async-gen-named-func-expr.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async generator named function expression)
diff --git a/test/language/expressions/async-generator/params-trailing-comma-multiple-param.js b/test/language/expressions/async-generator/params-trailing-comma-multiple.js
similarity index 95%
rename from test/language/expressions/async-generator/params-trailing-comma-multiple-param.js
rename to test/language/expressions/async-generator/params-trailing-comma-multiple.js
index fab93501b5..5c246d77c0 100644
--- a/test/language/expressions/async-generator/params-trailing-comma-multiple-param.js
+++ b/test/language/expressions/async-generator/params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/async-gen-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-trailing-comma-single-param.js b/test/language/expressions/async-generator/params-trailing-comma-single.js
similarity index 95%
rename from test/language/expressions/async-generator/params-trailing-comma-single-param.js
rename to test/language/expressions/async-generator/params-trailing-comma-single.js
index 37f6acf467..891dfb3169 100644
--- a/test/language/expressions/async-generator/params-trailing-comma-single-param.js
+++ b/test/language/expressions/async-generator/params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/async-gen-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (async generator function expression)
diff --git a/test/language/expressions/async-generator/params-trailing-comma-rest-early-error.js b/test/language/expressions/async-generator/rest-params-trailing-comma-early-error.js
similarity index 94%
rename from test/language/expressions/async-generator/params-trailing-comma-rest-early-error.js
rename to test/language/expressions/async-generator/rest-params-trailing-comma-early-error.js
index f76477bd79..fc6f8f7ffa 100644
--- a/test/language/expressions/async-generator/params-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/async-generator/rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/async-gen-func-expr.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async generator function expression)
diff --git a/test/language/expressions/class/async-gen-meth-args-trailing-comma-multiple.js b/test/language/expressions/class/async-gen-meth-args-trailing-comma-multiple.js
new file mode 100644
index 0000000000..f1b4d919ea
--- /dev/null
+++ b/test/language/expressions/class/async-gen-meth-args-trailing-comma-multiple.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-multiple.case
+// - src/arguments/default/cls-expr-async-gen-meth.template
+/*---
+description: A trailing comma should not increase the arguments.length, using multiple args (class expression async generator method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+var C = class {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], 'TC39');
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, 'TC39',).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
diff --git a/test/language/expressions/class/async-gen-meth-args-trailing-comma-null.js b/test/language/expressions/class/async-gen-meth-args-trailing-comma-null.js
new file mode 100644
index 0000000000..017d66fda8
--- /dev/null
+++ b/test/language/expressions/class/async-gen-meth-args-trailing-comma-null.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-null.case
+// - src/arguments/default/cls-expr-async-gen-meth.template
+/*---
+description: A trailing comma after null should not increase the arguments.length (class expression async generator method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+var C = class {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], null);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, null,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
diff --git a/test/language/expressions/class/async-gen-meth-args-trailing-comma-single-args.js b/test/language/expressions/class/async-gen-meth-args-trailing-comma-single-args.js
new file mode 100644
index 0000000000..788ece51ca
--- /dev/null
+++ b/test/language/expressions/class/async-gen-meth-args-trailing-comma-single-args.js
@@ -0,0 +1,66 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-single-args.case
+// - src/arguments/default/cls-expr-async-gen-meth.template
+/*---
+description: A trailing comma should not increase the arguments.length, using a single arg (class expression async generator method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+var C = class {
+  async *method() {
+    assert.sameValue(arguments.length, 1);
+    assert.sameValue(arguments[0], 42);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
diff --git a/test/language/expressions/class/async-gen-meth-args-trailing-comma-undefined.js b/test/language/expressions/class/async-gen-meth-args-trailing-comma-undefined.js
new file mode 100644
index 0000000000..da98971f97
--- /dev/null
+++ b/test/language/expressions/class/async-gen-meth-args-trailing-comma-undefined.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-undefined.case
+// - src/arguments/default/cls-expr-async-gen-meth.template
+/*---
+description: A trailing comma after undefined should not increase the arguments.length (class expression async generator method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+var C = class {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], undefined);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, undefined,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-abrupt.js b/test/language/expressions/class/async-gen-meth-dflt-params-abrupt.js
similarity index 98%
rename from test/language/expressions/class/params-async-gen-meth-dflt-abrupt.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-abrupt.js
index 31997bc474..fe0b2fe683 100644
--- a/test/language/expressions/class/params-async-gen-meth-dflt-abrupt.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-expr-async-gen-meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/class/async-gen-meth-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/expressions/class/params-async-gen-meth-dflt-arg-val-not-undefined.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-arg-val-not-undefined.js
index 6577ab2255..cb41e01eef 100644
--- a/test/language/expressions/class/params-async-gen-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-expr-async-gen-meth.template
 /*---
 description: Use of intializer when argument value is not `undefined` (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-arg-val-undefined.js b/test/language/expressions/class/async-gen-meth-dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-dflt-arg-val-undefined.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-arg-val-undefined.js
index a8aada3a16..89e11b59a5 100644
--- a/test/language/expressions/class/params-async-gen-meth-dflt-arg-val-undefined.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-expr-async-gen-meth.template
 /*---
 description: Use of intializer when argument value is `undefined` (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-duplicates.js b/test/language/expressions/class/async-gen-meth-dflt-params-duplicates.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-dflt-duplicates.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-duplicates.js
index 0c6c0e847b..e06bc841e5 100644
--- a/test/language/expressions/class/params-async-gen-meth-dflt-duplicates.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-expr-async-gen-meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-ref-later.js b/test/language/expressions/class/async-gen-meth-dflt-params-ref-later.js
similarity index 98%
rename from test/language/expressions/class/params-async-gen-meth-dflt-ref-later.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-ref-later.js
index 865587e582..b71c7f8fad 100644
--- a/test/language/expressions/class/params-async-gen-meth-dflt-ref-later.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-expr-async-gen-meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-ref-prior.js b/test/language/expressions/class/async-gen-meth-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/expressions/class/params-async-gen-meth-dflt-ref-prior.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-ref-prior.js
index 7ea7e79a01..fc461de65c 100644
--- a/test/language/expressions/class/params-async-gen-meth-dflt-ref-prior.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-expr-async-gen-meth.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-ref-self.js b/test/language/expressions/class/async-gen-meth-dflt-params-ref-self.js
similarity index 98%
rename from test/language/expressions/class/params-async-gen-meth-dflt-ref-self.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-ref-self.js
index 277fbb870b..c6d2076949 100644
--- a/test/language/expressions/class/params-async-gen-meth-dflt-ref-self.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-expr-async-gen-meth.template
 /*---
 description: Referencing a parameter from within its own initializer (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-rest.js b/test/language/expressions/class/async-gen-meth-dflt-params-rest.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-dflt-rest.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-rest.js
index 47ece76592..7f75839710 100644
--- a/test/language/expressions/class/params-async-gen-meth-dflt-rest.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-expr-async-gen-meth.template
 /*---
 description: RestParameter does not support an initializer (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-trailing-comma-dflt-param.js b/test/language/expressions/class/async-gen-meth-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-trailing-comma-dflt-param.js
rename to test/language/expressions/class/async-gen-meth-dflt-params-trailing-comma.js
index 1231bfdd51..0b11e8badb 100644
--- a/test/language/expressions/class/params-async-gen-meth-trailing-comma-dflt-param.js
+++ b/test/language/expressions/class/async-gen-meth-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-expr-async-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-trailing-comma-multiple-param.js b/test/language/expressions/class/async-gen-meth-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-trailing-comma-multiple-param.js
rename to test/language/expressions/class/async-gen-meth-params-trailing-comma-multiple.js
index 20bee541d9..2f6c2b2e54 100644
--- a/test/language/expressions/class/params-async-gen-meth-trailing-comma-multiple-param.js
+++ b/test/language/expressions/class/async-gen-meth-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-expr-async-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-trailing-comma-single-param.js b/test/language/expressions/class/async-gen-meth-params-trailing-comma-single.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-trailing-comma-single-param.js
rename to test/language/expressions/class/async-gen-meth-params-trailing-comma-single.js
index 1a85e1d05f..7e9950d05d 100644
--- a/test/language/expressions/class/params-async-gen-meth-trailing-comma-single-param.js
+++ b/test/language/expressions/class/async-gen-meth-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-expr-async-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-trailing-comma-rest-early-error.js b/test/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/expressions/class/params-async-gen-meth-trailing-comma-rest-early-error.js
rename to test/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js
index fb9681cd29..07c784ebee 100644
--- a/test/language/expressions/class/params-async-gen-meth-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-expr-async-gen-meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression async generator method)
diff --git a/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-multiple.js b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-multiple.js
new file mode 100644
index 0000000000..5cf7bfcd83
--- /dev/null
+++ b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-multiple.js
@@ -0,0 +1,66 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-multiple.case
+// - src/arguments/default/cls-expr-async-gen-meth-static.template
+/*---
+description: A trailing comma should not increase the arguments.length, using multiple args (static class expression async generator method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation
+           for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+var C = class {
+  static async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], 'TC39');
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, 'TC39',).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-null.js b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-null.js
new file mode 100644
index 0000000000..d8bf42cdbf
--- /dev/null
+++ b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-null.js
@@ -0,0 +1,66 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-null.case
+// - src/arguments/default/cls-expr-async-gen-meth-static.template
+/*---
+description: A trailing comma after null should not increase the arguments.length (static class expression async generator method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation
+           for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+var C = class {
+  static async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], null);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, null,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-single-args.js b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-single-args.js
new file mode 100644
index 0000000000..afa2552bb3
--- /dev/null
+++ b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-single-args.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-single-args.case
+// - src/arguments/default/cls-expr-async-gen-meth-static.template
+/*---
+description: A trailing comma should not increase the arguments.length, using a single arg (static class expression async generator method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation
+           for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+var C = class {
+  static async *method() {
+    assert.sameValue(arguments.length, 1);
+    assert.sameValue(arguments[0], 42);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-undefined.js b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-undefined.js
new file mode 100644
index 0000000000..d058cc877f
--- /dev/null
+++ b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-undefined.js
@@ -0,0 +1,66 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-undefined.case
+// - src/arguments/default/cls-expr-async-gen-meth-static.template
+/*---
+description: A trailing comma after undefined should not increase the arguments.length (static class expression async generator method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation
+           for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+var C = class {
+  static async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], undefined);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, undefined,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-abrupt.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-abrupt.js
similarity index 98%
rename from test/language/expressions/class/params-async-gen-meth-static-dflt-abrupt.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-abrupt.js
index ed210d5ba2..cf1aa87631 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-dflt-abrupt.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-expr-async-gen-meth-static.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js
index 6ef13f769f..3a77e88fc2 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-expr-async-gen-meth-static.template
 /*---
 description: Use of intializer when argument value is not `undefined` (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-undefined.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-undefined.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-undefined.js
index 1ce9866a9b..8bc41710b1 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-undefined.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-expr-async-gen-meth-static.template
 /*---
 description: Use of intializer when argument value is `undefined` (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-duplicates.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-static-dflt-duplicates.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js
index 3b84b2f060..1a7fa9bdaa 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-dflt-duplicates.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-expr-async-gen-meth-static.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-later.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-later.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-static-dflt-ref-later.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-ref-later.js
index 3b44924c40..9c44a43071 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-later.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-expr-async-gen-meth-static.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-prior.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/expressions/class/params-async-gen-meth-static-dflt-ref-prior.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-ref-prior.js
index 86b450c9d2..65b302e355 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-prior.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-expr-async-gen-meth-static.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-self.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-self.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-static-dflt-ref-self.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-ref-self.js
index b42b984e4e..3e47505fbf 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-self.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-expr-async-gen-meth-static.template
 /*---
 description: Referencing a parameter from within its own initializer (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-rest.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-rest.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-static-dflt-rest.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-rest.js
index 4e96b42d8a..1945fbc167 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-dflt-rest.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-expr-async-gen-meth-static.template
 /*---
 description: RestParameter does not support an initializer (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-dflt-param.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-static-trailing-comma-dflt-param.js
rename to test/language/expressions/class/async-gen-meth-static-dflt-params-trailing-comma.js
index e58f44d670..511db6c298 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-dflt-param.js
+++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-expr-async-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-multiple-param.js b/test/language/expressions/class/async-gen-meth-static-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-static-trailing-comma-multiple-param.js
rename to test/language/expressions/class/async-gen-meth-static-params-trailing-comma-multiple.js
index 71f951534f..326dfe367e 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-multiple-param.js
+++ b/test/language/expressions/class/async-gen-meth-static-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-expr-async-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-single-param.js b/test/language/expressions/class/async-gen-meth-static-params-trailing-comma-single.js
similarity index 97%
rename from test/language/expressions/class/params-async-gen-meth-static-trailing-comma-single-param.js
rename to test/language/expressions/class/async-gen-meth-static-params-trailing-comma-single.js
index 0a7734fe9f..1234b19cbd 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-single-param.js
+++ b/test/language/expressions/class/async-gen-meth-static-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-expr-async-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (static class expression async generator method)
diff --git a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js b/test/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/expressions/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js
rename to test/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js
index e35726387f..972297221e 100644
--- a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-expr-async-gen-meth-static.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression async generator method)
diff --git a/test/language/expressions/class/async-meth-dflt-params-abrupt.js b/test/language/expressions/class/async-meth-dflt-params-abrupt.js
new file mode 100644
index 0000000000..3d022ae7eb
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-abrupt.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/cls-expr-async-meth.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+var C = class {
+  async method(_ = (function() { throw new Test262Error(); }())) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+C.prototype.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-dflt-params-arg-val-not-undefined.js b/test/language/expressions/class/async-meth-dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..c5cbc33936
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,89 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/cls-expr-async-meth.template
+/*---
+description: Use of intializer when argument value is not `undefined` (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+var callCount = 0;
+var C = class {
+  async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) {
+    assert.sameValue(aFalse, false);
+    assert.sameValue(aString, '');
+    assert.sameValue(aNaN, NaN);
+    assert.sameValue(a0, 0);
+    assert.sameValue(aNull, null);
+    assert.sameValue(aObj, obj);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/expressions/class/async-meth-dflt-params-arg-val-undefined.js b/test/language/expressions/class/async-meth-dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..5671ac7f8f
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-arg-val-undefined.js
@@ -0,0 +1,72 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/cls-expr-async-meth.template
+/*---
+description: Use of intializer when argument value is `undefined` (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+var callCount = 0;
+var C = class {
+  async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) {
+    assert.sameValue(fromLiteral, 23);
+    assert.sameValue(fromExpr, 45);
+    assert.sameValue(fromHole, 99);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(undefined, void 0).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-dflt-params-duplicates.js b/test/language/expressions/class/async-meth-dflt-params-duplicates.js
new file mode 100644
index 0000000000..8c1bb59aef
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-duplicates.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/cls-expr-async-meth.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+var C = class {
+  static async method(x = 0, x) {
+    
+  }
+};
diff --git a/test/language/expressions/class/async-meth-dflt-params-ref-later.js b/test/language/expressions/class/async-meth-dflt-params-ref-later.js
new file mode 100644
index 0000000000..d0e8d3885b
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-ref-later.js
@@ -0,0 +1,70 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/cls-expr-async-meth.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var C = class {
+  async method(x = y, y) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+C.prototype.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-dflt-params-ref-prior.js b/test/language/expressions/class/async-meth-dflt-params-ref-prior.js
new file mode 100644
index 0000000000..bc3daf029e
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-ref-prior.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/cls-expr-async-meth.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+var callCount = 0;
+var C = class {
+  async method(x, y = x, z = y) {
+    assert.sameValue(x, 3, 'first argument value');
+    assert.sameValue(y, 3, 'second argument value');
+    assert.sameValue(z, 3, 'third argument value');
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(3).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-dflt-params-ref-self.js b/test/language/expressions/class/async-meth-dflt-params-ref-self.js
new file mode 100644
index 0000000000..7610efb1c4
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-ref-self.js
@@ -0,0 +1,70 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/cls-expr-async-meth.template
+/*---
+description: Referencing a parameter from within its own initializer (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var C = class {
+  async method(x = x) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+C.prototype.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-dflt-params-rest.js b/test/language/expressions/class/async-meth-dflt-params-rest.js
new file mode 100644
index 0000000000..adaaf724bf
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-rest.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/cls-expr-async-meth.template
+/*---
+description: RestParameter does not support an initializer (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+var C = class {
+  static async method(...x = []) {
+    
+  }
+};
diff --git a/test/language/expressions/class/async-meth-dflt-params-trailing-comma.js b/test/language/expressions/class/async-meth-dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..1b25649662
--- /dev/null
+++ b/test/language/expressions/class/async-meth-dflt-params-trailing-comma.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/cls-expr-async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+var callCount = 0;
+var C = class {
+  async method(a, b = 39,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, undefined, 1).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/class/async-meth-params-trailing-comma-multiple.js b/test/language/expressions/class/async-meth-params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..12f3375a8d
--- /dev/null
+++ b/test/language/expressions/class/async-meth-params-trailing-comma-multiple.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/cls-expr-async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+var callCount = 0;
+var C = class {
+  async method(a, b,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, 39, 1).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/expressions/class/async-meth-params-trailing-comma-single.js b/test/language/expressions/class/async-meth-params-trailing-comma-single.js
new file mode 100644
index 0000000000..b3db8e16e9
--- /dev/null
+++ b/test/language/expressions/class/async-meth-params-trailing-comma-single.js
@@ -0,0 +1,62 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/cls-expr-async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+var callCount = 0;
+var C = class {
+  async method(a,) {
+    assert.sameValue(a, 42);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, 39).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js b/test/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..871c79360d
--- /dev/null
+++ b/test/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js
@@ -0,0 +1,59 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/cls-expr-async-meth.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+        with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+        i. Let status be the result of performing
+          PropertyDefinitionEvaluation for m with arguments proto and
+          false.
+      [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+var C = class {
+  static async method(...a,) {
+    
+  }
+};
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-abrupt.js b/test/language/expressions/class/async-meth-static-dflt-params-abrupt.js
new file mode 100644
index 0000000000..3bdd1a3c90
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-abrupt.js
@@ -0,0 +1,70 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/cls-expr-async-meth-static.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+
+var C = class {
+  static async method(_ = (function() { throw new Test262Error(); }())) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+C.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-arg-val-not-undefined.js b/test/language/expressions/class/async-meth-static-dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..ba8c07f2bd
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,89 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/cls-expr-async-meth-static.template
+/*---
+description: Use of intializer when argument value is not `undefined` (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+var callCount = 0;
+var C = class {
+  static async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) {
+    assert.sameValue(aFalse, false);
+    assert.sameValue(aString, '');
+    assert.sameValue(aNaN, NaN);
+    assert.sameValue(a0, 0);
+    assert.sameValue(aNull, null);
+    assert.sameValue(aObj, obj);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-arg-val-undefined.js b/test/language/expressions/class/async-meth-static-dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..31114a9519
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-arg-val-undefined.js
@@ -0,0 +1,72 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/cls-expr-async-meth-static.template
+/*---
+description: Use of intializer when argument value is `undefined` (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+var callCount = 0;
+var C = class {
+  static async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) {
+    assert.sameValue(fromLiteral, 23);
+    assert.sameValue(fromExpr, 45);
+    assert.sameValue(fromHole, 99);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(undefined, void 0).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-duplicates.js b/test/language/expressions/class/async-meth-static-dflt-params-duplicates.js
new file mode 100644
index 0000000000..6d5d586ace
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-duplicates.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/cls-expr-async-meth-static.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+var C = class {
+  static async method(x = 0, x) {
+    
+  }
+};
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-ref-later.js b/test/language/expressions/class/async-meth-static-dflt-params-ref-later.js
new file mode 100644
index 0000000000..321f7ac4c7
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-ref-later.js
@@ -0,0 +1,71 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/cls-expr-async-meth-static.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+
+var C = class {
+  static async method(x = y, y) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+C.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-ref-prior.js b/test/language/expressions/class/async-meth-static-dflt-params-ref-prior.js
new file mode 100644
index 0000000000..903438149e
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-ref-prior.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/cls-expr-async-meth-static.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+var callCount = 0;
+var C = class {
+  static async method(x, y = x, z = y) {
+    assert.sameValue(x, 3, 'first argument value');
+    assert.sameValue(y, 3, 'second argument value');
+    assert.sameValue(z, 3, 'third argument value');
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(3).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-ref-self.js b/test/language/expressions/class/async-meth-static-dflt-params-ref-self.js
new file mode 100644
index 0000000000..e7b3af1f59
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-ref-self.js
@@ -0,0 +1,71 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/cls-expr-async-meth-static.template
+/*---
+description: Referencing a parameter from within its own initializer (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+
+var C = class {
+  static async method(x = x) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+C.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-rest.js b/test/language/expressions/class/async-meth-static-dflt-params-rest.js
new file mode 100644
index 0000000000..0b98841282
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-rest.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/cls-expr-async-meth-static.template
+/*---
+description: RestParameter does not support an initializer (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+var C = class {
+  static async method(...x = []) {
+    
+  }
+};
diff --git a/test/language/expressions/class/async-meth-static-dflt-params-trailing-comma.js b/test/language/expressions/class/async-meth-static-dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..9afa64ed45
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-dflt-params-trailing-comma.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/cls-expr-async-meth-static.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+var callCount = 0;
+var C = class {
+  static async method(a, b = 39,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, undefined, 1).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/class/async-meth-static-params-trailing-comma-multiple.js b/test/language/expressions/class/async-meth-static-params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..172b92ce92
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-params-trailing-comma-multiple.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/cls-expr-async-meth-static.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+var callCount = 0;
+var C = class {
+  static async method(a, b,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, 39, 1).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/expressions/class/async-meth-static-params-trailing-comma-single.js b/test/language/expressions/class/async-meth-static-params-trailing-comma-single.js
new file mode 100644
index 0000000000..8177a8e1fc
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-params-trailing-comma-single.js
@@ -0,0 +1,62 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/cls-expr-async-meth-static.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+var callCount = 0;
+var C = class {
+  static async method(a,) {
+    assert.sameValue(a, 42);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, 39).then(() => {
+  assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js b/test/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..f1e1e00d0b
--- /dev/null
+++ b/test/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js
@@ -0,0 +1,59 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/cls-expr-async-meth-static.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassExpression : class BindingIdentifieropt ClassTail
+
+    1. If BindingIdentifieropt is not present, let className be undefined.
+    2. Else, let className be StringValue of BindingIdentifier.
+    3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+       with argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+      a. If IsStatic of m is false, then
+      b. Else,
+        Let status be the result of performing PropertyDefinitionEvaluation
+        for m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+var C = class {
+  static async method(...a,) {
+    
+  }
+};
diff --git a/test/language/expressions/class/params-gen-meth-dflt-abrupt.js b/test/language/expressions/class/gen-meth-dflt-params-abrupt.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-dflt-abrupt.js
rename to test/language/expressions/class/gen-meth-dflt-params-abrupt.js
index b9bc3be8a2..b393d79d57 100644
--- a/test/language/expressions/class/params-gen-meth-dflt-abrupt.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-expr-gen-meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-dflt-arg-val-not-undefined.js
rename to test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js
index 9ad9e24688..22138efe23 100644
--- a/test/language/expressions/class/params-gen-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-expr-gen-meth.template
 /*---
 description: Use of intializer when argument value is not `undefined` (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-dflt-arg-val-undefined.js b/test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-dflt-arg-val-undefined.js
rename to test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js
index 792329a81e..6dc6f3353f 100644
--- a/test/language/expressions/class/params-gen-meth-dflt-arg-val-undefined.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-expr-gen-meth.template
 /*---
 description: Use of intializer when argument value is `undefined` (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-dflt-duplicates.js b/test/language/expressions/class/gen-meth-dflt-params-duplicates.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-dflt-duplicates.js
rename to test/language/expressions/class/gen-meth-dflt-params-duplicates.js
index 6396ed595c..c6f327d6f6 100644
--- a/test/language/expressions/class/params-gen-meth-dflt-duplicates.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-expr-gen-meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-dflt-ref-later.js b/test/language/expressions/class/gen-meth-dflt-params-ref-later.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-dflt-ref-later.js
rename to test/language/expressions/class/gen-meth-dflt-params-ref-later.js
index c20298514d..aec1a0e50d 100644
--- a/test/language/expressions/class/params-gen-meth-dflt-ref-later.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-expr-gen-meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-dflt-ref-prior.js b/test/language/expressions/class/gen-meth-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-dflt-ref-prior.js
rename to test/language/expressions/class/gen-meth-dflt-params-ref-prior.js
index 2cc5413dd3..20025cc04f 100644
--- a/test/language/expressions/class/params-gen-meth-dflt-ref-prior.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-expr-gen-meth.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-dflt-ref-self.js b/test/language/expressions/class/gen-meth-dflt-params-ref-self.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-dflt-ref-self.js
rename to test/language/expressions/class/gen-meth-dflt-params-ref-self.js
index 30dd53f47e..7144f655bf 100644
--- a/test/language/expressions/class/params-gen-meth-dflt-ref-self.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-expr-gen-meth.template
 /*---
 description: Referencing a parameter from within its own initializer (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-dflt-rest.js b/test/language/expressions/class/gen-meth-dflt-params-rest.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-dflt-rest.js
rename to test/language/expressions/class/gen-meth-dflt-params-rest.js
index 106dc70c27..6ce951503b 100644
--- a/test/language/expressions/class/params-gen-meth-dflt-rest.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-expr-gen-meth.template
 /*---
 description: RestParameter does not support an initializer (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-trailing-comma-dflt-param.js b/test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-trailing-comma-dflt-param.js
rename to test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js
index 0b910445e6..210a23b365 100644
--- a/test/language/expressions/class/params-gen-meth-trailing-comma-dflt-param.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-expr-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-trailing-comma-multiple-param.js b/test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/expressions/class/params-gen-meth-trailing-comma-multiple-param.js
rename to test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js
index a485e44ee8..958e0d4e56 100644
--- a/test/language/expressions/class/params-gen-meth-trailing-comma-multiple-param.js
+++ b/test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-expr-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-trailing-comma-single-param.js b/test/language/expressions/class/gen-meth-params-trailing-comma-single.js
similarity index 97%
rename from test/language/expressions/class/params-gen-meth-trailing-comma-single-param.js
rename to test/language/expressions/class/gen-meth-params-trailing-comma-single.js
index 63a26f7b56..f9a484d54f 100644
--- a/test/language/expressions/class/params-gen-meth-trailing-comma-single-param.js
+++ b/test/language/expressions/class/gen-meth-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-expr-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-trailing-comma-rest-early-error.js b/test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js
similarity index 97%
rename from test/language/expressions/class/params-gen-meth-trailing-comma-rest-early-error.js
rename to test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js
index 0737dd45b0..fbd4a01ef6 100644
--- a/test/language/expressions/class/params-gen-meth-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-expr-gen-meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method)
diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-abrupt.js b/test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-dflt-abrupt.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js
index 782ee0f9a3..a467d22058 100644
--- a/test/language/expressions/class/params-gen-meth-static-dflt-abrupt.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-expr-gen-meth-static.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-arg-val-not-undefined.js b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-dflt-arg-val-not-undefined.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
index a40aee7bc9..53f378de62 100644
--- a/test/language/expressions/class/params-gen-meth-static-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-expr-gen-meth-static.template
 /*---
 description: Use of intializer when argument value is not `undefined` (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-arg-val-undefined.js b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-dflt-arg-val-undefined.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js
index 1ca7363ab3..55f75b366d 100644
--- a/test/language/expressions/class/params-gen-meth-static-dflt-arg-val-undefined.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-expr-gen-meth-static.template
 /*---
 description: Use of intializer when argument value is `undefined` (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-duplicates.js b/test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-dflt-duplicates.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js
index c46878e085..9c8d30685e 100644
--- a/test/language/expressions/class/params-gen-meth-static-dflt-duplicates.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-expr-gen-meth-static.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-ref-later.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-dflt-ref-later.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js
index 24dab85e8c..5c0b19503e 100644
--- a/test/language/expressions/class/params-gen-meth-static-dflt-ref-later.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-expr-gen-meth-static.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-ref-prior.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-dflt-ref-prior.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js
index c7d8b4bd42..f23a898026 100644
--- a/test/language/expressions/class/params-gen-meth-static-dflt-ref-prior.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-expr-gen-meth-static.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-ref-self.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-dflt-ref-self.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js
index 0daf83b82e..a05ae7116e 100644
--- a/test/language/expressions/class/params-gen-meth-static-dflt-ref-self.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-expr-gen-meth-static.template
 /*---
 description: Referencing a parameter from within its own initializer (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-rest.js b/test/language/expressions/class/gen-meth-static-dflt-params-rest.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-dflt-rest.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-rest.js
index 6bf05035f9..e48b66f9af 100644
--- a/test/language/expressions/class/params-gen-meth-static-dflt-rest.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-expr-gen-meth-static.template
 /*---
 description: RestParameter does not support an initializer (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-trailing-comma-dflt-param.js b/test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js
similarity index 98%
rename from test/language/expressions/class/params-gen-meth-static-trailing-comma-dflt-param.js
rename to test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js
index 5e5af9cb3c..e31f613d0d 100644
--- a/test/language/expressions/class/params-gen-meth-static-trailing-comma-dflt-param.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-expr-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-trailing-comma-multiple-param.js b/test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/expressions/class/params-gen-meth-static-trailing-comma-multiple-param.js
rename to test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js
index 94ccc4b6ce..067edc3706 100644
--- a/test/language/expressions/class/params-gen-meth-static-trailing-comma-multiple-param.js
+++ b/test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-expr-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-trailing-comma-single-param.js b/test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js
similarity index 97%
rename from test/language/expressions/class/params-gen-meth-static-trailing-comma-single-param.js
rename to test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js
index 670864212f..c0cb9887b0 100644
--- a/test/language/expressions/class/params-gen-meth-static-trailing-comma-single-param.js
+++ b/test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-expr-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (static class expression generator method)
diff --git a/test/language/expressions/class/params-gen-meth-static-trailing-comma-rest-early-error.js b/test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js
similarity index 97%
rename from test/language/expressions/class/params-gen-meth-static-trailing-comma-rest-early-error.js
rename to test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js
index 4b462a0e46..7522a65cc8 100644
--- a/test/language/expressions/class/params-gen-meth-static-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-expr-gen-meth-static.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression generator method)
diff --git a/test/language/expressions/class/params-meth-dflt-abrupt.js b/test/language/expressions/class/meth-dflt-params-abrupt.js
similarity index 98%
rename from test/language/expressions/class/params-meth-dflt-abrupt.js
rename to test/language/expressions/class/meth-dflt-params-abrupt.js
index 2cca3bcb03..e1bf762d78 100644
--- a/test/language/expressions/class/params-meth-dflt-abrupt.js
+++ b/test/language/expressions/class/meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-expr-meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (class expression method)
diff --git a/test/language/expressions/class/params-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/class/meth-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/expressions/class/params-meth-dflt-arg-val-not-undefined.js
rename to test/language/expressions/class/meth-dflt-params-arg-val-not-undefined.js
index 3d940d179b..e145327546 100644
--- a/test/language/expressions/class/params-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/class/meth-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-expr-meth.template
 /*---
 description: Use of intializer when argument value is not `undefined` (class expression method)
diff --git a/test/language/expressions/class/params-meth-dflt-arg-val-undefined.js b/test/language/expressions/class/meth-dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/class/params-meth-dflt-arg-val-undefined.js
rename to test/language/expressions/class/meth-dflt-params-arg-val-undefined.js
index 2ebc185c23..72bcdb93fd 100644
--- a/test/language/expressions/class/params-meth-dflt-arg-val-undefined.js
+++ b/test/language/expressions/class/meth-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-expr-meth.template
 /*---
 description: Use of intializer when argument value is `undefined` (class expression method)
diff --git a/test/language/expressions/class/params-meth-dflt-duplicates.js b/test/language/expressions/class/meth-dflt-params-duplicates.js
similarity index 98%
rename from test/language/expressions/class/params-meth-dflt-duplicates.js
rename to test/language/expressions/class/meth-dflt-params-duplicates.js
index a214faeeca..cf5086bef4 100644
--- a/test/language/expressions/class/params-meth-dflt-duplicates.js
+++ b/test/language/expressions/class/meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-expr-meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method)
diff --git a/test/language/expressions/class/params-meth-dflt-ref-later.js b/test/language/expressions/class/meth-dflt-params-ref-later.js
similarity index 98%
rename from test/language/expressions/class/params-meth-dflt-ref-later.js
rename to test/language/expressions/class/meth-dflt-params-ref-later.js
index 7a2c81ab4a..002696105d 100644
--- a/test/language/expressions/class/params-meth-dflt-ref-later.js
+++ b/test/language/expressions/class/meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-expr-meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (class expression method)
diff --git a/test/language/expressions/class/params-meth-dflt-ref-prior.js b/test/language/expressions/class/meth-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/expressions/class/params-meth-dflt-ref-prior.js
rename to test/language/expressions/class/meth-dflt-params-ref-prior.js
index c6336a5767..197514e47b 100644
--- a/test/language/expressions/class/params-meth-dflt-ref-prior.js
+++ b/test/language/expressions/class/meth-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-expr-meth.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (class expression method)
diff --git a/test/language/expressions/class/params-meth-dflt-ref-self.js b/test/language/expressions/class/meth-dflt-params-ref-self.js
similarity index 98%
rename from test/language/expressions/class/params-meth-dflt-ref-self.js
rename to test/language/expressions/class/meth-dflt-params-ref-self.js
index 49c0d70f22..aacddc328d 100644
--- a/test/language/expressions/class/params-meth-dflt-ref-self.js
+++ b/test/language/expressions/class/meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-expr-meth.template
 /*---
 description: Referencing a parameter from within its own initializer (class expression method)
diff --git a/test/language/expressions/class/params-meth-dflt-rest.js b/test/language/expressions/class/meth-dflt-params-rest.js
similarity index 98%
rename from test/language/expressions/class/params-meth-dflt-rest.js
rename to test/language/expressions/class/meth-dflt-params-rest.js
index 43199aa0bd..ff6401a5fb 100644
--- a/test/language/expressions/class/params-meth-dflt-rest.js
+++ b/test/language/expressions/class/meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-expr-meth.template
 /*---
 description: RestParameter does not support an initializer (class expression method)
diff --git a/test/language/expressions/class/params-meth-trailing-comma-dflt-param.js b/test/language/expressions/class/meth-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/expressions/class/params-meth-trailing-comma-dflt-param.js
rename to test/language/expressions/class/meth-dflt-params-trailing-comma.js
index 8323bc14c8..8c347459ae 100644
--- a/test/language/expressions/class/params-meth-trailing-comma-dflt-param.js
+++ b/test/language/expressions/class/meth-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-expr-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (class expression method)
diff --git a/test/language/expressions/class/params-meth-trailing-comma-multiple-param.js b/test/language/expressions/class/meth-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/expressions/class/params-meth-trailing-comma-multiple-param.js
rename to test/language/expressions/class/meth-params-trailing-comma-multiple.js
index 03ff141e27..e749c149fb 100644
--- a/test/language/expressions/class/params-meth-trailing-comma-multiple-param.js
+++ b/test/language/expressions/class/meth-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-expr-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (class expression method)
diff --git a/test/language/expressions/class/params-meth-trailing-comma-single-param.js b/test/language/expressions/class/meth-params-trailing-comma-single.js
similarity index 97%
rename from test/language/expressions/class/params-meth-trailing-comma-single-param.js
rename to test/language/expressions/class/meth-params-trailing-comma-single.js
index cddfc6643b..559f969850 100644
--- a/test/language/expressions/class/params-meth-trailing-comma-single-param.js
+++ b/test/language/expressions/class/meth-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-expr-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (class expression method)
diff --git a/test/language/expressions/class/params-meth-trailing-comma-rest-early-error.js b/test/language/expressions/class/meth-rest-params-trailing-comma-early-error.js
similarity index 97%
rename from test/language/expressions/class/params-meth-trailing-comma-rest-early-error.js
rename to test/language/expressions/class/meth-rest-params-trailing-comma-early-error.js
index 6703152b56..0d60556379 100644
--- a/test/language/expressions/class/params-meth-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/class/meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-expr-meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method)
diff --git a/test/language/expressions/class/params-meth-static-dflt-abrupt.js b/test/language/expressions/class/meth-static-dflt-params-abrupt.js
similarity index 98%
rename from test/language/expressions/class/params-meth-static-dflt-abrupt.js
rename to test/language/expressions/class/meth-static-dflt-params-abrupt.js
index d19ddc46a5..a19cb3a93a 100644
--- a/test/language/expressions/class/params-meth-static-dflt-abrupt.js
+++ b/test/language/expressions/class/meth-static-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-expr-meth-static.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-dflt-arg-val-not-undefined.js b/test/language/expressions/class/meth-static-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/expressions/class/params-meth-static-dflt-arg-val-not-undefined.js
rename to test/language/expressions/class/meth-static-dflt-params-arg-val-not-undefined.js
index a6a04dc5fd..210287f8e2 100644
--- a/test/language/expressions/class/params-meth-static-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/class/meth-static-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-expr-meth-static.template
 /*---
 description: Use of intializer when argument value is not `undefined` (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-dflt-arg-val-undefined.js b/test/language/expressions/class/meth-static-dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/class/params-meth-static-dflt-arg-val-undefined.js
rename to test/language/expressions/class/meth-static-dflt-params-arg-val-undefined.js
index 08c0112fdd..5854132c70 100644
--- a/test/language/expressions/class/params-meth-static-dflt-arg-val-undefined.js
+++ b/test/language/expressions/class/meth-static-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-expr-meth-static.template
 /*---
 description: Use of intializer when argument value is `undefined` (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-dflt-duplicates.js b/test/language/expressions/class/meth-static-dflt-params-duplicates.js
similarity index 98%
rename from test/language/expressions/class/params-meth-static-dflt-duplicates.js
rename to test/language/expressions/class/meth-static-dflt-params-duplicates.js
index 57fd5eb26a..80b48b38f4 100644
--- a/test/language/expressions/class/params-meth-static-dflt-duplicates.js
+++ b/test/language/expressions/class/meth-static-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-expr-meth-static.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-dflt-ref-later.js b/test/language/expressions/class/meth-static-dflt-params-ref-later.js
similarity index 98%
rename from test/language/expressions/class/params-meth-static-dflt-ref-later.js
rename to test/language/expressions/class/meth-static-dflt-params-ref-later.js
index 81583141eb..d414001f23 100644
--- a/test/language/expressions/class/params-meth-static-dflt-ref-later.js
+++ b/test/language/expressions/class/meth-static-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-expr-meth-static.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-dflt-ref-prior.js b/test/language/expressions/class/meth-static-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/expressions/class/params-meth-static-dflt-ref-prior.js
rename to test/language/expressions/class/meth-static-dflt-params-ref-prior.js
index 77aa35555d..f7af2cc1c6 100644
--- a/test/language/expressions/class/params-meth-static-dflt-ref-prior.js
+++ b/test/language/expressions/class/meth-static-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-expr-meth-static.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-dflt-ref-self.js b/test/language/expressions/class/meth-static-dflt-params-ref-self.js
similarity index 98%
rename from test/language/expressions/class/params-meth-static-dflt-ref-self.js
rename to test/language/expressions/class/meth-static-dflt-params-ref-self.js
index 5b74043e31..129ee534c9 100644
--- a/test/language/expressions/class/params-meth-static-dflt-ref-self.js
+++ b/test/language/expressions/class/meth-static-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-expr-meth-static.template
 /*---
 description: Referencing a parameter from within its own initializer (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-dflt-rest.js b/test/language/expressions/class/meth-static-dflt-params-rest.js
similarity index 98%
rename from test/language/expressions/class/params-meth-static-dflt-rest.js
rename to test/language/expressions/class/meth-static-dflt-params-rest.js
index 1b83468802..12569abcfc 100644
--- a/test/language/expressions/class/params-meth-static-dflt-rest.js
+++ b/test/language/expressions/class/meth-static-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-expr-meth-static.template
 /*---
 description: RestParameter does not support an initializer (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-trailing-comma-dflt-param.js b/test/language/expressions/class/meth-static-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/expressions/class/params-meth-static-trailing-comma-dflt-param.js
rename to test/language/expressions/class/meth-static-dflt-params-trailing-comma.js
index 68c81f18a8..76f6728d5a 100644
--- a/test/language/expressions/class/params-meth-static-trailing-comma-dflt-param.js
+++ b/test/language/expressions/class/meth-static-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-expr-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-trailing-comma-multiple-param.js b/test/language/expressions/class/meth-static-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/expressions/class/params-meth-static-trailing-comma-multiple-param.js
rename to test/language/expressions/class/meth-static-params-trailing-comma-multiple.js
index bb4c13ec2c..010e5b5c20 100644
--- a/test/language/expressions/class/params-meth-static-trailing-comma-multiple-param.js
+++ b/test/language/expressions/class/meth-static-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-expr-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-trailing-comma-single-param.js b/test/language/expressions/class/meth-static-params-trailing-comma-single.js
similarity index 97%
rename from test/language/expressions/class/params-meth-static-trailing-comma-single-param.js
rename to test/language/expressions/class/meth-static-params-trailing-comma-single.js
index 560c4babdc..8a8bb4650a 100644
--- a/test/language/expressions/class/params-meth-static-trailing-comma-single-param.js
+++ b/test/language/expressions/class/meth-static-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-expr-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (static class expression method)
diff --git a/test/language/expressions/class/params-meth-static-trailing-comma-rest-early-error.js b/test/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js
similarity index 97%
rename from test/language/expressions/class/params-meth-static-trailing-comma-rest-early-error.js
rename to test/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js
index 94424dc21d..466e998ef5 100644
--- a/test/language/expressions/class/params-meth-static-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-expr-meth-static.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression method)
diff --git a/test/language/expressions/function/params-dflt-abrupt.js b/test/language/expressions/function/dflt-params-abrupt.js
similarity index 97%
rename from test/language/expressions/function/params-dflt-abrupt.js
rename to test/language/expressions/function/dflt-params-abrupt.js
index 54732890ef..441fb8bad6 100644
--- a/test/language/expressions/function/params-dflt-abrupt.js
+++ b/test/language/expressions/function/dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/func-expr.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (function expression)
diff --git a/test/language/expressions/function/params-dflt-arg-val-not-undefined.js b/test/language/expressions/function/dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/expressions/function/params-dflt-arg-val-not-undefined.js
rename to test/language/expressions/function/dflt-params-arg-val-not-undefined.js
index da52bd1a7b..a2bdd7b8ce 100644
--- a/test/language/expressions/function/params-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/function/dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/func-expr.template
 /*---
 description: Use of intializer when argument value is not `undefined` (function expression)
diff --git a/test/language/expressions/function/params-dflt-arg-val-undefined.js b/test/language/expressions/function/dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/function/params-dflt-arg-val-undefined.js
rename to test/language/expressions/function/dflt-params-arg-val-undefined.js
index 4e8b2a7d9a..6ece640d5c 100644
--- a/test/language/expressions/function/params-dflt-arg-val-undefined.js
+++ b/test/language/expressions/function/dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/func-expr.template
 /*---
 description: Use of intializer when argument value is `undefined` (function expression)
diff --git a/test/language/expressions/function/params-dflt-duplicates.js b/test/language/expressions/function/dflt-params-duplicates.js
similarity index 97%
rename from test/language/expressions/function/params-dflt-duplicates.js
rename to test/language/expressions/function/dflt-params-duplicates.js
index c5b6ceb7aa..930fed9778 100644
--- a/test/language/expressions/function/params-dflt-duplicates.js
+++ b/test/language/expressions/function/dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/func-expr.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (function expression)
diff --git a/test/language/expressions/function/params-dflt-ref-later.js b/test/language/expressions/function/dflt-params-ref-later.js
similarity index 97%
rename from test/language/expressions/function/params-dflt-ref-later.js
rename to test/language/expressions/function/dflt-params-ref-later.js
index f781306ce4..52fa732eb6 100644
--- a/test/language/expressions/function/params-dflt-ref-later.js
+++ b/test/language/expressions/function/dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/func-expr.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (function expression)
diff --git a/test/language/expressions/function/params-dflt-ref-prior.js b/test/language/expressions/function/dflt-params-ref-prior.js
similarity index 97%
rename from test/language/expressions/function/params-dflt-ref-prior.js
rename to test/language/expressions/function/dflt-params-ref-prior.js
index 6b86c63684..59e49aad5b 100644
--- a/test/language/expressions/function/params-dflt-ref-prior.js
+++ b/test/language/expressions/function/dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/func-expr.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (function expression)
diff --git a/test/language/expressions/function/params-dflt-ref-self.js b/test/language/expressions/function/dflt-params-ref-self.js
similarity index 97%
rename from test/language/expressions/function/params-dflt-ref-self.js
rename to test/language/expressions/function/dflt-params-ref-self.js
index bcf935cae3..0bcd2c81c2 100644
--- a/test/language/expressions/function/params-dflt-ref-self.js
+++ b/test/language/expressions/function/dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/func-expr.template
 /*---
 description: Referencing a parameter from within its own initializer (function expression)
diff --git a/test/language/expressions/function/params-dflt-rest.js b/test/language/expressions/function/dflt-params-rest.js
similarity index 97%
rename from test/language/expressions/function/params-dflt-rest.js
rename to test/language/expressions/function/dflt-params-rest.js
index 69bcde8df4..f5bab2d327 100644
--- a/test/language/expressions/function/params-dflt-rest.js
+++ b/test/language/expressions/function/dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/func-expr.template
 /*---
 description: RestParameter does not support an initializer (function expression)
diff --git a/test/language/expressions/function/params-trailing-comma-dflt-param.js b/test/language/expressions/function/dflt-params-trailing-comma.js
similarity index 96%
rename from test/language/expressions/function/params-trailing-comma-dflt-param.js
rename to test/language/expressions/function/dflt-params-trailing-comma.js
index dc83d13e30..a7954f5804 100644
--- a/test/language/expressions/function/params-trailing-comma-dflt-param.js
+++ b/test/language/expressions/function/dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (function expression)
diff --git a/test/language/expressions/function/params-trailing-comma-multiple-param.js b/test/language/expressions/function/params-trailing-comma-multiple.js
similarity index 96%
rename from test/language/expressions/function/params-trailing-comma-multiple-param.js
rename to test/language/expressions/function/params-trailing-comma-multiple.js
index c0d1c436e5..efe0a16494 100644
--- a/test/language/expressions/function/params-trailing-comma-multiple-param.js
+++ b/test/language/expressions/function/params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (function expression)
diff --git a/test/language/expressions/function/params-trailing-comma-single-param.js b/test/language/expressions/function/params-trailing-comma-single.js
similarity index 96%
rename from test/language/expressions/function/params-trailing-comma-single-param.js
rename to test/language/expressions/function/params-trailing-comma-single.js
index baed40509b..01541faf6a 100644
--- a/test/language/expressions/function/params-trailing-comma-single-param.js
+++ b/test/language/expressions/function/params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (function expression)
diff --git a/test/language/expressions/function/params-trailing-comma-rest-early-error.js b/test/language/expressions/function/rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/expressions/function/params-trailing-comma-rest-early-error.js
rename to test/language/expressions/function/rest-params-trailing-comma-early-error.js
index ede500aa21..34fd920cef 100644
--- a/test/language/expressions/function/params-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/function/rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/func-expr.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (function expression)
diff --git a/test/language/expressions/generators/params-dflt-abrupt.js b/test/language/expressions/generators/dflt-params-abrupt.js
similarity index 97%
rename from test/language/expressions/generators/params-dflt-abrupt.js
rename to test/language/expressions/generators/dflt-params-abrupt.js
index 3a8b1e8eb9..42b32132b0 100644
--- a/test/language/expressions/generators/params-dflt-abrupt.js
+++ b/test/language/expressions/generators/dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/gen-func-expr.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (generator function expression)
diff --git a/test/language/expressions/generators/params-dflt-arg-val-not-undefined.js b/test/language/expressions/generators/dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/expressions/generators/params-dflt-arg-val-not-undefined.js
rename to test/language/expressions/generators/dflt-params-arg-val-not-undefined.js
index 68e6485caf..5ac89d6115 100644
--- a/test/language/expressions/generators/params-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/generators/dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/gen-func-expr.template
 /*---
 description: Use of intializer when argument value is not `undefined` (generator function expression)
diff --git a/test/language/expressions/generators/params-dflt-arg-val-undefined.js b/test/language/expressions/generators/dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/generators/params-dflt-arg-val-undefined.js
rename to test/language/expressions/generators/dflt-params-arg-val-undefined.js
index 83edde353f..179d239d44 100644
--- a/test/language/expressions/generators/params-dflt-arg-val-undefined.js
+++ b/test/language/expressions/generators/dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/gen-func-expr.template
 /*---
 description: Use of intializer when argument value is `undefined` (generator function expression)
diff --git a/test/language/expressions/generators/params-dflt-duplicates.js b/test/language/expressions/generators/dflt-params-duplicates.js
similarity index 97%
rename from test/language/expressions/generators/params-dflt-duplicates.js
rename to test/language/expressions/generators/dflt-params-duplicates.js
index e42c77dc63..11c95daac1 100644
--- a/test/language/expressions/generators/params-dflt-duplicates.js
+++ b/test/language/expressions/generators/dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/gen-func-expr.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator function expression)
diff --git a/test/language/expressions/generators/params-dflt-ref-later.js b/test/language/expressions/generators/dflt-params-ref-later.js
similarity index 97%
rename from test/language/expressions/generators/params-dflt-ref-later.js
rename to test/language/expressions/generators/dflt-params-ref-later.js
index 53feb83f15..d8abc79f02 100644
--- a/test/language/expressions/generators/params-dflt-ref-later.js
+++ b/test/language/expressions/generators/dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/gen-func-expr.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (generator function expression)
diff --git a/test/language/expressions/generators/params-dflt-ref-prior.js b/test/language/expressions/generators/dflt-params-ref-prior.js
similarity index 97%
rename from test/language/expressions/generators/params-dflt-ref-prior.js
rename to test/language/expressions/generators/dflt-params-ref-prior.js
index bb686793c8..065090c06d 100644
--- a/test/language/expressions/generators/params-dflt-ref-prior.js
+++ b/test/language/expressions/generators/dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/gen-func-expr.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (generator function expression)
diff --git a/test/language/expressions/generators/params-dflt-ref-self.js b/test/language/expressions/generators/dflt-params-ref-self.js
similarity index 97%
rename from test/language/expressions/generators/params-dflt-ref-self.js
rename to test/language/expressions/generators/dflt-params-ref-self.js
index fb99b68755..22fca77f2f 100644
--- a/test/language/expressions/generators/params-dflt-ref-self.js
+++ b/test/language/expressions/generators/dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/gen-func-expr.template
 /*---
 description: Referencing a parameter from within its own initializer (generator function expression)
diff --git a/test/language/expressions/generators/params-dflt-rest.js b/test/language/expressions/generators/dflt-params-rest.js
similarity index 97%
rename from test/language/expressions/generators/params-dflt-rest.js
rename to test/language/expressions/generators/dflt-params-rest.js
index 7bb5aeceda..0e3cd3bd21 100644
--- a/test/language/expressions/generators/params-dflt-rest.js
+++ b/test/language/expressions/generators/dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/gen-func-expr.template
 /*---
 description: RestParameter does not support an initializer (generator function expression)
diff --git a/test/language/expressions/generators/params-trailing-comma-dflt-param.js b/test/language/expressions/generators/dflt-params-trailing-comma.js
similarity index 96%
rename from test/language/expressions/generators/params-trailing-comma-dflt-param.js
rename to test/language/expressions/generators/dflt-params-trailing-comma.js
index 476577cbaf..c787e175bd 100644
--- a/test/language/expressions/generators/params-trailing-comma-dflt-param.js
+++ b/test/language/expressions/generators/dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/gen-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (generator function expression)
diff --git a/test/language/expressions/generators/params-trailing-comma-multiple-param.js b/test/language/expressions/generators/params-trailing-comma-multiple.js
similarity index 96%
rename from test/language/expressions/generators/params-trailing-comma-multiple-param.js
rename to test/language/expressions/generators/params-trailing-comma-multiple.js
index 667358035f..557ec68595 100644
--- a/test/language/expressions/generators/params-trailing-comma-multiple-param.js
+++ b/test/language/expressions/generators/params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/gen-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (generator function expression)
diff --git a/test/language/expressions/generators/params-trailing-comma-single-param.js b/test/language/expressions/generators/params-trailing-comma-single.js
similarity index 96%
rename from test/language/expressions/generators/params-trailing-comma-single-param.js
rename to test/language/expressions/generators/params-trailing-comma-single.js
index ddad8b0f16..25df59033a 100644
--- a/test/language/expressions/generators/params-trailing-comma-single-param.js
+++ b/test/language/expressions/generators/params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/gen-func-expr.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (generator function expression)
diff --git a/test/language/expressions/generators/params-trailing-comma-rest-early-error.js b/test/language/expressions/generators/rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/expressions/generators/params-trailing-comma-rest-early-error.js
rename to test/language/expressions/generators/rest-params-trailing-comma-early-error.js
index 826a347a42..2aa7735050 100644
--- a/test/language/expressions/generators/params-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/generators/rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/gen-func-expr.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator function expression)
diff --git a/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-multiple.js b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-multiple.js
new file mode 100644
index 0000000000..656e979764
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-multiple.js
@@ -0,0 +1,46 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-multiple.case
+// - src/arguments/default/async-gen-meth.template
+/*---
+description: A trailing comma should not increase the arguments.length, using multiple args (async generator method)
+esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+var callCount = 0;
+var obj = {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], 'TC39');
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = obj.method;
+
+ref(42, 'TC39',).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-null.js b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-null.js
new file mode 100644
index 0000000000..0bdc228f9b
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-null.js
@@ -0,0 +1,46 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-null.case
+// - src/arguments/default/async-gen-meth.template
+/*---
+description: A trailing comma after null should not increase the arguments.length (async generator method)
+esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+var callCount = 0;
+var obj = {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], null);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = obj.method;
+
+ref(42, null,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-single-args.js b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-single-args.js
new file mode 100644
index 0000000000..905ca395fe
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-single-args.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-single-args.case
+// - src/arguments/default/async-gen-meth.template
+/*---
+description: A trailing comma should not increase the arguments.length, using a single arg (async generator method)
+esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+var callCount = 0;
+var obj = {
+  async *method() {
+    assert.sameValue(arguments.length, 1);
+    assert.sameValue(arguments[0], 42);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = obj.method;
+
+ref(42,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-undefined.js b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-undefined.js
new file mode 100644
index 0000000000..b9fc31fcbe
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-undefined.js
@@ -0,0 +1,46 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-undefined.case
+// - src/arguments/default/async-gen-meth.template
+/*---
+description: A trailing comma after undefined should not increase the arguments.length (async generator method)
+esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+var callCount = 0;
+var obj = {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], undefined);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = obj.method;
+
+ref(42, undefined,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-abrupt.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-abrupt.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-abrupt.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-abrupt.js
index 32dc959baa..30d6e00f9e 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-abrupt.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/async-gen-meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-not-undefined.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-not-undefined.js
index 2ed89209b0..bf3dfb95ad 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/async-gen-meth.template
 /*---
 description: Use of intializer when argument value is not `undefined` (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-undefined.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-undefined.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-undefined.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-undefined.js
index a5a2cdb01e..2c19f815ea 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-undefined.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/async-gen-meth.template
 /*---
 description: Use of intializer when argument value is `undefined` (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-duplicates.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-duplicates.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js
index 4755683d9d..8120c0e620 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-duplicates.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/async-gen-meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-later.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-later.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-later.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-later.js
index b66c4d9fc1..40cc9de664 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-later.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/async-gen-meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-prior.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-prior.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-prior.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-prior.js
index 3432e64bd6..d7b07d73b3 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-prior.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/async-gen-meth.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-self.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-self.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-self.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-self.js
index 63b53ff25c..876cf947ff 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-self.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/async-gen-meth.template
 /*---
 description: Referencing a parameter from within its own initializer (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-rest.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-rest.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js
index b75306e590..be3eafda5e 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-rest.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/async-gen-meth.template
 /*---
 description: RestParameter does not support an initializer (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-dflt-param.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-trailing-comma.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-dflt-param.js
rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-trailing-comma.js
index a3dce45401..2ac6f78763 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-dflt-param.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/async-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-multiple-param.js b/test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-multiple.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-multiple-param.js
rename to test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-multiple.js
index d357e487f6..fb46babf23 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-multiple-param.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/async-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-single-param.js b/test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-single.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-single-param.js
rename to test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-single.js
index 274e46d70c..5712c60642 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-single-param.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/async-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (async generator method)
diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-rest-early-error.js b/test/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js
similarity index 95%
rename from test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-rest-early-error.js
rename to test/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js
index d9de6650b1..3ac0cbd918 100644
--- a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/async-gen-meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async generator method)
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-abrupt.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-abrupt.js
new file mode 100644
index 0000000000..21052dbf34
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-abrupt.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/async-meth.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (async method)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+
+var obj = {
+  async method(_ = (function() { throw new Test262Error(); }())) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+obj.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..2e73f929bd
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/async-meth.template
+/*---
+description: Use of intializer when argument value is not `undefined` (async method)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+
+var callCount = 0;
+var __obj = {
+  async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) {
+    assert.sameValue(aFalse, false);
+    assert.sameValue(aString, '');
+    assert.sameValue(aNaN, NaN);
+    assert.sameValue(a0, 0);
+    assert.sameValue(aNull, null);
+    assert.sameValue(aObj, obj);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = __obj.method;
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+    assert.sameValue(callCount, 1, 'async method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-undefined.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..7fca9a24fa
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-undefined.js
@@ -0,0 +1,48 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/async-meth.template
+/*---
+description: Use of intializer when argument value is `undefined` (async method)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+
+var callCount = 0;
+var __obj = {
+  async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) {
+    assert.sameValue(fromLiteral, 23);
+    assert.sameValue(fromExpr, 45);
+    assert.sameValue(fromHole, 99);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = __obj.method;
+
+ref(undefined, void 0).then(() => {
+    assert.sameValue(callCount, 1, 'async method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js
new file mode 100644
index 0000000000..f968ff5066
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/async-meth.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async method)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+
+({
+  async *method(x = 0, x) {
+    
+  }
+});
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-later.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-later.js
new file mode 100644
index 0000000000..66dc44b258
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-later.js
@@ -0,0 +1,46 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/async-meth.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (async method)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+
+var obj = {
+  async method(x = y, y) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+obj.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-prior.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-prior.js
new file mode 100644
index 0000000000..e73bd575d0
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-prior.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/async-meth.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (async method)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+var __obj = {
+  async method(x, y = x, z = y) {
+    assert.sameValue(x, 3, 'first argument value');
+    assert.sameValue(y, 3, 'second argument value');
+    assert.sameValue(z, 3, 'third argument value');
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = __obj.method;
+
+ref(3).then(() => {
+    assert.sameValue(callCount, 1, 'async method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-self.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-self.js
new file mode 100644
index 0000000000..4e5a1efd7d
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-self.js
@@ -0,0 +1,46 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/async-meth.template
+/*---
+description: Referencing a parameter from within its own initializer (async method)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+
+var obj = {
+  async method(x = x) {
+    
+    callCount = callCount + 1;
+  }
+};
+
+obj.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-rest.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-rest.js
new file mode 100644
index 0000000000..ac83ef99e5
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-rest.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/async-meth.template
+/*---
+description: RestParameter does not support an initializer (async method)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+
+({
+  async *method(...x = []) {
+    
+  }
+});
diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-trailing-comma.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..f7420e796f
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-trailing-comma.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (async method)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+var __obj = {
+  async method(a, b = 39,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = __obj.method;
+
+ref(42, undefined, 1).then(() => {
+    assert.sameValue(callCount, 1, 'async method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-multiple.js b/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..35ac30a44a
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-multiple.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (async method)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+var __obj = {
+  async method(a, b,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = __obj.method;
+
+ref(42, 39, 1).then(() => {
+    assert.sameValue(callCount, 1, 'async method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-single.js b/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-single.js
new file mode 100644
index 0000000000..daebc1b107
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-single.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (async method)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+var __obj = {
+  async method(a,) {
+    assert.sameValue(a, 42);
+    callCount = callCount + 1;
+  }
+};
+
+// Stores a reference `ref` for case evaluation
+var ref = __obj.method;
+
+ref(42, 39).then(() => {
+    assert.sameValue(callCount, 1, 'async method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js b/test/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..eb1a994e60
--- /dev/null
+++ b/test/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/async-meth.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async method)
+esid: sec-async-function-definitions
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncMethod :
+     async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+
+({
+  async *method(...a,) {
+    
+  }
+});
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-abrupt.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-abrupt.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js
index 05b9e50ea6..0721454cd8 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-abrupt.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/gen-meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-not-undefined.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js
index 61a5d6ac01..631b5c8cd0 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/gen-meth.template
 /*---
 description: Use of intializer when argument value is not `undefined` (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-undefined.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-undefined.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js
index e226a700d0..4312dad4d5 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-undefined.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/gen-meth.template
 /*---
 description: Use of intializer when argument value is `undefined` (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-duplicates.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-duplicates.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js
index 69fda8637e..74f4b1f5ae 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-duplicates.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/gen-meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-later.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-later.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js
index 76a83f062f..28543598be 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-later.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/gen-meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-prior.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-prior.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js
index 29c960ea53..7c5a600583 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-prior.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/gen-meth.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-self.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-self.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js
index 80dbde9ab5..16973080fd 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-self.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/gen-meth.template
 /*---
 description: Referencing a parameter from within its own initializer (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-rest.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-rest.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js
index 3a89cee509..e1171d4889 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-rest.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/gen-meth.template
 /*---
 description: RestParameter does not support an initializer (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-dflt-param.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-dflt-param.js
rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js
index bbf900a2e8..ecfd480e99 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-dflt-param.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-multiple-param.js b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-multiple-param.js
rename to test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js
index 364c56ff5f..a21e8788a2 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-multiple-param.js
+++ b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-single-param.js b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-single-param.js
rename to test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js
index 1f4bb9c060..e7153fdc7a 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-single-param.js
+++ b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (generator method)
diff --git a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-rest-early-error.js b/test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-rest-early-error.js
rename to test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js
index 462a153c17..1fafda10c0 100644
--- a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/gen-meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator method)
diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-abrupt.js b/test/language/expressions/object/method-definition/meth-dflt-params-abrupt.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-dflt-abrupt.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-abrupt.js
index ab75eb37f4..a8ad20ea13 100644
--- a/test/language/expressions/object/method-definition/params-meth-dflt-abrupt.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/meth-dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-dflt-arg-val-not-undefined.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-arg-val-not-undefined.js
index 544019e6aa..c91a52d3db 100644
--- a/test/language/expressions/object/method-definition/params-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/meth.template
 /*---
 description: Use of intializer when argument value is not `undefined` (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-arg-val-undefined.js b/test/language/expressions/object/method-definition/meth-dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-dflt-arg-val-undefined.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-arg-val-undefined.js
index ce6608249e..2f8b4ee587 100644
--- a/test/language/expressions/object/method-definition/params-meth-dflt-arg-val-undefined.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/meth.template
 /*---
 description: Use of intializer when argument value is `undefined` (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-duplicates.js b/test/language/expressions/object/method-definition/meth-dflt-params-duplicates.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-dflt-duplicates.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-duplicates.js
index 1021a5e91b..ca6b30f3e6 100644
--- a/test/language/expressions/object/method-definition/params-meth-dflt-duplicates.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-ref-later.js b/test/language/expressions/object/method-definition/meth-dflt-params-ref-later.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-dflt-ref-later.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-ref-later.js
index ebf9db451d..ee8e96ce88 100644
--- a/test/language/expressions/object/method-definition/params-meth-dflt-ref-later.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-ref-prior.js b/test/language/expressions/object/method-definition/meth-dflt-params-ref-prior.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-dflt-ref-prior.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-ref-prior.js
index 893c8d82a5..ba8490b8e6 100644
--- a/test/language/expressions/object/method-definition/params-meth-dflt-ref-prior.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/meth.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-ref-self.js b/test/language/expressions/object/method-definition/meth-dflt-params-ref-self.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-dflt-ref-self.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-ref-self.js
index 8c9edc68d7..df160d7183 100644
--- a/test/language/expressions/object/method-definition/params-meth-dflt-ref-self.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/meth.template
 /*---
 description: Referencing a parameter from within its own initializer (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-rest.js b/test/language/expressions/object/method-definition/meth-dflt-params-rest.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-dflt-rest.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-rest.js
index 5654997b02..8536874de7 100644
--- a/test/language/expressions/object/method-definition/params-meth-dflt-rest.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/meth.template
 /*---
 description: RestParameter does not support an initializer (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-trailing-comma-dflt-param.js b/test/language/expressions/object/method-definition/meth-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/expressions/object/method-definition/params-meth-trailing-comma-dflt-param.js
rename to test/language/expressions/object/method-definition/meth-dflt-params-trailing-comma.js
index 82deafb006..278b59f83b 100644
--- a/test/language/expressions/object/method-definition/params-meth-trailing-comma-dflt-param.js
+++ b/test/language/expressions/object/method-definition/meth-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/meth.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-trailing-comma-multiple-param.js b/test/language/expressions/object/method-definition/meth-params-trailing-comma-multiple.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-meth-trailing-comma-multiple-param.js
rename to test/language/expressions/object/method-definition/meth-params-trailing-comma-multiple.js
index 7d9296c001..03835458ad 100644
--- a/test/language/expressions/object/method-definition/params-meth-trailing-comma-multiple-param.js
+++ b/test/language/expressions/object/method-definition/meth-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/meth.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-trailing-comma-single-param.js b/test/language/expressions/object/method-definition/meth-params-trailing-comma-single.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-meth-trailing-comma-single-param.js
rename to test/language/expressions/object/method-definition/meth-params-trailing-comma-single.js
index d3f3278200..c2d1053951 100644
--- a/test/language/expressions/object/method-definition/params-meth-trailing-comma-single-param.js
+++ b/test/language/expressions/object/method-definition/meth-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/meth.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (method)
diff --git a/test/language/expressions/object/method-definition/params-meth-trailing-comma-rest-early-error.js b/test/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/expressions/object/method-definition/params-meth-trailing-comma-rest-early-error.js
rename to test/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js
index 5afb841d99..bc1d5dd470 100644
--- a/test/language/expressions/object/method-definition/params-meth-trailing-comma-rest-early-error.js
+++ b/test/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (method)
diff --git a/test/language/statements/async-function/dflt-params-abrupt.js b/test/language/statements/async-function/dflt-params-abrupt.js
new file mode 100644
index 0000000000..90a7c98c3b
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-abrupt.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/async-func-decl.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (async function declaration)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+async function f(_ = (function() { throw new Test262Error(); }())) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/async-function/dflt-params-arg-val-not-undefined.js b/test/language/statements/async-function/dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..da0415c505
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,62 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/async-func-decl.template
+/*---
+description: Use of intializer when argument value is not `undefined` (async function declaration)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+async function ref(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) {
+  assert.sameValue(aFalse, false);
+  assert.sameValue(aString, '');
+  assert.sameValue(aNaN, NaN);
+  assert.sameValue(a0, 0);
+  assert.sameValue(aNull, null);
+  assert.sameValue(aObj, obj);
+  callCount = callCount + 1;
+}
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/statements/async-function/dflt-params-arg-val-undefined.js b/test/language/statements/async-function/dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..7ed59a5a5d
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-arg-val-undefined.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/async-func-decl.template
+/*---
+description: Use of intializer when argument value is `undefined` (async function declaration)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+async function ref(fromLiteral = 23, fromExpr = 45, fromHole = 99) {
+  assert.sameValue(fromLiteral, 23);
+  assert.sameValue(fromExpr, 45);
+  assert.sameValue(fromHole, 99);
+  callCount = callCount + 1;
+}
+
+ref(undefined, void 0).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/async-function/dflt-params-duplicates.js b/test/language/statements/async-function/dflt-params-duplicates.js
new file mode 100644
index 0000000000..116b8b6c2b
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-duplicates.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/async-func-decl.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async function declaration)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+
+async function f(x = 0, x) {
+  
+}
diff --git a/test/language/statements/async-function/dflt-params-ref-later.js b/test/language/statements/async-function/dflt-params-ref-later.js
new file mode 100644
index 0000000000..aa56ea0dcf
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-ref-later.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/async-func-decl.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (async function declaration)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+async function f(x = y, y) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/async-function/dflt-params-ref-prior.js b/test/language/statements/async-function/dflt-params-ref-prior.js
new file mode 100644
index 0000000000..b97df71c52
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-ref-prior.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/async-func-decl.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (async function declaration)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+async function ref(x, y = x, z = y) {
+  assert.sameValue(x, 3, 'first argument value');
+  assert.sameValue(y, 3, 'second argument value');
+  assert.sameValue(z, 3, 'third argument value');
+  callCount = callCount + 1;
+}
+
+ref(3).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/async-function/dflt-params-ref-self.js b/test/language/statements/async-function/dflt-params-ref-self.js
new file mode 100644
index 0000000000..714f611e92
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-ref-self.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/async-func-decl.template
+/*---
+description: Referencing a parameter from within its own initializer (async function declaration)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+async function f(x = x) {
+  
+  callCount = callCount + 1;
+}
+
+f()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/async-function/dflt-params-rest.js b/test/language/statements/async-function/dflt-params-rest.js
new file mode 100644
index 0000000000..80db4e9953
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-rest.js
@@ -0,0 +1,40 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/async-func-decl.template
+/*---
+description: RestParameter does not support an initializer (async function declaration)
+esid: sec-async-function-definitions
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+
+async function f(...x = []) {
+  
+}
diff --git a/test/language/statements/async-function/dflt-params-trailing-comma.js b/test/language/statements/async-function/dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..f4fb4deb65
--- /dev/null
+++ b/test/language/statements/async-function/dflt-params-trailing-comma.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/async-func-decl.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (async function declaration)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+async function ref(a, b = 39,) {
+  assert.sameValue(a, 42);
+  assert.sameValue(b, 39);
+  callCount = callCount + 1;
+}
+
+ref(42, undefined, 1).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/statements/async-function/params-trailing-comma-multiple.js b/test/language/statements/async-function/params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..5a74e80f7c
--- /dev/null
+++ b/test/language/statements/async-function/params-trailing-comma-multiple.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/async-func-decl.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (async function declaration)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+async function ref(a, b,) {
+  assert.sameValue(a, 42);
+  assert.sameValue(b, 39);
+  callCount = callCount + 1;
+}
+
+ref(42, 39, 1).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/statements/async-function/params-trailing-comma-single.js b/test/language/statements/async-function/params-trailing-comma-single.js
new file mode 100644
index 0000000000..3a88578ec0
--- /dev/null
+++ b/test/language/statements/async-function/params-trailing-comma-single.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/async-func-decl.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (async function declaration)
+esid: sec-async-function-definitions
+flags: [generated, async]
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+
+// Stores a reference `ref` for case evaluation
+async function ref(a,) {
+  assert.sameValue(a, 42);
+  callCount = callCount + 1;
+}
+
+ref(42, 39).then(() => {
+    assert.sameValue(callCount, 1, 'function invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/statements/async-function/rest-params-trailing-comma-early-error.js b/test/language/statements/async-function/rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..c01a639e17
--- /dev/null
+++ b/test/language/statements/async-function/rest-params-trailing-comma-early-error.js
@@ -0,0 +1,32 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/async-func-decl.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async function declaration)
+esid: sec-async-function-definitions
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    14.6 Async Function Definitions
+
+    AsyncFunctionDeclaration :
+      async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+
+async function f(...a,) {
+  
+}
diff --git a/test/language/statements/async-generator/args-trailing-comma-multiple.js b/test/language/statements/async-generator/args-trailing-comma-multiple.js
new file mode 100644
index 0000000000..3fa5bf10c1
--- /dev/null
+++ b/test/language/statements/async-generator/args-trailing-comma-multiple.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-multiple.case
+// - src/arguments/default/async-gen-func-decl.template
+/*---
+description: A trailing comma should not increase the arguments.length, using multiple args (async generator function declaration)
+esid: sec-asyncgenerator-definitions-instantiatefunctionobject
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
+        ( FormalParameters ) { AsyncGeneratorBody }
+
+        [...]
+        3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody,
+            scope, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+async function* ref() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], 'TC39');
+  callCount = callCount + 1;
+}
+
+ref(42, 'TC39',).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/async-generator/args-trailing-comma-null.js b/test/language/statements/async-generator/args-trailing-comma-null.js
new file mode 100644
index 0000000000..e909f6fd29
--- /dev/null
+++ b/test/language/statements/async-generator/args-trailing-comma-null.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-null.case
+// - src/arguments/default/async-gen-func-decl.template
+/*---
+description: A trailing comma after null should not increase the arguments.length (async generator function declaration)
+esid: sec-asyncgenerator-definitions-instantiatefunctionobject
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
+        ( FormalParameters ) { AsyncGeneratorBody }
+
+        [...]
+        3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody,
+            scope, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+async function* ref() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], null);
+  callCount = callCount + 1;
+}
+
+ref(42, null,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/async-generator/args-trailing-comma-single-args.js b/test/language/statements/async-generator/args-trailing-comma-single-args.js
new file mode 100644
index 0000000000..d66c25ded3
--- /dev/null
+++ b/test/language/statements/async-generator/args-trailing-comma-single-args.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-single-args.case
+// - src/arguments/default/async-gen-func-decl.template
+/*---
+description: A trailing comma should not increase the arguments.length, using a single arg (async generator function declaration)
+esid: sec-asyncgenerator-definitions-instantiatefunctionobject
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
+        ( FormalParameters ) { AsyncGeneratorBody }
+
+        [...]
+        3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody,
+            scope, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+async function* ref() {
+  assert.sameValue(arguments.length, 1);
+  assert.sameValue(arguments[0], 42);
+  callCount = callCount + 1;
+}
+
+ref(42,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/async-generator/args-trailing-comma-undefined.js b/test/language/statements/async-generator/args-trailing-comma-undefined.js
new file mode 100644
index 0000000000..087c872f78
--- /dev/null
+++ b/test/language/statements/async-generator/args-trailing-comma-undefined.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-undefined.case
+// - src/arguments/default/async-gen-func-decl.template
+/*---
+description: A trailing comma after undefined should not increase the arguments.length (async generator function declaration)
+esid: sec-asyncgenerator-definitions-instantiatefunctionobject
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
+        ( FormalParameters ) { AsyncGeneratorBody }
+
+        [...]
+        3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody,
+            scope, strict).
+        [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+// Stores a reference `ref` for case evaluation
+async function* ref() {
+  assert.sameValue(arguments.length, 2);
+  assert.sameValue(arguments[0], 42);
+  assert.sameValue(arguments[1], undefined);
+  callCount = callCount + 1;
+}
+
+ref(42, undefined,).next().then(() => {
+    assert.sameValue(callCount, 1, 'generator function invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/async-generator/params-dflt-abrupt.js b/test/language/statements/async-generator/dflt-params-abrupt.js
similarity index 96%
rename from test/language/statements/async-generator/params-dflt-abrupt.js
rename to test/language/statements/async-generator/dflt-params-abrupt.js
index d8ac2523f3..ac3342d589 100644
--- a/test/language/statements/async-generator/params-dflt-abrupt.js
+++ b/test/language/statements/async-generator/dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/async-gen-func-decl.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-dflt-arg-val-not-undefined.js b/test/language/statements/async-generator/dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/statements/async-generator/params-dflt-arg-val-not-undefined.js
rename to test/language/statements/async-generator/dflt-params-arg-val-not-undefined.js
index e840f27b31..a65ebd5b5b 100644
--- a/test/language/statements/async-generator/params-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/async-generator/dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/async-gen-func-decl.template
 /*---
 description: Use of intializer when argument value is not `undefined` (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-dflt-arg-val-undefined.js b/test/language/statements/async-generator/dflt-params-arg-val-undefined.js
similarity index 96%
rename from test/language/statements/async-generator/params-dflt-arg-val-undefined.js
rename to test/language/statements/async-generator/dflt-params-arg-val-undefined.js
index 0af23ba1b4..7f4841cd52 100644
--- a/test/language/statements/async-generator/params-dflt-arg-val-undefined.js
+++ b/test/language/statements/async-generator/dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/async-gen-func-decl.template
 /*---
 description: Use of intializer when argument value is `undefined` (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-dflt-duplicates.js b/test/language/statements/async-generator/dflt-params-duplicates.js
similarity index 95%
rename from test/language/statements/async-generator/params-dflt-duplicates.js
rename to test/language/statements/async-generator/dflt-params-duplicates.js
index 564016b44b..d333063cbe 100644
--- a/test/language/statements/async-generator/params-dflt-duplicates.js
+++ b/test/language/statements/async-generator/dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/async-gen-func-decl.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-dflt-ref-later.js b/test/language/statements/async-generator/dflt-params-ref-later.js
similarity index 96%
rename from test/language/statements/async-generator/params-dflt-ref-later.js
rename to test/language/statements/async-generator/dflt-params-ref-later.js
index e247ef69d9..54255d5fd0 100644
--- a/test/language/statements/async-generator/params-dflt-ref-later.js
+++ b/test/language/statements/async-generator/dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/async-gen-func-decl.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-dflt-ref-prior.js b/test/language/statements/async-generator/dflt-params-ref-prior.js
similarity index 96%
rename from test/language/statements/async-generator/params-dflt-ref-prior.js
rename to test/language/statements/async-generator/dflt-params-ref-prior.js
index e692f5700a..1714a5666f 100644
--- a/test/language/statements/async-generator/params-dflt-ref-prior.js
+++ b/test/language/statements/async-generator/dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/async-gen-func-decl.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-dflt-ref-self.js b/test/language/statements/async-generator/dflt-params-ref-self.js
similarity index 96%
rename from test/language/statements/async-generator/params-dflt-ref-self.js
rename to test/language/statements/async-generator/dflt-params-ref-self.js
index 80ef75878b..97d18e1b5f 100644
--- a/test/language/statements/async-generator/params-dflt-ref-self.js
+++ b/test/language/statements/async-generator/dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/async-gen-func-decl.template
 /*---
 description: Referencing a parameter from within its own initializer (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-dflt-rest.js b/test/language/statements/async-generator/dflt-params-rest.js
similarity index 95%
rename from test/language/statements/async-generator/params-dflt-rest.js
rename to test/language/statements/async-generator/dflt-params-rest.js
index 71204f4555..3e1e67aaf5 100644
--- a/test/language/statements/async-generator/params-dflt-rest.js
+++ b/test/language/statements/async-generator/dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/async-gen-func-decl.template
 /*---
 description: RestParameter does not support an initializer (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-trailing-comma-dflt-param.js b/test/language/statements/async-generator/dflt-params-trailing-comma.js
similarity index 95%
rename from test/language/statements/async-generator/params-trailing-comma-dflt-param.js
rename to test/language/statements/async-generator/dflt-params-trailing-comma.js
index 0392bc0db0..7031740019 100644
--- a/test/language/statements/async-generator/params-trailing-comma-dflt-param.js
+++ b/test/language/statements/async-generator/dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/async-gen-func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-trailing-comma-multiple-param.js b/test/language/statements/async-generator/params-trailing-comma-multiple.js
similarity index 95%
rename from test/language/statements/async-generator/params-trailing-comma-multiple-param.js
rename to test/language/statements/async-generator/params-trailing-comma-multiple.js
index bcfe76cb18..c06861d38b 100644
--- a/test/language/statements/async-generator/params-trailing-comma-multiple-param.js
+++ b/test/language/statements/async-generator/params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/async-gen-func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-trailing-comma-single-param.js b/test/language/statements/async-generator/params-trailing-comma-single.js
similarity index 95%
rename from test/language/statements/async-generator/params-trailing-comma-single-param.js
rename to test/language/statements/async-generator/params-trailing-comma-single.js
index d27a76514c..0f8e992835 100644
--- a/test/language/statements/async-generator/params-trailing-comma-single-param.js
+++ b/test/language/statements/async-generator/params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/async-gen-func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (async generator function declaration)
diff --git a/test/language/statements/async-generator/params-trailing-comma-rest-early-error.js b/test/language/statements/async-generator/rest-params-trailing-comma-early-error.js
similarity index 94%
rename from test/language/statements/async-generator/params-trailing-comma-rest-early-error.js
rename to test/language/statements/async-generator/rest-params-trailing-comma-early-error.js
index 58287fe081..f6a42b8bdf 100644
--- a/test/language/statements/async-generator/params-trailing-comma-rest-early-error.js
+++ b/test/language/statements/async-generator/rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/async-gen-func-decl.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async generator function declaration)
diff --git a/test/language/statements/class/async-gen-meth-args-trailing-comma-multiple.js b/test/language/statements/class/async-gen-meth-args-trailing-comma-multiple.js
new file mode 100644
index 0000000000..9ee31b06bf
--- /dev/null
+++ b/test/language/statements/class/async-gen-meth-args-trailing-comma-multiple.js
@@ -0,0 +1,64 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-multiple.case
+// - src/arguments/default/cls-decl-async-gen-meth.template
+/*---
+description: A trailing comma should not increase the arguments.length, using multiple args (class expression method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+var callCount = 0;
+class C {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], 'TC39');
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, 'TC39',).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-gen-meth-args-trailing-comma-null.js b/test/language/statements/class/async-gen-meth-args-trailing-comma-null.js
new file mode 100644
index 0000000000..33833dcd73
--- /dev/null
+++ b/test/language/statements/class/async-gen-meth-args-trailing-comma-null.js
@@ -0,0 +1,64 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-null.case
+// - src/arguments/default/cls-decl-async-gen-meth.template
+/*---
+description: A trailing comma after null should not increase the arguments.length (class expression method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+var callCount = 0;
+class C {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], null);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, null,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-gen-meth-args-trailing-comma-single-args.js b/test/language/statements/class/async-gen-meth-args-trailing-comma-single-args.js
new file mode 100644
index 0000000000..b3e6e0f98d
--- /dev/null
+++ b/test/language/statements/class/async-gen-meth-args-trailing-comma-single-args.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-single-args.case
+// - src/arguments/default/cls-decl-async-gen-meth.template
+/*---
+description: A trailing comma should not increase the arguments.length, using a single arg (class expression method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+var callCount = 0;
+class C {
+  async *method() {
+    assert.sameValue(arguments.length, 1);
+    assert.sameValue(arguments[0], 42);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-gen-meth-args-trailing-comma-undefined.js b/test/language/statements/class/async-gen-meth-args-trailing-comma-undefined.js
new file mode 100644
index 0000000000..9b9c4a3c3a
--- /dev/null
+++ b/test/language/statements/class/async-gen-meth-args-trailing-comma-undefined.js
@@ -0,0 +1,64 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-undefined.case
+// - src/arguments/default/cls-decl-async-gen-meth.template
+/*---
+description: A trailing comma after undefined should not increase the arguments.length (class expression method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+var callCount = 0;
+class C {
+  async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], undefined);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, undefined,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/params-async-gen-meth-dflt-abrupt.js b/test/language/statements/class/async-gen-meth-dflt-params-abrupt.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-dflt-abrupt.js
rename to test/language/statements/class/async-gen-meth-dflt-params-abrupt.js
index 1314065524..1e2f473e35 100644
--- a/test/language/statements/class/params-async-gen-meth-dflt-abrupt.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-decl-async-gen-meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (class expression method)
diff --git a/test/language/statements/class/params-async-gen-meth-dflt-arg-val-not-undefined.js b/test/language/statements/class/async-gen-meth-dflt-params-arg-val-not-undefined.js
similarity index 96%
rename from test/language/statements/class/params-async-gen-meth-dflt-arg-val-not-undefined.js
rename to test/language/statements/class/async-gen-meth-dflt-params-arg-val-not-undefined.js
index fbbdf0795f..34e66257d0 100644
--- a/test/language/statements/class/params-async-gen-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-arg-val-not-undefined.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-decl-async-gen-meth.template
 /*---
-description: Use of intializer when argument value is not `undefined` (class expression method)
+description: Use of intializer when argument value is not `undefined` (class declaration async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 features: [default-parameters, async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-dflt-arg-val-undefined.js b/test/language/statements/class/async-gen-meth-dflt-params-arg-val-undefined.js
similarity index 95%
rename from test/language/statements/class/params-async-gen-meth-dflt-arg-val-undefined.js
rename to test/language/statements/class/async-gen-meth-dflt-params-arg-val-undefined.js
index 2e537d137d..08c0068b1d 100644
--- a/test/language/statements/class/params-async-gen-meth-dflt-arg-val-undefined.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-arg-val-undefined.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-decl-async-gen-meth.template
 /*---
-description: Use of intializer when argument value is `undefined` (class expression method)
+description: Use of intializer when argument value is `undefined` (class declaration async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 features: [default-parameters, async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-dflt-duplicates.js b/test/language/statements/class/async-gen-meth-dflt-params-duplicates.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-dflt-duplicates.js
rename to test/language/statements/class/async-gen-meth-dflt-params-duplicates.js
index a017606419..6ccbdf276b 100644
--- a/test/language/statements/class/params-async-gen-meth-dflt-duplicates.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-decl-async-gen-meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method)
diff --git a/test/language/statements/class/params-async-gen-meth-dflt-ref-later.js b/test/language/statements/class/async-gen-meth-dflt-params-ref-later.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-dflt-ref-later.js
rename to test/language/statements/class/async-gen-meth-dflt-params-ref-later.js
index 9199416357..439ca95214 100644
--- a/test/language/statements/class/params-async-gen-meth-dflt-ref-later.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-decl-async-gen-meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (class expression method)
diff --git a/test/language/statements/class/params-async-gen-meth-dflt-ref-prior.js b/test/language/statements/class/async-gen-meth-dflt-params-ref-prior.js
similarity index 95%
rename from test/language/statements/class/params-async-gen-meth-dflt-ref-prior.js
rename to test/language/statements/class/async-gen-meth-dflt-params-ref-prior.js
index 4e0b22d6bf..ff1fa505eb 100644
--- a/test/language/statements/class/params-async-gen-meth-dflt-ref-prior.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-ref-prior.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-decl-async-gen-meth.template
 /*---
-description: Referencing a parameter that occurs earlier in the ParameterList (class expression method)
+description: Referencing a parameter that occurs earlier in the ParameterList (class declaration async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 features: [default-parameters, async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-dflt-ref-self.js b/test/language/statements/class/async-gen-meth-dflt-params-ref-self.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-dflt-ref-self.js
rename to test/language/statements/class/async-gen-meth-dflt-params-ref-self.js
index 44f5d36ba4..a06a514785 100644
--- a/test/language/statements/class/params-async-gen-meth-dflt-ref-self.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-decl-async-gen-meth.template
 /*---
 description: Referencing a parameter from within its own initializer (class expression method)
diff --git a/test/language/statements/class/params-async-gen-meth-dflt-rest.js b/test/language/statements/class/async-gen-meth-dflt-params-rest.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-dflt-rest.js
rename to test/language/statements/class/async-gen-meth-dflt-params-rest.js
index 64711af942..ebbaec465c 100644
--- a/test/language/statements/class/params-async-gen-meth-dflt-rest.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-decl-async-gen-meth.template
 /*---
 description: RestParameter does not support an initializer (class expression method)
diff --git a/test/language/statements/class/params-async-gen-meth-trailing-comma-dflt-param.js b/test/language/statements/class/async-gen-meth-dflt-params-trailing-comma.js
similarity index 94%
rename from test/language/statements/class/params-async-gen-meth-trailing-comma-dflt-param.js
rename to test/language/statements/class/async-gen-meth-dflt-params-trailing-comma.js
index de1ae76e03..b8b6d693bb 100644
--- a/test/language/statements/class/params-async-gen-meth-trailing-comma-dflt-param.js
+++ b/test/language/statements/class/async-gen-meth-dflt-params-trailing-comma.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-decl-async-gen-meth.template
 /*---
-description: A trailing comma should not increase the respective length, using default parameters (class expression method)
+description: A trailing comma should not increase the respective length, using default parameters (class declaration async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 features: [async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-trailing-comma-multiple-param.js b/test/language/statements/class/async-gen-meth-params-trailing-comma-multiple.js
similarity index 93%
rename from test/language/statements/class/params-async-gen-meth-trailing-comma-multiple-param.js
rename to test/language/statements/class/async-gen-meth-params-trailing-comma-multiple.js
index 2e543f2c40..f1170b8bc4 100644
--- a/test/language/statements/class/params-async-gen-meth-trailing-comma-multiple-param.js
+++ b/test/language/statements/class/async-gen-meth-params-trailing-comma-multiple.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-decl-async-gen-meth.template
 /*---
-description: A trailing comma should not increase the respective length, using multiple parameters (class expression method)
+description: A trailing comma should not increase the respective length, using multiple parameters (class declaration async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 features: [async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-trailing-comma-single-param.js b/test/language/statements/class/async-gen-meth-params-trailing-comma-single.js
similarity index 93%
rename from test/language/statements/class/params-async-gen-meth-trailing-comma-single-param.js
rename to test/language/statements/class/async-gen-meth-params-trailing-comma-single.js
index 87a817ff6d..0e24533405 100644
--- a/test/language/statements/class/params-async-gen-meth-trailing-comma-single-param.js
+++ b/test/language/statements/class/async-gen-meth-params-trailing-comma-single.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-decl-async-gen-meth.template
 /*---
-description: A trailing comma should not increase the respective length, using a single parameter (class expression method)
+description: A trailing comma should not increase the respective length, using a single parameter (class declaration async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 features: [async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-trailing-comma-rest-early-error.js b/test/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/statements/class/params-async-gen-meth-trailing-comma-rest-early-error.js
rename to test/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js
index 0abaaaf97d..6cbb12d019 100644
--- a/test/language/statements/class/params-async-gen-meth-trailing-comma-rest-early-error.js
+++ b/test/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-decl-async-gen-meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method)
diff --git a/test/language/statements/class/async-gen-meth-static-args-trailing-comma-multiple.js b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-multiple.js
new file mode 100644
index 0000000000..fbbe19913c
--- /dev/null
+++ b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-multiple.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-multiple.case
+// - src/arguments/default/cls-decl-async-gen-meth-static.template
+/*---
+description: A trailing comma should not increase the arguments.length, using multiple args (static class expression generator method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+class C {
+  static async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], 'TC39');
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, 'TC39',).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-gen-meth-static-args-trailing-comma-null.js b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-null.js
new file mode 100644
index 0000000000..d91abd06bc
--- /dev/null
+++ b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-null.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-null.case
+// - src/arguments/default/cls-decl-async-gen-meth-static.template
+/*---
+description: A trailing comma after null should not increase the arguments.length (static class expression generator method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+class C {
+  static async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], null);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, null,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-gen-meth-static-args-trailing-comma-single-args.js b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-single-args.js
new file mode 100644
index 0000000000..1e583efe98
--- /dev/null
+++ b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-single-args.js
@@ -0,0 +1,64 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-single-args.case
+// - src/arguments/default/cls-decl-async-gen-meth-static.template
+/*---
+description: A trailing comma should not increase the arguments.length, using a single arg (static class expression generator method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+class C {
+  static async *method() {
+    assert.sameValue(arguments.length, 1);
+    assert.sameValue(arguments[0], 42);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-gen-meth-static-args-trailing-comma-undefined.js b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-undefined.js
new file mode 100644
index 0000000000..d3938284ea
--- /dev/null
+++ b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-undefined.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/arguments/args-trailing-comma-undefined.case
+// - src/arguments/default/cls-decl-async-gen-meth-static.template
+/*---
+description: A trailing comma after undefined should not increase the arguments.length (static class expression generator method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [async-iteration]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncGeneratorMethod :
+        async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+            { AsyncGeneratorBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+       Otherwise let strict be false.
+    4. Let scope be the running execution context's LexicalEnvironment.
+    5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+       AsyncGeneratorBody, scope, strict).
+    [...]
+
+
+    Trailing comma in the arguments list
+
+    12.3 Left-Hand-Side Expressions
+
+    Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , )
+---*/
+
+
+var callCount = 0;
+class C {
+  static async *method() {
+    assert.sameValue(arguments.length, 2);
+    assert.sameValue(arguments[0], 42);
+    assert.sameValue(arguments[1], undefined);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, undefined,).next().then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-abrupt.js b/test/language/statements/class/async-gen-meth-static-dflt-params-abrupt.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-static-dflt-abrupt.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-abrupt.js
index be54932371..747e9e4765 100644
--- a/test/language/statements/class/params-async-gen-meth-static-dflt-abrupt.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-decl-async-gen-meth-static.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (static class expression generator method)
diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js b/test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js
similarity index 96%
rename from test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js
index fb05a00f78..40678d93bb 100644
--- a/test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-decl-async-gen-meth-static.template
 /*---
-description: Use of intializer when argument value is not `undefined` (static class expression generator method)
+description: Use of intializer when argument value is not `undefined` (static class declaration async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 features: [default-parameters, async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-undefined.js b/test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-undefined.js
similarity index 95%
rename from test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-undefined.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-undefined.js
index 6fe42ef812..4f17e57744 100644
--- a/test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-undefined.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-undefined.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-decl-async-gen-meth-static.template
 /*---
-description: Use of intializer when argument value is `undefined` (static class expression generator method)
+description: Use of intializer when argument value is `undefined` (static class declaration async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 features: [default-parameters, async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-duplicates.js b/test/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-static-dflt-duplicates.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js
index 75fc99c7e1..93cde2a2fc 100644
--- a/test/language/statements/class/params-async-gen-meth-static-dflt-duplicates.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-decl-async-gen-meth-static.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression generator method)
diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-later.js b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-later.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-static-dflt-ref-later.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-ref-later.js
index 0a37d30354..a85285759b 100644
--- a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-later.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-decl-async-gen-meth-static.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (static class expression generator method)
diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-prior.js b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-prior.js
similarity index 95%
rename from test/language/statements/class/params-async-gen-meth-static-dflt-ref-prior.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-ref-prior.js
index 68eb0d3b6d..1da07641ef 100644
--- a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-prior.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-prior.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-decl-async-gen-meth-static.template
 /*---
-description: Referencing a parameter that occurs earlier in the ParameterList (static class expression generator method)
+description: Referencing a parameter that occurs earlier in the ParameterList (static class declaration async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 features: [default-parameters, async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-self.js b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-self.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-static-dflt-ref-self.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-ref-self.js
index c9e34b61fd..349d64e977 100644
--- a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-self.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-decl-async-gen-meth-static.template
 /*---
 description: Referencing a parameter from within its own initializer (static class expression generator method)
diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-rest.js b/test/language/statements/class/async-gen-meth-static-dflt-params-rest.js
similarity index 97%
rename from test/language/statements/class/params-async-gen-meth-static-dflt-rest.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-rest.js
index cb55ecd724..2d80a1a9d0 100644
--- a/test/language/statements/class/params-async-gen-meth-static-dflt-rest.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-decl-async-gen-meth-static.template
 /*---
 description: RestParameter does not support an initializer (static class expression generator method)
diff --git a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-dflt-param.js b/test/language/statements/class/async-gen-meth-static-dflt-params-trailing-comma.js
similarity index 93%
rename from test/language/statements/class/params-async-gen-meth-static-trailing-comma-dflt-param.js
rename to test/language/statements/class/async-gen-meth-static-dflt-params-trailing-comma.js
index cf551cd262..46f0885cf5 100644
--- a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-dflt-param.js
+++ b/test/language/statements/class/async-gen-meth-static-dflt-params-trailing-comma.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-decl-async-gen-meth-static.template
 /*---
-description: A trailing comma should not increase the respective length, using default parameters (static class expression generator method)
+description: A trailing comma should not increase the respective length, using default parameters (static class declaration async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 features: [async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-multiple-param.js b/test/language/statements/class/async-gen-meth-static-params-trailing-comma-multiple.js
similarity index 93%
rename from test/language/statements/class/params-async-gen-meth-static-trailing-comma-multiple-param.js
rename to test/language/statements/class/async-gen-meth-static-params-trailing-comma-multiple.js
index 4d5cb5ac28..51c4b0f7fc 100644
--- a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-multiple-param.js
+++ b/test/language/statements/class/async-gen-meth-static-params-trailing-comma-multiple.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-decl-async-gen-meth-static.template
 /*---
-description: A trailing comma should not increase the respective length, using multiple parameters (static class expression generator method)
+description: A trailing comma should not increase the respective length, using multiple parameters (static class declaration async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 features: [async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-single-param.js b/test/language/statements/class/async-gen-meth-static-params-trailing-comma-single.js
similarity index 93%
rename from test/language/statements/class/params-async-gen-meth-static-trailing-comma-single-param.js
rename to test/language/statements/class/async-gen-meth-static-params-trailing-comma-single.js
index 4787526f25..0760254fbc 100644
--- a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-single-param.js
+++ b/test/language/statements/class/async-gen-meth-static-params-trailing-comma-single.js
@@ -1,8 +1,8 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-decl-async-gen-meth-static.template
 /*---
-description: A trailing comma should not increase the respective length, using a single parameter (static class expression generator method)
+description: A trailing comma should not increase the respective length, using a single parameter (static class declaration async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 features: [async-iteration]
 flags: [generated, async]
diff --git a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js b/test/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/statements/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js
rename to test/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js
index b6c26bce6a..09113accbd 100644
--- a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js
+++ b/test/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-decl-async-gen-meth-static.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression generator method)
diff --git a/test/language/statements/class/async-meth-dflt-params-abrupt.js b/test/language/statements/class/async-meth-dflt-params-abrupt.js
new file mode 100644
index 0000000000..6fb6af0068
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-abrupt.js
@@ -0,0 +1,68 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/cls-decl-async-meth.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+class C {
+  async method(_ = (function() { throw new Test262Error(); }())) {
+    
+    callCount = callCount + 1;
+  }
+}
+
+C.prototype.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-dflt-params-arg-val-not-undefined.js b/test/language/statements/class/async-meth-dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..2f857b0881
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,89 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/cls-decl-async-meth.template
+/*---
+description: Use of intializer when argument value is not `undefined` (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+
+var callCount = 0;
+class C {
+  async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) {
+    assert.sameValue(aFalse, false);
+    assert.sameValue(aString, '');
+    assert.sameValue(aNaN, NaN);
+    assert.sameValue(a0, 0);
+    assert.sameValue(aNull, null);
+    assert.sameValue(aObj, obj);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/statements/class/async-meth-dflt-params-arg-val-undefined.js b/test/language/statements/class/async-meth-dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..810e644068
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-arg-val-undefined.js
@@ -0,0 +1,72 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/cls-decl-async-meth.template
+/*---
+description: Use of intializer when argument value is `undefined` (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+
+var callCount = 0;
+class C {
+  async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) {
+    assert.sameValue(fromLiteral, 23);
+    assert.sameValue(fromExpr, 45);
+    assert.sameValue(fromHole, 99);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(undefined, void 0).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-dflt-params-duplicates.js b/test/language/statements/class/async-meth-dflt-params-duplicates.js
new file mode 100644
index 0000000000..5e44eb47f1
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-duplicates.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/cls-decl-async-meth.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+
+class C {
+  async method(x = 0, x) {
+    
+  }
+}
diff --git a/test/language/statements/class/async-meth-dflt-params-ref-later.js b/test/language/statements/class/async-meth-dflt-params-ref-later.js
new file mode 100644
index 0000000000..673c3e4e7c
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-ref-later.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/cls-decl-async-meth.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+class C {
+  async method(x = y, y) {
+    
+    callCount = callCount + 1;
+  }
+}
+
+C.prototype.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-dflt-params-ref-prior.js b/test/language/statements/class/async-meth-dflt-params-ref-prior.js
new file mode 100644
index 0000000000..f6eae505d4
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-ref-prior.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/cls-decl-async-meth.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+class C {
+  async method(x, y = x, z = y) {
+    assert.sameValue(x, 3, 'first argument value');
+    assert.sameValue(y, 3, 'second argument value');
+    assert.sameValue(z, 3, 'third argument value');
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(3).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-dflt-params-ref-self.js b/test/language/statements/class/async-meth-dflt-params-ref-self.js
new file mode 100644
index 0000000000..b85d2c1c13
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-ref-self.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/cls-decl-async-meth.template
+/*---
+description: Referencing a parameter from within its own initializer (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+class C {
+  async method(x = x) {
+    
+    callCount = callCount + 1;
+  }
+}
+
+C.prototype.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-dflt-params-rest.js b/test/language/statements/class/async-meth-dflt-params-rest.js
new file mode 100644
index 0000000000..df894a820c
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-rest.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/cls-decl-async-meth.template
+/*---
+description: RestParameter does not support an initializer (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+
+class C {
+  async method(...x = []) {
+    
+  }
+}
diff --git a/test/language/statements/class/async-meth-dflt-params-trailing-comma.js b/test/language/statements/class/async-meth-dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..2dfc6a9888
--- /dev/null
+++ b/test/language/statements/class/async-meth-dflt-params-trailing-comma.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/cls-decl-async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+class C {
+  async method(a, b = 39,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, undefined, 1).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/statements/class/async-meth-params-trailing-comma-multiple.js b/test/language/statements/class/async-meth-params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..3ceb1d6d58
--- /dev/null
+++ b/test/language/statements/class/async-meth-params-trailing-comma-multiple.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/cls-decl-async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+class C {
+  async method(a, b,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, 39, 1).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/statements/class/async-meth-params-trailing-comma-single.js b/test/language/statements/class/async-meth-params-trailing-comma-single.js
new file mode 100644
index 0000000000..5b86f97ee4
--- /dev/null
+++ b/test/language/statements/class/async-meth-params-trailing-comma-single.js
@@ -0,0 +1,62 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/cls-decl-async-meth.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+class C {
+  async method(a,) {
+    assert.sameValue(a, 42);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.prototype.method;
+
+ref(42, 39).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js b/test/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..15660680a7
--- /dev/null
+++ b/test/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js
@@ -0,0 +1,59 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/cls-decl-async-meth.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class declaration async method)
+esid: sec-class-definitions-runtime-semantics-evaluation
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+           i. Let status be the result of performing
+              PropertyDefinitionEvaluation for m with arguments proto and
+              false.
+        [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+
+class C {
+  async method(...a,) {
+    
+  }
+}
diff --git a/test/language/statements/class/async-meth-static-dflt-params-abrupt.js b/test/language/statements/class/async-meth-static-dflt-params-abrupt.js
new file mode 100644
index 0000000000..3d58d2ab3d
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-abrupt.js
@@ -0,0 +1,68 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-abrupt.case
+// - src/function-forms/error/cls-decl-async-meth-static.template
+/*---
+description: Abrupt completion returned by evaluation of initializer (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+
+
+var callCount = 0;
+class C {
+  static async method(_ = (function() { throw new Test262Error(); }())) {
+    
+    callCount = callCount + 1;
+  }
+}
+
+C.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, Test262Error))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-static-dflt-params-arg-val-not-undefined.js b/test/language/statements/class/async-meth-static-dflt-params-arg-val-not-undefined.js
new file mode 100644
index 0000000000..1309bcfd43
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-arg-val-not-undefined.js
@@ -0,0 +1,89 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
+// - src/function-forms/default/cls-decl-async-meth-static.template
+/*---
+description: Use of intializer when argument value is not `undefined` (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+var obj = {};
+var falseCount = 0;
+var stringCount = 0;
+var nanCount = 0;
+var zeroCount = 0;
+var nullCount = 0;
+var objCount = 0;
+
+
+var callCount = 0;
+class C {
+  static async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) {
+    assert.sameValue(aFalse, false);
+    assert.sameValue(aString, '');
+    assert.sameValue(aNaN, NaN);
+    assert.sameValue(a0, 0);
+    assert.sameValue(aNull, null);
+    assert.sameValue(aObj, obj);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(false, '', NaN, 0, null, obj).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(falseCount, 0, 'initializer not evaluated: false');
+assert.sameValue(stringCount, 0, 'initializer not evaluated: string');
+assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN');
+assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0');
+assert.sameValue(nullCount, 0, 'initializer not evaluated: null');
+assert.sameValue(objCount, 0, 'initializer not evaluated: object');
diff --git a/test/language/statements/class/async-meth-static-dflt-params-arg-val-undefined.js b/test/language/statements/class/async-meth-static-dflt-params-arg-val-undefined.js
new file mode 100644
index 0000000000..af76655fe2
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-arg-val-undefined.js
@@ -0,0 +1,72 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-arg-val-undefined.case
+// - src/function-forms/default/cls-decl-async-meth-static.template
+/*---
+description: Use of intializer when argument value is `undefined` (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    [...]
+    23. Let iteratorRecord be Record {[[Iterator]]:
+        CreateListIterator(argumentsList), [[Done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        a. Perform ? IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+---*/
+
+
+var callCount = 0;
+class C {
+  static async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) {
+    assert.sameValue(fromLiteral, 23);
+    assert.sameValue(fromExpr, 45);
+    assert.sameValue(fromHole, 99);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(undefined, void 0).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-static-dflt-params-duplicates.js b/test/language/statements/class/async-meth-static-dflt-params-duplicates.js
new file mode 100644
index 0000000000..79458288d1
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-duplicates.js
@@ -0,0 +1,62 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-duplicates.case
+// - src/function-forms/syntax/cls-decl-async-meth-static.template
+/*---
+description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+    14.1.2 Static Semantics: Early Errors
+
+    StrictFormalParameters : FormalParameters
+
+    - It is a Syntax Error if BoundNames of FormalParameters contains any
+      duplicate elements.
+
+    FormalParameters : FormalParameterList
+
+    - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is
+      false and BoundNames of FormalParameterList contains any duplicate
+      elements.
+
+---*/
+
+
+class C {
+  static async method(x = 0, x) {
+    
+  }
+}
diff --git a/test/language/statements/class/async-meth-static-dflt-params-ref-later.js b/test/language/statements/class/async-meth-static-dflt-params-ref-later.js
new file mode 100644
index 0000000000..f089ed8553
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-ref-later.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-later.case
+// - src/function-forms/error/cls-decl-async-meth-static.template
+/*---
+description: Referencing a parameter that occurs later in the ParameterList (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+class C {
+  static async method(x = y, y) {
+    
+    callCount = callCount + 1;
+  }
+}
+
+C.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-static-dflt-params-ref-prior.js b/test/language/statements/class/async-meth-static-dflt-params-ref-prior.js
new file mode 100644
index 0000000000..2e2126f89a
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-ref-prior.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-prior.case
+// - src/function-forms/default/cls-decl-async-meth-static.template
+/*---
+description: Referencing a parameter that occurs earlier in the ParameterList (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+class C {
+  static async method(x, y = x, z = y) {
+    assert.sameValue(x, 3, 'first argument value');
+    assert.sameValue(y, 3, 'second argument value');
+    assert.sameValue(z, 3, 'third argument value');
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(3).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-static-dflt-params-ref-self.js b/test/language/statements/class/async-meth-static-dflt-params-ref-self.js
new file mode 100644
index 0000000000..716f786d47
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-ref-self.js
@@ -0,0 +1,69 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-ref-self.case
+// - src/function-forms/error/cls-decl-async-meth-static.template
+/*---
+description: Referencing a parameter from within its own initializer (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [default-parameters]
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    14.1.19 Runtime Semantics: IteratorBindingInitialization
+
+    FormalsList : FormalsList , FormalParameter
+
+    1. Let status be the result of performing IteratorBindingInitialization for
+       FormalsList using iteratorRecord and environment as the arguments.
+    2. ReturnIfAbrupt(status).
+    3. Return the result of performing IteratorBindingInitialization for
+       FormalParameter using iteratorRecord and environment as the arguments.
+
+---*/
+var x = 0;
+
+
+var callCount = 0;
+class C {
+  static async method(x = x) {
+    
+    callCount = callCount + 1;
+  }
+}
+
+C.method()
+  .then(_ => {
+    throw new Test262Error('function should not be resolved');
+  }, error => assert.sameValue(error.constructor, ReferenceError))
+  .then(() => {
+    assert.sameValue(callCount, 0, 'function body is not evaluated');
+  }, $DONE)
+  .then($DONE, $DONE);
diff --git a/test/language/statements/class/async-meth-static-dflt-params-rest.js b/test/language/statements/class/async-meth-static-dflt-params-rest.js
new file mode 100644
index 0000000000..79052753e6
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-rest.js
@@ -0,0 +1,66 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-rest.case
+// - src/function-forms/syntax/cls-decl-async-meth-static.template
+/*---
+description: RestParameter does not support an initializer (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [default-parameters]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+    14.1 Function Definitions
+
+    Syntax
+
+    FunctionRestParameter[Yield] :
+
+      BindingRestElement[?Yield]
+
+    13.3.3 Destructuring Binding Patterns
+
+    Syntax
+
+    BindingRestElement[Yield] :
+
+      ...BindingIdentifier[?Yield]
+      ...BindingPattern[?Yield]
+
+---*/
+
+
+class C {
+  static async method(...x = []) {
+    
+  }
+}
diff --git a/test/language/statements/class/async-meth-static-dflt-params-trailing-comma.js b/test/language/statements/class/async-meth-static-dflt-params-trailing-comma.js
new file mode 100644
index 0000000000..e9a769b125
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-dflt-params-trailing-comma.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/dflt-params-trailing-comma.case
+// - src/function-forms/default/cls-decl-async-meth-static.template
+/*---
+description: A trailing comma should not increase the respective length, using default parameters (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+class C {
+  static async method(a, b = 39,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, undefined, 1).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/statements/class/async-meth-static-params-trailing-comma-multiple.js b/test/language/statements/class/async-meth-static-params-trailing-comma-multiple.js
new file mode 100644
index 0000000000..7c0bebd538
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-params-trailing-comma-multiple.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-multiple.case
+// - src/function-forms/default/cls-decl-async-meth-static.template
+/*---
+description: A trailing comma should not increase the respective length, using multiple parameters (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+class C {
+  static async method(a, b,) {
+    assert.sameValue(a, 42);
+    assert.sameValue(b, 39);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, 39, 1).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 2, 'length is properly set');
diff --git a/test/language/statements/class/async-meth-static-params-trailing-comma-single.js b/test/language/statements/class/async-meth-static-params-trailing-comma-single.js
new file mode 100644
index 0000000000..ef5179ae28
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-params-trailing-comma-single.js
@@ -0,0 +1,62 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/params-trailing-comma-single.case
+// - src/function-forms/default/cls-decl-async-meth-static.template
+/*---
+description: A trailing comma should not increase the respective length, using a single parameter (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+flags: [generated, async]
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] ,
+---*/
+
+
+var callCount = 0;
+class C {
+  static async method(a,) {
+    assert.sameValue(a, 42);
+    callCount = callCount + 1;
+  }
+}
+
+// Stores a reference `ref` for case evaluation
+var ref = C.method;
+
+ref(42, 39).then(() => {
+    assert.sameValue(callCount, 1, 'method invoked exactly once');
+}).then($DONE, $DONE);
+
+assert.sameValue(ref.length, 1, 'length is properly set');
diff --git a/test/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js b/test/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js
new file mode 100644
index 0000000000..4747ba7436
--- /dev/null
+++ b/test/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js
@@ -0,0 +1,58 @@
+// This file was procedurally generated from the following sources:
+// - src/function-forms/rest-params-trailing-comma-early-error.case
+// - src/function-forms/syntax/cls-decl-async-meth-static.template
+/*---
+description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class declaration async method)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    ClassDeclaration : class BindingIdentifier ClassTail
+
+    1. Let className be StringValue of BindingIdentifier.
+    2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+       argument className.
+    [...]
+
+    14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+    21. For each ClassElement m in order from methods
+        a. If IsStatic of m is false, then
+        b. Else,
+           Let status be the result of performing PropertyDefinitionEvaluation for
+           m with arguments F and false.
+    [...]
+
+    Runtime Semantics: PropertyDefinitionEvaluation
+
+    AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+
+    1. Let propKey be the result of evaluating PropertyName.
+    2. ReturnIfAbrupt(propKey).
+    3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise
+       let strict be false.
+    4. Let scope be the LexicalEnvironment of the running execution context.
+    5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody,
+       scope, strict).
+    [...]
+
+    Trailing comma in the parameters list
+
+    14.1 Function Definitions
+
+    FormalParameters[Yield, Await] :
+        [empty]
+        FunctionRestParameter[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await]
+        FormalParameterList[?Yield, ?Await] ,
+        FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await]
+---*/
+
+
+class C {
+  static async method(...a,) {
+    
+  }
+}
diff --git a/test/language/statements/class/params-gen-meth-dflt-abrupt.js b/test/language/statements/class/gen-meth-dflt-params-abrupt.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-dflt-abrupt.js
rename to test/language/statements/class/gen-meth-dflt-params-abrupt.js
index e79d372269..394a059b0a 100644
--- a/test/language/statements/class/params-gen-meth-dflt-abrupt.js
+++ b/test/language/statements/class/gen-meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-decl-gen-meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-dflt-arg-val-not-undefined.js b/test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-dflt-arg-val-not-undefined.js
rename to test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js
index 196f38df2a..3c6ea0fb00 100644
--- a/test/language/statements/class/params-gen-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-decl-gen-meth.template
 /*---
 description: Use of intializer when argument value is not `undefined` (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-dflt-arg-val-undefined.js b/test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-dflt-arg-val-undefined.js
rename to test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js
index cbac42231b..6fb2d48a4a 100644
--- a/test/language/statements/class/params-gen-meth-dflt-arg-val-undefined.js
+++ b/test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-decl-gen-meth.template
 /*---
 description: Use of intializer when argument value is `undefined` (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-dflt-duplicates.js b/test/language/statements/class/gen-meth-dflt-params-duplicates.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-dflt-duplicates.js
rename to test/language/statements/class/gen-meth-dflt-params-duplicates.js
index 2455c678e7..74465d8f63 100644
--- a/test/language/statements/class/params-gen-meth-dflt-duplicates.js
+++ b/test/language/statements/class/gen-meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-decl-gen-meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-dflt-ref-later.js b/test/language/statements/class/gen-meth-dflt-params-ref-later.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-dflt-ref-later.js
rename to test/language/statements/class/gen-meth-dflt-params-ref-later.js
index ac3d735668..394235c5b6 100644
--- a/test/language/statements/class/params-gen-meth-dflt-ref-later.js
+++ b/test/language/statements/class/gen-meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-decl-gen-meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-dflt-ref-prior.js b/test/language/statements/class/gen-meth-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-dflt-ref-prior.js
rename to test/language/statements/class/gen-meth-dflt-params-ref-prior.js
index 08187adfc4..8c723c6336 100644
--- a/test/language/statements/class/params-gen-meth-dflt-ref-prior.js
+++ b/test/language/statements/class/gen-meth-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-decl-gen-meth.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-dflt-ref-self.js b/test/language/statements/class/gen-meth-dflt-params-ref-self.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-dflt-ref-self.js
rename to test/language/statements/class/gen-meth-dflt-params-ref-self.js
index 13ebde0d5a..c4d4ca6bee 100644
--- a/test/language/statements/class/params-gen-meth-dflt-ref-self.js
+++ b/test/language/statements/class/gen-meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-decl-gen-meth.template
 /*---
 description: Referencing a parameter from within its own initializer (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-dflt-rest.js b/test/language/statements/class/gen-meth-dflt-params-rest.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-dflt-rest.js
rename to test/language/statements/class/gen-meth-dflt-params-rest.js
index 6fb84b04da..16523d9e23 100644
--- a/test/language/statements/class/params-gen-meth-dflt-rest.js
+++ b/test/language/statements/class/gen-meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-decl-gen-meth.template
 /*---
 description: RestParameter does not support an initializer (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-trailing-comma-dflt-param.js b/test/language/statements/class/gen-meth-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/statements/class/params-gen-meth-trailing-comma-dflt-param.js
rename to test/language/statements/class/gen-meth-dflt-params-trailing-comma.js
index 5351dd9291..691b4d5b77 100644
--- a/test/language/statements/class/params-gen-meth-trailing-comma-dflt-param.js
+++ b/test/language/statements/class/gen-meth-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-decl-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-trailing-comma-multiple-param.js b/test/language/statements/class/gen-meth-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/statements/class/params-gen-meth-trailing-comma-multiple-param.js
rename to test/language/statements/class/gen-meth-params-trailing-comma-multiple.js
index 8d874bdcb3..113572bdee 100644
--- a/test/language/statements/class/params-gen-meth-trailing-comma-multiple-param.js
+++ b/test/language/statements/class/gen-meth-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-decl-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-trailing-comma-single-param.js b/test/language/statements/class/gen-meth-params-trailing-comma-single.js
similarity index 97%
rename from test/language/statements/class/params-gen-meth-trailing-comma-single-param.js
rename to test/language/statements/class/gen-meth-params-trailing-comma-single.js
index a1263452e0..d02f0be4c8 100644
--- a/test/language/statements/class/params-gen-meth-trailing-comma-single-param.js
+++ b/test/language/statements/class/gen-meth-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-decl-gen-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-trailing-comma-rest-early-error.js b/test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js
similarity index 97%
rename from test/language/statements/class/params-gen-meth-trailing-comma-rest-early-error.js
rename to test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js
index bf104c98d4..46f85a422d 100644
--- a/test/language/statements/class/params-gen-meth-trailing-comma-rest-early-error.js
+++ b/test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-decl-gen-meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method)
diff --git a/test/language/statements/class/params-gen-meth-static-dflt-abrupt.js b/test/language/statements/class/gen-meth-static-dflt-params-abrupt.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-static-dflt-abrupt.js
rename to test/language/statements/class/gen-meth-static-dflt-params-abrupt.js
index e6dd84234c..302f06d823 100644
--- a/test/language/statements/class/params-gen-meth-static-dflt-abrupt.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-decl-gen-meth-static.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-dflt-arg-val-not-undefined.js b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-static-dflt-arg-val-not-undefined.js
rename to test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
index f07e043bd8..5cc3ddcc94 100644
--- a/test/language/statements/class/params-gen-meth-static-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-decl-gen-meth-static.template
 /*---
 description: Use of intializer when argument value is not `undefined` (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-dflt-arg-val-undefined.js b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-static-dflt-arg-val-undefined.js
rename to test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js
index c7bf75f103..5254273e14 100644
--- a/test/language/statements/class/params-gen-meth-static-dflt-arg-val-undefined.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-decl-gen-meth-static.template
 /*---
 description: Use of intializer when argument value is `undefined` (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-dflt-duplicates.js b/test/language/statements/class/gen-meth-static-dflt-params-duplicates.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-static-dflt-duplicates.js
rename to test/language/statements/class/gen-meth-static-dflt-params-duplicates.js
index 803c6e13b5..f2625674f0 100644
--- a/test/language/statements/class/params-gen-meth-static-dflt-duplicates.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-decl-gen-meth-static.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-dflt-ref-later.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-later.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-static-dflt-ref-later.js
rename to test/language/statements/class/gen-meth-static-dflt-params-ref-later.js
index 7d232ffe1c..bb681e8c4b 100644
--- a/test/language/statements/class/params-gen-meth-static-dflt-ref-later.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-decl-gen-meth-static.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-dflt-ref-prior.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-static-dflt-ref-prior.js
rename to test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js
index c75ef40cc2..948c3c4a7c 100644
--- a/test/language/statements/class/params-gen-meth-static-dflt-ref-prior.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-decl-gen-meth-static.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-dflt-ref-self.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-self.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-static-dflt-ref-self.js
rename to test/language/statements/class/gen-meth-static-dflt-params-ref-self.js
index 7d3a0c5e18..b8495b8b0d 100644
--- a/test/language/statements/class/params-gen-meth-static-dflt-ref-self.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-decl-gen-meth-static.template
 /*---
 description: Referencing a parameter from within its own initializer (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-dflt-rest.js b/test/language/statements/class/gen-meth-static-dflt-params-rest.js
similarity index 98%
rename from test/language/statements/class/params-gen-meth-static-dflt-rest.js
rename to test/language/statements/class/gen-meth-static-dflt-params-rest.js
index 8c7d510950..b8a91bc8c2 100644
--- a/test/language/statements/class/params-gen-meth-static-dflt-rest.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-decl-gen-meth-static.template
 /*---
 description: RestParameter does not support an initializer (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-trailing-comma-dflt-param.js b/test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/statements/class/params-gen-meth-static-trailing-comma-dflt-param.js
rename to test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js
index dd1359843a..1212184a9b 100644
--- a/test/language/statements/class/params-gen-meth-static-trailing-comma-dflt-param.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-decl-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-trailing-comma-multiple-param.js b/test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/statements/class/params-gen-meth-static-trailing-comma-multiple-param.js
rename to test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js
index 6621187e18..8fe94f1ed9 100644
--- a/test/language/statements/class/params-gen-meth-static-trailing-comma-multiple-param.js
+++ b/test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-decl-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-trailing-comma-single-param.js b/test/language/statements/class/gen-meth-static-params-trailing-comma-single.js
similarity index 97%
rename from test/language/statements/class/params-gen-meth-static-trailing-comma-single-param.js
rename to test/language/statements/class/gen-meth-static-params-trailing-comma-single.js
index 619855a215..44986590a4 100644
--- a/test/language/statements/class/params-gen-meth-static-trailing-comma-single-param.js
+++ b/test/language/statements/class/gen-meth-static-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-decl-gen-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (static class expression generator method)
diff --git a/test/language/statements/class/params-gen-meth-static-trailing-comma-rest-early-error.js b/test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js
similarity index 97%
rename from test/language/statements/class/params-gen-meth-static-trailing-comma-rest-early-error.js
rename to test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js
index c8136f1c1e..83f2d043fb 100644
--- a/test/language/statements/class/params-gen-meth-static-trailing-comma-rest-early-error.js
+++ b/test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-decl-gen-meth-static.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression generator method)
diff --git a/test/language/statements/class/params-meth-dflt-abrupt.js b/test/language/statements/class/meth-dflt-params-abrupt.js
similarity index 98%
rename from test/language/statements/class/params-meth-dflt-abrupt.js
rename to test/language/statements/class/meth-dflt-params-abrupt.js
index ef260c25e9..875a18bd33 100644
--- a/test/language/statements/class/params-meth-dflt-abrupt.js
+++ b/test/language/statements/class/meth-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-decl-meth.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (class expression method)
diff --git a/test/language/statements/class/params-meth-dflt-arg-val-not-undefined.js b/test/language/statements/class/meth-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/statements/class/params-meth-dflt-arg-val-not-undefined.js
rename to test/language/statements/class/meth-dflt-params-arg-val-not-undefined.js
index 09a8b28b85..8235818609 100644
--- a/test/language/statements/class/params-meth-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/class/meth-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-decl-meth.template
 /*---
 description: Use of intializer when argument value is not `undefined` (class expression method)
diff --git a/test/language/statements/class/params-meth-dflt-arg-val-undefined.js b/test/language/statements/class/meth-dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/statements/class/params-meth-dflt-arg-val-undefined.js
rename to test/language/statements/class/meth-dflt-params-arg-val-undefined.js
index a07d4bdcd9..4167abaf38 100644
--- a/test/language/statements/class/params-meth-dflt-arg-val-undefined.js
+++ b/test/language/statements/class/meth-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-decl-meth.template
 /*---
 description: Use of intializer when argument value is `undefined` (class expression method)
diff --git a/test/language/statements/class/params-meth-dflt-duplicates.js b/test/language/statements/class/meth-dflt-params-duplicates.js
similarity index 97%
rename from test/language/statements/class/params-meth-dflt-duplicates.js
rename to test/language/statements/class/meth-dflt-params-duplicates.js
index 91716c3056..f0fa074939 100644
--- a/test/language/statements/class/params-meth-dflt-duplicates.js
+++ b/test/language/statements/class/meth-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-decl-meth.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method)
diff --git a/test/language/statements/class/params-meth-dflt-ref-later.js b/test/language/statements/class/meth-dflt-params-ref-later.js
similarity index 98%
rename from test/language/statements/class/params-meth-dflt-ref-later.js
rename to test/language/statements/class/meth-dflt-params-ref-later.js
index 6a0cee8527..ddd5b44df2 100644
--- a/test/language/statements/class/params-meth-dflt-ref-later.js
+++ b/test/language/statements/class/meth-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-decl-meth.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (class expression method)
diff --git a/test/language/statements/class/params-meth-dflt-ref-prior.js b/test/language/statements/class/meth-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/statements/class/params-meth-dflt-ref-prior.js
rename to test/language/statements/class/meth-dflt-params-ref-prior.js
index 8a5eb4eacd..a5c38482de 100644
--- a/test/language/statements/class/params-meth-dflt-ref-prior.js
+++ b/test/language/statements/class/meth-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-decl-meth.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (class expression method)
diff --git a/test/language/statements/class/params-meth-dflt-ref-self.js b/test/language/statements/class/meth-dflt-params-ref-self.js
similarity index 98%
rename from test/language/statements/class/params-meth-dflt-ref-self.js
rename to test/language/statements/class/meth-dflt-params-ref-self.js
index fdbbc5519d..232b5847bb 100644
--- a/test/language/statements/class/params-meth-dflt-ref-self.js
+++ b/test/language/statements/class/meth-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-decl-meth.template
 /*---
 description: Referencing a parameter from within its own initializer (class expression method)
diff --git a/test/language/statements/class/params-meth-dflt-rest.js b/test/language/statements/class/meth-dflt-params-rest.js
similarity index 98%
rename from test/language/statements/class/params-meth-dflt-rest.js
rename to test/language/statements/class/meth-dflt-params-rest.js
index 86223eb3a7..80e3f050a6 100644
--- a/test/language/statements/class/params-meth-dflt-rest.js
+++ b/test/language/statements/class/meth-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-decl-meth.template
 /*---
 description: RestParameter does not support an initializer (class expression method)
diff --git a/test/language/statements/class/params-meth-trailing-comma-dflt-param.js b/test/language/statements/class/meth-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/statements/class/params-meth-trailing-comma-dflt-param.js
rename to test/language/statements/class/meth-dflt-params-trailing-comma.js
index f421dfaf2f..b86193890e 100644
--- a/test/language/statements/class/params-meth-trailing-comma-dflt-param.js
+++ b/test/language/statements/class/meth-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-decl-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (class expression method)
diff --git a/test/language/statements/class/params-meth-trailing-comma-multiple-param.js b/test/language/statements/class/meth-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/statements/class/params-meth-trailing-comma-multiple-param.js
rename to test/language/statements/class/meth-params-trailing-comma-multiple.js
index 9298f8a45d..c081597b80 100644
--- a/test/language/statements/class/params-meth-trailing-comma-multiple-param.js
+++ b/test/language/statements/class/meth-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-decl-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (class expression method)
diff --git a/test/language/statements/class/params-meth-trailing-comma-single-param.js b/test/language/statements/class/meth-params-trailing-comma-single.js
similarity index 97%
rename from test/language/statements/class/params-meth-trailing-comma-single-param.js
rename to test/language/statements/class/meth-params-trailing-comma-single.js
index 6fb779a2cf..41cf799832 100644
--- a/test/language/statements/class/params-meth-trailing-comma-single-param.js
+++ b/test/language/statements/class/meth-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-decl-meth.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (class expression method)
diff --git a/test/language/statements/class/params-meth-trailing-comma-rest-early-error.js b/test/language/statements/class/meth-rest-params-trailing-comma-early-error.js
similarity index 97%
rename from test/language/statements/class/params-meth-trailing-comma-rest-early-error.js
rename to test/language/statements/class/meth-rest-params-trailing-comma-early-error.js
index a13b0f2f13..edbc81bd14 100644
--- a/test/language/statements/class/params-meth-trailing-comma-rest-early-error.js
+++ b/test/language/statements/class/meth-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-decl-meth.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method)
diff --git a/test/language/statements/class/params-meth-static-dflt-abrupt.js b/test/language/statements/class/meth-static-dflt-params-abrupt.js
similarity index 98%
rename from test/language/statements/class/params-meth-static-dflt-abrupt.js
rename to test/language/statements/class/meth-static-dflt-params-abrupt.js
index 13b1d442ee..fe67013971 100644
--- a/test/language/statements/class/params-meth-static-dflt-abrupt.js
+++ b/test/language/statements/class/meth-static-dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/cls-decl-meth-static.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-dflt-arg-val-not-undefined.js b/test/language/statements/class/meth-static-dflt-params-arg-val-not-undefined.js
similarity index 98%
rename from test/language/statements/class/params-meth-static-dflt-arg-val-not-undefined.js
rename to test/language/statements/class/meth-static-dflt-params-arg-val-not-undefined.js
index b7ac45e474..f55b36e52d 100644
--- a/test/language/statements/class/params-meth-static-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/class/meth-static-dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/cls-decl-meth-static.template
 /*---
 description: Use of intializer when argument value is not `undefined` (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-dflt-arg-val-undefined.js b/test/language/statements/class/meth-static-dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/statements/class/params-meth-static-dflt-arg-val-undefined.js
rename to test/language/statements/class/meth-static-dflt-params-arg-val-undefined.js
index 8b051c0a67..2ab1300e9c 100644
--- a/test/language/statements/class/params-meth-static-dflt-arg-val-undefined.js
+++ b/test/language/statements/class/meth-static-dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/cls-decl-meth-static.template
 /*---
 description: Use of intializer when argument value is `undefined` (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-dflt-duplicates.js b/test/language/statements/class/meth-static-dflt-params-duplicates.js
similarity index 97%
rename from test/language/statements/class/params-meth-static-dflt-duplicates.js
rename to test/language/statements/class/meth-static-dflt-params-duplicates.js
index ba658c7812..5e86018ecc 100644
--- a/test/language/statements/class/params-meth-static-dflt-duplicates.js
+++ b/test/language/statements/class/meth-static-dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/cls-decl-meth-static.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-dflt-ref-later.js b/test/language/statements/class/meth-static-dflt-params-ref-later.js
similarity index 98%
rename from test/language/statements/class/params-meth-static-dflt-ref-later.js
rename to test/language/statements/class/meth-static-dflt-params-ref-later.js
index b23f668275..d16b13a1e0 100644
--- a/test/language/statements/class/params-meth-static-dflt-ref-later.js
+++ b/test/language/statements/class/meth-static-dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/cls-decl-meth-static.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-dflt-ref-prior.js b/test/language/statements/class/meth-static-dflt-params-ref-prior.js
similarity index 98%
rename from test/language/statements/class/params-meth-static-dflt-ref-prior.js
rename to test/language/statements/class/meth-static-dflt-params-ref-prior.js
index 7c3748c3b0..9bcc6103fd 100644
--- a/test/language/statements/class/params-meth-static-dflt-ref-prior.js
+++ b/test/language/statements/class/meth-static-dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/cls-decl-meth-static.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-dflt-ref-self.js b/test/language/statements/class/meth-static-dflt-params-ref-self.js
similarity index 98%
rename from test/language/statements/class/params-meth-static-dflt-ref-self.js
rename to test/language/statements/class/meth-static-dflt-params-ref-self.js
index e935e2e8df..a609f7242a 100644
--- a/test/language/statements/class/params-meth-static-dflt-ref-self.js
+++ b/test/language/statements/class/meth-static-dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/cls-decl-meth-static.template
 /*---
 description: Referencing a parameter from within its own initializer (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-dflt-rest.js b/test/language/statements/class/meth-static-dflt-params-rest.js
similarity index 98%
rename from test/language/statements/class/params-meth-static-dflt-rest.js
rename to test/language/statements/class/meth-static-dflt-params-rest.js
index 2303bf8e71..f8128ca870 100644
--- a/test/language/statements/class/params-meth-static-dflt-rest.js
+++ b/test/language/statements/class/meth-static-dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/cls-decl-meth-static.template
 /*---
 description: RestParameter does not support an initializer (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-trailing-comma-dflt-param.js b/test/language/statements/class/meth-static-dflt-params-trailing-comma.js
similarity index 97%
rename from test/language/statements/class/params-meth-static-trailing-comma-dflt-param.js
rename to test/language/statements/class/meth-static-dflt-params-trailing-comma.js
index 61227f21af..38309b406f 100644
--- a/test/language/statements/class/params-meth-static-trailing-comma-dflt-param.js
+++ b/test/language/statements/class/meth-static-dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/cls-decl-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-trailing-comma-multiple-param.js b/test/language/statements/class/meth-static-params-trailing-comma-multiple.js
similarity index 97%
rename from test/language/statements/class/params-meth-static-trailing-comma-multiple-param.js
rename to test/language/statements/class/meth-static-params-trailing-comma-multiple.js
index fff7d216f6..c685407165 100644
--- a/test/language/statements/class/params-meth-static-trailing-comma-multiple-param.js
+++ b/test/language/statements/class/meth-static-params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/cls-decl-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-trailing-comma-single-param.js b/test/language/statements/class/meth-static-params-trailing-comma-single.js
similarity index 97%
rename from test/language/statements/class/params-meth-static-trailing-comma-single-param.js
rename to test/language/statements/class/meth-static-params-trailing-comma-single.js
index ddd38dd2f8..ebc60bb79f 100644
--- a/test/language/statements/class/params-meth-static-trailing-comma-single-param.js
+++ b/test/language/statements/class/meth-static-params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/cls-decl-meth-static.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (static class expression method)
diff --git a/test/language/statements/class/params-meth-static-trailing-comma-rest-early-error.js b/test/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js
similarity index 97%
rename from test/language/statements/class/params-meth-static-trailing-comma-rest-early-error.js
rename to test/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js
index 996080c2f8..30d84ba960 100644
--- a/test/language/statements/class/params-meth-static-trailing-comma-rest-early-error.js
+++ b/test/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/cls-decl-meth-static.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression method)
diff --git a/test/language/statements/function/params-dflt-abrupt.js b/test/language/statements/function/dflt-params-abrupt.js
similarity index 97%
rename from test/language/statements/function/params-dflt-abrupt.js
rename to test/language/statements/function/dflt-params-abrupt.js
index be2943bea0..d269400192 100644
--- a/test/language/statements/function/params-dflt-abrupt.js
+++ b/test/language/statements/function/dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/func-decl.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (function declaration)
diff --git a/test/language/statements/function/params-dflt-arg-val-not-undefined.js b/test/language/statements/function/dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/statements/function/params-dflt-arg-val-not-undefined.js
rename to test/language/statements/function/dflt-params-arg-val-not-undefined.js
index 5940a3b49f..c53ad2e2dc 100644
--- a/test/language/statements/function/params-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/function/dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/func-decl.template
 /*---
 description: Use of intializer when argument value is not `undefined` (function declaration)
diff --git a/test/language/statements/function/params-dflt-arg-val-undefined.js b/test/language/statements/function/dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/statements/function/params-dflt-arg-val-undefined.js
rename to test/language/statements/function/dflt-params-arg-val-undefined.js
index 94ac62b05f..6665612f1e 100644
--- a/test/language/statements/function/params-dflt-arg-val-undefined.js
+++ b/test/language/statements/function/dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/func-decl.template
 /*---
 description: Use of intializer when argument value is `undefined` (function declaration)
diff --git a/test/language/statements/function/params-dflt-duplicates.js b/test/language/statements/function/dflt-params-duplicates.js
similarity index 97%
rename from test/language/statements/function/params-dflt-duplicates.js
rename to test/language/statements/function/dflt-params-duplicates.js
index c6bd4d05de..e3301291aa 100644
--- a/test/language/statements/function/params-dflt-duplicates.js
+++ b/test/language/statements/function/dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/func-decl.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (function declaration)
diff --git a/test/language/statements/function/params-dflt-ref-later.js b/test/language/statements/function/dflt-params-ref-later.js
similarity index 97%
rename from test/language/statements/function/params-dflt-ref-later.js
rename to test/language/statements/function/dflt-params-ref-later.js
index 3fac60a259..f2a0ef2d03 100644
--- a/test/language/statements/function/params-dflt-ref-later.js
+++ b/test/language/statements/function/dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/func-decl.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (function declaration)
diff --git a/test/language/statements/function/params-dflt-ref-prior.js b/test/language/statements/function/dflt-params-ref-prior.js
similarity index 97%
rename from test/language/statements/function/params-dflt-ref-prior.js
rename to test/language/statements/function/dflt-params-ref-prior.js
index 4a160ca5a5..504dade308 100644
--- a/test/language/statements/function/params-dflt-ref-prior.js
+++ b/test/language/statements/function/dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/func-decl.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (function declaration)
diff --git a/test/language/statements/function/params-dflt-ref-self.js b/test/language/statements/function/dflt-params-ref-self.js
similarity index 97%
rename from test/language/statements/function/params-dflt-ref-self.js
rename to test/language/statements/function/dflt-params-ref-self.js
index c87facdce3..65a7a124f5 100644
--- a/test/language/statements/function/params-dflt-ref-self.js
+++ b/test/language/statements/function/dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/func-decl.template
 /*---
 description: Referencing a parameter from within its own initializer (function declaration)
diff --git a/test/language/statements/function/params-dflt-rest.js b/test/language/statements/function/dflt-params-rest.js
similarity index 97%
rename from test/language/statements/function/params-dflt-rest.js
rename to test/language/statements/function/dflt-params-rest.js
index 0698f79808..577185b131 100644
--- a/test/language/statements/function/params-dflt-rest.js
+++ b/test/language/statements/function/dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/func-decl.template
 /*---
 description: RestParameter does not support an initializer (function declaration)
diff --git a/test/language/statements/function/params-trailing-comma-dflt-param.js b/test/language/statements/function/dflt-params-trailing-comma.js
similarity index 96%
rename from test/language/statements/function/params-trailing-comma-dflt-param.js
rename to test/language/statements/function/dflt-params-trailing-comma.js
index cffac9665a..61ac65498f 100644
--- a/test/language/statements/function/params-trailing-comma-dflt-param.js
+++ b/test/language/statements/function/dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (function declaration)
diff --git a/test/language/statements/function/params-trailing-comma-multiple-param.js b/test/language/statements/function/params-trailing-comma-multiple.js
similarity index 96%
rename from test/language/statements/function/params-trailing-comma-multiple-param.js
rename to test/language/statements/function/params-trailing-comma-multiple.js
index 1e6edb0df8..5dfed438e9 100644
--- a/test/language/statements/function/params-trailing-comma-multiple-param.js
+++ b/test/language/statements/function/params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (function declaration)
diff --git a/test/language/statements/function/params-trailing-comma-single-param.js b/test/language/statements/function/params-trailing-comma-single.js
similarity index 96%
rename from test/language/statements/function/params-trailing-comma-single-param.js
rename to test/language/statements/function/params-trailing-comma-single.js
index 1c575780a6..0cdaa47e1c 100644
--- a/test/language/statements/function/params-trailing-comma-single-param.js
+++ b/test/language/statements/function/params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (function declaration)
diff --git a/test/language/statements/function/params-trailing-comma-rest-early-error.js b/test/language/statements/function/rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/statements/function/params-trailing-comma-rest-early-error.js
rename to test/language/statements/function/rest-params-trailing-comma-early-error.js
index 254d616c8b..094615c259 100644
--- a/test/language/statements/function/params-trailing-comma-rest-early-error.js
+++ b/test/language/statements/function/rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/func-decl.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (function declaration)
diff --git a/test/language/statements/generators/params-dflt-abrupt.js b/test/language/statements/generators/dflt-params-abrupt.js
similarity index 97%
rename from test/language/statements/generators/params-dflt-abrupt.js
rename to test/language/statements/generators/dflt-params-abrupt.js
index be0d0f1b79..14d99ef7b9 100644
--- a/test/language/statements/generators/params-dflt-abrupt.js
+++ b/test/language/statements/generators/dflt-params-abrupt.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-abrupt.case
+// - src/function-forms/dflt-params-abrupt.case
 // - src/function-forms/error/gen-func-decl.template
 /*---
 description: Abrupt completion returned by evaluation of initializer (generator function declaration)
diff --git a/test/language/statements/generators/params-dflt-arg-val-not-undefined.js b/test/language/statements/generators/dflt-params-arg-val-not-undefined.js
similarity index 97%
rename from test/language/statements/generators/params-dflt-arg-val-not-undefined.js
rename to test/language/statements/generators/dflt-params-arg-val-not-undefined.js
index 82a607d1c5..f08c4a5258 100644
--- a/test/language/statements/generators/params-dflt-arg-val-not-undefined.js
+++ b/test/language/statements/generators/dflt-params-arg-val-not-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-not-undefined.case
+// - src/function-forms/dflt-params-arg-val-not-undefined.case
 // - src/function-forms/default/gen-func-decl.template
 /*---
 description: Use of intializer when argument value is not `undefined` (generator function declaration)
diff --git a/test/language/statements/generators/params-dflt-arg-val-undefined.js b/test/language/statements/generators/dflt-params-arg-val-undefined.js
similarity index 97%
rename from test/language/statements/generators/params-dflt-arg-val-undefined.js
rename to test/language/statements/generators/dflt-params-arg-val-undefined.js
index 8270c9050d..0d50fc6835 100644
--- a/test/language/statements/generators/params-dflt-arg-val-undefined.js
+++ b/test/language/statements/generators/dflt-params-arg-val-undefined.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-arg-val-undefined.case
+// - src/function-forms/dflt-params-arg-val-undefined.case
 // - src/function-forms/default/gen-func-decl.template
 /*---
 description: Use of intializer when argument value is `undefined` (generator function declaration)
diff --git a/test/language/statements/generators/params-dflt-duplicates.js b/test/language/statements/generators/dflt-params-duplicates.js
similarity index 97%
rename from test/language/statements/generators/params-dflt-duplicates.js
rename to test/language/statements/generators/dflt-params-duplicates.js
index dab5023306..455c19738d 100644
--- a/test/language/statements/generators/params-dflt-duplicates.js
+++ b/test/language/statements/generators/dflt-params-duplicates.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-duplicates.case
+// - src/function-forms/dflt-params-duplicates.case
 // - src/function-forms/syntax/gen-func-decl.template
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator function declaration)
diff --git a/test/language/statements/generators/params-dflt-ref-later.js b/test/language/statements/generators/dflt-params-ref-later.js
similarity index 97%
rename from test/language/statements/generators/params-dflt-ref-later.js
rename to test/language/statements/generators/dflt-params-ref-later.js
index cfdb9377a5..6c351f0186 100644
--- a/test/language/statements/generators/params-dflt-ref-later.js
+++ b/test/language/statements/generators/dflt-params-ref-later.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-later.case
+// - src/function-forms/dflt-params-ref-later.case
 // - src/function-forms/error/gen-func-decl.template
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (generator function declaration)
diff --git a/test/language/statements/generators/params-dflt-ref-prior.js b/test/language/statements/generators/dflt-params-ref-prior.js
similarity index 97%
rename from test/language/statements/generators/params-dflt-ref-prior.js
rename to test/language/statements/generators/dflt-params-ref-prior.js
index 9498dcade2..39eb6654db 100644
--- a/test/language/statements/generators/params-dflt-ref-prior.js
+++ b/test/language/statements/generators/dflt-params-ref-prior.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-prior.case
+// - src/function-forms/dflt-params-ref-prior.case
 // - src/function-forms/default/gen-func-decl.template
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (generator function declaration)
diff --git a/test/language/statements/generators/params-dflt-ref-self.js b/test/language/statements/generators/dflt-params-ref-self.js
similarity index 97%
rename from test/language/statements/generators/params-dflt-ref-self.js
rename to test/language/statements/generators/dflt-params-ref-self.js
index c9f041bcf4..387f8db2ee 100644
--- a/test/language/statements/generators/params-dflt-ref-self.js
+++ b/test/language/statements/generators/dflt-params-ref-self.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-ref-self.case
+// - src/function-forms/dflt-params-ref-self.case
 // - src/function-forms/error/gen-func-decl.template
 /*---
 description: Referencing a parameter from within its own initializer (generator function declaration)
diff --git a/test/language/statements/generators/params-dflt-rest.js b/test/language/statements/generators/dflt-params-rest.js
similarity index 97%
rename from test/language/statements/generators/params-dflt-rest.js
rename to test/language/statements/generators/dflt-params-rest.js
index e4cafaece4..150421d26e 100644
--- a/test/language/statements/generators/params-dflt-rest.js
+++ b/test/language/statements/generators/dflt-params-rest.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/dflt-rest.case
+// - src/function-forms/dflt-params-rest.case
 // - src/function-forms/syntax/gen-func-decl.template
 /*---
 description: RestParameter does not support an initializer (generator function declaration)
diff --git a/test/language/statements/generators/params-trailing-comma-dflt-param.js b/test/language/statements/generators/dflt-params-trailing-comma.js
similarity index 96%
rename from test/language/statements/generators/params-trailing-comma-dflt-param.js
rename to test/language/statements/generators/dflt-params-trailing-comma.js
index 602c6749ff..37125ebe7f 100644
--- a/test/language/statements/generators/params-trailing-comma-dflt-param.js
+++ b/test/language/statements/generators/dflt-params-trailing-comma.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-dflt-param.case
+// - src/function-forms/dflt-params-trailing-comma.case
 // - src/function-forms/default/gen-func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (generator function declaration)
diff --git a/test/language/statements/generators/params-trailing-comma-multiple-param.js b/test/language/statements/generators/params-trailing-comma-multiple.js
similarity index 96%
rename from test/language/statements/generators/params-trailing-comma-multiple-param.js
rename to test/language/statements/generators/params-trailing-comma-multiple.js
index 13e6370a2c..368f87868d 100644
--- a/test/language/statements/generators/params-trailing-comma-multiple-param.js
+++ b/test/language/statements/generators/params-trailing-comma-multiple.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-multiple-param.case
+// - src/function-forms/params-trailing-comma-multiple.case
 // - src/function-forms/default/gen-func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (generator function declaration)
diff --git a/test/language/statements/generators/params-trailing-comma-single-param.js b/test/language/statements/generators/params-trailing-comma-single.js
similarity index 96%
rename from test/language/statements/generators/params-trailing-comma-single-param.js
rename to test/language/statements/generators/params-trailing-comma-single.js
index dcce7705ee..0627fab764 100644
--- a/test/language/statements/generators/params-trailing-comma-single-param.js
+++ b/test/language/statements/generators/params-trailing-comma-single.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-single-param.case
+// - src/function-forms/params-trailing-comma-single.case
 // - src/function-forms/default/gen-func-decl.template
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (generator function declaration)
diff --git a/test/language/statements/generators/params-trailing-comma-rest-early-error.js b/test/language/statements/generators/rest-params-trailing-comma-early-error.js
similarity index 96%
rename from test/language/statements/generators/params-trailing-comma-rest-early-error.js
rename to test/language/statements/generators/rest-params-trailing-comma-early-error.js
index 464669ec1f..b6a1753a57 100644
--- a/test/language/statements/generators/params-trailing-comma-rest-early-error.js
+++ b/test/language/statements/generators/rest-params-trailing-comma-early-error.js
@@ -1,5 +1,5 @@
 // This file was procedurally generated from the following sources:
-// - src/function-forms/trailing-comma-rest-early-error.case
+// - src/function-forms/rest-params-trailing-comma-early-error.case
 // - src/function-forms/syntax/gen-func-decl.template
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator function declaration)
-- 
GitLab