diff --git a/test/language/statements/function/13.1-3-8.js b/test/language/expressions/function/name-arguments-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-3-8.js
rename to test/language/expressions/function/name-arguments-non-strict.js
diff --git a/test/language/statements/function/13.1-42-s.js b/test/language/expressions/function/name-arguments-strict-body.js
similarity index 100%
rename from test/language/statements/function/13.1-42-s.js
rename to test/language/expressions/function/name-arguments-strict-body.js
diff --git a/test/language/statements/function/13.1-14-s.js b/test/language/expressions/function/name-arguments-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-14-s.js
rename to test/language/expressions/function/name-arguments-strict.js
diff --git a/test/language/statements/function/13.1-3-2.js b/test/language/expressions/function/name-eval-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-3-2.js
rename to test/language/expressions/function/name-eval-non-strict.js
diff --git a/test/language/statements/function/13.1-38-s.js b/test/language/expressions/function/name-eval-strict-body.js
similarity index 100%
rename from test/language/statements/function/13.1-38-s.js
rename to test/language/expressions/function/name-eval-strict-body.js
diff --git a/test/language/statements/function/13.1-12-s.js b/test/language/expressions/function/name-eval-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-12-s.js
rename to test/language/expressions/function/name-eval-strict.js
diff --git a/test/language/statements/function/13.1-37-s.js b/test/language/expressions/function/name-eval-stricteval.js
similarity index 100%
rename from test/language/statements/function/13.1-37-s.js
rename to test/language/expressions/function/name-eval-stricteval.js
diff --git a/test/language/statements/function/13.1-2-6.js b/test/language/expressions/function/param-arguments-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-2-6.js
rename to test/language/expressions/function/param-arguments-non-strict.js
diff --git a/test/language/statements/function/13.1-1-2.js b/test/language/expressions/function/param-duplicated-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-1-2.js
rename to test/language/expressions/function/param-duplicated-non-strict.js
diff --git a/test/language/statements/function/13.1-8-s.js b/test/language/expressions/function/param-duplicated-strict-1.js
similarity index 100%
rename from test/language/statements/function/13.1-8-s.js
rename to test/language/expressions/function/param-duplicated-strict-1.js
diff --git a/test/language/statements/function/13.1-9-s.js b/test/language/expressions/function/param-duplicated-strict-2.js
similarity index 100%
rename from test/language/statements/function/13.1-9-s.js
rename to test/language/expressions/function/param-duplicated-strict-2.js
diff --git a/test/language/statements/function/13.1-10-s.js b/test/language/expressions/function/param-duplicated-strict-3.js
similarity index 100%
rename from test/language/statements/function/13.1-10-s.js
rename to test/language/expressions/function/param-duplicated-strict-3.js
diff --git a/test/language/statements/function/13.1-30-s.js b/test/language/expressions/function/param-duplicated-strict-body-1.js
similarity index 100%
rename from test/language/statements/function/13.1-30-s.js
rename to test/language/expressions/function/param-duplicated-strict-body-1.js
diff --git a/test/language/statements/function/13.1-32-s.js b/test/language/expressions/function/param-duplicated-strict-body-2.js
similarity index 100%
rename from test/language/statements/function/13.1-32-s.js
rename to test/language/expressions/function/param-duplicated-strict-body-2.js
diff --git a/test/language/statements/function/13.1-34-s.js b/test/language/expressions/function/param-duplicated-strict-body-3.js
similarity index 100%
rename from test/language/statements/function/13.1-34-s.js
rename to test/language/expressions/function/param-duplicated-strict-body-3.js
diff --git a/test/language/statements/function/13.1-2-2.js b/test/language/expressions/function/param-eval-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-2-2.js
rename to test/language/expressions/function/param-eval-non-strict.js
diff --git a/test/language/statements/function/13.1-18-s.js b/test/language/expressions/function/param-eval-strict-body.js
similarity index 100%
rename from test/language/statements/function/13.1-18-s.js
rename to test/language/expressions/function/param-eval-strict-body.js
diff --git a/test/language/statements/function/13.1-17-s.js b/test/language/expressions/function/param-eval-stricteval.js
similarity index 100%
rename from test/language/statements/function/13.1-17-s.js
rename to test/language/expressions/function/param-eval-stricteval.js
diff --git a/test/language/statements/function/13.0-10-s.js b/test/language/statements/function/enable-strict-via-body.js
similarity index 100%
rename from test/language/statements/function/13.0-10-s.js
rename to test/language/statements/function/enable-strict-via-body.js
diff --git a/test/language/statements/function/13.0-11-s.js b/test/language/statements/function/enable-strict-via-outer-body.js
similarity index 100%
rename from test/language/statements/function/13.0-11-s.js
rename to test/language/statements/function/enable-strict-via-outer-body.js
diff --git a/test/language/statements/function/13.0-9-s.js b/test/language/statements/function/enable-strict-via-outer-script.js
similarity index 100%
rename from test/language/statements/function/13.0-9-s.js
rename to test/language/statements/function/enable-strict-via-outer-script.js
diff --git a/test/language/statements/function/13.0-1.js b/test/language/statements/function/invalid-2-names.js
similarity index 100%
rename from test/language/statements/function/13.0-1.js
rename to test/language/statements/function/invalid-2-names.js
diff --git a/test/language/statements/function/13.0-2.js b/test/language/statements/function/invalid-3-names.js
similarity index 100%
rename from test/language/statements/function/13.0-2.js
rename to test/language/statements/function/invalid-3-names.js
diff --git a/test/language/statements/function/S13_A7_T2.js b/test/language/statements/function/invalid-function-body.js
similarity index 100%
rename from test/language/statements/function/S13_A7_T2.js
rename to test/language/statements/function/invalid-function-body.js
diff --git a/test/language/statements/function/13.0-3.js b/test/language/statements/function/invalid-name-dot.js
similarity index 100%
rename from test/language/statements/function/13.0-3.js
rename to test/language/statements/function/invalid-name-dot.js
diff --git a/test/language/statements/function/13.0-4.js b/test/language/statements/function/invalid-name-two-dots.js
similarity index 100%
rename from test/language/statements/function/13.0-4.js
rename to test/language/statements/function/invalid-name-two-dots.js
diff --git a/test/language/statements/function/S13_A16_T1.js b/test/language/statements/function/line-terminator-non-strict.js
similarity index 100%
rename from test/language/statements/function/S13_A16_T1.js
rename to test/language/statements/function/line-terminator-non-strict.js
diff --git a/test/language/statements/function/S13_A16_T2.js b/test/language/statements/function/line-terminator-strict.js
similarity index 100%
rename from test/language/statements/function/S13_A16_T2.js
rename to test/language/statements/function/line-terminator-strict.js
diff --git a/test/language/statements/function/13.1-3-7.js b/test/language/statements/function/name-arguments-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-3-7.js
rename to test/language/statements/function/name-arguments-non-strict.js
diff --git a/test/language/statements/function/13.1-40-s.js b/test/language/statements/function/name-arguments-strict-body.js
similarity index 100%
rename from test/language/statements/function/13.1-40-s.js
rename to test/language/statements/function/name-arguments-strict-body.js
diff --git a/test/language/statements/function/13.1-13-s.js b/test/language/statements/function/name-arguments-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-13-s.js
rename to test/language/statements/function/name-arguments-strict.js
diff --git a/test/language/statements/function/13.1-3-1.js b/test/language/statements/function/name-eval-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-3-1.js
rename to test/language/statements/function/name-eval-non-strict.js
diff --git a/test/language/statements/function/13.1-36-s.js b/test/language/statements/function/name-eval-strict-body.js
similarity index 100%
rename from test/language/statements/function/13.1-36-s.js
rename to test/language/statements/function/name-eval-strict-body.js
diff --git a/test/language/statements/function/13.1-11-s.js b/test/language/statements/function/name-eval-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-11-s.js
rename to test/language/statements/function/name-eval-strict.js
diff --git a/test/language/statements/function/13.1-35-s.js b/test/language/statements/function/name-eval-stricteval.js
similarity index 100%
rename from test/language/statements/function/13.1-35-s.js
rename to test/language/statements/function/name-eval-stricteval.js
diff --git a/test/language/statements/function/S13_A14_T2.js b/test/language/statements/function/name-unicode.js
similarity index 100%
rename from test/language/statements/function/S13_A14_T2.js
rename to test/language/statements/function/name-unicode.js
diff --git a/test/language/statements/function/13.1-2-5.js b/test/language/statements/function/param-arguments-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-2-5.js
rename to test/language/statements/function/param-arguments-non-strict.js
diff --git a/test/language/statements/function/13.1-20-s.js b/test/language/statements/function/param-arguments-strict-body.js
similarity index 100%
rename from test/language/statements/function/13.1-20-s.js
rename to test/language/statements/function/param-arguments-strict-body.js
diff --git a/test/language/statements/function/13.1-3-s.js b/test/language/statements/function/param-arguments-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-3-s.js
rename to test/language/statements/function/param-arguments-strict.js
diff --git a/test/language/statements/function/13.1-1-1.js b/test/language/statements/function/param-duplicated-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-1-1.js
rename to test/language/statements/function/param-duplicated-non-strict.js
diff --git a/test/language/statements/function/13.1-5-s.js b/test/language/statements/function/param-duplicated-strict-1.js
similarity index 100%
rename from test/language/statements/function/13.1-5-s.js
rename to test/language/statements/function/param-duplicated-strict-1.js
diff --git a/test/language/statements/function/13.1-6-s.js b/test/language/statements/function/param-duplicated-strict-2.js
similarity index 100%
rename from test/language/statements/function/13.1-6-s.js
rename to test/language/statements/function/param-duplicated-strict-2.js
diff --git a/test/language/statements/function/13.1-7-s.js b/test/language/statements/function/param-duplicated-strict-3.js
similarity index 100%
rename from test/language/statements/function/13.1-7-s.js
rename to test/language/statements/function/param-duplicated-strict-3.js
diff --git a/test/language/statements/function/13.1-24-s.js b/test/language/statements/function/param-duplicated-strict-body-1.js
similarity index 100%
rename from test/language/statements/function/13.1-24-s.js
rename to test/language/statements/function/param-duplicated-strict-body-1.js
diff --git a/test/language/statements/function/13.1-26-s.js b/test/language/statements/function/param-duplicated-strict-body-2.js
similarity index 100%
rename from test/language/statements/function/13.1-26-s.js
rename to test/language/statements/function/param-duplicated-strict-body-2.js
diff --git a/test/language/statements/function/13.1-28-s.js b/test/language/statements/function/param-duplicated-strict-body-3.js
similarity index 100%
rename from test/language/statements/function/13.1-28-s.js
rename to test/language/statements/function/param-duplicated-strict-body-3.js
diff --git a/test/language/statements/function/13.1-2-1.js b/test/language/statements/function/param-eval-non-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-2-1.js
rename to test/language/statements/function/param-eval-non-strict.js
diff --git a/test/language/statements/function/13.1-16-s.js b/test/language/statements/function/param-eval-strict-body.js
similarity index 100%
rename from test/language/statements/function/13.1-16-s.js
rename to test/language/statements/function/param-eval-strict-body.js
diff --git a/test/language/statements/function/13.1-1-s.js b/test/language/statements/function/param-eval-strict.js
similarity index 100%
rename from test/language/statements/function/13.1-1-s.js
rename to test/language/statements/function/param-eval-strict.js
diff --git a/test/language/statements/function/13.1-15-s.js b/test/language/statements/function/param-eval-stricteval.js
similarity index 100%
rename from test/language/statements/function/13.1-15-s.js
rename to test/language/statements/function/param-eval-stricteval.js