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 19404642d06bd4feed0038e435edbf7fc63e8696..edb29e6bbff81b155fe4f0516048a3a975c099e9 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 8a960cdcb0eddbc74fcc8f6ea01a822419dbed0b..59230245c6f17b2115faeff0140d50c5b735bbe0 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 d507f4e5ec063105f1bfe070ffe66142ec3ece39..a2db1f0d3894df6399e5fd144b2c460a63a39264 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 453f515a4b7271a7a93e6f465a14ae52bc6d81d6..fa7da08f9c28b58ce560bbdeb97da786c985cfdd 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 af22068be0d41fa9c54b351ab800f222706f46c9..f6d54e0356a4239950d7d895caee1389c33777dc 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 04b050d3fd1df02bc82709c158fa83e10ac1070c..6f5b19c4c4b4b1b74fee4c7b7bcbfb95fafedb3c 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 f277d51337f678547c8ab509d5503a3d96de7701..c0cbc325118660cf4b762f240d14bf1d0cf229b4 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 b2782f1cd66e67a335656111466905145efffa70..fcc01479a54d32004fc7ca1174214170748b90e0 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 b5910ff5931af68f88136e4d5f1adeea7e1a9042..2fd2c18f5209cd6ed5e754430cbfb6b0d4b243a0 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 32a9d3a7648d7a06cf4110b919f360e621f6e1c2..f8ad3d0387d810c731e5087450f323dc03c93c34 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 b3a6ba8a710047c764bd63542e63f55ad9a8dc06..8c5c84e307856f791f58f6ca9fa0cab8ac51e70f 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 ac3710a87074db75010048ffefacee69dd14b81b..2369485c9633a99bf7c4f0b4a8d6474084a942bf 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 7d0c69d1545d7e6bd15da303b431ce8b18f0a18f..41eb07215d40f7d233c1aa59625886f3b396eeea 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 6ac2ace1c0c698ae461789c4239503ce47759120..d33ef1805f892f738a1bf2e0c5af92dd9dd255d5 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 7389cc51e9bab8260460eaada96f850af3b615ec..dca6c135ce4c4c2a47362f0c0604c58c8892fb40 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 3ee1f645ba3d344e466ecd74c2ef3c1f31824db2..dbdbfea745ccb641c06245765a36c95ab9256321 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 67ce4d54c59ea59bef629d93d85bc76ad932586a..ad9cd75f3a69586c719a7231a7a66eadd2b8c0c4 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 b3b8402818968bbb51ac5e2bfcbbead639ba8025..da9ef74e14d9aea8cfd100b2fb746c7499a419a2 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 2b025b1f272071032df28fbb06be4d7cb87142c5..cb44370169d1f7ecdeae4995ef301c5fd17b87b6 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 666723a9a1842a746ff869c80f7491b403dedb3c..c12734f96f1a7ac6944e99eaec9949ce14530bc5 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 1a797aa980f59ce1cbf6291fdf881356ba501f5c..c93b91741e6dc0bf260954e4d08205af70794c78 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 770887168cd30cf5e075b4f44419b75050fea1f0..7358363b9ed57c472f3a4464959e572e6f09903f 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 f729a442ca1a8828d54c6c9ad09cf4b8c3a50ed2..699ee48466d13507b4a5db3370a5293525eb7734 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 5a36a31ab2dc4eecf7a762c6da0563f525cfd2a9..798bc691790878143f90f60089851019f8ff9b46 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 cf08d53d0bfb2d89954c9d4c5d071608b9e87562..1a0fcf7785a055fe2237e5e1557d7f98fb2cc4bd 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 b1460168d41db4b70c871b1ca9e88a1aa5ef6780..04d0bf5e839c7ec206a76e0d9070e4a8cde16069 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 4b68d6fd37c2a7ff6b495d3ab117a6d7cec0103b..841ed2e637970964b9d7ff79fb0e841f2c71e420 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 ffd2447438764f618c7d4a3d66ffa532261f360a..f96b4815110a981587e49e360d509259b80e98a9 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 9720302d40f8d03168aa57176a8c8fa85f07c6ad..6b92f2abfa7828ae634aa85f2856eade9e34a995 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 02ebc63c388f83d7bc8c874fe1261622e688dad3..6dc103bcc1f3bc0ca5e3998f19500c25d16d54b7 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 81cb12a473907703270c3a5f5acc27c1fa4c1bb6..02910ed585649be5248c64b60a79821f8089da5f 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 1c4d2553176d376a86e9676686efb92fa6133464..8aa68aa06b3f58447bb216b85468b8ef5aff23d4 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 a431a3a944f519f9190decd7fb142692ee8d960d..5914d38a2f0da953eb5904ecbcb1859eed50c92e 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 2aa8c8284e6a12de97060e0c40f74be98d2387df..5eccfc29de2139fc1cef95041776050516bc2096 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 19f4eab18c450e154e76e6d93aecb036d4d84d2e..fd0d787d3cecb313a5af4720a48ffac58ce64550 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 cb4bb55ca02113316140f68aaea2378d3f2f9ec2..a4158e2241531074df3e9a5ad049a6b5a6b2efa7 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 07a9ca9fd94e2535d8bda302487c8f94f1adb659..a40af7de8ca4e8c3c667504f2fed26866366f0d7 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 242d0dd28b5c4b3ed74af372aa3f1ed74dcf7897..d6b035aaf1a8264573a61d0c2815e486cf06bbd4 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 3fc9a95c3519528dc0051471157a7fd18924aa85..21aa7b209fb7e258bfa8e1ca5657ba2dc110a54f 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 1516acf3de5bed79acb0cf7261aa260ce40997b3..66e01cc6c1a607cf1f81a2f81c54baa5447f781f 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 ff1ac6f609a975a88b292e9b90541c1daf5b558a..f3179cd0ecd51b288326fb759aff732b42500926 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 7d3a1ecf3ff97b009ed19b8071e570cbee611d81..443700eaeec7c1882efcb52705fbc11c15393ecb 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 000a932a56b01e54e848fcf7f6f47c18643e1938..d7c24468168001ee3f20edc5fc3e276f5da76bb9 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 e1d772bc3925456696b24f22319f8ff4e1e6c891..56f4d99359f77fbf5e0aa73eba206c10bf639e6c 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 63f091146185df95d6ca03d14f0e7f0bf6b6f254..18fd3e114e0532e653cf7cf706459bee1126e310 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 cac540994a5267f0f46bd3aa4040668c9cf4be65..ff31fd5455886d3504c430881b17a8b53321f3db 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 a8a977ec153d82f0e22a0f121ddbdd666b6e820c..0056f61443ca4a03afaa2a356b21248a9ddf81db 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 8c9f829e65d40fd601f8d7979a0d526483183741..acbcdab2df2245b670a8190db40b044528fef37e 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 633968c46b8b5585ebbe9932445b6ed88b052226..2dfd4ac88a65d22ac0959de82cfd8b59e2ccf8bc 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 f39d4abf8e15912a031ba9f35b6a1d1f8ccb3e67..5744ae085896ea477c5f634514529a90ba89892f 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 b162f30b3e283b75ece5329f74d7bc69c2b25969..0d3586bbdde2aba914271004c69a4588e76bcb2a 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 438aeae9eaa0e446e38172e8e73e6c4c781feadb..0a4c5cd131d9d834add814cf10502f01ce200bb5 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 6bd15dcc0890f60b501b8532e83b9a7a874056dd..61870a87e9d23eb4ca2ecf77eb89a209e915c48b 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 9645f4739cf304390e4e2f0a47ec1ecb19ecf576..27c6ca0ff4b24c2962a7349d5551ceae741de83e 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 571fe47a8ff28e6599ae4b59172d8c1445bf12e8..039e1e19f915a4e8e690b9878c07aa056fdb8a88 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 aee2de278d609951dd13fbe2de1cafe6d7a93e3b..6b9bf88ea4bad824bc4f6df3456c1cf28c9ea0f2 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 de17e0dcb1cff06e72eb37eb27b3cc9c22c8678f..92ef0c97d3b76193ea15b513f636dfb722d66140 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 7bb2faff1305f8bc3e04c7b6b884af2b3637c1e0..0559222be55e09addbb5b3611876145ac6924b96 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 d9294149f66e9ef025e2b919732e84bfbf57553c..5c7f48400b006997d1a3a65b1d4d1f3ad40713db 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 c552f8da7d8243c3f5b00cfda2e15316773763a3..a737290183dbb2052213b42bbac0d076942e2e47 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 342636e73dc5aa43ff761314b93b0ce685098edd..36a72a414d45dfe3aff9eaacf85623536bb1df32 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 135f650de9a297540301dbf806ed3a00edc6405f..3649b6937afd5843037f7cccb992053430b9f813 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 a4f4b7c752efe8a365b105fde17a9423224a3bb6..bfe25d1a72ac0b3c93389700ed7dd325a9d09d8f 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 6d3523ab000c65fcc7bc22c9f3709d7734914a28..c5664b523cc7a6d46d58c23198ec2ba5390eaf12 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 5153f1a29ec8d331255f247b7fa9282c14c8c59d..7ded24cd5fc831da9a8710e08a98da24024694b7 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 16c0e2654c35abd4ef64dbf51a60ffcb8f9802b1..2b66692334714fd98118f79995d6474bbae3fa4b 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 2f588adbe31a4cc521d4717b412e3e4b5401c82f..55e41408c445670ae1e568df36d8c54a2049e5fe 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 cb5a19a168bf3b40d4a576e3b6ae00ee10df1f1b..3b0b26029c9dd6c460245f816ae03f5cdaf765cd 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 0000000000000000000000000000000000000000..4a92b9d3654706faf79b2d75eeaf4ab67e864b1b
--- /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 0000000000000000000000000000000000000000..b6e9ea786de12cc10dc7abe4a426851294799060
--- /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 0000000000000000000000000000000000000000..75fbf246a4060b1a248cc604aa21e18304d72cd1
--- /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 0000000000000000000000000000000000000000..dc99f2c139552e0469cbab42e7eb60f11bd72574
--- /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 0000000000000000000000000000000000000000..b1f1c9fca379b5b8af4f58c8f504ffc8e1985968
--- /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 0000000000000000000000000000000000000000..6225f7633d88f0a02f36d6a18f851dac018487cc
--- /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 0000000000000000000000000000000000000000..b2c3a2ec0e62726d4114f083d911cdbdb7f125ab
--- /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 0000000000000000000000000000000000000000..ee34c1f109b5e190cbd56bf2db7315f53edad38b
--- /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 0000000000000000000000000000000000000000..c573b2003b21f919a869b107f0820b391d0d1cdb
--- /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 0000000000000000000000000000000000000000..71c1803d29fdcd94410a07c421fba8f0c036aaef
--- /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 0000000000000000000000000000000000000000..47612e2807f1bb898010482a128824877d883a12
--- /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 0000000000000000000000000000000000000000..6c16952d6be88212f6f961227bd6f4fe54ee8f21
--- /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 0000000000000000000000000000000000000000..59bf344175fdf109c6b27f22b392bf6fd92172f0
--- /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 0000000000000000000000000000000000000000..883b59530c5f832168250344d1e009a135ca3959
--- /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 0000000000000000000000000000000000000000..896528a2b8c3c280857b87ede65e4424f056a2eb
--- /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 0000000000000000000000000000000000000000..943b1f98dd869085ee0466f868195fc20d30c599
--- /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 0000000000000000000000000000000000000000..df85f734fbc4010bac0a357e0ab6d1567c192274
--- /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 0000000000000000000000000000000000000000..e58f833f95658ebe8d69ffd93441cd0b9679e117
--- /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 0000000000000000000000000000000000000000..3b2141252f532032bb88adb6254049ed139cc844
--- /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 0000000000000000000000000000000000000000..a6469528121a9910cfa0d6dcee3d49a7714bba2d
--- /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 0000000000000000000000000000000000000000..b85f48d055c7496fe5a77701e1ce26b7cda8618e
--- /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 0000000000000000000000000000000000000000..d75b5340f64752c770d5b874f9ea3a85735e261a
--- /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 0000000000000000000000000000000000000000..b1e4a4745f7724c02f818cec97f490586c4b99ab
--- /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 0000000000000000000000000000000000000000..d37212158f5f4fa55b69576729a22072b744f2b4
--- /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 0000000000000000000000000000000000000000..6ce5cda340147e1d88c89b1f620cc9bbb50421ff
--- /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 0000000000000000000000000000000000000000..4dee97e98b1dc18bf0bb8ac9733dafbdc0c8509c
--- /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 0000000000000000000000000000000000000000..d359183ce0191076ce503938ffd6beb11582c956
--- /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 0000000000000000000000000000000000000000..f29eae0159c1428815f2444491e60c058443ab33
--- /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 0000000000000000000000000000000000000000..c0da90a866e2d5039d04256789cc6d704f694f56
--- /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 0000000000000000000000000000000000000000..42e1111132c7f0f954baccabad14e5674079506a
--- /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 0000000000000000000000000000000000000000..a98a3afd6e7bacf1f880b599a61e5690213a0f75
--- /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 0000000000000000000000000000000000000000..01925e0626fda35eb472d62cf96611b53e9cb6d0
--- /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 0000000000000000000000000000000000000000..f19210db6c95f9a25203a4cdc33a380584104a6f
--- /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 0000000000000000000000000000000000000000..48e741e2590821856e569e4e5d17434fe4056c51
--- /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 0000000000000000000000000000000000000000..07def87fd782acd2fd2b57b3c81c0da76481ad02
--- /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 0000000000000000000000000000000000000000..a296afa076a9d26b20b102cebbb4035631bb076a
--- /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 0000000000000000000000000000000000000000..e9c6dbee3f8761d71f52f1a7132f9f384357058d
--- /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 0000000000000000000000000000000000000000..855395b65465ff2d191c0fa8dc8d55912ec17e64
--- /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 0000000000000000000000000000000000000000..fdda70572a024bcc05323e02988e5807f85d65a1
--- /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 0000000000000000000000000000000000000000..58692738102f54df9134f7e1f50381e94a6dca97
--- /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 039ca48e9afd1aea60267a6baa73b84147cc9780..3f27f746685796e5ffdd554c5f2a9b9f16581cab 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 6459d01f70a9b790f5b31f548703db94a3bd331b..712be07ebb50a064aa28ab3859563ae017962f69 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 3efac1218242072d3a2aa902af031d6b0bdd3a8e..d9112e057f41e986f62d84b78ab4b3a798eaa5df 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 c87f18a69b069e92011f6b92a527d6d1dd5f8519..98c19a6c06ccc6428c25ca887115fde51db4619c 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 aee03311f15bfba887541e26d74c8aa861aeffe2..301e861d6930785cf947351bb7c5016aa041a505 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 2b9dc29ef18f5fc7635193f7064786b0d78a8764..6200ab61801000de2a4c033354988b2b3158e3d1 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 f49711c3f8856b0fba8d079423ed8a539aaf21dc..7cb0833ad0ba5432b0a893f0f73e93bf224495d8 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 f5df8e60365a6961aba957f07b1404bbdc65657a..949a609e443d430f7537b2cdabeb5bd82be3c3cc 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 cecedbc44a92ce4d32b29a9ee643157f5560d325..13b609f669eb2fe881597088bafb17235a5d3ee2 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 0000000000000000000000000000000000000000..00dc217d68198966cabbdb43c73187ec656a94f9
--- /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 0000000000000000000000000000000000000000..f6f8ad42cac9a22292d610b607bc0d662628284e
--- /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 0000000000000000000000000000000000000000..9fd49fb9c219becf19fd27cabcfac2bed9f6f201
--- /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 0000000000000000000000000000000000000000..349642e230fe63780379ccd1b9af8426fa5fe4eb
--- /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 f571306a448adede5e61783f049d1e374391ef62..96dff245b335e6c2e6c2a6cd564b44f8a22fe92d 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 bbd83f939624bee30f5ecd786902590424cb9023..7203d255a75ba4659d248d8dd0ba2b670f193c54 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 e1b0da273bfb1e765fd6fa3aaa0f3416a01a26c0..ac2fb37f94a40b4b72567fc75d2c8bb75a254a65 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 ee00423e633d3f2d8c355583e7c6b38d18a638f6..610d7f6f046230c97bc54e1d1e13ff46b8cfdb96 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 3cfdb11c858f8c0f2b784cccef2147b96f39633d..77513032f8e3e2ff63f540537f80f4db42de67c4 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 b04e4ceae27ef1abc0216d8b7279470f8d6412d6..8965eadc575aa74df50cf42dbb5c5e7e49d71529 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 769be4780f54ae9e1aab01bcf616338043010ee9..519d3f284d16833801ab455cd748f8e440c2c500 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 0efea64c0cb11800200b8bad7aa10ff2621f78a9..53908d36d83a2c76c39dba393f3e07282fb9d777 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 974189c0264f82d3933b571a08519e64b816db18..ad024be5dfe7b99e966feb80ecd12d2ccf7566c3 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 638c03327588be639c6851a899a02e3f338649f1..aac5a3bd74da06ba1ceee3bae1b9fdba41c8527a 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 1e36fa7a9b487e4abe34e5e4f5f3ddc094b90d81..592a0a090ce25546268a23a86e499144bd97c7e8 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 68dbdedf50665046268b3fe98c6f1d5e5e695ee0..8a8f80557d4ff2ceb501d76dc50e42a90c509174 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 fab93501b5f5ddc52e09371e9d910ffe82ec752b..5c246d77c01a610dcdb551b28032eca4f950f410 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 37f6acf467788c38863b478b7df271cdab8be9d0..891dfb3169a863350d17eb62916b88260f272091 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 f76477bd799a8c34196da7668323148335771dd5..fc6f8f7ffae8202985f85db239de41fc3492fef9 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 0000000000000000000000000000000000000000..f1b4d919ea36e5228ef8f1aa1a44ec128d661250
--- /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 0000000000000000000000000000000000000000..017d66fda8c2e543bbcca97c2093fa198de3c98f
--- /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 0000000000000000000000000000000000000000..788ece51caf4e5f6645c8673d08344bdefae5ea6
--- /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 0000000000000000000000000000000000000000..da98971f979e941ee169ef2cdba812545d050a0b
--- /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 31997bc4746c99361f975c12748d60274c8ff2f3..fe0b2fe683eeed0d2f18ecff57d59baac22d7610 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 6577ab225534ccc3771cd3393b5c1d9a2e37a69a..cb41e01eefce66917cdd7a1bca1470658696ec92 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 a8aada3a166b00fe36d3bd8c403f5f52cb847fe1..89e11b59a510cce37c4e9b268463bb39ba150241 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 0c6c0e847ba596e7d289e0c9557c91994ea93fd6..e06bc841e50f1e74d95b6039d3d50a09c9ff8f23 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 865587e582abd67283e6c36d02359315184a1479..b71c7f8fad745eafdb83a29bc21f86c8472abbc7 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 7ea7e79a013507b92ccb58f00060191fe5095cb2..fc461de65c3c20563bd157db86af59540e24b988 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 277fbb870b9802b017bfc9c9cee963187dc2b1aa..c6d20769494d2d3a634c0d10c79ccb2a583809dc 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 47ece7659211c39fe4aa655e101f32096759adcb..7f75839710cbb04533656dbc7fa7f13b74594728 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 1231bfdd5165acd3ec7f85b5d9c8e74ca54ff59e..0b11e8badb02b08d2f4913d0592b6ce89b1e2ec5 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 20bee541d9ffea014f4c1d47749a0a21c5a62664..2f6c2b2e54e971decf81f28ca8e2a9053f538622 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 1a85e1d05fde95e15ec5ea0af06577a242ecb578..7e9950d05d47536f34435ab2b28be58cddd6da7f 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 fb9681cd298f3dd5e7fa4cdf5c9e95900c8cdb84..07c784ebee623f4917186870b73aa647517dd92a 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 0000000000000000000000000000000000000000..5cf7bfcd835d5d21caefe06516915da09fdaa526
--- /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 0000000000000000000000000000000000000000..d8bf42cdbfb5e7363127372331e6547f1f7808b8
--- /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 0000000000000000000000000000000000000000..afa2552bb309a3a3af8bd755faf40811ffb2e8a1
--- /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 0000000000000000000000000000000000000000..d058cc877f00c72dba4480cb245a974ed1c68fbe
--- /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 ed210d5ba2fad081045017b054574a203b46f855..cf1aa87631f49c348959f362e770ce97ce18eeb3 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 6ef13f769fdd060ac0735146709c4d4f563fb415..3a77e88fc2b521c8ce3deb70ae24d6560cd52f6f 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 1ce9866a9b31ff1bbb9b348e5fa04222a91a5dda..8bc41710b1f990a2899414b592a44e2113713b54 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 3b84b2f0602eb770b2247106a688fa4914b5b604..1a7fa9bdaafb046cb1a28e98c1ab17f132f48728 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 3b44924c408eeaad1271d56110c1588b3c0ec933..9c44a4307167a617e069e2e565c982c356924774 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 86b450c9d2b52501d1a608ee63e7e7391d2f93c4..65b302e355f03cf3508a3cb253dd0fa6826567c3 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 b42b984e4e5cdb85a66211239391615cfcff689c..3e47505fbf4a3bde22970ebe9da1693c60e32baa 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 4e96b42d8a47289583881f7da6c36ed1a1832c08..1945fbc1676d473e22f64d3214a2c052cf6253aa 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 e58f44d6705b5282e01220ef52dfedc79c99ed84..511db6c2986de319b635858e02f7a1da4dd9cab4 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 71f951534f89c3114d2755bf94715cb43e897956..326dfe367e2905c46aee6125b3c93bf66e9e98f8 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 0a7734fe9f637f291e085c00cbdcab3bbf794f48..1234b19cbd08a5f6320c76ffabb510780cfab334 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 e35726387fcdb29a15f50550f6270d9c4973dc68..972297221ea213d62145d6699a4e0cb8a9f09b83 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 0000000000000000000000000000000000000000..3d022ae7eb269148b5bdf7d5cd1f33f9053570f2
--- /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 0000000000000000000000000000000000000000..c5cbc33936fd383f4aa3283928240199ab929f0f
--- /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 0000000000000000000000000000000000000000..5671ac7f8fe0ba92b8e10152e8b2f6e0f1f3cfc8
--- /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 0000000000000000000000000000000000000000..8c1bb59aefb31983744bb4ba933cbcf320b15fd0
--- /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 0000000000000000000000000000000000000000..d0e8d3885b28bdc8d7421d5f6b3bc7890cfb63ef
--- /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 0000000000000000000000000000000000000000..bc3daf029ea69c88968b8b5050b01db2c23de295
--- /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 0000000000000000000000000000000000000000..7610efb1c40d9029fb26bda39337dcc1f77032f3
--- /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 0000000000000000000000000000000000000000..adaaf724bfaef1e4b6ed7d4ef012cf603c23d885
--- /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 0000000000000000000000000000000000000000..1b2564966255b4604b63aa93ca14b8dd43c2fed7
--- /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 0000000000000000000000000000000000000000..12f3375a8d5bf6744219b7311bf86412de7faf74
--- /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 0000000000000000000000000000000000000000..b3db8e16e918a4b4b01628cd9b32d0e1281a1075
--- /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 0000000000000000000000000000000000000000..871c79360da5d2f9163aab1276f5b65385f43e12
--- /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 0000000000000000000000000000000000000000..3bdd1a3c90dbd097b636b178c03db1e93fd606a3
--- /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 0000000000000000000000000000000000000000..ba8c07f2bd9ee1acdd8f1a0991355d6af879aa13
--- /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 0000000000000000000000000000000000000000..31114a95190c5aa7ce12df9dd6b7193f4f792a15
--- /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 0000000000000000000000000000000000000000..6d5d586ace7289d75a19d74d333ff60e6b021c49
--- /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 0000000000000000000000000000000000000000..321f7ac4c7485a9f2787aa7785ba5f7e5d354dbc
--- /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 0000000000000000000000000000000000000000..903438149e61ab578ff597c30a47b523938f7eed
--- /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 0000000000000000000000000000000000000000..e7b3af1f59e4ad59b588a910b93dc5514f6d17a7
--- /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 0000000000000000000000000000000000000000..0b9884128290308aa0c4f253afc10f8169e607d4
--- /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 0000000000000000000000000000000000000000..9afa64ed456f0abcbd5b80653cc0a651c73134b2
--- /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 0000000000000000000000000000000000000000..172b92ce92689a699edf131f833b65b323fc65f6
--- /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 0000000000000000000000000000000000000000..8177a8e1fce0f5bc002dac50c46092ebeb5e64f1
--- /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 0000000000000000000000000000000000000000..f1e1e00d0b22c075b1b56699213f608090dc8002
--- /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 b9bc3be8a22e908a22098c83a91a52c3db28859a..b393d79d57fb2dedc031eda4f98a254bcbb65bd6 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 9ad9e2468843f636fbb9242b487c8df265cc45fc..22138efe23c56b55a8251609421b06a38454d992 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 792329a81ef4ddfc761ddb3110d4b1c2cb98aaec..6dc6f3353f87b014d6a0b8f86991cd9e08df8bbf 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 6396ed595c18c5f5f18bca121dd5d31e9a1abadd..c6f327d6f61b428f1f877dd74700b680508b2c22 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 c20298514dbb25d3db6add7b5571c9db23267070..aec1a0e50da17e2913aef1de9b2ad30096177164 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 2cc5413dd39849c3ed1aaf4a0b787cf86c9252c2..20025cc04fcba499d7ea00389b93bdec1bf7cadf 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 30dd53f47e76ba2e3f3821762d20f0f204ad475b..7144f655bf443faf18ecad4eeee5128b3e278986 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 106dc70c27f4b3b32bea49a70d428ad8ac61a7c4..6ce951503bb5fe06a6eb7b1dbe79851004dd8881 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 0b910445e6f3563cf04e57dba80b3bc17b3a8f5b..210a23b36505c89f11f3fad8dc2d43038ce7a6d7 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 a485e44ee8039666b4c86371412bdd6c19138703..958e0d4e56511a4b507a1b72cdeb5a5055cd20d3 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 63a26f7b569c5f4378393068e02acc338e815adc..f9a484d54f302f4fd027050124011abd951eec09 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 0737dd45b09f5c3c5d31cd804b97a185c968309d..fbd4a01ef6ddf1b6f86b8e1c852c86a19bf793c1 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 782ee0f9a3dc132f109b5da25ada067323cd356a..a467d220586ca10c2a55abc9417c8aefbd90f42a 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 a40aee7bc9dabf39f4b0afe140bdbbf51c4579e6..53f378de6210a62d0e293b52231863271778bf88 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 1ca7363ab38c69146e12caddc91453d08e905d60..55f75b366dc853824d83a22a2706b6d3d903bb67 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 c46878e085f0d819a2946ea708c0189b3b54db93..9c8d30685ea417cc973c09f6c6eb32f337e91902 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 24dab85e8c271f4d75e00b441e9bb74ec0652d1c..5c0b19503e5317fa0527f43bae41776b5d2031bc 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 c7d8b4bd428b63078eb7082982ec6f93d8d1b385..f23a898026c5fd90593d4ca87cf38312223f45a5 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 0daf83b82e580b6d02f233fe0f335a143c3162d6..a05ae7116e99b41d2027667230f111fe07b62926 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 6bf05035f965a58c24472fafa219a81bb89b0e0b..e48b66f9afed05704117a87026b6a3757020089a 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 5e5af9cb3c68d57109335898aa56fb92451bd816..e31f613d0dc6895b637bd3b32ba8d2fd4b1bf7f7 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 94ccc4b6cead8858b59d76b2b812cfbad6c583c6..067edc370636c3b094898b30af00e4e754f18639 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 670864212f2390730dfba772d1aafc69602cde9a..c0cb9887b0879ce1321f47cf2e8b084d318bbc92 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 4b462a0e461b341d3b3458555f0452c8810ef817..7522a65cc8fd0c625e781dec81db71333ab90f8f 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 2cca3bcb03471a3489125e398f1a1c067b80966b..e1bf762d78b339fff1bb90920f530ef3e381aaa0 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 3d940d179bec5d389cf16533a319dec4c5ff41dc..e14532754637084176619906c3faef8ea73c5273 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 2ebc185c23498ea8541b8708ff96195f9d05e7db..72bcdb93fd3a6aa94642c0543b866eb2fc8668aa 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 a214faeeca2c890aa722b8bbfdbec065a7ce8514..cf5086bef463f90bcaf754815cc18366ac85a006 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 7a2c81ab4a13347bf446a61cddc1d124afb36c40..002696105d5f47e070f5b97cf17918ebfe0be864 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 c6336a5767924228f0e67660c4c36b26274990a5..197514e47b3009e4bfe40b8d1503c1c7be4c3e81 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 49c0d70f226919146baa5f5a54199da8af025c5a..aacddc328d29990aa80c40568551b43f5daea138 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 43199aa0bdc19ed0c22416d0adf674c6a6c365bc..ff6401a5fbc8bb78d8231aeeefdc3365baf4eb23 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 8323bc14c8d3efee446da03ca1db8e1ee2d0051b..8c347459ae45f90c853ba52887f48325d072cd51 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 03ff141e27fadb2694a4ad00fa232e70076af841..e749c149fb3c56e8bc27e1c076e8d8d865bb2f64 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 cddfc6643bce34962862ac81756d7c722c07afeb..559f96985041ff68517bc42c27e986caf9b1cfcd 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 6703152b56f6b48ee4ef58d0e4d81a569c6e6dcd..0d60556379f0ecd7ee9ab1d376a381171200cdb7 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 d19ddc46a5a522b6b85e0048789d215b7f2ec41d..a19cb3a93a127a99f3d3adc94abe81ffea859e82 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 a6a04dc5fd242845ef050b5091159df9555eac63..210287f8e20cc25570c926536a57fb5c9d05ee9d 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 08c0112fdd0ef7e8bdeec91cd9f3c8b355699eb1..5854132c704064586ae70f5cfd10a97d85a55044 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 57fd5eb26a6c59ead4ce395121b0b83cb00d589c..80b48b38f49c53faf013d83ab96fe66229af0799 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 81583141eb6ed0e4830c3080a0024f35e7c45ab0..d414001f23e32bf5e3c1badd1e48df6dd085e58f 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 77aa35555dd4dc0cfb3883dc2cbe8e09844d1ac4..f7af2cc1c685582d450e25c3d70c4c4d91f58afc 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 5b74043e3145803ff769e8ef13731047e6c076a8..129ee534c91a43837db6a1628bdb39da5c67ce2b 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 1b83468802ea5189c42df8258041c0968d75cedf..12569abcfc384de5b871ea6bfdcc2b80a8305fb0 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 68c81f18a8d7d2db317e5acc79e5d7870b4c0cec..76f6728d5a6a0bc889fed6f745c43d940cee1eb4 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 bb4c13ec2c4017ddfb0587a7c993fb1bdc605855..010e5b5c2048c4b694ca31d9b9fd853c2aec105a 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 560c4babdcfae0994e34afbe5146e5c6002e3965..8a8bb4650ae71da304e6bbf0bcd426e9a365b702 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 94424dc21dc0666bbf1f1c990be780ffd13a1528..466e998ef5276c15d7ff0d4acbcc4a118a6a5cc5 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 54732890efa5f232bb36a83d937ef3059dde629b..441fb8bad6d3ebc2ff41defdd55923ee573b4930 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 da52bd1a7b2490c1bf37fea0b97396cbcaca3da5..a2bdd7b8ce89fa46106a19c0e207fe6700c48a06 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 4e8b2a7d9a1c0b85bc5a2d455ff148b01456c9f2..6ece640d5cd4c486600366b7772d5ef7cede826f 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 c5b6ceb7aa1df396330c7488fba3a028afbd10f9..930fed977897b30a7f55e5f9adb0a52c7c10b667 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 f781306ce4a88e07b71f36a5404d89ef831905da..52fa732eb65199d6bc0aec4bcb8338def673202c 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 6b86c6368480b9166f657a9fb8a20705e29559f7..59e49aad5bab334d7ef6ef0e28ec936a25770588 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 bcf935cae3e852cb284a7c300ed9ee4a76636216..0bcd2c81c2854f926515b0bc764f089d59b29521 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 69bcde8df48f2794fac1c675527e6545998ab8d1..f5bab2d3273fd015c5e721e3daeed8dbe0606511 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 dc83d13e308998e2759f67e03777d57af3612904..a7954f58041116bededefc3577ebbb91dec8ffae 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 c0d1c436e5aba66559165ddc9af945b64dbd8f0c..efe0a16494068962e6ed17f42dab5def3191078c 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 baed40509b97b40107ebdb88e866f20e15962014..01541faf6a1cd5a8a5ca71feca7ad1103be943f8 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 ede500aa21b256dfc9f4b556ee83cd3a17c1c47c..34fd920cef6917a83bd05cee0f6a203623c58565 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 3a8b1e8eb950ffc27d92ba7ee143bbd5e86a8901..42b32132b053bf7a1c6aba5185df93189b5fbea6 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 68e6485cafd13ef03aba642975d6ea7882d07adf..5ac89d6115cd96227810d6ecd2c26b3cb6322296 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 83edde353fc9165267b59e3e50e4811e1a963c98..179d239d443b059cae40725df62eefca8735ea70 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 e42c77dc63a53c1b6ffbb10cb13267371bd5a24d..11c95daac11233661ba340741354c03cbb7094ba 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 53feb83f1521eb575ce8b9526d1cff0806f6e9ec..d8abc79f028a33e0b542bc97788e6d92ec74405b 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 bb686793c8d373af700372865f75f2def5d0fab2..065090c06d88482ade2e2cf282a0dd456b25f53f 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 fb99b6875504e96fdc194821efbeea0d410f7c89..22fca77f2fa8662a34468fa66c094254ac05e386 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 7bb5aecedad3431215e98bb0213a6915a193c458..0e3cd3bd2149ae6b40b092ac9261b868857d4311 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 476577cbafc8927a416f12674d477a684e70a384..c787e175bde4eb66d9082c51c899d7151c175320 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 667358035f4227bf1448b53fc13be63abb4f9c2a..557ec685955f1e56d362a8e96b0e5e5e9ed7727d 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 ddad8b0f161d8a29038d39e9d9c5ead5b4028e3a..25df59033a7e3c37b39c75c5eb53b61bd61eb906 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 826a347a42e346e05fd2c91a11ee0a3d3ac9fcaf..2aa773505015438beef5a8cf37806c514063e6b9 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 0000000000000000000000000000000000000000..656e979764e551be55a1dc790dc7f0723e551a99
--- /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 0000000000000000000000000000000000000000..0bdc228f9bfd86df049b9055513dd42972d107bc
--- /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 0000000000000000000000000000000000000000..905ca395fe177d015347543e9cab9cef2d99e74c
--- /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 0000000000000000000000000000000000000000..b9fc31fcbe9ebe648e8fb9ee5739cc4e135a2ea6
--- /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 32dc959baa2a2e997419aaef195704ae947a9fa8..30d6e00f9e7ecb7b8971d2bf6846fc279541e90c 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 2ed89209b0ccdb2af9d9d2a5e99b99362ac1a79d..bf3dfb95ad913e74b692c67c9eb3207881cfd0a7 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 a5a2cdb01ebb15981bb43608776916b7004e8563..2c19f815ea77422083af9291b6b3e2b817638b5c 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 4755683d9df3dc9ba433550ad8f518d7fd02ead7..8120c0e62013f0643cf5c5032d1321e9e9b8684b 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 b66c4d9fc1ed1fbd3760df8cac891d2d00ddd5ea..40cc9de66433496808380dcc62d004e48ec1f249 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 3432e64bd61b7de9cbcb3d000a210c0d2d69c90f..d7b07d73b3e1b2a28e8945682c3842772bf3a591 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 63b53ff25cf94694c14d8b20aa838a999e3453e6..876cf947ffb78bc6da28a767a24a8b53f34941e9 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 b75306e590d77eb92f40e3f4326e11dfc054cead..be3eafda5e3d04fe42598cfc2fbda200aa2b089b 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 a3dce45401894b0312622df9abf6ab41f538bccd..2ac6f787635e0455bafbaf7cb94446c50ed4b4f4 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 d357e487f6053e5a7ea212c4c908b39d7aabfc34..fb46babf2307026873d6db11c63fafbc195c0745 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 274e46d70cf19c8678a2e18cf6e39c75d47e0ec6..5712c60642cefc6468a944c31826ee9e4bed0e80 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 d9de6650b1ae60dcc02868801ae7ab4241b9a01b..3ac0cbd918acc7cc080ccbdfc0804fee3fec29cd 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 0000000000000000000000000000000000000000..21052dbf34f275995f58b5f0fc850e7d25a07771
--- /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 0000000000000000000000000000000000000000..2e73f929bd200f07d7a667cc976a20cd84bd2a29
--- /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 0000000000000000000000000000000000000000..7fca9a24fafb8ca21e5fe0079569cb0072394f43
--- /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 0000000000000000000000000000000000000000..f968ff506654521bdd06c3bde8cd5e6b314592bf
--- /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 0000000000000000000000000000000000000000..66dc44b258a210f234c46ca57653c4894164322f
--- /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 0000000000000000000000000000000000000000..e73bd575d017039d7d2093a6070a42183e1169ad
--- /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 0000000000000000000000000000000000000000..4e5a1efd7d864f5e3d9ab735698da4d89f9ae1fa
--- /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 0000000000000000000000000000000000000000..ac83ef99e50cb8260f558ec150456ca5194dda0c
--- /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 0000000000000000000000000000000000000000..f7420e796f6f8458ab8cb46bca04fd1aab88a7ea
--- /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 0000000000000000000000000000000000000000..35ac30a44a2bdc1a073a130c8e50aea4deaa9dc9
--- /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 0000000000000000000000000000000000000000..daebc1b10704cb475d74e6100883c49a1ef33f2d
--- /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 0000000000000000000000000000000000000000..eb1a994e60a244f01bea5629442ac921767cf976
--- /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 05b9e50ea69d39037cfb062c5a5ec429dcfc7bc6..0721454cd8d4b27e85e11927411207555d34dbb1 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 61a5d6ac01f234e08ea7fe7696e4c4668c3b283a..631b5c8cd062e8ddb7d7fd6f7037a083cefb8a61 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 e226a700d00965d12a87668c798bbbefbb08213d..4312dad4d5103d022ed91bc774d7e9d872958079 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 69fda8637e3d85dca0a45f9957b8bbed1a7df0a8..74f4b1f5ae2bfa5c867f6efd880a626ddc65fa13 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 76a83f062fd12d59bc3ef2a10f71bd6c6c79762e..28543598bee7989642f99baf4dcae7fa4d43e16e 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 29c960ea532c96ce857b1e5f4527af5f0d9c21ee..7c5a600583746495a0718010555f0979c00e39f5 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 80dbde9ab519053c84c7b4a9416ec2b8498b2fb1..16973080fd9a5b5932658238f4d59ab62c87ae4e 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 3a89cee509e4a80fd9cbfdaebfb104474058a44b..e1171d4889d1b963dc36e98c35bec35dbe283e53 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 bbf900a2e80fe30b18e220c59e12b06aba12e144..ecfd480e993db2570a5f316831bc4bb10b45c9b4 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 364c56ff5fefbd3adb88211b055c4d1439eb26d2..a21e8788a22ed877bf682af40fce6cc65e6038b0 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 1f4bb9c060faa351a08bed9471d202a353526699..e7153fdc7a2ea1d3a4148cf7a706b58c683cf01e 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 462a153c177c4a0445f86b76564a15156855da1f..1fafda10c08e606696bb5b6b2daa418c86d0c69f 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 ab75eb37f46c2ab7ee89794026861e8fb22b578e..a8ad20ea13bb33e929c9f3023eabcd9a671f7d78 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 544019e6aaae8a4812990895dbf872a0600b3285..c91a52d3dbd2cd60cdd2cb16b8ff40616fa84749 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 ce6608249e685db14946800856cb492ca163e57b..2f8b4ee5870577dc4ca7fa0368cde376cdf53741 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 1021a5e91bec97ee76a020606e4edf8391e7f1b5..ca6b30f3e64867ae34cd7a9e76ca71f70195917b 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 ebf9db451db51367a9af7d0b756339e18fce11c8..ee8e96ce88d4c816119863c2c3eb7558e1b0449b 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 893c8d82a55f82b92c31a87fefacdeadcc1152e7..ba8490b8e60bdc630ee5ce388e0ddd27b931cad4 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 8c9edc68d73cc6f640764aa82073fe8339d1a803..df160d7183e0e061cd6851bfeef4162b3640cc8d 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 5654997b0245ee59317e4df2813cd6ce747de725..8536874de753c95f409662e4af5dbe6fdc0dfa2e 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 82deafb0064443243c2d4de422cd4ff8b0f6633c..278b59f83b829aa479ee6de6f9a16f365259e9f8 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 7d9296c001aa29faec36b6fd889728a2e720456a..03835458ad4e70552cb0a62077d032a32ceac7eb 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 d3f32782001da956f281edfeb5c7afef51eed295..c2d1053951df04ef9bd96d82a52ed55ee1b57c4b 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 5afb841d99dcea72efb4c355bd13973bf08c809e..bc1d5dd470348080191cea81019ccde48e87684a 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 0000000000000000000000000000000000000000..90a7c98c3b87d96c1bc784b42ec404edf08e700a
--- /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 0000000000000000000000000000000000000000..da0415c5057cacc61c14fc3f7e3b3730cad43d28
--- /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 0000000000000000000000000000000000000000..7ed59a5a5d980f79e88a680d46ff42b62ee66df5
--- /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 0000000000000000000000000000000000000000..116b8b6c2ba818792a1c4151c44ea811015bc0ee
--- /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 0000000000000000000000000000000000000000..aa56ea0dcf5a3f6716a27b5889402fb9d85a0370
--- /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 0000000000000000000000000000000000000000..b97df71c5292ebb64c73f5d289fff7fe6c800803
--- /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 0000000000000000000000000000000000000000..714f611e92cfed6b29999c90cb01c51fc7c0c743
--- /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 0000000000000000000000000000000000000000..80db4e99532afc9e95ca7ac209780dbe96193729
--- /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 0000000000000000000000000000000000000000..f4fb4deb651169b6b37b80f31f81a34842e804dd
--- /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 0000000000000000000000000000000000000000..5a74e80f7cd11eeb33f50fb0b389d939611f0bbb
--- /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 0000000000000000000000000000000000000000..3a88578ec0f79c202eec0c4655eec90043152c9c
--- /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 0000000000000000000000000000000000000000..c01a639e1745e8342840f8c7fc71b7530053e108
--- /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 0000000000000000000000000000000000000000..3fa5bf10c18c9fa2f7ba6b3c9c7094c437fe7248
--- /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 0000000000000000000000000000000000000000..e909f6fd29f61c48991b4beb3b866177b9e12a05
--- /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 0000000000000000000000000000000000000000..d66c25ded3e886c9263af3a28af75006eb56fe35
--- /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 0000000000000000000000000000000000000000..087c872f786fabc1952e99f331503a0eaadc4c7e
--- /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 d8ac2523f3f5706c21511cfbb021faa1da3d36f7..ac3342d589ae023b47f095d93a52f3cffed94e7e 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 e840f27b31af2baafbbc27ac3920d17f1ac3180f..a65ebd5b5b086ed068c2b3222659b96fe0885979 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 0af23ba1b42fc740b5a209eb0be9734b239581ed..7f4841cd5241a6d0b7d34358fdcfdd4a7af75bb0 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 564016b44be98244f88ef622a11691771c7df6d8..d333063cbe346fe88c4e7a0a4dc00083a48a0a66 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 e247ef69d98c8aa7cc95de3419cbbb5adb5740d4..54255d5fd05009f275748cc0e9e4c163e4af1239 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 e692f5700a0d726381f139d5ce118fc99fc22646..1714a5666f1cce1fbbf503c6d6dba0fdb32b7a54 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 80ef75878bd78911785b145ffd1f606281333140..97d18e1b5f51495ecfc070a16c4c967f8944340a 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 71204f455541f07cc3e75b06fb1df83e0e26f6db..3e1e67aaf568e65a38c9cb6b0979d58b926ae9b6 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 0392bc0db03b0eb4392c517f27ce3393cf588b7b..70317400197303448e524c57e8f0c805035d51ff 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 bcfe76cb186a323515c28ce4f083fe46a5734310..c06861d38b66693b2e54a51e915bd5cca0890900 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 d27a76514c819192cf48963d5ab56b0a2d21abe0..0f8e99283534d2ab7c68060531e7512bb4bcdbc2 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 58287fe081569b512460cbe2bcfa45c1fe9fa3dd..f6a42b8bdfc1edfb9ad7beb1b3797a074bd7b99f 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 0000000000000000000000000000000000000000..9ee31b06bfd767f49605f529e386168fbb26b404
--- /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 0000000000000000000000000000000000000000..33833dcd7383014c0855fb2170e12a5188113f9c
--- /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 0000000000000000000000000000000000000000..b3e6e0f98d836212874d93b1addbcea5d2dc70b6
--- /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 0000000000000000000000000000000000000000..9b9c4a3c3afc2d1ef3851c013b3d2ece65eb7a9c
--- /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 13140655249427014045fbfc466ff3cbf8df2851..1e2f473e35135b4d4bbcbb5fef6c77b35b149314 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 fbbdf0795f2a84a40e8bc7152b9d9bcd0c644aea..34e66257d08909533cded6cf7f34505c75b320ca 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 2e537d137d95aab2452ed223237a26f25596f1ad..08c0068b1df67d1f7fcd0ba5134e5f2470bb2240 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 a017606419795137074bf2e5d527d420e87134dd..6ccbdf276bfefa3efe528ef84178df869d8855bd 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 9199416357354c6e6d953684ca09f6db87f926af..439ca9521427ef3432b5622a8ae797888b0eb346 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 4e0b22d6bfbb69c86435daf3c2adb1aba51d9457..ff1fa505eba6615daff905b2a81eaf2bba2a1f0c 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 44f5d36ba4d87b41704c26e22ea4fcbaf17a4067..a06a514785997c07963e8ad97715ecc80f74dffe 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 64711af94212399576570d84501220a4f1777440..ebbaec465c418688a3e09a42397c0a6d6f57d994 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 de1ae76e035ff4868805bb2fa5016a06bbdf0f53..b8b6d693bb683e9222ac0bfe11894b3da8bf99bc 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 2e543f2c405d63dbf8b157207c547d20d0df8940..f1170b8bc4f2e041acd9ce95f6ccc92bdd9807e1 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 87a817ff6d4c56f11e29361cee9fae5b663990e4..0e2453340580c022594450ddded80d842b54823e 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 0abaaaf97d2954c114c939dba8094b8e3e434183..6cbb12d0196725326201a215a4a1db3ff5f6935c 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 0000000000000000000000000000000000000000..fbbe19913ca118cf17c18b00b8d91b82192dd646
--- /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 0000000000000000000000000000000000000000..d91abd06bc25fe17482970d8ec1e3b752f996a7c
--- /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 0000000000000000000000000000000000000000..1e583efe986f3ec52f4322e8551e60a97a472a81
--- /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 0000000000000000000000000000000000000000..d3938284ea0abd3224d95924a596b95210c9612e
--- /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 be5493237177b6d7d08d0d82dee2aeaa3b0dfc9b..747e9e4765e55c5e8f3f1d75050574d1ceccaafd 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 fb05a00f78b9fc8fe91fef23785ca9abaaf4f041..40678d93bbedfc4ca992aa1f77bc1e8a5099447b 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 6fe42ef81205f62891eb15bac2a870737266a35e..4f17e577446139af59b428394be6e1e8d9202c22 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 75fc99c7e1749c62e5dfac81e5338190c8bf0137..93cde2a2fc16b1b4588ec0f6071dd9a11eeb279a 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 0a37d303542019301fad16b88203ac3034833881..a85285759b4fb7194d2d18edbd6919567b410b60 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 68eb0d3b6de30d3a836963eb78b5b31ddc9834ec..1da07641eff46e62c62adb96e8675b1bac722e4d 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 c9e34b61fd2b62068eab7f4fce375127a9df5dbf..349d64e97751a9d8684f9691c86a8b0e8c71be18 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 cb55ecd724df5b0b1af5f24029ad2860d6d0a038..2d80a1a9d0964aae915bae8fe9da26d3f5af64fd 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 cf551cd262131a5ec4e797c69cc2c52a11d115c1..46f0885cf55a180ee85515734d569aeba1ef67ff 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 4d5cb5ac286c0028169f7647f5c28d61a41237b5..51c4b0f7fc9dddab71d8cff9a55eb86c52d46271 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 4787526f25b117ca3d970c9b0dfdf720755e8de8..0760254fbcb7edf639598e9bba4dd4f5f2f09edb 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 b6c26bce6ab9f65808bc18e4aa7b14034e1962aa..09113accbddf3bcea5e62501fe6838d19e2a85ff 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 0000000000000000000000000000000000000000..6fb6af006880cdd59dd1a9e2a5112dfb3484099e
--- /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 0000000000000000000000000000000000000000..2f857b0881506c35c027eb48596fe2c524dd2c4c
--- /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 0000000000000000000000000000000000000000..810e6440686834a8ee66602ba1fc469a81ee195a
--- /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 0000000000000000000000000000000000000000..5e44eb47f19987fb351badfbb6ea373ed6b540cb
--- /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 0000000000000000000000000000000000000000..673c3e4e7c622fab6cd7fb4343fdc43498b554c7
--- /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 0000000000000000000000000000000000000000..f6eae505d419fd2eb81faea38a3c44c32c53f21f
--- /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 0000000000000000000000000000000000000000..b85d2c1c134b5bfba652a46cf4d9ca02629bf9c5
--- /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 0000000000000000000000000000000000000000..df894a820c77af4c2dad9d4573635c2fef50fe65
--- /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 0000000000000000000000000000000000000000..2dfc6a9888fbf6cae0dd7f7ffba101b077f891cb
--- /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 0000000000000000000000000000000000000000..3ceb1d6d58940e04786690b3de05c499d72ea843
--- /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 0000000000000000000000000000000000000000..5b86f97ee407e0511f68f85a48ec105b334406aa
--- /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 0000000000000000000000000000000000000000..15660680a7b657a086e95507187496b40ac247ed
--- /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 0000000000000000000000000000000000000000..3d58d2ab3da33eb026d172c1e7310e5a61437dd1
--- /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 0000000000000000000000000000000000000000..1309bcfd43252858eb5eedb1cba8e8c6db329b7c
--- /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 0000000000000000000000000000000000000000..af76655fe2f885aa8e7cf4733d1ffc16d7909151
--- /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 0000000000000000000000000000000000000000..79458288d1de6ad0f3192f0036b335634015abe0
--- /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 0000000000000000000000000000000000000000..f089ed85535515e254c175324ee90cb66a99e97f
--- /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 0000000000000000000000000000000000000000..2e2126f89a5ae53ca00816b8629fb9dc0b1ae2e8
--- /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 0000000000000000000000000000000000000000..716f786d4704f3e79376e7bf75cff4f2a965f926
--- /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 0000000000000000000000000000000000000000..79052753e62db0ad48497b209ed65242117d9296
--- /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 0000000000000000000000000000000000000000..e9a769b125fe222c607151c14d141862c111d8f1
--- /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 0000000000000000000000000000000000000000..7c0bebd53884be4ba4a10691f17a33bb970afc03
--- /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 0000000000000000000000000000000000000000..ef5179ae286115130b554172d4b005a8a8b4c9e8
--- /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 0000000000000000000000000000000000000000..4747ba74365e99b4921028920ae446a3d1f79c74
--- /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 e79d3722690b6bf5be6ded3b2fc57274dc0bdab2..394a059b0a35d9b6f7d47ec9abdec3b89972c969 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 196f38df2ac20d45936abef49432c27e16f31d75..3c6ea0fb00201e274aab7f39c47045ac0af2f7f8 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 cbac42231b29854b2fe473ddd5ec826090688756..6fb2d48a4a3c45dc7603e7569f44b4f9b41a0d08 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 2455c678e75999f00fa390436c4cd64412a8b137..74465d8f638a0f3f639d7b653117bec9394ef25f 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 ac3d7356680c1b78e2ec6b76e141921bf9bc0fde..394235c5b683a9790c10710827bd65d3f0bc5bef 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 08187adfc4b1801747d731a34bf51c0301ffad0b..8c723c633696c62a0d70786c8643855ff1b16f7d 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 13ebde0d5a2859ce0f02b7e71bae768fd804cea8..c4d4ca6bee5f78f427b5c70773c7792732313748 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 6fb84b04da60ef5bec3a84421c4479a46e15dec5..16523d9e23e9bbe5bcd2d854fb32136a94af30d3 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 5351dd9291849a7475715ee7a4449ba898d24bbf..691b4d5b77432db5a007d946477b782a78e67fa5 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 8d874bdcb3b945e074bc9b3f6a065d24ad9ee31f..113572bdeef6d8ffde68f0b2dbee691d25799183 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 a1263452e09f21c77dd152e6c677b447aeb49a0a..d02f0be4c8c71cef8984538b854e17e3a570644e 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 bf104c98d4fc1aaa2d392474fdd370f0e5906082..46f85a422d7c3a46a51c721f0ec3052de27ee64e 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 e6dd84234cee6bcda800e3fea1082bf97a778a9f..302f06d82316a8a294b2cf0887d6e6a197f9c2af 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 f07e043bd8278c4d328e353d7484938abeab4931..5cc3ddcc9470944a9d89f431e7f1c1a4950f4b4e 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 c7bf75f103c274a2b2a00356ac2d5f353222d851..5254273e140967045120fe0519dee08db2b48d58 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 803c6e13b572122534f242de803b109085f712d2..f2625674f02903a6a65b13629b72e355731545dd 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 7d232ffe1c27771262e99b11f4ccea2ce8e8c32f..bb681e8c4b2e1ac7d1ff603872b3650799f33729 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 c75ef40cc20668f71ac131bc5174263b00777aaf..948c3c4a7c660f3abfb83d1808b3a53f737e7ba8 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 7d3a0c5e1879c6b153178dd75b92dc9358da5ca9..b8495b8b0d96766fbb73181b68ddcbd95094f9c4 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 8c7d5109500cb93ba447429dff3f8e0cc7f8443c..b8a91bc8c202d1b8f056a5ed76255724ce529117 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 dd1359843ac9cb1cd6582236276f9141813d0936..1212184a9b63c3bc4bd8f3b0661e3dba7e352649 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 6621187e18754478847ede4868d1a3857b718c5d..8fe94f1ed9a23b64503859a329272b86d9b660f9 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 619855a215aa6c27416b7e700dad2b80f874ac27..44986590a456243162433fcbdda559914aa8c71a 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 c8136f1c1ea0a2b88fa84a5a924178fe4dbcc09e..83f2d043fb7a0df9ce71ce258a1a320604c0a0b1 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 ef260c25e9d925f9ce4dda1d39c66f83d953223c..875a18bd333a6cd9098034344f2181aeb58096f8 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 09a8b28b859a0802d02b74310d2c0fc704785151..82358186099415e6f28149ec387bceb745fe4eb5 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 a07d4bdcd903e82cafb1666bc2b632068f61533b..4167abaf383d85c45081d9104d551bfda9a7cf17 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 91716c305604cf0f2e7c3ae934e6c87a8de55bcc..f0fa074939483023a8bc287df129c503cccab0ca 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 6a0cee8527cfb0406c15a4960787619df33cd3d6..ddd5b44df2ff8fc6607ed231e60ee2c0325cf241 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 8a5eb4eacdf18f6d42c22866cc92ea668dfe0492..a5c38482decb2f4c6f8d527fcbe36be2767877fd 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 fdbbc5519dbaf1731668bb69ab2099ef94a01f57..232b5847bb8098e4bc84f3367975420d0a295c17 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 86223eb3a7c36edbb81e7f2551d40af57d563f6e..80e3f050a612d863d26d1e76089125af95073fe2 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 f421dfaf2f50bdf71f1d7ca8825a8d51994b0158..b86193890ea03aa47aa612c2fecf08cd387759f4 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 9298f8a45d89808f391b3152ef1d8907856acb2c..c081597b808549d15fe71fcbbbe9676282719458 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 6fb779a2cf7258a28c2b966c174c0d668c36d07a..41cf7998326c4d809d3483f837fb5d66c8ca0fdc 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 a13b0f2f13ae779cc99ea5631bcceb4baf91ec20..edbc81bd14ed7f7fc316388a94816252d3a6ff01 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 13b1d442ee0b6b5694f17121e551f4853c45a8a3..fe67013971883bbe35cc3bb3fefd604737f00e97 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 b7ac45e474c1a929f79ca9a5eecdee4a2d2d5ed2..f55b36e52dcdf699e0e95dd1d05b271b2f300ee1 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 8b051c0a67199e95871ab7c5818b0fb5295a6631..2ab1300e9c15d126b0a1864df0e9b978ec3b035a 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 ba658c78127fb61afc86d13b920c643cef91b750..5e86018ecc77ad131e28bf0ef5f8c021633c099f 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 b23f668275caf8880ad79e8404d4cb4b5b7524a5..d16b13a1e07411677f09e3458314113df81d7bd2 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 7c3748c3b003437ccfb3c1e4e4bb751ed6678a30..9bcc6103fdc407360e5135c7722fc13654d0c61d 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 e935e2e8df90590e471e99c4fe21574dcd1bc453..a609f7242a516a67488401531a2f16805c446a1b 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 2303bf8e710a0ac663af307bb1efad2677e307c4..f8128ca87080fb7a8beb69125259baf2aa3fc8e4 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 61227f21af174fdc3b4a19355da079990ad5f133..38309b406f702d7b3a489c8083c81243e27301c9 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 fff7d216f61b00efd5f2c1ac15d28f5799631474..c6854071655fec44e4d173680a2262bc59abcffe 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 ddd38dd2f88452c7396d4d3139043ff597a84f6f..ebc60bb79f49799828a6739f867ab3a1190b9555 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 996080c2f8a2ae9f2258a52c394377ce9ef6c8e4..30d84ba960817994059c9f8ad11f03ddf4b31ec5 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 be2943bea012ec0e5a3a94b42604fa2fc2a386d5..d269400192152ada6b57f8db17fce85a419afb29 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 5940a3b49f93e77dd2ba4e969ac0eed5bcd6d455..c53ad2e2dc2c67b50c55f8a69e06f4274af5c6a8 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 94ac62b05f9857ad19d652c75279001affedbb25..6665612f1e0d4a439e883f948e138bafe1e0501f 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 c6bd4d05dec7e41f989344a1936fdfa8661a10c3..e3301291aa64a69469abeeb080c41aa059f50ad8 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 3fac60a259cad6257d80f8a69fcae175438a1ed9..f2a0ef2d034de02f52ca8f13b5f6a7c2c371d046 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 4a160ca5a57a6335346d883c90c7b5eadac0a0f7..504dade30857a6409ed91c5cfd7d8db2715961ab 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 c87facdce3d79a48941a717d051a07cc722a96b2..65a7a124f57cec20a4dc69aa581b1e74e5882ba8 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 0698f798081481cf13532229d0d074a96e300544..577185b131716b8ffbd4f4e5a8d7e13e5e6666f5 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 cffac9665ab428b25fa7b3b51c6bc10c4676e01c..61ac65498fbae151c51744b5c2f61eab0ca8f38c 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 1e6edb0df8fbcb599e84b8ad63c94f08db5e62e3..5dfed438e95a6f3f9fe1282b0fa4b0c0e5a61d85 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 1c575780a681aade0a76773f845665f346d2a6bf..0cdaa47e1c454c2aeba7fc8b5b981c3c178489dd 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 254d616c8ba93767cf6a100cb678e52589856d4b..094615c2595bbf5b1fbb7341ab07019efbac531c 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 be0d0f1b79e1c19bdfbbde094c9aad08a0e454ba..14d99ef7b9b4df20244908c3e8889b34e211ebec 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 82a607d1c5679e3e9607459d2b12ef1430e038ee..f08c4a5258f890bdad6240c4183ec2e3b4ae8983 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 8270c9050df7230eb85201913f0b250704d68c39..0d50fc68351409d5b38765c11ff59d3a6282e29e 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 dab5023306f1673f582dc6f1a02170d30e9416da..455c19738d9de00bfc817ebc9dfb98b6a0697801 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 cfdb9377a54381ab694ce238ccca19aaadb1c05e..6c351f0186f196814dae93c4078895f30eb53b3b 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 9498dcade25315f8b4ea9fb6d1f45086c7aa552c..39eb6654db1ba231046a0490811eccd82b4082c1 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 c9f041bcf41d3c1d882a3299d038bdfb87126585..387f8db2ee7c72ba5b5a082d5a1cec49d5146ccd 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 e4cafaece4bd35e860976731732f35dad4df549b..150421d26e730415fe80662bc87940ddb30d1b52 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 602c6749ffac5ae81aa310166a789814c57d5ae5..37125ebe7fa7358bf846b1ff2924fb99e01a46d5 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 13e6370a2c2aa61d46ce3298a84b89d8d82a509f..368f87868dc602c25cb0b14d0bb6ed1445fcabb3 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 dcce7705ee8eace0c0f6ea8ae0e0625b39c2cc84..0627fab7640610ad655c005d8c5f2e0c4297aadf 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 464669ec1f174fa13c842f7fee1af53bea7bf4d2..b6a1753a57e8e72b75279bd713039c64fa72c1ac 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)