diff --git a/test/language/statements/class/privatefieldadd-typeerror.js b/test/language/statements/class/privatefieldadd-typeerror.js
index a22d0536c743c8ba8d0cee104906bd0ec4899a10..e1275219325a534342fe8c957103038cfd837cdf 100644
--- a/test/language/statements/class/privatefieldadd-typeerror.js
+++ b/test/language/statements/class/privatefieldadd-typeerror.js
@@ -19,8 +19,8 @@ info: |
     2. Assert: Assert constructor is an ECMAScript function object.
     3. Let fieldRecords be the value of constructor's [[Fields]] internal slot.
     4. For each item fieldRecord in order from fieldRecords,
-      a. If fieldRecord.[[static]] is false, then
-        i. Perform ? DefineField(O, fieldRecord).
+      a. Perform ? DefineField(O, fieldRecord).
+    5. Return.
 
   DefineField(receiver, fieldRecord)
     ...
@@ -32,6 +32,7 @@ info: |
     2. If O is not an object, throw a TypeError exception.
     3. Let entry be PrivateFieldFind(P, O).
     4. If entry is not empty, throw a TypeError exception.
+    ...
 
 features: [class, class-fields-private]
 ---*/
diff --git a/test/language/statements/class/privatefieldget-success-1.js b/test/language/statements/class/privatefieldget-success-1.js
index 834d6c876a774ded87002bd61d5f068ac0d0272c..385ff09c9f8d13373ea1dd90be7246af60f3734d 100644
--- a/test/language/statements/class/privatefieldget-success-1.js
+++ b/test/language/statements/class/privatefieldget-success-1.js
@@ -8,12 +8,12 @@ info: |
   GetValue ( V )
     ...
     5. If IsPropertyReference(V), then
-        ...
-        b. If IsPrivateReference(V), then
-            i. Let env be the running execution context's PrivateNameEnvironment.
-            ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
-            iii. Assert: field is a Private Name.
-            iv. Return ? PrivateFieldGet(field, base).
+      ...
+      b. If IsPrivateReference(V), then
+        i. Let env be the running execution context's PrivateNameEnvironment.
+        ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
+        iii. Assert: field is a Private Name.
+        iv. Return ? PrivateFieldGet(field, base).
 
   PrivateFieldGet (P, O )
     1. Assert: P is a Private Name value.
diff --git a/test/language/statements/class/privatefieldget-success-2.js b/test/language/statements/class/privatefieldget-success-2.js
index a404985e224a3a0b7e58f06b72f1b200dfed2947..d5e091012c49e797939f274da1edec3bb0799c4a 100644
--- a/test/language/statements/class/privatefieldget-success-2.js
+++ b/test/language/statements/class/privatefieldget-success-2.js
@@ -8,12 +8,12 @@ info: |
   GetValue ( V )
     ...
     5. If IsPropertyReference(V), then
-        ...
-        b. If IsPrivateReference(V), then
-            i. Let env be the running execution context's PrivateNameEnvironment.
-            ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
-            iii. Assert: field is a Private Name.
-            iv. Return ? PrivateFieldGet(field, base).
+      ...
+      b. If IsPrivateReference(V), then
+        i. Let env be the running execution context's PrivateNameEnvironment.
+        ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
+        iii. Assert: field is a Private Name.
+        iv. Return ? PrivateFieldGet(field, base).
 
   PrivateFieldGet (P, O )
     1. Assert: P is a Private Name value.
diff --git a/test/language/statements/class/privatefieldget-success-3.js b/test/language/statements/class/privatefieldget-success-3.js
index 9b6104eabc640c7945ee05a246cffe466b93bbf6..0dd43e38a95a54eff4f23d0ce0eb7567dc5d8039 100644
--- a/test/language/statements/class/privatefieldget-success-3.js
+++ b/test/language/statements/class/privatefieldget-success-3.js
@@ -8,12 +8,12 @@ info: |
   GetValue ( V )
     ...
     5. If IsPropertyReference(V), then
-        ...
-        b. If IsPrivateReference(V), then
-            i. Let env be the running execution context's PrivateNameEnvironment.
-            ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
-            iii. Assert: field is a Private Name.
-            iv. Return ? PrivateFieldGet(field, base).
+      ...
+      b. If IsPrivateReference(V), then
+        i. Let env be the running execution context's PrivateNameEnvironment.
+        ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
+        iii. Assert: field is a Private Name.
+        iv. Return ? PrivateFieldGet(field, base).
 
   PrivateFieldGet (P, O )
     1. Assert: P is a Private Name value.
diff --git a/test/language/statements/class/privatefieldget-success-4.js b/test/language/statements/class/privatefieldget-success-4.js
index b6c296afb300c2a84f49bce965c04032311540e5..7466fb4db239fd56cb60144d839d668ee9f91434 100644
--- a/test/language/statements/class/privatefieldget-success-4.js
+++ b/test/language/statements/class/privatefieldget-success-4.js
@@ -8,12 +8,12 @@ info: |
   GetValue ( V )
     ...
     5. If IsPropertyReference(V), then
-        ...
-        b. If IsPrivateReference(V), then
-            i. Let env be the running execution context's PrivateNameEnvironment.
-            ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
-            iii. Assert: field is a Private Name.
-            iv. Return ? PrivateFieldGet(field, base).
+      ...
+      b. If IsPrivateReference(V), then
+        i. Let env be the running execution context's PrivateNameEnvironment.
+        ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
+        iii. Assert: field is a Private Name.
+        iv. Return ? PrivateFieldGet(field, base).
 
   PrivateFieldGet (P, O )
     1. Assert: P is a Private Name value.
diff --git a/test/language/statements/class/privatefieldget-success-5.js b/test/language/statements/class/privatefieldget-success-5.js
index 64c0ad55117df012c3781baee65fa0e9c4baef46..1dc9700e8eb81fe34c501decebd5cd057af1c177 100644
--- a/test/language/statements/class/privatefieldget-success-5.js
+++ b/test/language/statements/class/privatefieldget-success-5.js
@@ -8,12 +8,12 @@ info: |
   GetValue ( V )
     ...
     5. If IsPropertyReference(V), then
-        ...
-        b. If IsPrivateReference(V), then
-            i. Let env be the running execution context's PrivateNameEnvironment.
-            ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
-            iii. Assert: field is a Private Name.
-            iv. Return ? PrivateFieldGet(field, base).
+      ...
+      b. If IsPrivateReference(V), then
+        i. Let env be the running execution context's PrivateNameEnvironment.
+        ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
+        iii. Assert: field is a Private Name.
+        iv. Return ? PrivateFieldGet(field, base).
 
   PrivateFieldGet (P, O )
     1. Assert: P is a Private Name value.
diff --git a/test/language/statements/class/privatefieldget-typeerror-1.js b/test/language/statements/class/privatefieldget-typeerror-1.js
index d90c45efae16d83dca47301fa264ee3fa4e38ad7..9cc17bf3d57e3f2f34741e3b0b2ec20f2a2d63f8 100644
--- a/test/language/statements/class/privatefieldget-typeerror-1.js
+++ b/test/language/statements/class/privatefieldget-typeerror-1.js
@@ -8,12 +8,12 @@ info: |
   GetValue ( V )
     ...
     5. If IsPropertyReference(V), then
-        ...
-        b. If IsPrivateReference(V), then
-            i. Let env be the running execution context's PrivateNameEnvironment.
-            ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
-            iii. Assert: field is a Private Name.
-            iv. Return ? PrivateFieldGet(field, base).
+      ...
+      b. If IsPrivateReference(V), then
+        i. Let env be the running execution context's PrivateNameEnvironment.
+        ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
+        iii. Assert: field is a Private Name.
+        iv. Return ? PrivateFieldGet(field, base).
 
   PrivateFieldGet (P, O )
     1. Assert: P is a Private Name value.
diff --git a/test/language/statements/class/privatefieldget-typeerror-2.js b/test/language/statements/class/privatefieldget-typeerror-2.js
index 3594f41021a8068d5b38e6af19900d5e2326f36d..a06439748ba2b56d61b7860e424bb88c674e154a 100644
--- a/test/language/statements/class/privatefieldget-typeerror-2.js
+++ b/test/language/statements/class/privatefieldget-typeerror-2.js
@@ -8,12 +8,12 @@ info: |
   GetValue ( V )
     ...
     5. If IsPropertyReference(V), then
-        ...
-        b. If IsPrivateReference(V), then
-            i. Let env be the running execution context's PrivateNameEnvironment.
-            ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
-            iii. Assert: field is a Private Name.
-            iv. Return ? PrivateFieldGet(field, base).
+      ...
+      b. If IsPrivateReference(V), then
+        i. Let env be the running execution context's PrivateNameEnvironment.
+        ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
+        iii. Assert: field is a Private Name.
+        iv. Return ? PrivateFieldGet(field, base).
 
   PrivateFieldGet (P, O )
     1. Assert: P is a Private Name value.
diff --git a/test/language/statements/class/privatefieldget-typeerror-3.js b/test/language/statements/class/privatefieldget-typeerror-3.js
index f9669a661028f2f56bd9c3d7783e81591127ee19..542e38097cac7c667f3b28c72f21a4e161f125b8 100644
--- a/test/language/statements/class/privatefieldget-typeerror-3.js
+++ b/test/language/statements/class/privatefieldget-typeerror-3.js
@@ -9,12 +9,12 @@ info: |
   GetValue ( V )
     ...
     5. If IsPropertyReference(V), then
-        ...
-        b. If IsPrivateReference(V), then
-            i. Let env be the running execution context's PrivateNameEnvironment.
-            ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
-            iii. Assert: field is a Private Name.
-            iv. Return ? PrivateFieldGet(field, base).
+      ...
+      b. If IsPrivateReference(V), then
+        i. Let env be the running execution context's PrivateNameEnvironment.
+        ii. Let field be ? ResolveBinding(GetReferencedName(V), env).
+        iii. Assert: field is a Private Name.
+        iv. Return ? PrivateFieldGet(field, base).
 
   PrivateFieldGet (P, O )
     1. Assert: P is a Private Name value.
diff --git a/test/language/statements/class/privatefieldset-typeerror-1.js b/test/language/statements/class/privatefieldset-typeerror-1.js
index 8ad4492c069fd7db7b59e762208c716cc3e4c376..01fc83c2dbe59683cf044f9c0f0f9fe1c10a9fe9 100644
--- a/test/language/statements/class/privatefieldset-typeerror-1.js
+++ b/test/language/statements/class/privatefieldset-typeerror-1.js
@@ -7,7 +7,7 @@ esid: sec-putvalue
 info: |
   PutValue ( V, W )
     ...
-    5. Else if IsPropertyReference(V), then
+    6. Else if IsPropertyReference(V), then
       ...
       b. If IsPrivateReference(V), then
         i. Let env be the running execution context's PrivateNameEnvironment.
diff --git a/test/language/statements/class/privatefieldset-typeerror-2.js b/test/language/statements/class/privatefieldset-typeerror-2.js
index a4054aaf6886a961e638618d860b8123e34e15b8..e64451445b24d0bc68d0ac5cac31038a48c4fd9e 100644
--- a/test/language/statements/class/privatefieldset-typeerror-2.js
+++ b/test/language/statements/class/privatefieldset-typeerror-2.js
@@ -7,7 +7,7 @@ esid: sec-putvalue
 info: |
   PutValue ( V, W )
     ...
-    5. Else if IsPropertyReference(V), then
+    6. Else if IsPropertyReference(V), then
       ...
       b. If IsPrivateReference(V), then
         i. Let env be the running execution context's PrivateNameEnvironment.
diff --git a/test/language/statements/class/privatefieldset-typeerror-3.js b/test/language/statements/class/privatefieldset-typeerror-3.js
index 3f64d3eb74854b04d0f6b5e721ec7f13ce29f705..656e8e34904b0aee7c2a8350aad5f3514a7382e3 100644
--- a/test/language/statements/class/privatefieldset-typeerror-3.js
+++ b/test/language/statements/class/privatefieldset-typeerror-3.js
@@ -8,7 +8,7 @@ esid: sec-putvalue
 info: |
   PutValue ( V, W )
     ...
-    5. Else if IsPropertyReference(V), then
+    6. Else if IsPropertyReference(V), then
       ...
       b. If IsPrivateReference(V), then
         i. Let env be the running execution context's PrivateNameEnvironment.
diff --git a/test/language/statements/class/privatefieldset-typeerror-4.js b/test/language/statements/class/privatefieldset-typeerror-4.js
index 0520bff4613e7bc24d900f84bab1bfd750cc531b..20eff276e522862f7dfa8ecfd69f954955451fdf 100644
--- a/test/language/statements/class/privatefieldset-typeerror-4.js
+++ b/test/language/statements/class/privatefieldset-typeerror-4.js
@@ -7,7 +7,7 @@ esid: sec-putvalue
 info: |
   PutValue ( V, W )
     ...
-    5. Else if IsPropertyReference(V), then
+    6. Else if IsPropertyReference(V), then
       ...
       b. If IsPrivateReference(V), then
         i. Let env be the running execution context's PrivateNameEnvironment.
diff --git a/test/language/statements/class/privatefieldset-typeerror-5.js b/test/language/statements/class/privatefieldset-typeerror-5.js
index 5cc240289698c4fb78cb938cb99fbd3b4a90f1f4..e8703f5c69c9ede1ec896bdb9b8355feeadca195 100644
--- a/test/language/statements/class/privatefieldset-typeerror-5.js
+++ b/test/language/statements/class/privatefieldset-typeerror-5.js
@@ -7,7 +7,7 @@ esid: sec-putvalue
 info: |
   PutValue ( V, W )
     ...
-    5. Else if IsPropertyReference(V), then
+    6. Else if IsPropertyReference(V), then
       ...
       b. If IsPrivateReference(V), then
         i. Let env be the running execution context's PrivateNameEnvironment.
diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-1.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-1.js
index a617f44b9e673748648f67ab48a383528e33c22e..f1cb3d47c68c7d5e01147f4518e5843de231f97d 100644
--- a/test/language/statements/class/privatename-not-valid-earlyerr-script-1.js
+++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-1.js
@@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename in constructor without being declared in class fields
 info: |
   Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 negative:
   phase: parse
diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-2.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-2.js
index a2583a39871d965cf5a34f84e8756523c61cca92..5a4b1c125f3e01faffc97367aad72339013b08f1 100644
--- a/test/language/statements/class/privatename-not-valid-earlyerr-script-2.js
+++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-2.js
@@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename in function in class without declaring in field
 info: |
   Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 negative:
   phase: parse
diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-3.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-3.js
index 18e0feaa41e121c3f0975141339e451a7b8f4df8..67f7aaf50eca6948bfe4f3e456d2952c80ec0e54 100644
--- a/test/language/statements/class/privatename-not-valid-earlyerr-script-3.js
+++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-3.js
@@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename that has not been declared in class.
 info: |
   Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private, class-fields-public]
 negative:
   phase: parse
diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-4.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-4.js
index 728b669ae053e5382d8a8cdc77d67420611b0272..1c7553efa3b60605250edcd431aea12b51c06101 100644
--- a/test/language/statements/class/privatename-not-valid-earlyerr-script-4.js
+++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-4.js
@@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename that has not been declared in class.
 info: |
   Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 negative:
   phase: parse
diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-5.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-5.js
index e5ed92bcee826db7f3b827410a9e9abc64413534..f9a9bd414c2b236f126678882fc864f83b6c5c41 100644
--- a/test/language/statements/class/privatename-not-valid-earlyerr-script-5.js
+++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-5.js
@@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename outside of class
 info: |
   Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 negative:
   phase: parse
diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-6.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-6.js
index 5901158cfaadfb9d15d24eb564584ba920cd711c..f1a4f8ca8695e7c8946baf2b154a8309d880ecbe 100644
--- a/test/language/statements/class/privatename-not-valid-earlyerr-script-6.js
+++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-6.js
@@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename outside of class.
 info: |
   Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 negative:
   phase: parse
diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-7.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-7.js
index 185ddb54df8e81f0bf20a28545a8ab9fac4633e1..58c14e57dcd3425c79dc44db15d235237a0a46e8 100644
--- a/test/language/statements/class/privatename-not-valid-earlyerr-script-7.js
+++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-7.js
@@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename on object, outside of class.
 info: |
   Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class-fields-private]
 negative:
   phase: parse
diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-8.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-8.js
index 6b6e96374836d7b1555defbb9ed83c6714c6aab7..c134b47409744a24a788fdcc7db9a13d08d1f54d 100644
--- a/test/language/statements/class/privatename-not-valid-earlyerr-script-8.js
+++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-8.js
@@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename on object, outside of class.
 info: |
   Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class-fields-private]
 negative:
   phase: parse
diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-1.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-1.js
index 44a3f94835f03f9d2027d772c029c1a497526092..0da3536a984a677d3b8d8a8a9f4f90690afbfc47 100644
--- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-1.js
+++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-1.js
@@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename in constructor without being declared in class fields
 info: |
   Static Semantics: Early Errors
-  Script : ScriptBody
-    1. Let names be an empty List.
-    2. If Script is parsed directly from PerformEval,
-        a. Let env be the running execution context's PrivateNameEnvironment.
-        b. Repeat while env is not null,
-            i. For each binding named N in env,
-                1. If names does not contain N, append N to names.
-            ii. Let env be env's outer environment reference.
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 ---*/
 
diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-2.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-2.js
index 69ea3b5432a31cf979b139ad368393090e3d75d0..434e1345c47568e1c2f3dbd50e9baf261a9bbe21 100644
--- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-2.js
+++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-2.js
@@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename in function in class without declaring in field
 info: |
   Static Semantics: Early Errors
-  Script : ScriptBody
-    1. Let names be an empty List.
-    2. If Script is parsed directly from PerformEval,
-        a. Let env be the running execution context's PrivateNameEnvironment.
-        b. Repeat while env is not null,
-            i. For each binding named N in env,
-                1. If names does not contain N, append N to names.
-            ii. Let env be env's outer environment reference.
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 ---*/
 
diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-3.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-3.js
index be2283ccb2682d97e67087d1a08720ba09ce6a76..dbfeef0d3a9b62732834c125deba6eae73d975a7 100644
--- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-3.js
+++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-3.js
@@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename that has not been declared in class.
 info: |
   Static Semantics: Early Errors
-  Script : ScriptBody
-    1. Let names be an empty List.
-    2. If Script is parsed directly from PerformEval,
-        a. Let env be the running execution context's PrivateNameEnvironment.
-        b. Repeat while env is not null,
-            i. For each binding named N in env,
-                1. If names does not contain N, append N to names.
-            ii. Let env be env's outer environment reference.
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private, class-fields-public]
 ---*/
 
diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-4.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-4.js
index 78395d58da5d63ec1ef15aa41cfb70214afd7e8b..513999ebc32dd5bb53ff399b79739c7b93c5cd81 100644
--- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-4.js
+++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-4.js
@@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename that has not been declared in class.
 info: |
   Static Semantics: Early Errors
-  Script : ScriptBody
-    1. Let names be an empty List.
-    2. If Script is parsed directly from PerformEval,
-        a. Let env be the running execution context's PrivateNameEnvironment.
-        b. Repeat while env is not null,
-            i. For each binding named N in env,
-                1. If names does not contain N, append N to names.
-            ii. Let env be env's outer environment reference.
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 ---*/
 
diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-5.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-5.js
index 5572340e6799d1e8dc2c4a4d3c20a67b0f97bddb..b3a7bf5a170f8ec3a7c5a8a6653b56e1e2d6fb67 100644
--- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-5.js
+++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-5.js
@@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename outside of class
 info: |
   Static Semantics: Early Errors
-  Script : ScriptBody
-    1. Let names be an empty List.
-    2. If Script is parsed directly from PerformEval,
-        a. Let env be the running execution context's PrivateNameEnvironment.
-        b. Repeat while env is not null,
-            i. For each binding named N in env,
-                1. If names does not contain N, append N to names.
-            ii. Let env be env's outer environment reference.
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 ---*/
 
diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-6.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-6.js
index cb50fa1912af84f2523ec1d30b96d956376ac849..1026d9271d748ad987e78d2ff7cbb4361ce99fe2 100644
--- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-6.js
+++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-6.js
@@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename outside of class.
 info: |
   Static Semantics: Early Errors
-  Script : ScriptBody
-    1. Let names be an empty List.
-    2. If Script is parsed directly from PerformEval,
-        a. Let env be the running execution context's PrivateNameEnvironment.
-        b. Repeat while env is not null,
-            i. For each binding named N in env,
-                1. If names does not contain N, append N to names.
-            ii. Let env be env's outer environment reference.
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class, class-fields-private]
 ---*/
 
diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-7.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-7.js
index 972a395c8e46833fc9da9045ec4f26d6241fe47d..a5dee6c068490ca8250be94e7a472d5f058f2ee6 100644
--- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-7.js
+++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-7.js
@@ -5,9 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename on object, outside of class.
 info: |
   Static Semantics: Early Errors
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class-fields-private]
 ---*/
 
diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-8.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-8.js
index b433d6a6d3a2abf94f60e09b17bfcf9b8b6f3581..fc1ca835e2ecb72c532f2fc2c30602eee4117669 100644
--- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-8.js
+++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-8.js
@@ -5,9 +5,10 @@ esid: sec-scripts-static-semantics-early-errors
 description: Early error when referencing privatename on object, outside of class.
 info: |
   Static Semantics: Early Errors
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
+    ScriptBody : StatementList
+
+    It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval.
+
 features: [class-fields-private]
 ---*/
 
diff --git a/test/language/statements/class/privatename-valid-no-earlyerr.js b/test/language/statements/class/privatename-valid-no-earlyerr.js
index 85efc04213264aa843e20cd2363f8a62c4f57375..7d3f1f52b7bf54bfe898f3433c818f2382cb4cbe 100644
--- a/test/language/statements/class/privatename-valid-no-earlyerr.js
+++ b/test/language/statements/class/privatename-valid-no-earlyerr.js
@@ -1,16 +1,11 @@
 // Copyright (C) 2017 Valerie Young. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
-esid: sec-scripts-static-semantics-early-errors
+esid: sec-all-private-names-valid
 description: Referencing privatename in class within class does not error.
 info: |
-  Static Semantics: Early Errors
-    Script : ScriptBody
-    1. Let names be an empty List.
-      ...
-    3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception.
-
   Static Semantics: AllPrivateNamesValid
+
   AllPrivateNamesValid is an abstract operation which takes names as an argument.
 
     MemberExpression : MemberExpression . PrivateName
@@ -21,9 +16,9 @@ info: |
       1. If StringValue of PrivateName is in names, return true.
       2. Return false.
 
-    ClassBody:ClassElementList
+    ClassBody : ClassElementList
       1. Let newNames be the concatenation of names with PrivateBoundNames of ClassBody.
-      2.Return AllPrivateNamesValid of ClassElementList with the argument newNames.
+      2. Return AllPrivateNamesValid of ClassElementList with the argument newNames.
 
     For all other grammatical productions, recurse on subexpressions/substatements, passing in the names of the caller. If all pieces return true, then return true. If any returns false, return false.
 
diff --git a/test/language/statements/class/static-classelementname-abrupt-completion.js b/test/language/statements/class/static-classelementname-abrupt-completion.js
index d86d1f30d815962ef7e078ce079e49a603a21c76..e173f443302f93c31b617b8c3f2faf2982d51d64 100644
--- a/test/language/statements/class/static-classelementname-abrupt-completion.js
+++ b/test/language/statements/class/static-classelementname-abrupt-completion.js
@@ -9,26 +9,17 @@ info: |
   ...
   27. For each ClassElement e in order from elements
     a. If IsStatic of e is false, then
-        i. Let fields be the result of performing ClassElementEvaluation for e with arguments proto and false.
+      i. Let fields be the result of performing ClassElementEvaluation
+          for e with arguments proto and false.
     b. Else,
-        i. Let fields be the result of performing ClassElementEvaluation for e with arguments F and false.
+      i. Let fields be the result of performing ClassElementEvaluation
+          for e with arguments F and false.
     c. If fields is an abrupt completion, then
-        i. Set the running execution context's LexicalEnvironment to lex.
-        ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment.
-        iii. Return Completion(status).
+      i. Set the running execution context's LexicalEnvironment to lex.
+      ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment.
+      iii. Return Completion(status).
 
-  Runtime Semantics: ClassElementEvaluation
-  ...
-    ClassElement : static FieldDefinition ;
-      1. Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object.
-
-  Runtime Semantics: ClassFieldDefinitionEvaluation
-  With parameters isStatic and homeObject.
-    FieldDefinition : ClassElementNameInitializer
-      1. Let fieldName be the result of evaluating ClassElementName.
-      2. ReturnIfAbrupt(fieldName).
-
-features: [class-fields]
+features: [class-static-fields-public]
 ---*/
 
 function f() {
diff --git a/test/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js b/test/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js
index 226586d8b744d9ce27b341afc79d5e5c7a6d8817..616acd38c2222ab0b2068dd851f36976c943e861 100644
--- a/test/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js
+++ b/test/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js
@@ -7,28 +7,19 @@ esid: runtime-semantics-class-definition-evaluation
 info: |
   Runtime Semantics: ClassDefinitionEvaluation
   ...
-  33. Let result be InitializeStaticFields(F).
-  34. If result is an abrupt completion, then
-    a. Set the running execution context's LexicalEnvironment to lex.
-    b. Return Completion(result).
+  27. For each ClassElement e in order from elements
+    a. If IsStatic of e is false, then
+      i. Let fields be the result of performing ClassElementEvaluation
+          for e with arguments proto and false.
+    b. Else,
+      i. Let fields be the result of performing ClassElementEvaluation
+          for e with arguments F and false.
+    c. If fields is an abrupt completion, then
+      i. Set the running execution context's LexicalEnvironment to lex.
+      ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment.
+      iii. Return Completion(status).
 
-  InitializeStaticFields(F)
-    1. Assert: Type(F) is Object.
-    2. Assert: F is an ECMAScript function object.
-    3. Let fieldRecords be the value of F's [[Fields]] internal slot.
-    4. For each item fieldRecord in order from fieldRecords,
-      a. If fieldRecord.[[static]] is true, then
-        i. Perform ? DefineField(F, fieldRecord).
-
-  DefineField(receiver, fieldRecord)
-    1. Assert: Type(receiver) is Object.
-    2. Assert: fieldRecord is a Record as created by ClassFieldDefinitionEvaluation.
-    3. Let fieldName be fieldRecord.[[Name]].
-    4. Let initializer be fieldRecord.[[Initializer]].
-    5. If initializer is not empty, then
-        a. Let initValue be ? Call(initializer, receiver).
-
-features: [class-fields]
+features: [class-static-fields-public]
 ---*/
 
 function f() {
@@ -39,4 +30,4 @@ assert.throws(Test262Error, function() {
   class C {
     static x = f();
   }
-})
+});