diff --git a/test/language/expressions/arrow-function/params-duplicate.js b/test/language/expressions/arrow-function/params-duplicate.js
new file mode 100644
index 0000000000000000000000000000000000000000..14fde6fbd07fd988047f27aa26af349013e159e0
--- /dev/null
+++ b/test/language/expressions/arrow-function/params-duplicate.js
@@ -0,0 +1,33 @@
+// Copyright 2019 Mike Pennisi. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-arrow-function-definitions
+description: Formal parameters may not contain duplicates
+info: |
+  # 14.2 Arrow Function Definitions
+
+  When the production
+
+    ArrowParameters:CoverParenthesizedExpressionAndArrowParameterList
+
+  is recognized the following grammar is used to refine the interpretation
+  of CoverParenthesizedExpressionAndArrowParameterList:
+
+    ArrowFormalParameters[Yield, Await]:
+      (UniqueFormalParameters[?Yield, ?Await])
+
+  # 14.1.2 Static Semantics: Early Errors
+
+  UniqueFormalParameters:FormalParameters
+
+  - It is a Syntax Error if BoundNames of FormalParameters contains any
+    duplicate elements.
+negative:
+  phase: parse
+  type: SyntaxError
+---*/
+
+$DONOTEVALUATE();
+
+0, (a, a) => { };
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js b/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js
index b0be62af49678cb9105cd12e09a926042fc9e754..a6783b9889d3ee8d140e47c8c1e8661b9a1bd293 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js
@@ -3,13 +3,30 @@
 
 /*---
 author: Brian Terlson <brian.terlson@microsoft.com>
-esid: pending
-description: >
-  If strict mode, early error rules for StrictFormalParameters are applied
+esid: sec-async-arrow-function-definitions
+description: Formal parameters may not contain duplicates
+info: |
+  # 14.2 Arrow Function Definitions
+
+  When the production
+
+    ArrowParameters:CoverParenthesizedExpressionAndArrowParameterList
+
+  is recognized the following grammar is used to refine the interpretation
+  of CoverParenthesizedExpressionAndArrowParameterList:
+
+    ArrowFormalParameters[Yield, Await]:
+      (UniqueFormalParameters[?Yield, ?Await])
+
+  # 14.1.2 Static Semantics: Early Errors
+
+  UniqueFormalParameters:FormalParameters
+
+  - It is a Syntax Error if BoundNames of FormalParameters contains any
+    duplicate elements.
 negative:
   phase: parse
   type: SyntaxError
-flags: [onlyStrict]
 ---*/
 
 $DONOTEVALUATE();
diff --git a/test/language/expressions/object/method-definition/early-errors-object-async-method-duplicate-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-async-method-duplicate-parameters.js
new file mode 100644
index 0000000000000000000000000000000000000000..bbf97846b27ecb02b4e2ba2c13b98690ee404944
--- /dev/null
+++ b/test/language/expressions/object/method-definition/early-errors-object-async-method-duplicate-parameters.js
@@ -0,0 +1,28 @@
+// Copyright 2016 Microsoft, Inc. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Brian Terlson <brian.terlson@microsoft.com>
+esid: sec-async-function-definitions
+description: Formal parameters may not contain duplicates
+info: |
+  # 14.7 Async Function Definitions
+
+   AsyncMethod[Yield, Await]:
+     async[no LineTerminator here]PropertyName[?Yield, ?Await](UniqueFormalParameters[~Yield, +Await]){AsyncFunctionBody}
+
+  # 14.1.2 Static Semantics: Early Errors
+
+  UniqueFormalParameters:FormalParameters
+
+  - It is a Syntax Error if BoundNames of FormalParameters contains any
+    duplicate elements.
+negative:
+  phase: parse
+  type: SyntaxError
+---*/
+
+$DONOTEVALUATE();
+({
+  async foo(a, a) { }
+})
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
index 79b0c1365900d91ffbff906e6e12bf092174342b..dbd6eed49250e718d7c81f328e6988232de31858 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
@@ -1,11 +1,21 @@
-// Copyright 2016 Microsoft, Inc. All rights reserved.
+// Copyright 2019 Mike Pennisi. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-author: Brian Terlson <brian.terlson@microsoft.com>
-esid: pending
-description: >
-  Early error rules for StrictFormalParameters are applied
+esid: sec-method-definitions
+description: Formal parameters may not contain duplicates
+info: |
+  # 14.3 Method Definitions
+
+  MethodDefinition[Yield, Await]:
+    PropertyName[?Yield, ?Await](UniqueFormalParameters[~Yield, ~Await]){FunctionBody[~Yield, ~Await]}
+
+  # 14.1.2 Static Semantics: Early Errors
+
+  UniqueFormalParameters:FormalParameters
+
+  - It is a Syntax Error if BoundNames of FormalParameters contains any
+    duplicate elements.
 negative:
   phase: parse
   type: SyntaxError
@@ -13,5 +23,5 @@ negative:
 
 $DONOTEVALUATE();
 ({
-  async foo(a, a) { }
+  foo(a, a) { }
 })
diff --git a/test/language/statements/class/definition/early-errors-class-async-method-duplicate-parameters.js b/test/language/statements/class/definition/early-errors-class-async-method-duplicate-parameters.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9f6115277cf35b01e9f1548a5357758b2d405a6
--- /dev/null
+++ b/test/language/statements/class/definition/early-errors-class-async-method-duplicate-parameters.js
@@ -0,0 +1,29 @@
+// Copyright 2016 Microsoft, Inc. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Brian Terlson <brian.terlson@microsoft.com>
+esid: sec-async-function-definitions
+description: Formal parameters may not contain duplicates
+info: |
+  # 14.7 Arrow Function Definitions
+
+  AsyncMethod[Yield, Await]:
+    async[no LineTerminator here]PropertyName[?Yield, ?Await](UniqueFormalParameters[~Yield, +Await]){AsyncFunctionBody}
+
+  # 14.1.2 Static Semantics: Early Errors
+
+  UniqueFormalParameters:FormalParameters
+
+  - It is a Syntax Error if BoundNames of FormalParameters contains any
+    duplicate elements.
+negative:
+  phase: parse
+  type: SyntaxError
+---*/
+
+$DONOTEVALUATE();
+
+class Foo {
+  async foo(a, a) { }
+}
diff --git a/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js b/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js
index 8187b54e95d39f8c52c2309631eef41f445a23f5..93077124d253d21ba2891a45c5a364367f238dcc 100644
--- a/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js
+++ b/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js
@@ -1,11 +1,21 @@
-// Copyright 2016 Microsoft, Inc. All rights reserved.
+// Copyright 2019 Mike Pennisi. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-author: Brian Terlson <brian.terlson@microsoft.com>
-esid: pending
-description: >
-  Early error rules for StrictFormalParameters are applied
+esid: sec-method-definitions
+description: Formal parameters may not contain duplicates
+info: |
+  # 14.3 Method Definitions
+
+  MethodDefinition[Yield, Await]:
+    PropertyName[?Yield, ?Await](UniqueFormalParameters[~Yield, ~Await]){FunctionBody[~Yield, ~Await]}
+
+  # 14.1.2 Static Semantics: Early Errors
+
+  UniqueFormalParameters:FormalParameters
+
+  - It is a Syntax Error if BoundNames of FormalParameters contains any
+    duplicate elements.
 negative:
   phase: parse
   type: SyntaxError
@@ -14,5 +24,5 @@ negative:
 $DONOTEVALUATE();
 
 class Foo {
-  async foo(a, a) { }
+  foo(a, a) { }
 }