diff --git a/test/annexB/language/expressions/object/__proto__-duplicate.js b/test/annexB/language/expressions/object/__proto__-duplicate.js
index 1d93e263a3dfb32c106720c5dad6e2c3d8d9c325..da984718c1302a7e0631f86a207f08923bd3a24a 100644
--- a/test/annexB/language/expressions/object/__proto__-duplicate.js
+++ b/test/annexB/language/expressions/object/__proto__-duplicate.js
@@ -9,7 +9,9 @@ info: |
     any duplicate entries for "__proto__" and at least two of those entries
     were obtained from productions of the form
     PropertyDefinition : PropertyName : AssignmentExpression .
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({
diff --git a/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js b/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js
index 84c08c04c6c8e61a9c8ebc37385507883850339e..8367f5b63fc4878e8e4c8e2661a3c7a9d8a069a7 100644
--- a/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js
+++ b/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js
@@ -7,7 +7,9 @@ description: >
     semantics of the surrounding context.
     The SV of EscapeSequence :: HexEscapeSequence is the SV of the
     HexEscapeSequence.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/annexB/language/statements/for-in/bare-initializer.js b/test/annexB/language/statements/for-in/bare-initializer.js
index 2ef778ecb0e893a1f5db01f345e87245ef0a4b42..08f106feac0f39299db35d0dfa61b2caceaac165 100644
--- a/test/annexB/language/statements/for-in/bare-initializer.js
+++ b/test/annexB/language/statements/for-in/bare-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in heads prohibit AssignmentExpressions
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var a;
 throw NotEarlyError;
diff --git a/test/annexB/language/statements/for-in/const-initializer.js b/test/annexB/language/statements/for-in/const-initializer.js
index 1f79959dc1bcc0b052090d3591d98096253783db..e58d03f3d58b19b39e55229ab977273886fcf898 100644
--- a/test/annexB/language/statements/for-in/const-initializer.js
+++ b/test/annexB/language/statements/for-in/const-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers with const are prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 for (const a = 0 in {});
diff --git a/test/annexB/language/statements/for-in/let-initializer.js b/test/annexB/language/statements/for-in/let-initializer.js
index f7cc4750a8f0e9ad1e80bd2fd3c30ff7ea21dba4..05d145fa841365472b293f1007ebeeb75f5445b9 100644
--- a/test/annexB/language/statements/for-in/let-initializer.js
+++ b/test/annexB/language/statements/for-in/let-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers with let are prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 for (let a = 0 in {});
diff --git a/test/annexB/language/statements/for-in/strict-initializer.js b/test/annexB/language/statements/for-in/strict-initializer.js
index 60f00d283577b00224220042a1daf6b325e06fc1..5ebeaffccb06b0e9bffa6d0ccc769c5340e213c6 100644
--- a/test/annexB/language/statements/for-in/strict-initializer.js
+++ b/test/annexB/language/statements/for-in/strict-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers in strict mode are prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 throw NotEarlyError;
diff --git a/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js b/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js
index 2507c745028434c3af020850ed19b7d9995fdf7a..4002d79019e70ecd50513d1acc940828d4e8eadc 100644
--- a/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js
+++ b/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers with ArrayBindingPatterns are always prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 for (var [a] = 0 in {});
diff --git a/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js b/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js
index 84c14d60b8d21c6970edfa480522e0be26c8236d..0269e034d76f8517943236e3323619be57c09918 100644
--- a/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js
+++ b/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js
@@ -4,7 +4,9 @@
 esid: sec-initializers-in-forin-statement-heads
 description: >
     for-in initializers with ObjectBindingPattern are always prohibited
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 for (var {a} = 0 in {});
diff --git a/test/language/arguments-object/10.5-1gs.js b/test/language/arguments-object/10.5-1gs.js
index 222a4ac1d24e890afa770abd302893ddd2c9d12d..5896b189f38cc7c004cd02071078ece9a05fec65 100644
--- a/test/language/arguments-object/10.5-1gs.js
+++ b/test/language/arguments-object/10.5-1gs.js
@@ -4,7 +4,9 @@
 /*---
 es5id: 10.5-1gs
 description: Strict Mode - arguments cannot be assigned to in a strict function
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/asi/S7.9.2_A1_T1.js b/test/language/asi/S7.9.2_A1_T1.js
index 5a7921e8def21a822717f697133a1d3ac9e0c868..ab0a52e98592f47d6a7926be8876167eedb24b79 100644
--- a/test/language/asi/S7.9.2_A1_T1.js
+++ b/test/language/asi/S7.9.2_A1_T1.js
@@ -5,7 +5,9 @@
 info: Check examples for automatic semicolon insertion from the Standart
 es5id: 7.9.2_A1_T1
 description: "{ 1 2 } 3 is not a valid sentence in the ECMAScript grammar"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9.2_A1_T3.js b/test/language/asi/S7.9.2_A1_T3.js
index 5cb51f5d0f05349ed717ec37dbe079d56af1f1a8..fcbdfadddcb11aa8a6440124c5550e442795dc3d 100644
--- a/test/language/asi/S7.9.2_A1_T3.js
+++ b/test/language/asi/S7.9.2_A1_T3.js
@@ -5,7 +5,9 @@
 info: Check examples for automatic semicolon insertion from the Standart
 es5id: 7.9.2_A1_T3
 description: for( a ; b \n ) is not a valid sentence in the ECMAScript grammar
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9.2_A1_T6.js b/test/language/asi/S7.9.2_A1_T6.js
index c7eeea2c76bdf49118981f7709a6491f7f4816de..84dfd59a7a0f47f766b994ed9deb5dc14fa4366b 100644
--- a/test/language/asi/S7.9.2_A1_T6.js
+++ b/test/language/asi/S7.9.2_A1_T6.js
@@ -7,7 +7,9 @@ es5id: 7.9.2_A1_T6
 description: >
     if(a>b) \n else c=d is not a valid sentence in the ECMAScript
     grammar
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A10_T2.js b/test/language/asi/S7.9_A10_T2.js
index b99ed68c4252c94b97fe3ef8f22905f1aaabb7b6..29d262a7fed565d0876017ea6c9cd739645bef3c 100644
--- a/test/language/asi/S7.9_A10_T2.js
+++ b/test/language/asi/S7.9_A10_T2.js
@@ -5,7 +5,9 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T2
 description: Checking if execution of "{}*1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A10_T4.js b/test/language/asi/S7.9_A10_T4.js
index bf2a59e98f004bce2aa55e7454a5cdb4d237d37d..b617f178eb9a9058f0ff5f148afb46668ef1c9a1 100644
--- a/test/language/asi/S7.9_A10_T4.js
+++ b/test/language/asi/S7.9_A10_T4.js
@@ -5,7 +5,9 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T4
 description: Checking if execution of "({};)*1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A10_T6.js b/test/language/asi/S7.9_A10_T6.js
index 36f462f9acfb474c2f5d7ffadaa2372edbb1e14d..a4c5c73b0d6d72a86c9e0269a0a6863d10e5d41a 100644
--- a/test/language/asi/S7.9_A10_T6.js
+++ b/test/language/asi/S7.9_A10_T6.js
@@ -5,7 +5,9 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T6
 description: Checking if execution of "{} \n * 1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A10_T8.js b/test/language/asi/S7.9_A10_T8.js
index c439b1599d75216adf5de59606a2144b4e7b1c9f..9486998a302b4c75a4b07704153aa3462bed3876 100644
--- a/test/language/asi/S7.9_A10_T8.js
+++ b/test/language/asi/S7.9_A10_T8.js
@@ -5,7 +5,9 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T8
 description: Checking if execution of "{1 2} 3" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A11_T4.js b/test/language/asi/S7.9_A11_T4.js
index 45663bcee88e9cf08f5a9a5319e34c17581cee2e..a86ca4c14e06a141dd4ffdf9a2011c13d0891f30 100644
--- a/test/language/asi/S7.9_A11_T4.js
+++ b/test/language/asi/S7.9_A11_T4.js
@@ -5,7 +5,9 @@
 info: Check If Statement for automatic semicolon insertion
 es5id: 7.9_A11_T4
 description: Checking if execution of "if (false) x = 1 else x = -1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A11_T8.js b/test/language/asi/S7.9_A11_T8.js
index 314d52781e05ad1527bc75d973dd7773de58fcb1..79924c754ca8fef80ad31b589bf5cd58c6212d83 100644
--- a/test/language/asi/S7.9_A11_T8.js
+++ b/test/language/asi/S7.9_A11_T8.js
@@ -5,7 +5,9 @@
 info: Check If Statement for automatic semicolon insertion
 es5id: 7.9_A11_T8
 description: Use if (false) {x = 1}; \n else x=-1 and check x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A4.js b/test/language/asi/S7.9_A4.js
index 35a01435251409ba40a4a7e26388429c6a23c732..6f27db7274669124adc77904a352887d33f35b94 100644
--- a/test/language/asi/S7.9_A4.js
+++ b/test/language/asi/S7.9_A4.js
@@ -5,7 +5,9 @@
 info: Check Throw Statement for automatic semicolon insertion
 es5id: 7.9_A4
 description: Try use Throw \n Expression construction
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A5.1_T1.js b/test/language/asi/S7.9_A5.1_T1.js
index e8d2d9e7824c1bb5d5f19085cf0614dfe99c3363..94049e80e3a98190d80b3fd2e8ca072412f9447c 100644
--- a/test/language/asi/S7.9_A5.1_T1.js
+++ b/test/language/asi/S7.9_A5.1_T1.js
@@ -5,7 +5,9 @@
 info: Check Postfix Increment Operator for automatic semicolon insertion
 es5id: 7.9_A5.1_T1
 description: Try use Variable \n ++ construction
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A5.3_T1.js b/test/language/asi/S7.9_A5.3_T1.js
index 402f82b6104293e4dbd633ceb246ac9a987151c9..0fd181f3a506f21488140d5add920830e52f65c5 100644
--- a/test/language/asi/S7.9_A5.3_T1.js
+++ b/test/language/asi/S7.9_A5.3_T1.js
@@ -5,7 +5,9 @@
 info: Check Postfix Decrement Operator for automatic semicolon insertion
 es5id: 7.9_A5.3_T1
 description: Try use Variable \n -- construction
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T1.js b/test/language/asi/S7.9_A6.2_T1.js
index 7134816e22c0d76e45be78027469d574164979e5..85dfe9e1e7787f4289efb999a8fdce32ed6d3520 100644
--- a/test/language/asi/S7.9_A6.2_T1.js
+++ b/test/language/asi/S7.9_A6.2_T1.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T1
 description: For header is (semicolon \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T10.js b/test/language/asi/S7.9_A6.2_T10.js
index 201d7395525b81a47f7fc351a2d0b523e06f0e1f..e5da87931dbafa9f9a4d4c2f8c5151635076c46c 100644
--- a/test/language/asi/S7.9_A6.2_T10.js
+++ b/test/language/asi/S7.9_A6.2_T10.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T10
 description: For header is (\n false \n semicolon)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T2.js b/test/language/asi/S7.9_A6.2_T2.js
index 8ada9e295bef0439611f51da0fa220652e1f40ca..f7b3bad3bef7887c399b9790b7c91c1eda9756f1 100644
--- a/test/language/asi/S7.9_A6.2_T2.js
+++ b/test/language/asi/S7.9_A6.2_T2.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T2
 description: For header is (\n semicolon \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T3.js b/test/language/asi/S7.9_A6.2_T3.js
index c6e8e6e478d5402b42a6e0d4abb069658d9deeb8..c4c09c6124d7221d151aa86c7b6b7f43c84f9501 100644
--- a/test/language/asi/S7.9_A6.2_T3.js
+++ b/test/language/asi/S7.9_A6.2_T3.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T3
 description: For header is (\n semicolon)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T4.js b/test/language/asi/S7.9_A6.2_T4.js
index 5daf51dc7af8c3f7361ad6eff7fcd62134ab3221..8b56116a7b1f8382b053b70d26654dfc08e89e22 100644
--- a/test/language/asi/S7.9_A6.2_T4.js
+++ b/test/language/asi/S7.9_A6.2_T4.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T4
 description: For header is (\n \n semicolon)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T5.js b/test/language/asi/S7.9_A6.2_T5.js
index 27ffc7c287d28dfacb86480d6faacc5169f64b24..c14db6d8824dd72805ea23bd8925178159cd9484 100644
--- a/test/language/asi/S7.9_A6.2_T5.js
+++ b/test/language/asi/S7.9_A6.2_T5.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T5
 description: For header is (false semicolon false\n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T6.js b/test/language/asi/S7.9_A6.2_T6.js
index 2cb7e7b3cc781f4a83cf4c5feea0f866b5f708b5..49a7ec981d7ef82812b69b27ab34768aebf2e533 100644
--- a/test/language/asi/S7.9_A6.2_T6.js
+++ b/test/language/asi/S7.9_A6.2_T6.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T6
 description: For header is (false semicolon \n false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T7.js b/test/language/asi/S7.9_A6.2_T7.js
index 98e1c25342c4f2a751e1addbc3d50401e877649c..ecd15214e9f8681e912ad2ff4cb06310f613fe20 100644
--- a/test/language/asi/S7.9_A6.2_T7.js
+++ b/test/language/asi/S7.9_A6.2_T7.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T7
 description: For header is (false \n semicolon \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T8.js b/test/language/asi/S7.9_A6.2_T8.js
index 622bcae48972e5031a7a91b00699ac926cf97052..816d79bb9fba815964df600e409ea35d0f02664f 100644
--- a/test/language/asi/S7.9_A6.2_T8.js
+++ b/test/language/asi/S7.9_A6.2_T8.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T8
 description: For header is (false \n semicolon false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.2_T9.js b/test/language/asi/S7.9_A6.2_T9.js
index 67588f2c049bc18955ebb31850b42c20cd0b18ae..91aead6ec47c1497d33c63dc32b17b40f99d5b35 100644
--- a/test/language/asi/S7.9_A6.2_T9.js
+++ b/test/language/asi/S7.9_A6.2_T9.js
@@ -8,7 +8,9 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T9
 description: For header is (\n semicolon false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T1.js b/test/language/asi/S7.9_A6.3_T1.js
index 84a1e927ff634dc2f2ffa9d788298cbe74001bb7..6986f5fa4b4806566fb00b0caa3d19bfb3b271cc 100644
--- a/test/language/asi/S7.9_A6.3_T1.js
+++ b/test/language/asi/S7.9_A6.3_T1.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T1
 description: For header is (\n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T2.js b/test/language/asi/S7.9_A6.3_T2.js
index 73c9ae4dc26025a6a5dc7a20c4250c6d6ed4c167..432d3ba53db2649b89ad0b8c452966ad90d52625 100644
--- a/test/language/asi/S7.9_A6.3_T2.js
+++ b/test/language/asi/S7.9_A6.3_T2.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T2
 description: For header is (\n \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T3.js b/test/language/asi/S7.9_A6.3_T3.js
index ed7bc7c14860b6d378d19a3ec7f043981cdf273e..a6e70cf0a6f06a5320e706f3d64db698ad5d663c 100644
--- a/test/language/asi/S7.9_A6.3_T3.js
+++ b/test/language/asi/S7.9_A6.3_T3.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T3
 description: For header is (\n \n \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T4.js b/test/language/asi/S7.9_A6.3_T4.js
index 334cffb1c7f106836070b2244d7f70d0df63e947..d9c61bcf25e5fde1bc71cfaa17cad560e5b46de5 100644
--- a/test/language/asi/S7.9_A6.3_T4.js
+++ b/test/language/asi/S7.9_A6.3_T4.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T4
 description: For header is (\n false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T5.js b/test/language/asi/S7.9_A6.3_T5.js
index da20591fff2b03f256550c7d795e5ca159468d48..ff6f333324dd0dfd9662a988129fdfd73893165c 100644
--- a/test/language/asi/S7.9_A6.3_T5.js
+++ b/test/language/asi/S7.9_A6.3_T5.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T5
 description: For header is (false \n false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T6.js b/test/language/asi/S7.9_A6.3_T6.js
index a456b4907a459673728235c8dbe376fa3f52592a..661e5adb5f2600df45c7ee0f71b815ce84f6a3aa 100644
--- a/test/language/asi/S7.9_A6.3_T6.js
+++ b/test/language/asi/S7.9_A6.3_T6.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T6
 description: For header is (\n false \n false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.3_T7.js b/test/language/asi/S7.9_A6.3_T7.js
index 4289645a1c0a62e195a2639c73129fcd1f39f375..bd3f910dc1bd19b7673e75df4254555d1e34c4bb 100644
--- a/test/language/asi/S7.9_A6.3_T7.js
+++ b/test/language/asi/S7.9_A6.3_T7.js
@@ -8,7 +8,9 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T7
 description: For header is (\n false \n false \n false \n)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.4_T1.js b/test/language/asi/S7.9_A6.4_T1.js
index 1d58d7249f62b6687e73fd50f37b1532024569ff..77edb266a72e31213d737f6643bbcba2828adb3e 100644
--- a/test/language/asi/S7.9_A6.4_T1.js
+++ b/test/language/asi/S7.9_A6.4_T1.js
@@ -7,7 +7,9 @@ es5id: 7.9_A6.4_T1
 description: >
     Three semicolons. For header is (false semicolon false semicolon
     false semicolon)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A6.4_T2.js b/test/language/asi/S7.9_A6.4_T2.js
index 7eb567287c3d9080ca436361b2e5619a5b2ad0d0..18bf2db74e8237ef9eda7b5494d7c2d156c98343 100644
--- a/test/language/asi/S7.9_A6.4_T2.js
+++ b/test/language/asi/S7.9_A6.4_T2.js
@@ -7,7 +7,9 @@ es5id: 7.9_A6.4_T2
 description: >
     Three semicolons. For header is (false semicolon false two
     semicolons false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A9_T6.js b/test/language/asi/S7.9_A9_T6.js
index 0457fe39115ed1ab829c78c111c8d29a2358f385..cfe642e4ede358404e16c5ac2a0500635079ca68 100644
--- a/test/language/asi/S7.9_A9_T6.js
+++ b/test/language/asi/S7.9_A9_T6.js
@@ -5,7 +5,9 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T6
 description: Execute do \n while(false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A9_T7.js b/test/language/asi/S7.9_A9_T7.js
index 3d2fe4aefae3204dd55201105eaf99aeab7acb44..d8c6e6591e408692b4720909fef76da5678afdff 100644
--- a/test/language/asi/S7.9_A9_T7.js
+++ b/test/language/asi/S7.9_A9_T7.js
@@ -5,7 +5,9 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T7
 description: Execute do \n\n while(false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/asi/S7.9_A9_T8.js b/test/language/asi/S7.9_A9_T8.js
index 70f5d851f56bc0dd4ac591782a1dd1504e75c380..9abe51e53f2a0dcba642c23dff93880d6a18a778 100644
--- a/test/language/asi/S7.9_A9_T8.js
+++ b/test/language/asi/S7.9_A9_T8.js
@@ -5,7 +5,9 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T8
 description: Execute do {}; \n while(false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/block-scope/syntax/for-in/disallow-initialization-assignment.js b/test/language/block-scope/syntax/for-in/disallow-initialization-assignment.js
index fd16e9dab2326c2fe4642d0ca2239fc93ae9270c..15ba525158b3c56d2c59fa0c4c0b5c146d969865 100644
--- a/test/language/block-scope/syntax/for-in/disallow-initialization-assignment.js
+++ b/test/language/block-scope/syntax/for-in/disallow-initialization-assignment.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow initialization assignment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x = 3 in {}) { }
 
diff --git a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js
index 9af2e3d43bfbec07f6e436196b066cbd7181bd2a..3d9870e38d84ee5c5e4f013db2a13a1beea7d5df 100644
--- a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js
+++ b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow multiple lexical bindings, with and without initializer
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x = 3, y in {}) { }
 
diff --git a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js
index 40b0677e63274608977d28248a5ad2e468e63000..8531acc45b67461f2a70ed1401c9b82cfe595dbf 100644
--- a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js
+++ b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow multiple lexical bindings, with initializer
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x = 3, y = 4 in {}) { }
 
diff --git a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-without-and-with-initializer.js b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-without-and-with-initializer.js
index f52bd0b7652f180b8911b2c8a38cdb9a08a17017..08a8fc854fb6d28eab7e3b5a95c5d32f94f9d49b 100644
--- a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-without-and-with-initializer.js
+++ b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-without-and-with-initializer.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow multiple lexical bindings, without and with initializer
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x, y = 4 in {}) { }
 
diff --git a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings.js b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings.js
index 505314ac14f57f7359ce8503f2f664a3cf72adad..16093ffbd58665451d15f48269f0947035382b89 100644
--- a/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings.js
+++ b/test/language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     for declaration:
     disallow multiple lexical bindings
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let x, y in {}) { }
 
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js
index 30e0c2790ce32eeb1696a388139f328eea4f7439..8b1a71b40a29c38d2bc7bb7725f3ef6fcf67e654 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 do function g() {} while (false)
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js
index 90d994cd774a1705043f02c1399c0a7f943e5ab4..b7fbcca67d95b631dc4063589ae2d8ffe992b340 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 for (;false;) function g() {}
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js
index e3e3e783bf739f209c7870150fb8ca58e1429b78..a55f7e2d4d2490ac5ba286f64eeb542348dd54ab 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 if (true) {} else function g() {}
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js
index 2931bdf1a426712d8bfc6b8d5b50bc0aed6ae536..3786ff764300ad7fe8a75a135c5a07bbcb9dfcf0 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 if (true) function g() {}
diff --git a/test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js b/test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js
index 07761246a35d64575087b17ed8e0618f8cc9e475..77d07425b519d907e98b4150406114e629793982 100644
--- a/test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js
+++ b/test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js
@@ -5,7 +5,9 @@ es6id: 13.1
 description: >
     function declarations in statement position in strict mode:
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 while (false) function g() {}
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration.js
index 7dc9799f86eb7216699d247efed544fef333d086..df3332bc708d5f961cc23fd1892d6e977e8f0b7e 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration.js
@@ -5,7 +5,9 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare function declaration with function declaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { function f() {} function f() {} }
 
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-let.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-let.js
index c21ac71261fa37e2c1b80b6b2ea1fdc0ce325ca8..e8b8a57bde70461646feb48748109c862ab4091b 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-let.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-let.js
@@ -5,6 +5,8 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare function declaration with let
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { function f() {} let f; }
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var.js
index c9d6280ef9b47fd3d83e3438e24e9db0e5c9ed6d..c64bc6fc3f9ec10175b9b8ebda69188773bdcd67 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var.js
@@ -5,6 +5,8 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare function declaration with var
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { function f() {} var f; }
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-binding-with-let.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-binding-with-let.js
index 3f83a6194315615bdb6b5ca2f8000c1b5f26e330..017f9340ea899aaffe6e8d59663dd82dd6d839f9 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-binding-with-let.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-binding-with-let.js
@@ -5,7 +5,9 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare var binding with let
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { var f; let f; }
 
diff --git a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration.js b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration.js
index 7b0dd1a98886d8ac34c6f8fb3eecceab2e516021..51a846665ee7d9b0872145c3dda478e072daf21e 100644
--- a/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration.js
@@ -5,7 +5,9 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare var with function declaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { var f; function f() {} }
 
diff --git a/test/language/comments/S7.4_A2_T2.js b/test/language/comments/S7.4_A2_T2.js
index e46e9ef731975f4c3b4b8f3ba979a96c996909f7..8ea433480cf7f406288f7f68290327847051af09 100644
--- a/test/language/comments/S7.4_A2_T2.js
+++ b/test/language/comments/S7.4_A2_T2.js
@@ -5,7 +5,9 @@
 info: Correct interpretation of multi line comments
 es5id: 7.4_A2_T2
 description: Try use /*CHECK#1/. This is not closed multi line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*CHECK#1/
diff --git a/test/language/comments/S7.4_A3.js b/test/language/comments/S7.4_A3.js
index 422bc3d9c0b5acdfa38e55d557313ccb00c3e221..63a275d4210594c0e794003faadf2fcd66628ce0 100644
--- a/test/language/comments/S7.4_A3.js
+++ b/test/language/comments/S7.4_A3.js
@@ -5,7 +5,9 @@
 info: Multi line comments cannot nest
 es5id: 7.4_A3
 description: Try use nested comments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/language/comments/S7.4_A4_T1.js b/test/language/comments/S7.4_A4_T1.js
index ea6281a671779c762946ef6f5439d3d2df532494..0a003a039fcbf0e53e9e99cbd900495a78c5fd18 100644
--- a/test/language/comments/S7.4_A4_T1.js
+++ b/test/language/comments/S7.4_A4_T1.js
@@ -5,7 +5,9 @@
 info: Single and Multi line comments are used together
 es5id: 7.4_A4_T1
 description: Try use 2 close comment tags
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/language/comments/S7.4_A4_T4.js b/test/language/comments/S7.4_A4_T4.js
index a6913e7d02b6f5671b0f7859d982f192e4ade0e6..7c1baab729b683201ecec576dde1b8e4cf5b166b 100644
--- a/test/language/comments/S7.4_A4_T4.js
+++ b/test/language/comments/S7.4_A4_T4.js
@@ -5,7 +5,9 @@
 info: Single and Multi line comments are used together
 es5id: 7.4_A4_T4
 description: Try to open Multi line comment at the end of Single comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/language/comments/multi-line-html-close-extra.js b/test/language/comments/multi-line-html-close-extra.js
index 211127d29f2e8a32e4c4193ce2cb2caf23c35b73..23b6dc6807a64626aadc44ec8c8354802375f45f 100644
--- a/test/language/comments/multi-line-html-close-extra.js
+++ b/test/language/comments/multi-line-html-close-extra.js
@@ -15,7 +15,9 @@ info: |
 
     MultiLineComment ::
       /* FirstCommentLine[opt] LineTerminator MultiLineCommentChars[opt] * / HTMLCloseComment[opt]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /*
diff --git a/test/language/comments/single-line-html-close-without-lt.js b/test/language/comments/single-line-html-close-without-lt.js
index 770e24eec3c66b4e59b2729353980063262b006d..400689ce9da4f035567e119a11d0687390470f5e 100644
--- a/test/language/comments/single-line-html-close-without-lt.js
+++ b/test/language/comments/single-line-html-close-without-lt.js
@@ -14,7 +14,9 @@ info: |
 
     HTMLCloseComment ::
       WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ;-->
diff --git a/test/language/directive-prologue/10.1.1-2gs.js b/test/language/directive-prologue/10.1.1-2gs.js
index 057858a6b0bc9c52b8f03baa59e894208b105f59..c503c48619ea4cec37b20e48740eceb109b83e8a 100644
--- a/test/language/directive-prologue/10.1.1-2gs.js
+++ b/test/language/directive-prologue/10.1.1-2gs.js
@@ -6,7 +6,9 @@ es5id: 10.1.1-2gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict''
     which lost the last character ';'
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/directive-prologue/10.1.1-5gs.js b/test/language/directive-prologue/10.1.1-5gs.js
index 12904b99a5e82aa53ca01103f3b661bf0318ca0b..d77ac7706ca17daa550ac7389e99f0f2afc4fa8d 100644
--- a/test/language/directive-prologue/10.1.1-5gs.js
+++ b/test/language/directive-prologue/10.1.1-5gs.js
@@ -6,7 +6,9 @@ es5id: 10.1.1-5gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict';'
     which appears at the start of the code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/directive-prologue/10.1.1-8gs.js b/test/language/directive-prologue/10.1.1-8gs.js
index b64b5126d48933a4a86452fea9206669fd3422eb..c83cd56fa354e8ae9125e366e2c3bdf76bfd8d77 100644
--- a/test/language/directive-prologue/10.1.1-8gs.js
+++ b/test/language/directive-prologue/10.1.1-8gs.js
@@ -6,7 +6,9 @@ es5id: 10.1.1-8gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict';'
     which appears twice in the code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/directive-prologue/14.1-4gs.js b/test/language/directive-prologue/14.1-4gs.js
index 13c9674c75b4153907d949dfa5ea0a6e9484a229..d0069a3df21266701eb592186b9c8cb8a00e0b9e 100644
--- a/test/language/directive-prologue/14.1-4gs.js
+++ b/test/language/directive-prologue/14.1-4gs.js
@@ -6,7 +6,9 @@ es5id: 14.1-4gs
 description: >
     StrictMode - a Use Strict Directive followed by a strict mode
     violation
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/directive-prologue/14.1-5gs.js b/test/language/directive-prologue/14.1-5gs.js
index 83f8df0d10e4a0c66a1fb13e2d91049247f50643..9a8308e9758b1026e88e6cfdb922e1adfb652bc1 100644
--- a/test/language/directive-prologue/14.1-5gs.js
+++ b/test/language/directive-prologue/14.1-5gs.js
@@ -6,7 +6,9 @@ es5id: 14.1-5gs
 description: >
     StrictMode - a Use Strict Directive embedded in a directive
     prologue followed by a strict mode violation
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [raw]
 ---*/
 
diff --git a/test/language/eval-code/direct/parse-failure-2.js b/test/language/eval-code/direct/parse-failure-2.js
index 54716deafa3ed3d8959352f07ede57ad51dcf2d8..51c361873052625858319bae83cbbc8ac5867c41 100644
--- a/test/language/eval-code/direct/parse-failure-2.js
+++ b/test/language/eval-code/direct/parse-failure-2.js
@@ -5,9 +5,9 @@
 info: If the parse fails, throw a SyntaxError exception (but see also clause 16)
 es5id: 15.1.2.1_A2_T2
 description: Checking if execution of "eval("x = 1; x\u000A++")" fails
-negative: SyntaxError
 ---*/
 
-//CHECK#1
 var x;
-eval("x = 1; x\u000A++");
+assert.throws(SyntaxError, function() {
+  eval("x = 1; x\u000A++");
+});
diff --git a/test/language/expressions/arrow-function/param-dflt-yield-expr.js b/test/language/expressions/arrow-function/param-dflt-yield-expr.js
index 20e6786187cbc9d7884a0da0e708cad753a7cd77..b7a1af16754c3d5488ab1a2113cff97595e35783 100644
--- a/test/language/expressions/arrow-function/param-dflt-yield-expr.js
+++ b/test/language/expressions/arrow-function/param-dflt-yield-expr.js
@@ -16,7 +16,9 @@ info: |
 
   - It is a Syntax Error if ArrowParameters Contains YieldExpression is true. 
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function *g() {
diff --git a/test/language/expressions/arrow-function/param-dflt-yield-id-non-strict.js b/test/language/expressions/arrow-function/param-dflt-yield-id-non-strict.js
index 90ce97b2a76794d5cd147295d601f6179e84ffb2..ee32a554923225d2cfac7ef8bb40af31ab95b711 100644
--- a/test/language/expressions/arrow-function/param-dflt-yield-id-non-strict.js
+++ b/test/language/expressions/arrow-function/param-dflt-yield-id-non-strict.js
@@ -12,7 +12,9 @@ info: |
     ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]
 features: [default-parameters]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var yield = 23;
diff --git a/test/language/expressions/arrow-function/param-dflt-yield-id-strict.js b/test/language/expressions/arrow-function/param-dflt-yield-id-strict.js
index 0e84b4b3fd428e9b49ce17ca6a06e846d8bb8016..99a4a4c5ed0a08630024a54a39a46ad542a3eb78 100644
--- a/test/language/expressions/arrow-function/param-dflt-yield-id-strict.js
+++ b/test/language/expressions/arrow-function/param-dflt-yield-id-strict.js
@@ -11,7 +11,9 @@ info: |
     ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]
 features: [default-parameters]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (x = yield) => {};
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js
index cbbac94aaee27c27224da8b14b3fa3eec68592a6..341fc6682d49e74cbf6f365fab8b449e208f23ee 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js
@@ -15,6 +15,8 @@ description: >
 
     ReservedWord : FutureReservedWord
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = enum => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js
index e0a3e0532715c4430a87189730cc896cafb4e480..626ecc65dc75cea1abea6a8c8339fc5c766da0bf 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js
@@ -17,7 +17,9 @@ description: >
 
     Strict Mode
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = package => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js
index 4833155bf02f8b791ebe09cf5251da8634cf58a3..6361fc7cf4604f303d2eb3aefdaf127a1958f2c2 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js
@@ -15,6 +15,8 @@ description: >
 
     ReservedWord : Keyword
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = switch => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js
index 41185ef6ebcc66139fd60406f79452a8ee841e33..64df5df6ec21f819cf956489914fe45444c4e271 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js
@@ -9,7 +9,9 @@ description: >
 
     No parameter named "arguments"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = arguments => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js
index bd4662e33b83af6b808225d5baa7a10d8681809b..157a409b1dc552338ec978aea57c602dcbdf4b0f 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js
@@ -10,7 +10,9 @@ description: >
 
     No parameter named "eval"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = eval => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js
index 98154b7b0fd71a5f383e7b4d05f07e2efe911a91..fbaa2dfe1ff9802db337df4082b8f30df8730934 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js
@@ -10,7 +10,9 @@ description: >
 
     No parameter named "yield"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = yield => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js
index 2deba68f533a54a6abba67504e7d4c09227894dd..403ec4cccff6584059680991df641509ce3514aa 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js
@@ -7,6 +7,8 @@ description: >
 
     Includes ...rest
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ...x => x;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js
index a956a4c133f5543d4a22f857f15eb0b5388e74b3..ace6c9a7deca9320c6f0e4a12b0926b351e9a5d8 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js
@@ -14,7 +14,9 @@ description: >
 
     No parameters named "arguments"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = (arguments) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js
index 25507d52bbeb3092d587392a03294083a8ef194f..2cdb597dd3079833acb54251dd9eec8cdf502235 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js
@@ -16,6 +16,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, [x]) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js
index f14fd4adae368cc8c4466bec855f314d7f18dc45..8c3258539b7a68e896a07d46648b5c57d65d7c16 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js
@@ -16,6 +16,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ([x, x]) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js
index 62cd34fbc45d20cef6d99d615af8936161563e89..a3b0b7160ce28576011975cae782f10ca2ef43b6 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js
@@ -18,6 +18,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ([x], ...x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js
index 726529fb3e549ef7087df32cd5d6fd6701a66560..540fd0488e830ba9bea20f4410a2656d086fd725 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js
@@ -16,6 +16,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, {x}) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js
index 87ea21470912b21f9465eba14fd16b34b6fa804b..3c0e2983435f1e8ddaae96111f8cfc184b8e474e 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js
@@ -18,6 +18,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, {y: x}) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js
index 9da505ef407ff0e4f4a597e51c87f51bafea06f1..eb058efe22690974113ad30399ab26a50d5f2b10 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js
@@ -18,6 +18,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ({x}, {y: x}) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js
index fd05542d15df56fb9cfa1efcb1d1fcea74838d73..3b3151c6073063a5b69b0727fcaf6cbbde22ab2e 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js
@@ -20,6 +20,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ({x}, ...x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js
index b547b6cb3ff0eb573e7f953421b35470db18d526..eb45aee893446fedcfc6477d82ca9119b6ff7024 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js
@@ -20,6 +20,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ({y: x}, ...x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js
index d16d4d033f00d1b6d618fee1572e8f53a71d82a8..e39c273a096b7d24692a7ae4f6afe73009e49b29 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js
@@ -18,6 +18,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ({y: x, x}) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js
index 368c8e9e0142f42a1c9f916be7965d735a1bd84e..5d36abb1f86cfa66cb8886392837b43ce16401fa 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js
@@ -14,6 +14,8 @@ description: >
 
     No duplicates, rest
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, ...x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js
index 56e1cb3a4a648591f2c0f250b565ce4b27d75dcb..e4e7a82c895209514eedc5662f6d20a0d64d3f32 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js
@@ -14,6 +14,8 @@ description: >
 
     No duplicates
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = (x, x) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js
index d38f6acc8d18c09361f9dc511b1da6166d761a5c..70bb0782e2a00f2b6e55df89c05428c114d9407a 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js
@@ -14,7 +14,9 @@ description: >
 
     No parameters named "eval"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = (eval) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js
index 4152b370729cb98ea5ee93e19df266ff6ed6a210..1511a903b2bb45bca904f872e8fec1fb4ebc7f1a 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js
@@ -9,7 +9,9 @@ description: >
 
     No parameter named "yield"
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 var af = (yield) => 1;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js
index c3321ec5f1327312700c70c0c2df8ff040dea6eb..6a836f6027430194b497f9087b5cf85b4b9c7425 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js
@@ -6,7 +6,9 @@ description: >
     ArrowFunction[In, Yield] :
       ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = x
 => x;
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js
index 27c3d9c70fb3e0f4b813116069abebc4ea4003f8..299198226d0191df0a339f28d0172c879541b788 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js
@@ -8,7 +8,9 @@ description: >
 
     No parens around ArrowParameters
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = x
 => {};
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js
index e7bc0458a47a93bd1e834e1da1c89d3724d49c19..d448e0ff6ecb5737ef3fa67d87bfee8431888d40 100644
--- a/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js
@@ -5,7 +5,9 @@ es6id: 14.2
 description: >
     ArrowFunction[In, Yield] :
       ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var af = ()
 => {};
diff --git a/test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js b/test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js
index b7b5d06bf635c8be0f91d6a50f70a23089da947f..496bdbef0d09d6035fdec7e3d0f23286d9a9a2e4 100755
--- a/test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of ConciseBody is true and IsSimpleParameterList of ArrowParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f = (a = 0) => {
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js b/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js
index c96c4c77a3deb4f97097aecb5531d283666ee967..4b57ba77d43816871263b8de639dbf362a687e3c 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async (x = 1) => {"use strict"}
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js b/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js
index c3b0163991088f815896dde0da9a93a7107df213..321c8b87adf356df7bd9f278bb4bf75a9c3c1357 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains arguments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js b/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js
index b33839ad419e0087a0d5cf51b1aa1513e59ccf93..6b6212b393d4487ea85d15d281d7b18518ddd096 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js
@@ -5,6 +5,8 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters' default expressions contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 async(x = await) => {  }
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js b/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js
index 36ad10600fd6038b27b58d2bf7d112d87f800376..00b2f8dc222dbf712ed991e6f26994e1b65501d8 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js
@@ -5,6 +5,8 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 async(await) => {  }
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js b/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js
index 5c1fb0a8f5eacd70dbba4af71c76b8b2a2a2b870..2d1ad483fa4681342f47e8d390ace70b07e1dd34 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async(foo) => { super() };
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js b/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js
index 35e8eaad12c05e13db05d87b449eb8d05d4a5b22..b6240d01c6d8c602477dff0bb279d94de88eea88 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async(foo) => { super.prop };
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 280162b188ca3f946e1ca5d874f4c7b645eca174..075f705907845758c781b4f96ab2e50cf4cf3c50 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
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If strict mode, early error rules for StrictFormalParameters are applied
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js b/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js
index 595d3ee0210aa33dd2185f01f0632a2821b4f4da..1176445645930b74912c399daa14c33a0c8e9aa5 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js
index 97c6201d4fcb98448d5cc0e159670c796a92f4eb..bfebf8e19767573b7ed16f7a6ee079640c3836df 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async(bar) => { let bar; }
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js
index 73f67feb499e76c60137eef753c2a357f87ee0ba..6c22da809df069834eb6bc35dd207f7f012a9587 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async(foo = super()) => {}
diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js
index 8e14b1e61b461053d372aab53900420ca761c931..f58498259f3fa11b68828fe3fbd6942214592c95 100644
--- a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js
+++ b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async (foo = super.foo) => { }
diff --git a/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js b/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js
index e52af62cf7475fe18a35a2f41e8b1e2ac21cff2a..b852875b2467ea3af75f4f0f719b990ba8196e2c 100644
--- a/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js
+++ b/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function (x = 1) {"use strict"})
diff --git a/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js b/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js
index 87b3ba9f1d070fe4bacc36ff307b8b3c22c419a0..96b813f3ad0d7029ac9c408e547da2d0949ee7a7 100644
--- a/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js
+++ b/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName arguments. 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 (async function arguments () {  })
diff --git a/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js b/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js
index 16050d5b85eb0946317dde890f1cffdd84da09e2..cf6a0a18b635fdcd0b4213e4386b7e3de1ab1cd6 100644
--- a/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js
+++ b/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName eval. 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 (async function eval () { })
diff --git a/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js b/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js
index e27fb987b48d6079eb694c52b9785281026e29ba..37d6f6ad86b23bd9622a35b4140529d89afb7a49 100644
--- a/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js
+++ b/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (foo) { super() })
diff --git a/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js b/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js
index 3539109e20e38582d97f4f8d682405bc4570766d..703fe37e753a276465720880c34a3b4efaf3f086 100644
--- a/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js
+++ b/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (foo) { super.prop });
diff --git a/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js b/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js
index 972b30863f757dd35fb3b5dce65964d744cbd707..08c537aa2e20c1be08c62a775809a585321feb25 100644
--- a/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js
+++ b/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js b/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js
index 8414ce634ff56701771b7776a731aa5ca2bd42d6..7b05290946201dec66c79fe7a6cc026998bd422f 100644
--- a/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js
+++ b/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (bar) { let bar; });
diff --git a/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js b/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js
index 6997deb7d8e360b9f59161c9a0cbb8b6938ccdfb..411154538d667d19e9b27f27ce6d3527aa3afdab 100644
--- a/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js
+++ b/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (foo = super()) { var bar; });
diff --git a/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js b/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js
index 04110a5aa46fc7177bb411ddfec80b709049e59a..8db0175b607b83adc73f6c4cb3f876ac74967a86 100644
--- a/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js
+++ b/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (async function foo (foo = super.foo) { var bar; });
diff --git a/test/language/expressions/await/await-BindingIdentifier-nested.js b/test/language/expressions/await/await-BindingIdentifier-nested.js
index a4813b607b0882b5a6b1f602558a3c90d41269ad..39f239d2bafef80fd01d5d5c6e55c0915f785b5a 100644
--- a/test/language/expressions/await/await-BindingIdentifier-nested.js
+++ b/test/language/expressions/await/await-BindingIdentifier-nested.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   Await is not allowed as an identifier in functions nested in async functions
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo() {
diff --git a/test/language/expressions/await/no-operand.js b/test/language/expressions/await/no-operand.js
index 88705df7927cd69f14143e471498b06f06b9e950..8b44ebcf33df1c0559adba09254bafd3270d4255 100644
--- a/test/language/expressions/await/no-operand.js
+++ b/test/language/expressions/await/no-operand.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   await requries an operand.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo() {
diff --git a/test/language/expressions/call/S11.2.4_A1.3_T1.js b/test/language/expressions/call/S11.2.4_A1.3_T1.js
index e97e6edd0e960f73bbf1c3e505d7b544503904c0..ef953e362583216caa782c85bae8892df1e1798c 100644
--- a/test/language/expressions/call/S11.2.4_A1.3_T1.js
+++ b/test/language/expressions/call/S11.2.4_A1.3_T1.js
@@ -7,7 +7,9 @@ info: >
     syntax
 es5id: 11.2.4_A1.3_T1
 description: incorrect syntax
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f_arg() {
diff --git a/test/language/expressions/call/trailing-comma.js b/test/language/expressions/call/trailing-comma.js
index 0911bfe996266135090ac33b29f351f6af8e50fb..4143e77aea0848280ed5c67232d8296585221943 100644
--- a/test/language/expressions/call/trailing-comma.js
+++ b/test/language/expressions/call/trailing-comma.js
@@ -6,7 +6,9 @@ description: >
   in a call expression.
 info: http://jeffmo.github.io/es-trailing-function-commas/
 author: Jeff Morrison <lbljeffmo@gmail.com>
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function foo() {}
diff --git a/test/language/expressions/class/gen-method-param-dflt-yield.js b/test/language/expressions/class/gen-method-param-dflt-yield.js
index da350ddbba0f55d6f00d0c00a6fd48ee7cd00ff1..405665e7fd0e770defec214b55e1a82ce6f4f293 100644
--- a/test/language/expressions/class/gen-method-param-dflt-yield.js
+++ b/test/language/expressions/class/gen-method-param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class {
diff --git a/test/language/expressions/class/getter-param-dflt.js b/test/language/expressions/class/getter-param-dflt.js
index a6cbb974ecb219d1795daf1cc069d32a690aa586..32066aa010f66d5cfed2d9baf6a182d6aefae5d1 100644
--- a/test/language/expressions/class/getter-param-dflt.js
+++ b/test/language/expressions/class/getter-param-dflt.js
@@ -13,7 +13,9 @@ info: |
 
     get PropertyName[?Yield] ( ) { FunctionBody }
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class { get a(param = null) {} };
diff --git a/test/language/expressions/class/method-param-dflt-yield.js b/test/language/expressions/class/method-param-dflt-yield.js
index 378e0e02f024d0255377372419344382692ea7ee..5f30e4f3c75f147c449b646e9f5c582637356d2c 100644
--- a/test/language/expressions/class/method-param-dflt-yield.js
+++ b/test/language/expressions/class/method-param-dflt-yield.js
@@ -10,7 +10,9 @@ info: |
 
     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class {
diff --git a/test/language/expressions/class/static-gen-method-param-dflt-yield.js b/test/language/expressions/class/static-gen-method-param-dflt-yield.js
index c24810c3bb6ba945a5c64e286671eaee9287a7dc..8158dcdeee476104739155b20442ec59fb469d85 100644
--- a/test/language/expressions/class/static-gen-method-param-dflt-yield.js
+++ b/test/language/expressions/class/static-gen-method-param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class {
diff --git a/test/language/expressions/class/static-method-param-dflt-yield.js b/test/language/expressions/class/static-method-param-dflt-yield.js
index a6b6d16acd9e2dabaad039107b6a66bf5f253d4f..f8153fd21e741597c45b9260de5d3299db8284ae 100644
--- a/test/language/expressions/class/static-method-param-dflt-yield.js
+++ b/test/language/expressions/class/static-method-param-dflt-yield.js
@@ -10,7 +10,9 @@ info: |
 
     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, class {
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-1gs.js b/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
index 0ffe2294d4e9abe8936cced4af3ba279193d8d3c..bc039a556e71a1f77c1e545a38430565d29fe369 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
@@ -6,7 +6,9 @@ es5id: 11.13.2-6-1gs
 description: >
     Strict Mode - SyntaxError is throw if the identifier eval appears
     as the LeftHandSideExpression of a Compound Assignment operator(*=)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/conditional/in-branch-2.js b/test/language/expressions/conditional/in-branch-2.js
index a66b18feef54b977600b960a750ecaf02bda1e0f..f5524ffd8909d24770bbbed27638457d47e0353e 100644
--- a/test/language/expressions/conditional/in-branch-2.js
+++ b/test/language/expressions/conditional/in-branch-2.js
@@ -12,7 +12,9 @@ info: |
   ConditionalExpression[In, Yield] :
     LogicalORExpression[?In, ?Yield]
     LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (true ? 0 : 0 in {}; false; ) ;
diff --git a/test/language/expressions/conditional/in-condition.js b/test/language/expressions/conditional/in-condition.js
index c393fc1fde7b0ead90dcb967ebdc41f408e48483..43fb78e3c221e6f4399c6ae2ecac55cf89096950 100644
--- a/test/language/expressions/conditional/in-condition.js
+++ b/test/language/expressions/conditional/in-condition.js
@@ -12,7 +12,9 @@ info: |
   ConditionalExpression[In, Yield] :
     LogicalORExpression[?In, ?Yield]
     LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ('' in {} ? 0 : 0; false; ) ;
diff --git a/test/language/expressions/delete/11.4.1-5-a-5gs.js b/test/language/expressions/delete/11.4.1-5-a-5gs.js
index 6596c92d59c35f1086b60640d1089ede966bc982..aeb1deefd50ca48ad139daf34d146952b9bd7566 100644
--- a/test/language/expressions/delete/11.4.1-5-a-5gs.js
+++ b/test/language/expressions/delete/11.4.1-5-a-5gs.js
@@ -6,7 +6,9 @@ es5id: 11.4.1-5-a-5gs
 description: >
     Strict Mode - SyntaxError is thrown when deleting a variable which
     is primitive type(boolean)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
index 8c45aa11358d48c2d35396ce9a6346382170328a..868beda4774bd899ec58f5d3866b539581f20c8e 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `~` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 ~3 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
index 34ef6a0b62636a7cc1323f34712a0183d944e058..2bced284fbe596c4ea86e6cb915cb42e9e7c7315 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `delete` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 delete o.p ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
index 0b5b1ed3f7e25bdebd7f57f877e886772f05c107..8a1ee43c3bdbc0a8bdd09c4dde8a139a2f669187 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `!` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !1 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
index 3cfef2fba70dd8dfbb375c2726b536bce94b066b..c735ec9013442e508b80666651f71f181ba8c765 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `-` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 -3 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
index 71762aecc9ac17de634f765da633b0d64b1e824d..beeace9558c0770c5d8caf99672bed3cabaed391 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `+` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 +1 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
index a83b657e2f84e48d7d90c659927c72e059ac4c9a..bad4c9bb2379b517148b4eb9edfe9e652c7aa84c 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `typeof` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 typeof 1 ** 2;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
index 8b8b85ca0274e822a238a4e27aaf4a1e28152b5f..e0ec9cea1984b1017ee028b031f5b91f185fd986 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
@@ -15,6 +15,8 @@ info: >
     `void` UnaryExpression
     ...
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 void 1 ** 2;
diff --git a/test/language/expressions/function/early-body-super-call.js b/test/language/expressions/function/early-body-super-call.js
index 8b31bb32f4fec9f4324121b077dcbd54cb04debc..21495d0f031a9d31953ac4ca38c23a68f3c68c8b 100644
--- a/test/language/expressions/function/early-body-super-call.js
+++ b/test/language/expressions/function/early-body-super-call.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Body may not contain a "super" call
 info: >
   It is a Syntax Error if FunctionBody Contains SuperCall is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function() {
diff --git a/test/language/expressions/function/early-body-super-prop.js b/test/language/expressions/function/early-body-super-prop.js
index 05e2f4b82883f145613b2a61f8bab818fa7db2d8..3e6f58af548d467280acbf10c9d8a6d0608ba051 100644
--- a/test/language/expressions/function/early-body-super-prop.js
+++ b/test/language/expressions/function/early-body-super-prop.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Body may not contain a "super" property reference
 info: >
   It is a Syntax Error if FunctionBody Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function() {
diff --git a/test/language/expressions/function/early-params-super-call.js b/test/language/expressions/function/early-params-super-call.js
index 6cac1bc103149726715f7381b582df90f8720bc2..0b58ae50a4d5953f12ae85b0dc532c79c62785d8 100644
--- a/test/language/expressions/function/early-params-super-call.js
+++ b/test/language/expressions/function/early-params-super-call.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Parameters may not contain a "super" call
 info: >
   It is a Syntax Error if FormalParameters Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function(x = super()) {};
diff --git a/test/language/expressions/function/early-params-super-prop.js b/test/language/expressions/function/early-params-super-prop.js
index 8ae2945d7dbfd069caded51af4bcdb1f5ded90ef..cd91cc412ea551ea794c6696a710a93cc4fb718f 100644
--- a/test/language/expressions/function/early-params-super-prop.js
+++ b/test/language/expressions/function/early-params-super-prop.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Parameters may not contain a "super" property reference
 info: >
   It is a Syntax Error if FunctionBody Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function(x = super.x) {};
diff --git a/test/language/expressions/function/param-dflt-yield-strict.js b/test/language/expressions/function/param-dflt-yield-strict.js
index 875973f963ed89ed155e70d5a93a778237d5f2bc..7403292368af44add62f6186292c0026d27007d8 100644
--- a/test/language/expressions/function/param-dflt-yield-strict.js
+++ b/test/language/expressions/function/param-dflt-yield-strict.js
@@ -11,7 +11,9 @@ info: |
     function BindingIdentifieropt ( FormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function *g() {
diff --git a/test/language/expressions/function/use-strict-with-non-simple-param.js b/test/language/expressions/function/use-strict-with-non-simple-param.js
index facf58bd5da4b9a0171671d4e5d4361103d3b967..2a9614b3987293421c6df0a6945612c9e149fcc9 100755
--- a/test/language/expressions/function/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/function/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f = function(a = 0) {
diff --git a/test/language/expressions/generators/param-dflt-yield.js b/test/language/expressions/generators/param-dflt-yield.js
index 98952a297412e4e5388caf2017a321f434e57c16..7b197f737da8eaad3cd802ddf3bce3f74844f8f7 100644
--- a/test/language/expressions/generators/param-dflt-yield.js
+++ b/test/language/expressions/generators/param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, function*(x = yield) {};
diff --git a/test/language/expressions/generators/use-strict-with-non-simple-param.js b/test/language/expressions/generators/use-strict-with-non-simple-param.js
index f6fdefd3beb1277f08e1b41820db02215e2dcfd8..7d5d29a8ca62d973b9b3c8a66965e322f8aad156 100755
--- a/test/language/expressions/generators/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/generators/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of FormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f = function*(a = 0) {
diff --git a/test/language/expressions/generators/yield-as-binding-identifier.js b/test/language/expressions/generators/yield-as-binding-identifier.js
index ed9abdc800d64bfb64624cbb42662244aa8dfce6..d90c5945efe1521e8b30bdacbb3223e4e02ca892 100644
--- a/test/language/expressions/generators/yield-as-binding-identifier.js
+++ b/test/language/expressions/generators/yield-as-binding-identifier.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as a binding identifier.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js b/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
index dc0b188e2171fb6c1aed7edd2f69938a08eee1d6..dd7a81201d677866134826e6254fa4bc90511fc9 100644
--- a/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
+++ b/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
@@ -6,7 +6,9 @@
       `yield` is not a valid BindingIdentifier for GeneratorExpressions.
   es6id: 12.1.1
   flags: [noStrict]
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function* yield() {};
diff --git a/test/language/expressions/generators/yield-as-label.js b/test/language/expressions/generators/yield-as-label.js
index ffc9d4c75abc415342e040a0d64e67cad72ea28c..2d95446bf42a3b56aa66452b406036136c5c4a29 100644
--- a/test/language/expressions/generators/yield-as-label.js
+++ b/test/language/expressions/generators/yield-as-label.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as a label.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-as-logical-or-expression.js b/test/language/expressions/generators/yield-as-logical-or-expression.js
index 1c4264d26eaceedb257189e250a1e41d8f869315..88b70f7ba308524199576251f10e43d6bc7c6eb6 100644
--- a/test/language/expressions/generators/yield-as-logical-or-expression.js
+++ b/test/language/expressions/generators/yield-as-logical-or-expression.js
@@ -5,7 +5,9 @@
   description: >
       `yield` expressions are not LogicalOrExpressions.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 
diff --git a/test/language/expressions/generators/yield-as-parameter.js b/test/language/expressions/generators/yield-as-parameter.js
index 8c05503db715123874aa6fce75d9ff6af126c266..d3cc877a86960d0312777fbd3ba315ade962d012 100644
--- a/test/language/expressions/generators/yield-as-parameter.js
+++ b/test/language/expressions/generators/yield-as-parameter.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as the binding identifier of a parameter.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*(yield) {};
diff --git a/test/language/expressions/generators/yield-star-after-newline.js b/test/language/expressions/generators/yield-star-after-newline.js
index 8d407be32683775ff26f6498010afacbf2bce978..a54561a22808f94ca825e07bc98574244ff6c9c8 100644
--- a/test/language/expressions/generators/yield-star-after-newline.js
+++ b/test/language/expressions/generators/yield-star-after-newline.js
@@ -5,7 +5,9 @@
   description: >
       A newline may not precede the `*` token in a `yield` expression.
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-weak-binding.js b/test/language/expressions/generators/yield-weak-binding.js
index b61a23b3a13a391dcaa9910ad9061069bb2fe2d7..edc3e8a6bbf9578f3aa17c9794cc4b2b5412a6ea 100644
--- a/test/language/expressions/generators/yield-weak-binding.js
+++ b/test/language/expressions/generators/yield-weak-binding.js
@@ -5,7 +5,9 @@
   description: >
       `yield` expressions bind weakly
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var g = function*() { yield 3 + yield 4; };
diff --git a/test/language/expressions/object/11.1.5-1gs.js b/test/language/expressions/object/11.1.5-1gs.js
index 2736cf7e55703043c6cd179926d2b385e6b979eb..2db6251257cf432354c2a22a8de8f71f8bd8ec16 100644
--- a/test/language/expressions/object/11.1.5-1gs.js
+++ b/test/language/expressions/object/11.1.5-1gs.js
@@ -7,7 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when 'eval' occurs as the
     Identifier in a PropertySetParameterList of a PropertyAssignment
     that is contained in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/object/cover-initialized-name.js b/test/language/expressions/object/cover-initialized-name.js
index 0f4291268e4a1b2e58e050cfa9ba124e809ad64c..9510a9918f1e49347c013ca9227e3594bff8e47c 100644
--- a/test/language/expressions/object/cover-initialized-name.js
+++ b/test/language/expressions/object/cover-initialized-name.js
@@ -22,7 +22,9 @@ info: |
   CoverInitializedName[Yield]:
 
     IdentifierReference[?Yield] Initializer[+In, ?Yield]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({ a = 1 });
diff --git a/test/language/expressions/object/getter-param-dflt.js b/test/language/expressions/object/getter-param-dflt.js
index 12d1a159a4cac5ef081018127cdc85038f5c3e33..0b2ad2bf1ccbdfdf931350d6ed21d013513912b2 100644
--- a/test/language/expressions/object/getter-param-dflt.js
+++ b/test/language/expressions/object/getter-param-dflt.js
@@ -13,7 +13,9 @@ info: |
 
     get PropertyName[?Yield] ( ) { FunctionBody }
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0, { get a(param = null) {} };
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js b/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js
index 1f88b5662cbb307eae039b9a75f7ff4e02ad649d..998971ed007967112f0f439b80fea86e54a0c981 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 ({
   foo(x = 1) {"use strict"}
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js
index 049113d84d5402a3bbd9297a8bb4a2e197da25b9..4d67144a28f9b259705885b51acf4115de173e34 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains arguments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 !{
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js
index 68c37c0b028f646c58283dea37cc5683ea248e54..8b6dc5ebff34f59cf652751fa1d9d9a27b19e6f4 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters' default expressions contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo (x = await) {  }
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js
index b390fd2a93646dcb6e744843e877045821acc597..c606a9a4499191a9d1a06ca66f0129b5c6313e3e 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo (await) {  }
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js b/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js
index 3eda7715238f572e0c27f774abce351bca425f12..8f8852146ca894679feac6f0e41f63a7551a3ee2 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo () { super() }
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 9282c45e6aff39742d581c11928d666a2e8a2386..aee8ea55e851fe800329bf82e8ee5d18d6db9335 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
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   Early error rules for StrictFormalParameters are applied
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo(a, a) { }
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js
index 9eb6231406fd426f552fcc582ea666414778fa92..b80ee27ac1c8d0fe9cc98136bc311dcdaf843033 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 !{
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js b/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js
index d8697085fd2bc8c1b591dd6f6c98241d3975221b..62bc0144e40c363a0d11edf4f12ec65dedcfc51c 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 !{
diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js b/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js
index b46d1ea4b5a2013f497f1875aa6084192fd47930..b3b50267ad22d004476121fec88a4faeaf2870cd 100644
--- a/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js
+++ b/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 !{
   async foo(foo = super()) { }
diff --git a/test/language/expressions/object/method-definition/generator-param-id-yield.js b/test/language/expressions/object/method-definition/generator-param-id-yield.js
index ac5e6786980a1d09d78e0ba56a02e2f4ac69a692..0940b3b2d6abc3829fefa6909af78ea4758052fc 100644
--- a/test/language/expressions/object/method-definition/generator-param-id-yield.js
+++ b/test/language/expressions/object/method-definition/generator-param-id-yield.js
@@ -8,7 +8,9 @@ description: >
 es6id: 14.4
 features: [generators]
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({
diff --git a/test/language/expressions/object/method-definition/generator-param-init-yield.js b/test/language/expressions/object/method-definition/generator-param-init-yield.js
index d09bc6d88dcb9cd1aab96e1bb72280205f7f3087..6be615849663faddf289bd927957ca613a91f9aa 100644
--- a/test/language/expressions/object/method-definition/generator-param-init-yield.js
+++ b/test/language/expressions/object/method-definition/generator-param-init-yield.js
@@ -8,7 +8,9 @@ description: >
 es6id: 14.4
 features: [generators]
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (function*() {
diff --git a/test/language/expressions/object/method-definition/generator-param-redecl-const.js b/test/language/expressions/object/method-definition/generator-param-redecl-const.js
index 8f1969cab3b40bcc5579e47076547f662e7d002e..3e35fe08ee89322399b37de684ec1915f3ac31d7 100644
--- a/test/language/expressions/object/method-definition/generator-param-redecl-const.js
+++ b/test/language/expressions/object/method-definition/generator-param-redecl-const.js
@@ -9,7 +9,9 @@ features: [generators]
 es6id: 14.4.1
 author: Sam Mikes
 description: GeneratorMethod error with lexical shadowing
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/generator-param-redecl-let.js b/test/language/expressions/object/method-definition/generator-param-redecl-let.js
index 0646eccd4a606021eb70283e838c1729cfc185b4..ccce54ca69b2a07f6af2a9a01f57564d18c8451d 100644
--- a/test/language/expressions/object/method-definition/generator-param-redecl-let.js
+++ b/test/language/expressions/object/method-definition/generator-param-redecl-let.js
@@ -9,7 +9,9 @@ features: [generators]
 es6id: 14.4.1
 author: Sam Mikes
 description: GeneratorMethod error with lexical shadowing
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/generator-super-call-body.js b/test/language/expressions/object/method-definition/generator-super-call-body.js
index 6dfa31f7fd7e696bf21800e10ee29ce9a9cdc58e..d53ce77077ea4ecc235ca5b6977fa3ace08de13f 100644
--- a/test/language/expressions/object/method-definition/generator-super-call-body.js
+++ b/test/language/expressions/object/method-definition/generator-super-call-body.js
@@ -9,7 +9,9 @@ features: [generators]
 es6id: 14.4.1
 author: Sam Mikes
 description: GeneratorMethod error if HasDirectSuper in body
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/generator-super-call-param.js b/test/language/expressions/object/method-definition/generator-super-call-param.js
index bfbd2fb8ad3420e1caeaa22831f0381910b034dc..3d3faa0deefec8d365e5aae64736ac848731be7a 100644
--- a/test/language/expressions/object/method-definition/generator-super-call-param.js
+++ b/test/language/expressions/object/method-definition/generator-super-call-param.js
@@ -9,7 +9,9 @@ features: [generators]
 es6id: 14.4.1
 author: Sam Mikes
 description: GeneratorMethod error if HasDirectSuper in args
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js b/test/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js
index 2bb13df664b7d9c0e0564dbd4ea8c9ffeb9748d7..84ee6745446f942c1bd78a4b91868fd274fcff93 100755
--- a/test/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js
+++ b/test/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of StrictFormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var o = {
diff --git a/test/language/expressions/object/method-definition/name-param-redecl.js b/test/language/expressions/object/method-definition/name-param-redecl.js
index d435a450b59702b5fd37045af1b871730eee7a71..ec216791284bca46c5560117a13e13b03a6bf902 100644
--- a/test/language/expressions/object/method-definition/name-param-redecl.js
+++ b/test/language/expressions/object/method-definition/name-param-redecl.js
@@ -7,7 +7,9 @@ description: >
     StrictFormalParameters also occurs in the LexicallyDeclaredNames of
     FunctionBody.
 es6id: 14.3.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/name-super-call-body.js b/test/language/expressions/object/method-definition/name-super-call-body.js
index 5334201b91487fad0742e062e07319cbc2717a69..395a8c12acc399c2f2ba6a123c99364901fe0c3d 100644
--- a/test/language/expressions/object/method-definition/name-super-call-body.js
+++ b/test/language/expressions/object/method-definition/name-super-call-body.js
@@ -5,7 +5,9 @@
 description: >
     It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
 es6id: 12.2.5.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({
diff --git a/test/language/expressions/object/method-definition/name-super-call-param.js b/test/language/expressions/object/method-definition/name-super-call-param.js
index cf96e2f4b0de98031855bf6e63704bb82ac9c04c..5648a35bf78534cee8d9e8af5b1e4b5b835244a0 100644
--- a/test/language/expressions/object/method-definition/name-super-call-param.js
+++ b/test/language/expressions/object/method-definition/name-super-call-param.js
@@ -5,7 +5,9 @@
 description: >
     It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
 es6id: 12.2.5.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ({
diff --git a/test/language/expressions/object/method-definition/params-trailing-comma-rest.js b/test/language/expressions/object/method-definition/params-trailing-comma-rest.js
index db4d00e2b8db7268a61dd0ec0fd2cfffc39c6ae4..8c62102420feb8cad49d0f07814caaabd9318cba 100644
--- a/test/language/expressions/object/method-definition/params-trailing-comma-rest.js
+++ b/test/language/expressions/object/method-definition/params-trailing-comma-rest.js
@@ -6,7 +6,9 @@ description: >
   object method parameter lists.
 info: http://jeffmo.github.io/es-trailing-function-commas/
 author: Jeff Morrison <lbljeffmo@gmail.com>
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 ({
   m(...[],) {}
diff --git a/test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js b/test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js
index cb95f17a29fa30b363b52bcead607ae562653b5d..dda7de9147f01b38681e2793fbd013a47f382ed9 100755
--- a/test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js
+++ b/test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of PropertySetParameterList is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var o = {
diff --git a/test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js b/test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js
index 17b9ed9cb5f670bc5ba5e2650b9b77b2c456cab7..953ed8c42a977d6367f7da5961cedc422451d56a 100755
--- a/test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
    It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of StrictFormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var o = {
diff --git a/test/language/expressions/object/method-definition/yield-as-binding-identifier.js b/test/language/expressions/object/method-definition/yield-as-binding-identifier.js
index c3199ecc6006c19e924156de141618fe12e11294..20310e2e59d6ab68c864e9099ad1b25691192b18 100644
--- a/test/language/expressions/object/method-definition/yield-as-binding-identifier.js
+++ b/test/language/expressions/object/method-definition/yield-as-binding-identifier.js
@@ -7,7 +7,9 @@
       not be used as a binding identifier.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-as-label.js b/test/language/expressions/object/method-definition/yield-as-label.js
index 7bfc52d6018395f2f49c5584dcfefcfa19597dc7..6a9f15f16fc7e2ffa9d025807bfd14c8cf03eb85 100644
--- a/test/language/expressions/object/method-definition/yield-as-label.js
+++ b/test/language/expressions/object/method-definition/yield-as-label.js
@@ -7,7 +7,9 @@
       not be used as a label.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-as-logical-or-expression.js b/test/language/expressions/object/method-definition/yield-as-logical-or-expression.js
index 922ca27a0ef6e9bc8310976c154fb2555c72d0e6..017cc5e92285eca24603fee8b4b34dedf5130b3f 100644
--- a/test/language/expressions/object/method-definition/yield-as-logical-or-expression.js
+++ b/test/language/expressions/object/method-definition/yield-as-logical-or-expression.js
@@ -6,7 +6,9 @@
       `yield` expressions are not LogicalOrExpressions.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-as-parameter.js b/test/language/expressions/object/method-definition/yield-as-parameter.js
index a5edb6c440b3d9599e4e2a2939c2334cca0fe257..1e297a5befd2720efbf0b2cddf3502caf785002e 100644
--- a/test/language/expressions/object/method-definition/yield-as-parameter.js
+++ b/test/language/expressions/object/method-definition/yield-as-parameter.js
@@ -7,7 +7,9 @@
       not be used as the binding identifier of a parameter.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-star-after-newline.js b/test/language/expressions/object/method-definition/yield-star-after-newline.js
index 820a60d2f887b6c615be10669058852d15a09ca2..92a79b20939b91a4ab9c18bafcd863d216a71be8 100644
--- a/test/language/expressions/object/method-definition/yield-star-after-newline.js
+++ b/test/language/expressions/object/method-definition/yield-star-after-newline.js
@@ -6,7 +6,9 @@
       A newline may not precede the `*` token in a `yield` expression.
   features: [generators]
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/object/method-definition/yield-weak-binding.js b/test/language/expressions/object/method-definition/yield-weak-binding.js
index 6e40c6684d573a6b841c30a706f94fba8cddde16..24f5aaa35d30ec164e35f3b66a34063b68351b8c 100644
--- a/test/language/expressions/object/method-definition/yield-weak-binding.js
+++ b/test/language/expressions/object/method-definition/yield-weak-binding.js
@@ -6,7 +6,9 @@
       `yield` expressions bind weakly
   features: [generators]
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var obj = {
diff --git a/test/language/expressions/postfix-increment/11.3.1-2-1gs.js b/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
index f79ce4d42187f8c38235b80ea301fb60832182af..35d1ea627d8547de53bb8504aca89e4c0555c1f7 100644
--- a/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
+++ b/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
@@ -6,7 +6,9 @@ es5id: 11.3.1-2-1gs
 description: >
     Strict Mode - SyntaxError is throw if the identifier arguments
     appear as a PostfixExpression(arguments++)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js b/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
index 0f4e15936a52f7d3996e740c9a2636cf852ac3cd..6c22e85fc2e42d316152ddd6c59f28ba812e1a14 100644
--- a/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
+++ b/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
@@ -6,7 +6,9 @@ es5id: 11.4.5-2-2gs
 description: >
     Strict Mode - SyntaxError is throw if the UnaryExpression operated
     upon by a Prefix Decrement operator(--arguments)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js
index c645e965419e1445a133784e4b9805b34230079a..6733e62341df25395c0b4e11ce8e5de0dfba6575 100644
--- a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js
+++ b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid hexidecimal character escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\x0`;
diff --git a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js
index f32dea9c114ce0a9097564e69b94d41b1fd0dce5..a3636f28803214ed237355070442b14cfb20ad04 100644
--- a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js
+++ b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid hexidecimal character escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\x0G`;
diff --git a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js
index 04e03b16032ec968b324d602d80083765d7e8fe1..f93f16b7d7a7c222004ef79c0b24f61b7e837176 100644
--- a/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js
+++ b/test/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid hexidecimal character escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\xG`;
diff --git a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js
index 806bf337d5f3b31e5969d740a812ed1f2bcc1605..fff2144f3095d63c35b0e6e05023d3e4d65149fc 100644
--- a/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js
+++ b/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js
@@ -6,7 +6,9 @@ description: Invalid octal escape sequence
 info: >
     TemplateCharacter (11.8.6) must not be extended to include
     LegacyOctalEscapeSequence as defined in B.1.2.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\00`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js
index 053ead07345950ec086be0b0fa602f5c32cb1f69..efef7363555d16934d160fbab1c243884d3225a0 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u0`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js
index 6c9e72a94812518dae95ce25fae3ce16297e73e6..762811de37d4fe6005a6f61f736371519cf70d0f 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u0g`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js
index 21c6ec6121c0d1eda2e8f5d63220d2aa0dafb527..17fd6db0fad838ab5624ccbc98a6c23e4850dce0 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u00g`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js
index 028a77b27d44077ecf577e5d3ca1e3e50dcdc11b..0f3075a646350054700aea8279d93271430c9967 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u000g`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js
index 13d896b50985702e27462615e8a39630a6d3cf91..2f8c933070082bfb75e8416da598df0b92909732 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u{g`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js
index 12c4b99d9e59b426d7adbf3059fe64c9e8b34795..86749a222be283af07a8ba2238a76887a07cf238 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u{0`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js
index a8f56fb194740d564147fb8b19a5dba137824377..e7269d8eef76f86b022e71d860faf75eace54d1e 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u{10FFFFF}`;
diff --git a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js
index fa2d458b91391a7b30fddfe682b02f18465fc0df..056a659991da70e2f774da41bce09e97c2d53e9d 100644
--- a/test/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js
+++ b/test/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js
@@ -3,7 +3,9 @@
 /*---
 esid: sec-template-literal-lexical-components
 description: Invalid unicode escape sequence
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 `\u{10FFFFF}${'inner'}right`;
diff --git a/test/language/expressions/yield/invalid-left-hand-side.js b/test/language/expressions/yield/invalid-left-hand-side.js
index e5d000a9146c91205a610194ac4ef2a4f529c98e..c4b7d5bd11db82af363bab3462a4120c60021b09 100644
--- a/test/language/expressions/yield/invalid-left-hand-side.js
+++ b/test/language/expressions/yield/invalid-left-hand-side.js
@@ -16,7 +16,9 @@ info: |
     NewExpression[?Yield]
     CallExpression[?Yield]
 features: [generators]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function* g() {
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.10.js b/test/language/future-reserved-words/S7.6.1.2_A1.10.js
index 183fd9909030c77b934339d70d986037d337ae76..be6f1006f762476eaa1c63df80dfe87d68843e55 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.10.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.10.js
@@ -5,7 +5,9 @@
 info: The "export" token can not be used as identifier
 es5id: 7.6.1.2_A1.10
 description: Checking if execution of "export=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var export = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.11.js b/test/language/future-reserved-words/S7.6.1.2_A1.11.js
index 5d5d6237c434e66775e7b3479ba99631a81e96c4..d9bdd2f4e3802132343a1e008f9bab9ce72ca91b 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.11.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.11.js
@@ -5,7 +5,9 @@
 info: The "extends" token can not be used as identifier
 es5id: 7.6.1.2_A1.11
 description: Checking if execution of "extends=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var extends = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.15.js b/test/language/future-reserved-words/S7.6.1.2_A1.15.js
index 582896c26e5646b778215957e641859b6d41829d..7c0fce200fa4ee4d85ff7dc161c12061d696b8be 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.15.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.15.js
@@ -5,7 +5,9 @@
 info: The "implements" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.15
 description: Checking if execution of "implements=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.16.js b/test/language/future-reserved-words/S7.6.1.2_A1.16.js
index b7c078dd63468fd3ae99549f216a6e5183bacc6e..da5cd8ad533f45e34c8b09b079972d5141433134 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.16.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.16.js
@@ -5,7 +5,9 @@
 info: The "import" token can not be used as identifier
 es5id: 7.6.1.2_A1.16
 description: Checking if execution of "import=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var import = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.18.js b/test/language/future-reserved-words/S7.6.1.2_A1.18.js
index 5d99af8bebe5a8a6610b3ab05cafcc5933ebd7b4..c9d887644028139b225637abb0d7febfe328d396 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.18.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.18.js
@@ -5,7 +5,9 @@
 info: The "interface" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.18
 description: Checking if execution of "interface = 1" fails in  strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.21.js b/test/language/future-reserved-words/S7.6.1.2_A1.21.js
index 9567f9675c5fdbded9a65513907195cffc0486a3..deacbfd3aa89b3549ab278d8e49b31ddb18faf9e 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.21.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.21.js
@@ -5,7 +5,9 @@
 info: The "package" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.21
 description: Checking if execution of "package=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.22.js b/test/language/future-reserved-words/S7.6.1.2_A1.22.js
index 6a416da84741da146dfc8048cdad8829bbdab071..0a7ed7f81e850bd1bddb9cd8db645372e1a9003e 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.22.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.22.js
@@ -5,7 +5,9 @@
 info: The "private" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.22
 description: Checking if execution of "private=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.23.js b/test/language/future-reserved-words/S7.6.1.2_A1.23.js
index 1ad73c51d188e53da99957aabd25167b1e7c7b77..092bf67e34e6f4fe57eb87e9fd9b131bbd0a7358 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.23.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.23.js
@@ -5,7 +5,9 @@
 info: The "protected" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.23
 description: Checking if execution of "protected=1" fails in  strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.24.js b/test/language/future-reserved-words/S7.6.1.2_A1.24.js
index 7d9e14cdefc2ff867907819f2e132d5e2f3cbf83..abd88425bc86c8ee95b501f277e84d7302934a63 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.24.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.24.js
@@ -5,7 +5,9 @@
 info: The "public" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.24
 description: Checking if execution of "public=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.26.js b/test/language/future-reserved-words/S7.6.1.2_A1.26.js
index 40153c83b0d5120ba3dedeb19999a2e01c441f00..b765345a9271282dedc2f3e2157bd7c2fb9d65bf 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.26.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.26.js
@@ -5,7 +5,9 @@
 info: The "static" token can not be used as identifier in strict code
 es5id: 7.6.1.2_A1.26
 description: Checking if execution of "static=1" fails in strict code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.27.js b/test/language/future-reserved-words/S7.6.1.2_A1.27.js
index 8011fb1833a35be57dd0112200f997b04eb24e74..fae8764e54435d882334af9ed9b77d308512c818 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.27.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.27.js
@@ -5,7 +5,9 @@
 info: The "super" token can not be used as identifier
 es5id: 7.6.1.2_A1.27
 description: Checking if execution of "super=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var super = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.5.js b/test/language/future-reserved-words/S7.6.1.2_A1.5.js
index b1c184f444fb97372037f12c1d5cfcf4408dc09e..72ab227e805813dadf396e692295ff29a8135aaa 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.5.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.5.js
@@ -5,7 +5,9 @@
 info: The "class" token can not be used as identifier
 es5id: 7.6.1.2_A1.5
 description: Checking if execution of "class=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var class = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.6.js b/test/language/future-reserved-words/S7.6.1.2_A1.6.js
index af899166d5475530d45ed9c884b324b904e3687e..cf176bbb886d41eb86163c470bdfa084212342ff 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.6.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.6.js
@@ -5,7 +5,9 @@
 info: The "const" token can not be used as identifier
 es5id: 7.6.1.2_A1.6
 description: Checking if execution of "const=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var const = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.7.js b/test/language/future-reserved-words/S7.6.1.2_A1.7.js
index b5217a3f508e14764ab755d2be7ab324640f80a7..eae9074d56d91d6ea10a785420eb3182bf0179a4 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.7.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.7.js
@@ -5,7 +5,9 @@
 info: The "debugger" token can not be used as identifier
 es5id: 7.6.1.2_A1.7
 description: Checking if execution of "debugger=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var debugger = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.9.js b/test/language/future-reserved-words/S7.6.1.2_A1.9.js
index 78fc962f8871301cc16db2f2f5fb4fa4959865a7..8e04cff51f4c6e6793ca631f1e94e309d3d56a01 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.9.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.9.js
@@ -5,7 +5,9 @@
 info: The "enum" token can not be used as identifier
 es5id: 7.6.1.2_A1.9
 description: Checking if execution of "enum=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var enum = 1;
diff --git a/test/language/global-code/decl-lex-restricted-global.js b/test/language/global-code/decl-lex-restricted-global.js
index 7e32fca82a542aebc9c5cffb1a27ba0a82ae03d9..88561cd928cdce8b575f2d15d3728a65f4370db3 100644
--- a/test/language/global-code/decl-lex-restricted-global.js
+++ b/test/language/global-code/decl-lex-restricted-global.js
@@ -10,7 +10,9 @@ info: |
      [...]
      c. Let hasRestrictedGlobal be ? envRec.HasRestrictedGlobalProperty(name).
      d. If hasRestrictedGlobal is true, throw a SyntaxError exception.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 let undefined;
diff --git a/test/language/global-code/export.js b/test/language/global-code/export.js
index b41c5396945567221149688158167d7d37455c93..918d846e2d7782dcdcd743a25de5d1c61d288fe5 100644
--- a/test/language/global-code/export.js
+++ b/test/language/global-code/export.js
@@ -3,7 +3,9 @@
 /*---
 description: The `export` declaration may not appear within a ScriptBody
 esid: sec-scripts
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
      A.5 Scripts and Modules
 
diff --git a/test/language/global-code/import.js b/test/language/global-code/import.js
index d0332f127b6563d5aaa4cb47f90f5ab708b4da09..3080f988c725090b7854fa8324dfb117a22f9c37 100644
--- a/test/language/global-code/import.js
+++ b/test/language/global-code/import.js
@@ -3,7 +3,9 @@
 /*---
 description: The `import` declaration may not appear within a ScriptBody
 esid: sec-scripts
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
      A.5 Scripts and Modules
 
diff --git a/test/language/global-code/new.target-arrow.js b/test/language/global-code/new.target-arrow.js
index d2f46975fcc4c3b0306b3eec27f994b92b0c13c3..53cce9b3394c6de0aada9d7644d55aeec09b1c26 100644
--- a/test/language/global-code/new.target-arrow.js
+++ b/test/language/global-code/new.target-arrow.js
@@ -25,7 +25,9 @@ info: |
        Contains is used to detect new.target, this, and super usage within an
        ArrowFunction.
 features: [arrow-function]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 () => {
diff --git a/test/language/global-code/new.target.js b/test/language/global-code/new.target.js
index 60ea090a3f22b8dc668e41c524f6a5ffac6fb229..b30522332357cdc18386375d183d10613d909f70 100644
--- a/test/language/global-code/new.target.js
+++ b/test/language/global-code/new.target.js
@@ -9,7 +9,9 @@ info: |
     code containing NewTarget is eval code that is being processed by a direct
     eval that is contained in function code that is not the function code of an
     ArrowFunction.
-negative: SyntaxError
+negative: 
+  phase: early
+  type: SyntaxError
 ---*/
 
 new.target;
diff --git a/test/language/global-code/return.js b/test/language/global-code/return.js
index e9d338342625da3fabb9bde474349ddcb4dd88b9..72877c9613908c90d646ee478787d463b6853f84 100644
--- a/test/language/global-code/return.js
+++ b/test/language/global-code/return.js
@@ -12,7 +12,9 @@ info: |
 
   ScriptBody :
     StatementList[~Yield, ~Return]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 return;
diff --git a/test/language/global-code/super-call-arrow.js b/test/language/global-code/super-call-arrow.js
index a61130413ddc5eee514f81678cf371daa521c566..1cf735f4c7ea3d1214eef0ed67a214dd206e5867 100644
--- a/test/language/global-code/super-call-arrow.js
+++ b/test/language/global-code/super-call-arrow.js
@@ -25,7 +25,9 @@ info: |
        Contains is used to detect new.target, this, and super usage within an
        ArrowFunction.
 features: [super, arrow-function]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 () => {
diff --git a/test/language/global-code/super-call.js b/test/language/global-code/super-call.js
index fc5f87a1bbe1e6b1a9dfcb5240a9d0d544194268..5aeee34a1070f2910e8acee024521baa2fdaa89a 100644
--- a/test/language/global-code/super-call.js
+++ b/test/language/global-code/super-call.js
@@ -9,7 +9,9 @@ info: |
     containing super is eval code that is being processed by a direct eval that
     is contained in function code that is not the function code of an
     ArrowFunction.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [super]
 ---*/
 
diff --git a/test/language/global-code/super-prop-arrow.js b/test/language/global-code/super-prop-arrow.js
index 30f85698d89a707f0c1838fa2102d6e4d31051ca..80ac0ce347e518a1627b143a687ffeec42e21572 100644
--- a/test/language/global-code/super-prop-arrow.js
+++ b/test/language/global-code/super-prop-arrow.js
@@ -25,7 +25,9 @@ info: |
        Contains is used to detect new.target, this, and super usage within an
        ArrowFunction.
 features: [super, arrow-function]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 () => {
diff --git a/test/language/global-code/super-prop.js b/test/language/global-code/super-prop.js
index b91d67cb4f911b7bdd1febc159d9b0dcdbc430b6..f0f9860f6a42b3a88de52fef8b5f15dd42d86825 100644
--- a/test/language/global-code/super-prop.js
+++ b/test/language/global-code/super-prop.js
@@ -9,7 +9,9 @@ info: |
     containing super is eval code that is being processed by a direct eval that
     is contained in function code that is not the function code of an
     ArrowFunction.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [super]
 ---*/
 
diff --git a/test/language/global-code/yield-strict.js b/test/language/global-code/yield-strict.js
index 24e912bb5aabf2c65cbb3a12e38069ee4db3a501..96eb619c9251ce1485dde60574b97224cf8402c9 100644
--- a/test/language/global-code/yield-strict.js
+++ b/test/language/global-code/yield-strict.js
@@ -15,7 +15,9 @@ info: |
   ScriptBody :
     StatementList[~Yield, ~Return]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 yield;
diff --git a/test/language/identifiers/val-break-via-escape-hex.js b/test/language/identifiers/val-break-via-escape-hex.js
index 42a6cc920f95bd76d6e656890dab144ca39bf967..fb1b737804d763b3f555a8bbe8590eb16ee96ca8 100644
--- a/test/language/identifiers/val-break-via-escape-hex.js
+++ b/test/language/identifiers/val-break-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: break
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{62}\u{72}\u{65}\u{61}\u{6b} = 123;;
diff --git a/test/language/identifiers/val-break-via-escape-hex4.js b/test/language/identifiers/val-break-via-escape-hex4.js
index 8206f0eb380193c75c6acedc6f3f53cccc0dd387..6299858de10f259a563104c331a93afd467eae1f 100644
--- a/test/language/identifiers/val-break-via-escape-hex4.js
+++ b/test/language/identifiers/val-break-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-4
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: break (break)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0062\u0072\u0065\u0061\u006b = 123;;
diff --git a/test/language/identifiers/val-break.js b/test/language/identifiers/val-break.js
index 9c74c49deda371580b46c5b39d22246c26efccbf..6a202e1d7e50a8b66ffc4dd5ee577a51131c0ad5 100644
--- a/test/language/identifiers/val-break.js
+++ b/test/language/identifiers/val-break.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var break = 123;;
diff --git a/test/language/identifiers/val-case-via-escape-hex.js b/test/language/identifiers/val-case-via-escape-hex.js
index e77de178879fdd8535e505b15ea32aa28cfd04aa..eacb03c328b3c43734a7d9de59a298b1bbec5ac8 100644
--- a/test/language/identifiers/val-case-via-escape-hex.js
+++ b/test/language/identifiers/val-case-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: case
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{63}ase = 123;
diff --git a/test/language/identifiers/val-case-via-escape-hex4.js b/test/language/identifiers/val-case-via-escape-hex4.js
index cfd8a602219218f2e984b839f82ca60194f6005e..f64ab18a42a72d8a35036ac2e749360c83267237 100644
--- a/test/language/identifiers/val-case-via-escape-hex4.js
+++ b/test/language/identifiers/val-case-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-5
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: case (case)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0063ase = 123;
diff --git a/test/language/identifiers/val-case.js b/test/language/identifiers/val-case.js
index f933ccc3e6f608fd6d9cb63f715b7b9eddbf8e14..f16897c4d2bbf16734be382b3a3463ca861e10ae 100644
--- a/test/language/identifiers/val-case.js
+++ b/test/language/identifiers/val-case.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var case = 123;
diff --git a/test/language/identifiers/val-catch-via-escape-hex.js b/test/language/identifiers/val-catch-via-escape-hex.js
index 0858e6ffcb29794fb82daee5b6ee35219e41dca8..3f41c513ed43cfa32a3ce7b3ff994c220e156085 100644
--- a/test/language/identifiers/val-catch-via-escape-hex.js
+++ b/test/language/identifiers/val-catch-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: catch
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{63}atch = 123;
diff --git a/test/language/identifiers/val-catch-via-escape-hex4.js b/test/language/identifiers/val-catch-via-escape-hex4.js
index 464c6da5207a5c5b296a4c0866a7872b3963d40e..a4e6f69b046de568c1ba02a3e62b3363f6851f49 100644
--- a/test/language/identifiers/val-catch-via-escape-hex4.js
+++ b/test/language/identifiers/val-catch-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-13
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: catch (catch)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0063atch = 123;
diff --git a/test/language/identifiers/val-catch.js b/test/language/identifiers/val-catch.js
index 242f54e5908acc3967a44cc29555f2848913cf6c..86265920aba8f71cf84a853509ed3b4360b1782e 100644
--- a/test/language/identifiers/val-catch.js
+++ b/test/language/identifiers/val-catch.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var catch = 123;
diff --git a/test/language/identifiers/val-class-via-escape-hex.js b/test/language/identifiers/val-class-via-escape-hex.js
index 7a898910f865d5dd7a11f7a9eb9cf6767c07e307..633c256ca89c4f195033aa6f2f52a7d6879c0000 100644
--- a/test/language/identifiers/val-class-via-escape-hex.js
+++ b/test/language/identifiers/val-class-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: class
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var cla\u{73}s = 123;
diff --git a/test/language/identifiers/val-class-via-escape-hex4.js b/test/language/identifiers/val-class-via-escape-hex4.js
index 25e17718a51ae40f2ba1f2472826c49194ba0bfe..85659fccc09579eb5c897efb28e962c49eac1d9f 100644
--- a/test/language/identifiers/val-class-via-escape-hex4.js
+++ b/test/language/identifiers/val-class-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-30
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: class (class)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var cla\u0073s = 123;
diff --git a/test/language/identifiers/val-class.js b/test/language/identifiers/val-class.js
index c2a65f53a92be4d760eda0c3399d74b81d02f021..f80e8983867f1da9f141b6f6f8f85f9b94e12718 100644
--- a/test/language/identifiers/val-class.js
+++ b/test/language/identifiers/val-class.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var class = 123;
diff --git a/test/language/identifiers/val-const-via-escape-hex.js b/test/language/identifiers/val-const-via-escape-hex.js
index 5c8c2f610da27d6ea57f86d6bc5fca3d4d5ae8a0..0fc0169887e25907acd08a7789c77c8ba25a2b6e 100644
--- a/test/language/identifiers/val-const-via-escape-hex.js
+++ b/test/language/identifiers/val-const-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: const
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var co\u{6e}st = 123;
diff --git a/test/language/identifiers/val-const-via-escape-hex4.js b/test/language/identifiers/val-const-via-escape-hex4.js
index 2f9f77afe6ad1878a9ffef4fc74dad973311dd42..273caf90520167791254b4a9dc7303f4d1a53a3f 100644
--- a/test/language/identifiers/val-const-via-escape-hex4.js
+++ b/test/language/identifiers/val-const-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-34
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: const (const)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var co\u006est = 123;
diff --git a/test/language/identifiers/val-const.js b/test/language/identifiers/val-const.js
index 31fd2667c3a7ee7bc49b5dfbf150356e641a9661..3d1bd5a29a97969cd754bc9daf4633ed81a49fa8 100644
--- a/test/language/identifiers/val-const.js
+++ b/test/language/identifiers/val-const.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var const = 123;
diff --git a/test/language/identifiers/val-continue-via-escape-hex.js b/test/language/identifiers/val-continue-via-escape-hex.js
index 4cf218f0698c786bf3caa2609b42b2d4be911444..2768f75ca4b7975bd937398b325b3ce216e6c580 100644
--- a/test/language/identifiers/val-continue-via-escape-hex.js
+++ b/test/language/identifiers/val-continue-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: continue
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{63}ontinue = 123;
diff --git a/test/language/identifiers/val-continue-via-escape-hex4.js b/test/language/identifiers/val-continue-via-escape-hex4.js
index 6d67614d249e8049ea43176c6b7357a4b722eb7c..e2a71c32dfc29f6d51de578d5356ccabc275a7d4 100644
--- a/test/language/identifiers/val-continue-via-escape-hex4.js
+++ b/test/language/identifiers/val-continue-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-17
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: continue (continue)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0063ontinue = 123;
diff --git a/test/language/identifiers/val-continue.js b/test/language/identifiers/val-continue.js
index 81babe568f7cd30b0bb8f7213007f1a69aac9c5f..7275001e6e14aacb68cfeb1c43a5506651a48429 100644
--- a/test/language/identifiers/val-continue.js
+++ b/test/language/identifiers/val-continue.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var continue = 123;
diff --git a/test/language/identifiers/val-debugger-via-escape-hex.js b/test/language/identifiers/val-debugger-via-escape-hex.js
index 827594d33687c406eb7921cafb097d8133d556a8..08a345701435a013e9c689e0e8773384037efe1f 100644
--- a/test/language/identifiers/val-debugger-via-escape-hex.js
+++ b/test/language/identifiers/val-debugger-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: debugger
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{64}ebugger = 123;
diff --git a/test/language/identifiers/val-debugger-via-escape-hex4.js b/test/language/identifiers/val-debugger-via-escape-hex4.js
index b42e9c7e28642c06e568c0661bab0d3ca1f9c935..edb7bef5a59f8f7e2740a87c4d7ea366ec42ca90 100644
--- a/test/language/identifiers/val-debugger-via-escape-hex4.js
+++ b/test/language/identifiers/val-debugger-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-21
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: debugger (debugger)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0064ebugger = 123;
diff --git a/test/language/identifiers/val-debugger.js b/test/language/identifiers/val-debugger.js
index a0bf31d18a63b34b02e79e46b32d5aa63ffa2437..d613940518d44db5c5da7cdb2c92237371bb4dd7 100644
--- a/test/language/identifiers/val-debugger.js
+++ b/test/language/identifiers/val-debugger.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var debugger = 123;
diff --git a/test/language/identifiers/val-default-via-escape-hex.js b/test/language/identifiers/val-default-via-escape-hex.js
index 190b572d30ecf634f252c36681fe9de5a5c7e182..2d5045f3cd1bcd12a22da057bf18ae2a386e05e8 100644
--- a/test/language/identifiers/val-default-via-escape-hex.js
+++ b/test/language/identifiers/val-default-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: default
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var def\u{61}ult = 123;
diff --git a/test/language/identifiers/val-default-via-escape-hex4.js b/test/language/identifiers/val-default-via-escape-hex4.js
index dbd5f3b37152e0c8f40e6d727b46a43b1f323860..0d7fb4f43bee8fb5abd32991a6e5ef7f6156e01c 100644
--- a/test/language/identifiers/val-default-via-escape-hex4.js
+++ b/test/language/identifiers/val-default-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-26
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: default (default)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var def\u0061ult = 123;
diff --git a/test/language/identifiers/val-default.js b/test/language/identifiers/val-default.js
index f1445dc79dc79b9b8ceead9952b1bd7a769a113e..9768c089f1bfdb54ca4b119c5a588dda8771b733 100644
--- a/test/language/identifiers/val-default.js
+++ b/test/language/identifiers/val-default.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var default = 123;
diff --git a/test/language/identifiers/val-delete-via-escape-hex.js b/test/language/identifiers/val-delete-via-escape-hex.js
index 60657d1030003f4ac77f00c5e17c96edcaafcfbd..47a6e608e1bbcf5edc2d6a5383f0f80ac1f62dd1 100644
--- a/test/language/identifiers/val-delete-via-escape-hex.js
+++ b/test/language/identifiers/val-delete-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: delete
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{64}elete = 123;
diff --git a/test/language/identifiers/val-delete-via-escape-hex4.js b/test/language/identifiers/val-delete-via-escape-hex4.js
index 2f4be9ae69e6584cf3bb28786a260accd975cb6f..9d5f41814f2336b21c0abaeaec9b67637c34bf28 100644
--- a/test/language/identifiers/val-delete-via-escape-hex4.js
+++ b/test/language/identifiers/val-delete-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-29
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: delete (delete)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0064elete = 123;
diff --git a/test/language/identifiers/val-delete.js b/test/language/identifiers/val-delete.js
index 32e7927a29bae2890ff7d46bfd58948d531ed4fe..8ec3b6260819b1a979307bc0082d402a9cd982ac 100644
--- a/test/language/identifiers/val-delete.js
+++ b/test/language/identifiers/val-delete.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var delete = 123;
diff --git a/test/language/identifiers/val-do-via-escape-hex.js b/test/language/identifiers/val-do-via-escape-hex.js
index 88d7490e1ad17c2c2a3bb61d8931200cf15288c1..86b2e87521e44c0652c1855324295597c7474f8e 100644
--- a/test/language/identifiers/val-do-via-escape-hex.js
+++ b/test/language/identifiers/val-do-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: do
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{64}\u{6f} = 123;
diff --git a/test/language/identifiers/val-do-via-escape-hex4.js b/test/language/identifiers/val-do-via-escape-hex4.js
index 02fe6d723ed1f51a48e670947da9c2dcab3451be..76c8b5037317be2d1f1701f5744e1171ded38a74 100644
--- a/test/language/identifiers/val-do-via-escape-hex4.js
+++ b/test/language/identifiers/val-do-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-8
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: do (do)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0064\u006f = 123;
diff --git a/test/language/identifiers/val-do.js b/test/language/identifiers/val-do.js
index 8d920c49e5ddb7f48f591924ea5c25e3906c2718..5b58a4ebe8d931b492e1fa75bdb555790416e02e 100644
--- a/test/language/identifiers/val-do.js
+++ b/test/language/identifiers/val-do.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var do = 123;
diff --git a/test/language/identifiers/val-else-via-escape-hex.js b/test/language/identifiers/val-else-via-escape-hex.js
index 52dcfcebfc2fad38949b987f34ee76e5f5b168e7..41132c667617bb9abd64f9c962b8a6e15e3d100b 100644
--- a/test/language/identifiers/val-else-via-escape-hex.js
+++ b/test/language/identifiers/val-else-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: else (else)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{65}lse = 123;
diff --git a/test/language/identifiers/val-else-via-escape-hex4.js b/test/language/identifiers/val-else-via-escape-hex4.js
index 497c30c2c0bc5dfa6601c4a07180c8b60704b5b6..bf5d1250cbaf354ee436dbad6abe9a84b5344e27 100644
--- a/test/language/identifiers/val-else-via-escape-hex4.js
+++ b/test/language/identifiers/val-else-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-9
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: else (else) (null)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0065lse = 123;
diff --git a/test/language/identifiers/val-else.js b/test/language/identifiers/val-else.js
index b09b1258f677859bbaf31b18557aaf95af2fe9cc..7cc8695991ce28ed6c4749f4417e383f2d9d6926 100644
--- a/test/language/identifiers/val-else.js
+++ b/test/language/identifiers/val-else.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var else = 123;
diff --git a/test/language/identifiers/val-enum-via-escape-hex.js b/test/language/identifiers/val-enum-via-escape-hex.js
index e7abb7e0835c9d5462a3790fb9ab0962e1e7203e..1ba210c39e7236a115834d04ab9b6fd654657a79 100644
--- a/test/language/identifiers/val-enum-via-escape-hex.js
+++ b/test/language/identifiers/val-enum-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: enum
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{65}\u{6e}\u{75}\u{6d} = 123;
diff --git a/test/language/identifiers/val-enum-via-escape-hex4.js b/test/language/identifiers/val-enum-via-escape-hex4.js
index 55184e7534c0e039a9fea83652f2dfb748f6b972..f27d0029ec7bad7fdfb999c9fc13d000ae153904 100644
--- a/test/language/identifiers/val-enum-via-escape-hex4.js
+++ b/test/language/identifiers/val-enum-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-32
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: enum (enum)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0065\u006e\u0075\u006d = 123;
diff --git a/test/language/identifiers/val-enum.js b/test/language/identifiers/val-enum.js
index d0c20f47ecd7c189017f60896ac2595046660852..3907af51fe50c419a8e30266415ccfcea2254522 100644
--- a/test/language/identifiers/val-enum.js
+++ b/test/language/identifiers/val-enum.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var enum = 123;
diff --git a/test/language/identifiers/val-export-via-escape-hex.js b/test/language/identifiers/val-export-via-escape-hex.js
index 93eb5e2337c98b8c100ec232711b76e9dd806d70..622840b6dd779da9396d3c37738afd806374d995 100644
--- a/test/language/identifiers/val-export-via-escape-hex.js
+++ b/test/language/identifiers/val-export-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: export
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var expor\u{74} = 123;
diff --git a/test/language/identifiers/val-export-via-escape-hex4.js b/test/language/identifiers/val-export-via-escape-hex4.js
index e712aeadcadef3712be98cdca4a2422683dc8862..253e3c77cf4b62012db926b8d6fee0d9fffe8e27 100644
--- a/test/language/identifiers/val-export-via-escape-hex4.js
+++ b/test/language/identifiers/val-export-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-35
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: export (export)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var expor\u0074 = 123;
diff --git a/test/language/identifiers/val-export.js b/test/language/identifiers/val-export.js
index 0607161a242d0c368b3cf636cdcdc1074daf7714..5dce85307ff2da85bf456f5a6568e79bb2d93d92 100644
--- a/test/language/identifiers/val-export.js
+++ b/test/language/identifiers/val-export.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var export = 123;
diff --git a/test/language/identifiers/val-extends-via-escape-hex.js b/test/language/identifiers/val-extends-via-escape-hex.js
index 6ff25420b819ddf3f835b8e7dbadbc7af516fa81..fd67329f83b9b56542d2a76b3aa7ad5d413d1626 100644
--- a/test/language/identifiers/val-extends-via-escape-hex.js
+++ b/test/language/identifiers/val-extends-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: extends
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var extend\u{73} = 123;
diff --git a/test/language/identifiers/val-extends-via-escape-hex4.js b/test/language/identifiers/val-extends-via-escape-hex4.js
index af9bd22d216ac3ad6ad8d601d3f62b495eabb592..f6479a6ceb948c52a59be208b683142361d24f17 100644
--- a/test/language/identifiers/val-extends-via-escape-hex4.js
+++ b/test/language/identifiers/val-extends-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-31
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: extends (extends)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var extend\u0073 = 123;
diff --git a/test/language/identifiers/val-extends.js b/test/language/identifiers/val-extends.js
index 92e0a0e9fe9020bc176f365a7403ec402b09af01..24695e5e013677ab9654c2297648ccfb9ca6175d 100644
--- a/test/language/identifiers/val-extends.js
+++ b/test/language/identifiers/val-extends.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var extends = 123;
diff --git a/test/language/identifiers/val-false-via-escape-hex.js b/test/language/identifiers/val-false-via-escape-hex.js
index 023b3f4ea94d63768064d8d579aff4026b3c019b..138c08795540fdb877520a2004a10c47452bfe27 100644
--- a/test/language/identifiers/val-false-via-escape-hex.js
+++ b/test/language/identifiers/val-false-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: false
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var fals\u{65} = 123;
diff --git a/test/language/identifiers/val-false-via-escape-hex4.js b/test/language/identifiers/val-false-via-escape-hex4.js
index ed74335a98e6311105dc0b6cd8ec1925549bfef5..ddb2dacb5ac8907eea0fc11fa3f31c7dffe56c2e 100644
--- a/test/language/identifiers/val-false-via-escape-hex4.js
+++ b/test/language/identifiers/val-false-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-3
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: false (false)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var fals\u0065 = 123;
diff --git a/test/language/identifiers/val-false.js b/test/language/identifiers/val-false.js
index a7d967813d4fb2b152a5384db1bf2e010c003506..d2aaa3eafa01e7dabf63ceb3ce3b0d8b7e9ca4c1 100644
--- a/test/language/identifiers/val-false.js
+++ b/test/language/identifiers/val-false.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var false = 123;
diff --git a/test/language/identifiers/val-finally-via-escape-hex.js b/test/language/identifiers/val-finally-via-escape-hex.js
index 4cf0ebc3777bff9c297c7b746174c29cfbe914b2..c8bcf9b167bcf1f5bd3c1c90db496eaf2b2a2df2 100644
--- a/test/language/identifiers/val-finally-via-escape-hex.js
+++ b/test/language/identifiers/val-finally-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: finally
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var fina\u{6c}ly = 123;
diff --git a/test/language/identifiers/val-finally-via-escape-hex4.js b/test/language/identifiers/val-finally-via-escape-hex4.js
index c940c520d65bd10ef2bbe8826bddfbb2155829c2..9bc9814872512e6f5d9ee4e12421001ca9be11c6 100644
--- a/test/language/identifiers/val-finally-via-escape-hex4.js
+++ b/test/language/identifiers/val-finally-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-14
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: finally (finally)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var fina\u006cly = 123;
diff --git a/test/language/identifiers/val-finally.js b/test/language/identifiers/val-finally.js
index 7e3851b837c1a15d4832af952ce7f2cd720ccae1..caadaa11a90b6b3521df7bca3ea834ef53a3d791 100644
--- a/test/language/identifiers/val-finally.js
+++ b/test/language/identifiers/val-finally.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var finally = 123;
diff --git a/test/language/identifiers/val-for-via-escape-hex.js b/test/language/identifiers/val-for-via-escape-hex.js
index 06054e460d1778f0e8e0ca2827db3da8fa34b553..1ef1bf99d65bbc71a77ee0e5666e5885ebe024a1 100644
--- a/test/language/identifiers/val-for-via-escape-hex.js
+++ b/test/language/identifiers/val-for-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: for
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f\u{6f}r = 123;
diff --git a/test/language/identifiers/val-for-via-escape-hex4.js b/test/language/identifiers/val-for-via-escape-hex4.js
index 005c26eb5252f9479c558c10534180372e3b0296..cf79ac8fa4ac4ddd6d4583825b6210c04a597db5 100644
--- a/test/language/identifiers/val-for-via-escape-hex4.js
+++ b/test/language/identifiers/val-for-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-18
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: for (for)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var f\u006fr = 123;
diff --git a/test/language/identifiers/val-for.js b/test/language/identifiers/val-for.js
index 16a19a1d590e9c6401e35d764f44197b15614a89..0455e667b616307ff3d23918ed9f45e568eae6a4 100644
--- a/test/language/identifiers/val-for.js
+++ b/test/language/identifiers/val-for.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var for = 123;
diff --git a/test/language/identifiers/val-function-via-escape-hex.js b/test/language/identifiers/val-function-via-escape-hex.js
index 01bc16a2a912f490fee410d4cae6469c967495f5..a3a8d2ab3233eac4c2e5faef02d511c473932418 100644
--- a/test/language/identifiers/val-function-via-escape-hex.js
+++ b/test/language/identifiers/val-function-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: function
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var func\u{74}ion = 123;
diff --git a/test/language/identifiers/val-function-via-escape-hex4.js b/test/language/identifiers/val-function-via-escape-hex4.js
index 50c50b3d36018719680d6973722878fd76287a32..44d9028969485688a6296a3aaae35297033ce076 100644
--- a/test/language/identifiers/val-function-via-escape-hex4.js
+++ b/test/language/identifiers/val-function-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-22
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: function (function)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var func\u0074ion = 123;
diff --git a/test/language/identifiers/val-function.js b/test/language/identifiers/val-function.js
index dc846ee8b45335998798ee742eb2a409c1d6973f..563b2d0ba732ef405c130e1a24cc96ae64285f3f 100644
--- a/test/language/identifiers/val-function.js
+++ b/test/language/identifiers/val-function.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var function = 123;
diff --git a/test/language/identifiers/val-if-via-escape-hex.js b/test/language/identifiers/val-if-via-escape-hex.js
index ae3d1160061b1589cec93355e2a2a91d1f68eb64..65c6658fd9c500b6b9cb1965c34623489d3602da 100644
--- a/test/language/identifiers/val-if-via-escape-hex.js
+++ b/test/language/identifiers/val-if-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: if
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{69}\u{66} = 123;
diff --git a/test/language/identifiers/val-if-via-escape-hex4.js b/test/language/identifiers/val-if-via-escape-hex4.js
index 8fefe16a73b899f6ad294d7b98ca1be569a75e28..951e1bb2a25adcad13e33d75c8661a19778966c7 100644
--- a/test/language/identifiers/val-if-via-escape-hex4.js
+++ b/test/language/identifiers/val-if-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-24
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: if (if)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0069\u0066 = 123;
diff --git a/test/language/identifiers/val-if.js b/test/language/identifiers/val-if.js
index 1ad3c2fcced515a3bf49be1b2954f7ede0d009a6..f63f72bcaf2277c1feba51cc19d0df21be40ebd2 100644
--- a/test/language/identifiers/val-if.js
+++ b/test/language/identifiers/val-if.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var if = 123;
diff --git a/test/language/identifiers/val-import-via-escape-hex.js b/test/language/identifiers/val-import-via-escape-hex.js
index 637b78051dbf5d1cde5d38052cfa2463fad31ca9..d977362f9f6074639801ae13ade065d15d382c24 100644
--- a/test/language/identifiers/val-import-via-escape-hex.js
+++ b/test/language/identifiers/val-import-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: import
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{69}\u{6d}\u{70}\u{6f}\u{72}\u{74} = 123;
diff --git a/test/language/identifiers/val-import-via-escape-hex4.js b/test/language/identifiers/val-import-via-escape-hex4.js
index dabf8b92dc7bb3ea2af15486b15be99dd9868bda..eaefad74cffe4ba983b0f69ad65821d3254f0b9e 100644
--- a/test/language/identifiers/val-import-via-escape-hex4.js
+++ b/test/language/identifiers/val-import-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-36
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: import (import)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0069\u006d\u0070\u006f\u0072\u0074 = 123;
diff --git a/test/language/identifiers/val-import.js b/test/language/identifiers/val-import.js
index 6e4884aa6d556b58163cf88c1feb30bdb723ee70..8ca17b49d343315934dba06676ed4ed3ccdf62d0 100644
--- a/test/language/identifiers/val-import.js
+++ b/test/language/identifiers/val-import.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var import = 123;
diff --git a/test/language/identifiers/val-in-via-escape-hex.js b/test/language/identifiers/val-in-via-escape-hex.js
index ac41b788ea96990540272eb8ace089cfa87a3340..61dac19e3303cd8cfc461c089c6062c39d033d5d 100644
--- a/test/language/identifiers/val-in-via-escape-hex.js
+++ b/test/language/identifiers/val-in-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: in
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{69}\u{6e} = 123;
diff --git a/test/language/identifiers/val-in-via-escape-hex4.js b/test/language/identifiers/val-in-via-escape-hex4.js
index fcec93268c7cebbdb30ad98e08b06b54f827a40f..79dca2ffde56af4dfc74186dfe570f267bf24eb1 100644
--- a/test/language/identifiers/val-in-via-escape-hex4.js
+++ b/test/language/identifiers/val-in-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-28
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: in (in)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0069\u006e = 123;
diff --git a/test/language/identifiers/val-in.js b/test/language/identifiers/val-in.js
index 2eb40fa68e6a037a5a2817ff07c069fad9a9c24c..0e23f346f2abab1a0e98e3b21138ae7082342164 100644
--- a/test/language/identifiers/val-in.js
+++ b/test/language/identifiers/val-in.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var in = 123;
diff --git a/test/language/identifiers/val-instanceof-via-escape-hex.js b/test/language/identifiers/val-instanceof-via-escape-hex.js
index 9bcacaeff1667cac421ef359712f17ac7e209138..f707b91f9e9c45c8cd6fc3abc56fb6aed984f3f8 100644
--- a/test/language/identifiers/val-instanceof-via-escape-hex.js
+++ b/test/language/identifiers/val-instanceof-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: instanceof
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var insta\u{6e}ceof = 123;
diff --git a/test/language/identifiers/val-instanceof-via-escape-hex4.js b/test/language/identifiers/val-instanceof-via-escape-hex4.js
index fb43af7c69d527bf73e44469651f65926b3dbd9d..4a16a7d1654e5ec05fa9531dab60a2f34d42d6e0 100644
--- a/test/language/identifiers/val-instanceof-via-escape-hex4.js
+++ b/test/language/identifiers/val-instanceof-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-6
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: instanceof (instanceof)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var insta\u006eceof = 123;
diff --git a/test/language/identifiers/val-instanceof.js b/test/language/identifiers/val-instanceof.js
index d0f63c7335ccff1a2ffd63fdfdcc9f8b7c9de8ad..767d7ca1f5abecc7635bb32b5fd61af86967fe92 100644
--- a/test/language/identifiers/val-instanceof.js
+++ b/test/language/identifiers/val-instanceof.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var instanceof = 123;
diff --git a/test/language/identifiers/val-new-via-escape-hex.js b/test/language/identifiers/val-new-via-escape-hex.js
index 1e6993a48ceeca406a75feba5fe03796df449b15..ceb21b63acf3fe7edfb4dfa2f40dd20d7765f34d 100644
--- a/test/language/identifiers/val-new-via-escape-hex.js
+++ b/test/language/identifiers/val-new-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: new
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var n\u{65}w = 123;
diff --git a/test/language/identifiers/val-new-via-escape-hex4.js b/test/language/identifiers/val-new-via-escape-hex4.js
index 626ec4c02e908a32f04b25d2d4d12b52599edbf1..6a64b8e2e21ae6277487b0000ebeac86d507c023 100644
--- a/test/language/identifiers/val-new-via-escape-hex4.js
+++ b/test/language/identifiers/val-new-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-10
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: new (new)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var n\u0065w = 123;
diff --git a/test/language/identifiers/val-new.js b/test/language/identifiers/val-new.js
index 2afd03c42d2f1b5d02e9279e0798c016fd5ed8da..471d897fb47f23309a5a3ee5e26170d94a98bcbd 100644
--- a/test/language/identifiers/val-new.js
+++ b/test/language/identifiers/val-new.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var new = 123;
diff --git a/test/language/identifiers/val-null-via-escape-hex.js b/test/language/identifiers/val-null-via-escape-hex.js
index c3d02bc6adfbec997acee30a90e5c020600f8b10..1df09bee5762fbff82c9be219d8e74e760205830 100644
--- a/test/language/identifiers/val-null-via-escape-hex.js
+++ b/test/language/identifiers/val-null-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: null
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{6e}ull = 123;
diff --git a/test/language/identifiers/val-null-via-escape-hex4.js b/test/language/identifiers/val-null-via-escape-hex4.js
index c547dac9e794dc665279c239f1d26a8d45dd2fce..7083dab43feb73ef69994c6b56179ed0623e5536 100644
--- a/test/language/identifiers/val-null-via-escape-hex4.js
+++ b/test/language/identifiers/val-null-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-1
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: null (null)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u006eull = 123;
diff --git a/test/language/identifiers/val-null.js b/test/language/identifiers/val-null.js
index c4ddd797c67582f9945860505c243f9014d4bf78..daf8b878a5f136ebe426779e7d039e099b6f4a6a 100644
--- a/test/language/identifiers/val-null.js
+++ b/test/language/identifiers/val-null.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var null = 123;
diff --git a/test/language/identifiers/val-return-via-escape-hex.js b/test/language/identifiers/val-return-via-escape-hex.js
index d7f7817a7f6017d0bac078f044b0a2e2edce8023..e8bb6cc6c88b0a379f075b5fed8f99e3b9f97f5a 100644
--- a/test/language/identifiers/val-return-via-escape-hex.js
+++ b/test/language/identifiers/val-return-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: return
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var retur\u{6e} = 123;
diff --git a/test/language/identifiers/val-return-via-escape-hex4.js b/test/language/identifiers/val-return-via-escape-hex4.js
index 714f6665511fbfca97711bd9765fda6583699c83..072ea7a73d188663bb08df0f690a858d91ff68b9 100644
--- a/test/language/identifiers/val-return-via-escape-hex4.js
+++ b/test/language/identifiers/val-return-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-15
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: return (return)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var retur\u006e = 123;
diff --git a/test/language/identifiers/val-return.js b/test/language/identifiers/val-return.js
index b8ba3caa65bd10abce2068d7086d95d0821ce36d..b57bb8b5fb182d2cea97298ae812490c2016cb33 100644
--- a/test/language/identifiers/val-return.js
+++ b/test/language/identifiers/val-return.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var return = 123;
diff --git a/test/language/identifiers/val-super-via-escape-hex.js b/test/language/identifiers/val-super-via-escape-hex.js
index c22b9dfaabb4c6b594d6864ab17400693e5df96f..3cc4edfa0b41651fe388d2c1282fd6f669cbbc06 100644
--- a/test/language/identifiers/val-super-via-escape-hex.js
+++ b/test/language/identifiers/val-super-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: super
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{73}uper = 123;
diff --git a/test/language/identifiers/val-super-via-escape-hex4.js b/test/language/identifiers/val-super-via-escape-hex4.js
index e9568a7bb1ffdcdbe66b2a1119f5adf9895a395e..994ab03c31de91fe2d0d972b80c107b031a8ebae 100644
--- a/test/language/identifiers/val-super-via-escape-hex4.js
+++ b/test/language/identifiers/val-super-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-33
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: super (super)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0073uper = 123;
diff --git a/test/language/identifiers/val-super.js b/test/language/identifiers/val-super.js
index 009e67f5d62018a4a5bdfd0ce06ecb3ac641f73b..99ffc47adb2711a944fbe2538ca37764001053b5 100644
--- a/test/language/identifiers/val-super.js
+++ b/test/language/identifiers/val-super.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var super = 123;
diff --git a/test/language/identifiers/val-switch-via-escape-hex.js b/test/language/identifiers/val-switch-via-escape-hex.js
index c864f2986614dc0daa92889f20561f635960d4c3..04cbbd63c9244540ee63d1113ddb7a2567641ead 100644
--- a/test/language/identifiers/val-switch-via-escape-hex.js
+++ b/test/language/identifiers/val-switch-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: switch
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var switc\u{68} = 123;
diff --git a/test/language/identifiers/val-switch-via-escape-hex4.js b/test/language/identifiers/val-switch-via-escape-hex4.js
index bc20a1250086f4a98ceca5a565708be0d08ab97a..fb40c7c8f7750dfd69db7a60aff6fb1f4683e805 100644
--- a/test/language/identifiers/val-switch-via-escape-hex4.js
+++ b/test/language/identifiers/val-switch-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-19
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: switch (switch)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var switc\u0068 = 123;
diff --git a/test/language/identifiers/val-switch.js b/test/language/identifiers/val-switch.js
index b505ea1ff861b6aa3c32d9b138ff22b1ac2fe593..038df66ff7d6d59d6c264006531301f9ff5b43e8 100644
--- a/test/language/identifiers/val-switch.js
+++ b/test/language/identifiers/val-switch.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var switch = 123;
diff --git a/test/language/identifiers/val-this-via-escape-hex.js b/test/language/identifiers/val-this-via-escape-hex.js
index b1816dc0a4cb4951ce21afa3a5d0eb62c4826ccd..5bdb3fb90eab4c174a964dbe6c0a5b6656c9d60e 100644
--- a/test/language/identifiers/val-this-via-escape-hex.js
+++ b/test/language/identifiers/val-this-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: this
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var thi\u{73} = 123;
diff --git a/test/language/identifiers/val-this-via-escape-hex4.js b/test/language/identifiers/val-this-via-escape-hex4.js
index ffcd5e5928b8b365c25d7488a33e01cceb7e7384..096712eba6ff5014bbfa933bb64be7d4b99cf564 100644
--- a/test/language/identifiers/val-this-via-escape-hex4.js
+++ b/test/language/identifiers/val-this-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-23
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: this (this)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var thi\u0073 = 123;
diff --git a/test/language/identifiers/val-this.js b/test/language/identifiers/val-this.js
index 71dc283266a77771b819baa23989558ec5bf77ed..e4e556cbcd49d7584da54307409e928dc5fc6f83 100644
--- a/test/language/identifiers/val-this.js
+++ b/test/language/identifiers/val-this.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var this = 123;
diff --git a/test/language/identifiers/val-throw-via-escape-hex.js b/test/language/identifiers/val-throw-via-escape-hex.js
index 978c13af78ad2bf07d591fbf332f10d2284f8645..149477ffca68aafb8e25918a2b8e493fe04b982a 100644
--- a/test/language/identifiers/val-throw-via-escape-hex.js
+++ b/test/language/identifiers/val-throw-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: throw
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var thro\u{77} = 123;
diff --git a/test/language/identifiers/val-throw-via-escape-hex4.js b/test/language/identifiers/val-throw-via-escape-hex4.js
index dc7c9dc807c55f406100ebfd94d1bfbdff536197..5573448205429bc64baed9f28824c721fe85b432 100644
--- a/test/language/identifiers/val-throw-via-escape-hex4.js
+++ b/test/language/identifiers/val-throw-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-27
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: throw (throw)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var thro\u0077 = 123;
diff --git a/test/language/identifiers/val-throw.js b/test/language/identifiers/val-throw.js
index 3c5758e12c985fc8b06bbee4297381ce0527bb63..24e7ebda9e2875fe30ccaf7d5112e2d516490e6a 100644
--- a/test/language/identifiers/val-throw.js
+++ b/test/language/identifiers/val-throw.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var throw = 123;
diff --git a/test/language/identifiers/val-true-via-escape-hex.js b/test/language/identifiers/val-true-via-escape-hex.js
index 7aa9228d9fd121024edb24ccd2919a99663f35a1..2bdf5a6e040a685d1717ddaaa01c72766296667f 100644
--- a/test/language/identifiers/val-true-via-escape-hex.js
+++ b/test/language/identifiers/val-true-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var tr\u{75}e = 123;
diff --git a/test/language/identifiers/val-true-via-escape-hex4.js b/test/language/identifiers/val-true-via-escape-hex4.js
index 59a541e849fe00f98bc1c5a01feb0d40116172a3..fdf9f9f40f156e0ede5255307b0259d4230b4251 100644
--- a/test/language/identifiers/val-true-via-escape-hex4.js
+++ b/test/language/identifiers/val-true-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-2
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: true (true)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var tr\u0075e = 123;
diff --git a/test/language/identifiers/val-true.js b/test/language/identifiers/val-true.js
index 2df3fbb7f511e61ae76c3590e44a288a23db0b25..98af63cac1213ba8f469c65c7de8ab33f74d87db 100644
--- a/test/language/identifiers/val-true.js
+++ b/test/language/identifiers/val-true.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var true = 123;
diff --git a/test/language/identifiers/val-try-via-escape-hex.js b/test/language/identifiers/val-try-via-escape-hex.js
index da6c4639842d118a668410153c8b1675ae913c29..c6eae5b1e166752e223d6a3733b44c6400561e21 100644
--- a/test/language/identifiers/val-try-via-escape-hex.js
+++ b/test/language/identifiers/val-try-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: try
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{74}\u{72}\u{79} = 123;
diff --git a/test/language/identifiers/val-try-via-escape-hex4.js b/test/language/identifiers/val-try-via-escape-hex4.js
index 55f73422bb328831633dd4b3c509d452036d0973..9db48ea0c44f5d12371c20ed40f0fabc5d2b1c21 100644
--- a/test/language/identifiers/val-try-via-escape-hex4.js
+++ b/test/language/identifiers/val-try-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-12
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: try (try)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0074\u0072\u0079 = 123;
diff --git a/test/language/identifiers/val-try.js b/test/language/identifiers/val-try.js
index aa5ff65887523226197ac959d11e4d00425331d3..25c1239b4cfbfa6e5edfca271cdfa4a05f037813 100644
--- a/test/language/identifiers/val-try.js
+++ b/test/language/identifiers/val-try.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var try = 123;
diff --git a/test/language/identifiers/val-typeof-via-escape-hex.js b/test/language/identifiers/val-typeof-via-escape-hex.js
index 7069490e4fc2a222872f0552edd80a81f804bcdc..9a6ae786ecce1585057cf4cbc33183922c9635c3 100644
--- a/test/language/identifiers/val-typeof-via-escape-hex.js
+++ b/test/language/identifiers/val-typeof-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: typeof
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var typeo\u{66} = 123;
diff --git a/test/language/identifiers/val-typeof-via-escape-hex4.js b/test/language/identifiers/val-typeof-via-escape-hex4.js
index 98d4ab0ccc2dcede2c39de29ea9ad0a88b938fd7..762afd2f8db32191aafd3872d9196c8f06f7204f 100644
--- a/test/language/identifiers/val-typeof-via-escape-hex4.js
+++ b/test/language/identifiers/val-typeof-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-7
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: typeof (typeof)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var typeo\u0066 = 123;
diff --git a/test/language/identifiers/val-typeof.js b/test/language/identifiers/val-typeof.js
index 02c3a81ff101ec420ba2c818996277355ce96f13..713fef7c6efe7198dba20a8a1ff18bdd0ba68587 100644
--- a/test/language/identifiers/val-typeof.js
+++ b/test/language/identifiers/val-typeof.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var typeof = 123;
diff --git a/test/language/identifiers/val-var-via-escape-hex.js b/test/language/identifiers/val-var-via-escape-hex.js
index 4e9c22d464c00050923f8a9a5fd65813a2d4da7c..5efde45394f04f755245281b67309b35b85cb012 100644
--- a/test/language/identifiers/val-var-via-escape-hex.js
+++ b/test/language/identifiers/val-var-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: var
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var va\u{72} = 123;
diff --git a/test/language/identifiers/val-var-via-escape-hex4.js b/test/language/identifiers/val-var-via-escape-hex4.js
index bdca2d4c8cff0159684ebb890de926642abf82e7..b4fada8679512eaeb6d4ff68451945be9dc735d6 100644
--- a/test/language/identifiers/val-var-via-escape-hex4.js
+++ b/test/language/identifiers/val-var-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-11
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: var (var)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var va\u0072 = 123;
diff --git a/test/language/identifiers/val-var.js b/test/language/identifiers/val-var.js
index 1bed4ca170d5d46536889202e7b7433b6cd4415f..d81b4b8c8e34b48ba38db5b5ce390796b3bb1604 100644
--- a/test/language/identifiers/val-var.js
+++ b/test/language/identifiers/val-var.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var var = 123;
diff --git a/test/language/identifiers/val-void-via-escape-hex.js b/test/language/identifiers/val-void-via-escape-hex.js
index 126def5114db77fc972e01cb191146142bf1008c..ad56d3a3c8587cb45d24bc0beb673f5a007347f6 100644
--- a/test/language/identifiers/val-void-via-escape-hex.js
+++ b/test/language/identifiers/val-void-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: void
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{76}\u{6f}\u{69}\u{64} = 123;
diff --git a/test/language/identifiers/val-void-via-escape-hex4.js b/test/language/identifiers/val-void-via-escape-hex4.js
index 7102d8aa61950a8b4c1febe0ee75343a42790103..7daaf94617a8cfe6d8d3a90de9720bfee2b1d036 100644
--- a/test/language/identifiers/val-void-via-escape-hex4.js
+++ b/test/language/identifiers/val-void-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-16
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: void (void)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0076\u006f\u0069\u0064 = 123;
diff --git a/test/language/identifiers/val-void.js b/test/language/identifiers/val-void.js
index 6260522a3b2729ac4e0a69a537e039ae8eba5f24..62ec52b2b6d765c9989139c00a82518b0a602b0b 100644
--- a/test/language/identifiers/val-void.js
+++ b/test/language/identifiers/val-void.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var void = 123;
diff --git a/test/language/identifiers/val-while-via-escape-hex.js b/test/language/identifiers/val-while-via-escape-hex.js
index 86d90e217a78f44ea483d6de88ea1b30462120f0..8331b71e5d6beea3febed656e49aecef781aea24 100644
--- a/test/language/identifiers/val-while-via-escape-hex.js
+++ b/test/language/identifiers/val-while-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: while
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{77}\u{68}\u{69}\u{6c}\u{65} = 123;
diff --git a/test/language/identifiers/val-while-via-escape-hex4.js b/test/language/identifiers/val-while-via-escape-hex4.js
index a3d4085a830f99b8809a459a5ab25952d1bf4618..fcb22db3cf1f6905f286f4911a2c24ff13b8564d 100644
--- a/test/language/identifiers/val-while-via-escape-hex4.js
+++ b/test/language/identifiers/val-while-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-20
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: while (while)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0077\u0068\u0069\u006c\u0065 = 123;
diff --git a/test/language/identifiers/val-while.js b/test/language/identifiers/val-while.js
index 3a1a0e506a961e18557df9560f7434dd832b481e..1e0ec86a96c6817434493516a4945715e62f5b58 100644
--- a/test/language/identifiers/val-while.js
+++ b/test/language/identifiers/val-while.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var while = 123;
diff --git a/test/language/identifiers/val-with-via-escape-hex.js b/test/language/identifiers/val-with-via-escape-hex.js
index d3b4cdd8152c9624d11e62e90af7fca07452c59a..5d0292ac1df2897e42cceb34aabe7faf10c15c70 100644
--- a/test/language/identifiers/val-with-via-escape-hex.js
+++ b/test/language/identifiers/val-with-via-escape-hex.js
@@ -6,7 +6,9 @@ es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
     Names in UTF8: with
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u{77}ith = 123;
diff --git a/test/language/identifiers/val-with-via-escape-hex4.js b/test/language/identifiers/val-with-via-escape-hex4.js
index 28c866a0e37fde5cbaf7d244a0b4ff1df29677f1..a7c91c66ceef97ea49ec82ec40b903208861c775 100644
--- a/test/language/identifiers/val-with-via-escape-hex4.js
+++ b/test/language/identifiers/val-with-via-escape-hex4.js
@@ -6,7 +6,9 @@ es5id: 7.6-25
 description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: with (with)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var \u0077ith = 123;
diff --git a/test/language/identifiers/val-with.js b/test/language/identifiers/val-with.js
index 43b697069486e211ba136bc4788731e7acd24a5c..2bc89f3e85ef4af683ffa50e9e1e6c69f914c49c 100644
--- a/test/language/identifiers/val-with.js
+++ b/test/language/identifiers/val-with.js
@@ -5,7 +5,9 @@
 es6id: 11.6
 description: >
     SyntaxError expected: reserved words used as Identifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var with = 123;
diff --git a/test/language/identifiers/val-yield-strict.js b/test/language/identifiers/val-yield-strict.js
index deca8d6e6ef39bd40304a60c05c1b188e487a79a..f6f3ec7df930b7c1f79c2bd445ca0693351f4f42 100644
--- a/test/language/identifiers/val-yield-strict.js
+++ b/test/language/identifiers/val-yield-strict.js
@@ -6,7 +6,9 @@ description: >
     `yield` is a reserved identifier in strict mode code and may not be used
     as an identifier.
 es6id: 12.1.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
  ---*/
 
diff --git a/test/language/import/dup-bound-names.js b/test/language/import/dup-bound-names.js
index 2727eea9c622720c09a5599aa4682e0cdb18a65e..34eff72aa0e31985f369e70b6a6debd7f66b8147 100644
--- a/test/language/import/dup-bound-names.js
+++ b/test/language/import/dup-bound-names.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the BoundNames of ImportDeclaration contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 import { x, y as x } from 'z';
diff --git a/test/language/keywords/S7.6.1.1_A1.1.js b/test/language/keywords/S7.6.1.1_A1.1.js
index a254c9266223d735fbd28cd066a645fb75f781ea..b272cb85dd08290db825a8ece6872c535803232e 100644
--- a/test/language/keywords/S7.6.1.1_A1.1.js
+++ b/test/language/keywords/S7.6.1.1_A1.1.js
@@ -5,7 +5,9 @@
 info: The "break" token can not be used as identifier
 es5id: 7.6.1.1_A1.1
 description: Checking if execution of "break=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 break = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.10.js b/test/language/keywords/S7.6.1.1_A1.10.js
index 053e0faca62200d106bbaae87aeaab8e55b86754..b3d6b9eab5778089b81f24ca804ef93d010457eb 100644
--- a/test/language/keywords/S7.6.1.1_A1.10.js
+++ b/test/language/keywords/S7.6.1.1_A1.10.js
@@ -5,7 +5,9 @@
 info: The "for" token can not be used as identifier
 es5id: 7.6.1.1_A1.10
 description: Checking if execution of "for=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.11.js b/test/language/keywords/S7.6.1.1_A1.11.js
index 96652e2b10b239d62d43b5c5f9b915e3f1b8d70e..6e1479e5f4604df1e3abfdd8d0c6bbeacb4a444c 100644
--- a/test/language/keywords/S7.6.1.1_A1.11.js
+++ b/test/language/keywords/S7.6.1.1_A1.11.js
@@ -5,7 +5,9 @@
 info: The "function" token can not be used as identifier
 es5id: 7.6.1.1_A1.11
 description: Checking if execution of "function=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.12.js b/test/language/keywords/S7.6.1.1_A1.12.js
index 603ecbe1332a7ca6a29786b25a96a738196e8f0d..ce3672ffd6e0a0ee5f8a7a701dfc98bd479faf6f 100644
--- a/test/language/keywords/S7.6.1.1_A1.12.js
+++ b/test/language/keywords/S7.6.1.1_A1.12.js
@@ -5,7 +5,9 @@
 info: The "if" token can not be used as identifier
 es5id: 7.6.1.1_A1.12
 description: Checking if execution of "if=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.13.js b/test/language/keywords/S7.6.1.1_A1.13.js
index d7da9537db0c2f5159b026f837637f606ce98895..4e9d4f00c97a868f153b68373b0a746a824020ae 100644
--- a/test/language/keywords/S7.6.1.1_A1.13.js
+++ b/test/language/keywords/S7.6.1.1_A1.13.js
@@ -5,7 +5,9 @@
 info: The "in" token can not be used as identifier
 es5id: 7.6.1.1_A1.13
 description: Checking if execution of "in=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 in = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.14.js b/test/language/keywords/S7.6.1.1_A1.14.js
index d5044199445b46dc906806e3279608c1f0e0aab2..933135025306f437504954f47ec36f9c936cfbe7 100644
--- a/test/language/keywords/S7.6.1.1_A1.14.js
+++ b/test/language/keywords/S7.6.1.1_A1.14.js
@@ -5,7 +5,9 @@
 info: The "instanceof" token can not be used as identifier
 es5id: 7.6.1.1_A1.14
 description: Checking if execution of "instanceof=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 instanceof = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.15.js b/test/language/keywords/S7.6.1.1_A1.15.js
index e623b1a0be5bf9286ccec273d36879526fe04eff..6c0865e11d1f5591eba3c44f6967a35b2e6839bb 100644
--- a/test/language/keywords/S7.6.1.1_A1.15.js
+++ b/test/language/keywords/S7.6.1.1_A1.15.js
@@ -5,7 +5,9 @@
 info: The "new" token can not be used as identifier
 es5id: 7.6.1.1_A1.15
 description: Checking if execution of "new=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 new = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.16.js b/test/language/keywords/S7.6.1.1_A1.16.js
index add73e9f27530a15b2ce39089d82fd5f565af9ab..693b32ec072822cb12bf3e67f54a0a1334e5c428 100644
--- a/test/language/keywords/S7.6.1.1_A1.16.js
+++ b/test/language/keywords/S7.6.1.1_A1.16.js
@@ -5,7 +5,9 @@
 info: The "return" token can not be used as identifier
 es5id: 7.6.1.1_A1.16
 description: Checking if execution of "return=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 return = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.17.js b/test/language/keywords/S7.6.1.1_A1.17.js
index ae8dbae8e0a8f382492cebdb58b16f89c1a1c544..d388331d06ea9bcca03f927c291c716ae4e5d5a4 100644
--- a/test/language/keywords/S7.6.1.1_A1.17.js
+++ b/test/language/keywords/S7.6.1.1_A1.17.js
@@ -5,7 +5,9 @@
 info: The "switch" token can not be used as identifier
 es5id: 7.6.1.1_A1.17
 description: Checking if execution of "switch=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 switch = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.19.js b/test/language/keywords/S7.6.1.1_A1.19.js
index 16418ccb0fb028752e906bec45553cf5520133ef..6f74ed30df1e354f5f910dca7ad4969314e58c0b 100644
--- a/test/language/keywords/S7.6.1.1_A1.19.js
+++ b/test/language/keywords/S7.6.1.1_A1.19.js
@@ -5,7 +5,9 @@
 info: The "throw" token can not be used as identifier
 es5id: 7.6.1.1_A1.19
 description: Checking if execution of "throw=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.2.js b/test/language/keywords/S7.6.1.1_A1.2.js
index a973527c4da9f04ae93a9a6b8073bfd18e684898..9d1416c61a396d87f5bd1930571adef280ef8467 100644
--- a/test/language/keywords/S7.6.1.1_A1.2.js
+++ b/test/language/keywords/S7.6.1.1_A1.2.js
@@ -5,7 +5,9 @@
 info: The "case" token can not be used as identifier
 es5id: 7.6.1.1_A1.2
 description: Checking if execution of "case=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 case = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.20.js b/test/language/keywords/S7.6.1.1_A1.20.js
index a72a7ae35aae0d41e4b28d7b7814ba609e766853..cde696e30512f69187ef8afe40e601acde7501f2 100644
--- a/test/language/keywords/S7.6.1.1_A1.20.js
+++ b/test/language/keywords/S7.6.1.1_A1.20.js
@@ -5,7 +5,9 @@
 info: The "try" token can not be used as identifier
 es5id: 7.6.1.1_A1.20
 description: Checking if execution of "try=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 try = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.21.js b/test/language/keywords/S7.6.1.1_A1.21.js
index 6a3b03a0b2b2724dae43ef0faf826d5330eacdd3..e7728c46ca84b4cf2b25a9e69bf1e7aa05a08449 100644
--- a/test/language/keywords/S7.6.1.1_A1.21.js
+++ b/test/language/keywords/S7.6.1.1_A1.21.js
@@ -5,7 +5,9 @@
 info: The "typeof" token can not be used as identifier
 es5id: 7.6.1.1_A1.21
 description: Checking if execution of "typeof=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 typeof = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.22.js b/test/language/keywords/S7.6.1.1_A1.22.js
index 3192d857abaa2f2fec03e2ba3f5b63b89c23609b..91f643325d81257463eaa4976483e78d4bf29d03 100644
--- a/test/language/keywords/S7.6.1.1_A1.22.js
+++ b/test/language/keywords/S7.6.1.1_A1.22.js
@@ -5,7 +5,9 @@
 info: The "var" token can not be used as identifier
 es5id: 7.6.1.1_A1.22
 description: Checking if execution of "var=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.23.js b/test/language/keywords/S7.6.1.1_A1.23.js
index b6cded9f36df3959eaadb20c0f0ed7e1e0e4a9aa..c1e3120051ea4c73e7a78054d164723e04c9688a 100644
--- a/test/language/keywords/S7.6.1.1_A1.23.js
+++ b/test/language/keywords/S7.6.1.1_A1.23.js
@@ -5,7 +5,9 @@
 info: The "void" token can not be used as identifier
 es5id: 7.6.1.1_A1.23
 description: Checking if execution of "void=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 void = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.24.js b/test/language/keywords/S7.6.1.1_A1.24.js
index 6cbfa08e9854ad0ca7b2fac8a294584f8cde3e8b..9fb3767f18ce3f6acfbba742570109a8e843f2de 100644
--- a/test/language/keywords/S7.6.1.1_A1.24.js
+++ b/test/language/keywords/S7.6.1.1_A1.24.js
@@ -5,7 +5,9 @@
 info: The "while" token can not be used as identifier
 es5id: 7.6.1.1_A1.24
 description: Checking if execution of "while=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.25.js b/test/language/keywords/S7.6.1.1_A1.25.js
index 693163b6dd4ded75c619c4ad5c5ff8401ba28ac2..869d56d51959235a6cfb581c8b722eea0efc6b1f 100644
--- a/test/language/keywords/S7.6.1.1_A1.25.js
+++ b/test/language/keywords/S7.6.1.1_A1.25.js
@@ -5,7 +5,9 @@
 info: The "with" token can not be used as identifier
 es5id: 7.6.1.1_A1.25
 description: Checking if execution of "with=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.3.js b/test/language/keywords/S7.6.1.1_A1.3.js
index e896e65557653b558916d3f0348e251b3ee57452..38ea1915d765bce1ac1c790fda7063666fdfd65d 100644
--- a/test/language/keywords/S7.6.1.1_A1.3.js
+++ b/test/language/keywords/S7.6.1.1_A1.3.js
@@ -5,7 +5,9 @@
 info: The "catch" token can not be used as identifier
 es5id: 7.6.1.1_A1.3
 description: Checking if execution of "catch=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 catch = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.4.js b/test/language/keywords/S7.6.1.1_A1.4.js
index f9215dcdccbb08a1450e9a6e66813a9d8d12b0fc..65c97315ce76c4474fc3cff561038b8e01ac13ee 100644
--- a/test/language/keywords/S7.6.1.1_A1.4.js
+++ b/test/language/keywords/S7.6.1.1_A1.4.js
@@ -5,7 +5,9 @@
 info: The "continue" token can not be used as identifier
 es5id: 7.6.1.1_A1.4
 description: Checking if execution of "contunue=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 continue = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.5.js b/test/language/keywords/S7.6.1.1_A1.5.js
index 35425610c51313e461d80617f709ba0b29febeb8..1c6f9c5e880e3c0a42a98e862de0761a6e374262 100644
--- a/test/language/keywords/S7.6.1.1_A1.5.js
+++ b/test/language/keywords/S7.6.1.1_A1.5.js
@@ -5,7 +5,9 @@
 info: The "default" token can not be used as identifier
 es5id: 7.6.1.1_A1.5
 description: Checking if execution of "default=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 default = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.6.js b/test/language/keywords/S7.6.1.1_A1.6.js
index e4330159acdc17954e1dba4933d6baeb8c8b0cc0..e8eeac76474a836a232a3a6e4ceba026ed3c77b3 100644
--- a/test/language/keywords/S7.6.1.1_A1.6.js
+++ b/test/language/keywords/S7.6.1.1_A1.6.js
@@ -5,7 +5,9 @@
 info: The "delete" token can not be used as identifier
 es5id: 7.6.1.1_A1.6
 description: Checking if execution of "delete=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 delete = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.7.js b/test/language/keywords/S7.6.1.1_A1.7.js
index b9428377a69cd067d3dac7bcbc496262fdb967e6..310e6476b366b805f61bc4e0460122a47f3037cc 100644
--- a/test/language/keywords/S7.6.1.1_A1.7.js
+++ b/test/language/keywords/S7.6.1.1_A1.7.js
@@ -5,7 +5,9 @@
 info: The "do" token can not be used as identifier
 es5id: 7.6.1.1_A1.7
 description: Checking if execution of "do=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.8.js b/test/language/keywords/S7.6.1.1_A1.8.js
index bf4409e315f2f71e467e35c1d31acf87a6f6cf07..8c5817b86d41981be9598c910da02667f5fdebbd 100644
--- a/test/language/keywords/S7.6.1.1_A1.8.js
+++ b/test/language/keywords/S7.6.1.1_A1.8.js
@@ -5,7 +5,9 @@
 info: The "else" token can not be used as identifier
 es5id: 7.6.1.1_A1.8
 description: Checking if execution of "else=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 else = 1;
diff --git a/test/language/keywords/S7.6.1.1_A1.9.js b/test/language/keywords/S7.6.1.1_A1.9.js
index 50af87b024f2d2e25cf6d9b2b93e8a216ffc7546..e4fe13f21dfad1d5f26fb780dd3f9b5fb7f4dd00 100644
--- a/test/language/keywords/S7.6.1.1_A1.9.js
+++ b/test/language/keywords/S7.6.1.1_A1.9.js
@@ -5,7 +5,9 @@
 info: The "finally" token can not be used as identifier
 es5id: 7.6.1.1_A1.9
 description: Checking if execution of "finally=1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 finally = 1;
diff --git a/test/language/line-terminators/S7.3_A2.1_T2.js b/test/language/line-terminators/S7.3_A2.1_T2.js
index 00c7a1d4b43ac5d9099ebafa660d95c128690c53..8c2689bb3cc3c8c9241c113bb6c8af35b03e23c8 100644
--- a/test/language/line-terminators/S7.3_A2.1_T2.js
+++ b/test/language/line-terminators/S7.3_A2.1_T2.js
@@ -5,7 +5,9 @@
 info: LINE FEED (U+000A) within strings is not allowed
 es5id: 7.3_A2.1_T2
 description: Use real LINE FEED into string
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/line-terminators/S7.3_A2.2_T2.js b/test/language/line-terminators/S7.3_A2.2_T2.js
index dce4f2a2b990383a444ed5e207d77b1c94aa3e98..6d70527026634b6531f31c41da838afad2fd820d 100644
--- a/test/language/line-terminators/S7.3_A2.2_T2.js
+++ b/test/language/line-terminators/S7.3_A2.2_T2.js
@@ -5,7 +5,9 @@
 info: CARRIAGE RETURN (U+000D) within strings is not allowed
 es5id: 7.3_A2.2_T2
 description: Insert real CARRIAGE RETURN into string
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/line-terminators/S7.3_A3.1_T3.js b/test/language/line-terminators/S7.3_A3.1_T3.js
index 68c5a9062621d68fbfb5de9d4edbdf3c215c5c0f..c315d3d4273d6de5460a61880479685dfec04738 100644
--- a/test/language/line-terminators/S7.3_A3.1_T3.js
+++ b/test/language/line-terminators/S7.3_A3.1_T3.js
@@ -5,7 +5,9 @@
 info: Single line comments can not contain LINE FEED (U+000A) inside
 es5id: 7.3_A3.1_T3
 description: Insert real LINE FEED into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/line-terminators/S7.3_A3.2_T1.js b/test/language/line-terminators/S7.3_A3.2_T1.js
index eb4fbb79e0029d130d5613a59974e8e8b8aaa7ac..ae4fbbf2a62d44a9e045253c458559dbb8853bdb 100644
--- a/test/language/line-terminators/S7.3_A3.2_T1.js
+++ b/test/language/line-terminators/S7.3_A3.2_T1.js
@@ -5,7 +5,9 @@
 info: Single line comments can not contain CARRIAGE RETURN (U+000D) inside
 es5id: 7.3_A3.2_T1
 description: Insert CARRIAGE RETURN (\u000D) into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // single line comment 
 ??? (invalid)
diff --git a/test/language/line-terminators/S7.3_A3.2_T3.js b/test/language/line-terminators/S7.3_A3.2_T3.js
index 02b123410f15b65c7c71b7aba67bdeefd1e4483d..04d63d37377ff26a03fcfe04d5894ff838a39563 100644
--- a/test/language/line-terminators/S7.3_A3.2_T3.js
+++ b/test/language/line-terminators/S7.3_A3.2_T3.js
@@ -5,7 +5,9 @@
 info: Single line comments can not contain CARRIAGE RETURN (U+000D) inside
 es5id: 7.3_A3.2_T3
 description: Insert real CARRIAGE RETURN into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/line-terminators/S7.3_A3.3_T1.js b/test/language/line-terminators/S7.3_A3.3_T1.js
index 6a8bd1b8d85b1204be5f1524c01e06fb45835396..f895d3289c1cf9f6638d4026f90f3297832f0340 100644
--- a/test/language/line-terminators/S7.3_A3.3_T1.js
+++ b/test/language/line-terminators/S7.3_A3.3_T1.js
@@ -7,7 +7,9 @@ info: >
     character
 es5id: 7.3_A3.3_T1
 description: Insert LINE SEPARATOR (\u2028) into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // single line LS>
??? (invalid)
diff --git a/test/language/line-terminators/S7.3_A3.4_T1.js b/test/language/line-terminators/S7.3_A3.4_T1.js
index b1e07af9f267d844155550b8987ac90e66e8a4ad..2ff0ea095c8cfbcb18f690a686dba26570f3da22 100644
--- a/test/language/line-terminators/S7.3_A3.4_T1.js
+++ b/test/language/line-terminators/S7.3_A3.4_T1.js
@@ -5,7 +5,9 @@
 info: Single line comments can not contain PARAGRAPH SEPARATOR (U+2029) inside
 es5id: 7.3_A3.4_T1
 description: Insert PARAGRAPH SEPARATOR (\u2029) into single line comment
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // single line PS>
??? (invalid)
diff --git a/test/language/line-terminators/S7.3_A6_T1.js b/test/language/line-terminators/S7.3_A6_T1.js
index bc16811d3925e00de7dc253cf6f78a2815847969..6cc49d37336a82c336c605f32d04518982a3d8e0 100644
--- a/test/language/line-terminators/S7.3_A6_T1.js
+++ b/test/language/line-terminators/S7.3_A6_T1.js
@@ -7,7 +7,9 @@ info: >
     consisting of six characters, namely \u plus four hexadecimal digits
 es5id: 7.3_A6_T1
 description: Insert LINE FEED (U+000A) in var x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u000Ax;
diff --git a/test/language/line-terminators/S7.3_A6_T2.js b/test/language/line-terminators/S7.3_A6_T2.js
index ed3acaa4567af22127842fdd2b8750e2b8c1ab50..e247745f4b039faf028087eb50544480c82a5997 100644
--- a/test/language/line-terminators/S7.3_A6_T2.js
+++ b/test/language/line-terminators/S7.3_A6_T2.js
@@ -7,7 +7,9 @@ info: >
     consisting of six characters, namely \u plus four hexadecimal digits
 es5id: 7.3_A6_T2
 description: Insert CARRIAGE RETURN (U+000D) in var x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u000Dx;
diff --git a/test/language/line-terminators/S7.3_A6_T3.js b/test/language/line-terminators/S7.3_A6_T3.js
index ea10ae15834cd7b9b5840f51efbccedf9bae95ff..f2c759815889fadd84a6efbc02511fc74dc7f762 100644
--- a/test/language/line-terminators/S7.3_A6_T3.js
+++ b/test/language/line-terminators/S7.3_A6_T3.js
@@ -7,7 +7,9 @@ info: >
     consisting of six characters, namely \u plus four hexadecimal digits
 es5id: 7.3_A6_T3
 description: Insert LINE SEPARATOR (U+2028) in var x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u2028x;
diff --git a/test/language/line-terminators/S7.3_A6_T4.js b/test/language/line-terminators/S7.3_A6_T4.js
index daa1ad396b5a003c1a299b11504234ff5e69dd57..4c0bc0b99dd568b1e3196bb3b4ba9544e5db0dc7 100644
--- a/test/language/line-terminators/S7.3_A6_T4.js
+++ b/test/language/line-terminators/S7.3_A6_T4.js
@@ -7,7 +7,9 @@ info: >
     consisting of six characters, namely \u plus four hexadecimal digits
 es5id: 7.3_A6_T4
 description: Insert PARAGRAPH SEPARATOR (U+2029) in var x
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u2029x;
diff --git a/test/language/literals/numeric/7.8.3-1gs.js b/test/language/literals/numeric/7.8.3-1gs.js
index b63843295a09a6ec9a0d69903c1a831193d28f67..05e7ac6f8a4d9dc44d128a3d794b851faeec51ac 100644
--- a/test/language/literals/numeric/7.8.3-1gs.js
+++ b/test/language/literals/numeric/7.8.3-1gs.js
@@ -4,7 +4,9 @@
 /*---
 es5id: 7.8.3-1gs
 description: Strict Mode - octal extension(010) is forbidden in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/numeric/7.8.3-2gs.js b/test/language/literals/numeric/7.8.3-2gs.js
index d4c938160f706f1b589a8d5d7255d443becb9cd8..e2f3ad49e4b6014c34721cefb74ee8ed1cb06899 100644
--- a/test/language/literals/numeric/7.8.3-2gs.js
+++ b/test/language/literals/numeric/7.8.3-2gs.js
@@ -6,7 +6,9 @@ es5id: 7.8.3-2gs
 description: >
     Strict Mode - octal extension is forbidden in strict mode (after a
     hex number is assigned to a variable)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/numeric/S7.8.3_A6.1_T1.js b/test/language/literals/numeric/S7.8.3_A6.1_T1.js
index 23be70d68db19baa6c7b5ae017007eb4b9be22d2..033531cb982c07555286f11d4a51f81919cf0d73 100644
--- a/test/language/literals/numeric/S7.8.3_A6.1_T1.js
+++ b/test/language/literals/numeric/S7.8.3_A6.1_T1.js
@@ -5,7 +5,9 @@
 info: "HexIntegerLiteral :: 0(x/X) is incorrect"
 es5id: 7.8.3_A6.1_T1
 description: Checking if execution of "0x" passes
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/numeric/S7.8.3_A6.1_T2.js b/test/language/literals/numeric/S7.8.3_A6.1_T2.js
index ab511578fae1d1d98857e2734bf199889f4fc247..3bfd3a025594cefae04a083d88a526ed06a77c37 100644
--- a/test/language/literals/numeric/S7.8.3_A6.1_T2.js
+++ b/test/language/literals/numeric/S7.8.3_A6.1_T2.js
@@ -5,7 +5,9 @@
 info: "HexIntegerLiteral :: 0(x/X) is incorrect"
 es5id: 7.8.3_A6.1_T2
 description: Checking if execution of "0X" passes
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/numeric/S7.8.3_A6.2_T1.js b/test/language/literals/numeric/S7.8.3_A6.2_T1.js
index bb9870aa2ec3e8cba11a5c7a0392de28b6d65368..50436d13c96f0eb453ce2948d39efef0c62506aa 100644
--- a/test/language/literals/numeric/S7.8.3_A6.2_T1.js
+++ b/test/language/literals/numeric/S7.8.3_A6.2_T1.js
@@ -5,7 +5,9 @@
 info: 0xG is incorrect
 es5id: 7.8.3_A6.2_T1
 description: Checking if execution of "0xG" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/numeric/S7.8.3_A6.2_T2.js b/test/language/literals/numeric/S7.8.3_A6.2_T2.js
index db0ae747f4db89ce49b690526fca5f096aa5ec4b..1bebb39c94212431965300937b237f7d3137b82d 100644
--- a/test/language/literals/numeric/S7.8.3_A6.2_T2.js
+++ b/test/language/literals/numeric/S7.8.3_A6.2_T2.js
@@ -5,7 +5,9 @@
 info: 0xG is incorrect
 es5id: 7.8.3_A6.2_T2
 description: Checking if execution of "0xg" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/numeric/binary-invalid-digit.js b/test/language/literals/numeric/binary-invalid-digit.js
index 25bdccb9c0d6da80849798e8949c3d22ffebdf00..abf985d6ac351531ea1b2d73223f7d71882b357c 100644
--- a/test/language/literals/numeric/binary-invalid-digit.js
+++ b/test/language/literals/numeric/binary-invalid-digit.js
@@ -13,7 +13,9 @@ info: >
       BinaryDigits BinaryDigit
     BinaryDigit :: one of
       0 1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0b2;
diff --git a/test/language/literals/numeric/binary-invalid-leading.js b/test/language/literals/numeric/binary-invalid-leading.js
index 5da8ac7c1565e8c33aeb8146c043866634567475..8fe6d9168f2bee6e3e94f757c13a502b01074cbd 100644
--- a/test/language/literals/numeric/binary-invalid-leading.js
+++ b/test/language/literals/numeric/binary-invalid-leading.js
@@ -13,7 +13,9 @@ info: >
       BinaryDigits BinaryDigit
     BinaryDigit :: one of
       0 1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 00b0;
diff --git a/test/language/literals/numeric/binary-invalid-truncated.js b/test/language/literals/numeric/binary-invalid-truncated.js
index c8e4fbfcb95ec5c10b68fb36d2cc7344430f36a3..f00561453ec15f165b66201dfd1cfb599befa652 100644
--- a/test/language/literals/numeric/binary-invalid-truncated.js
+++ b/test/language/literals/numeric/binary-invalid-truncated.js
@@ -13,7 +13,9 @@ info: >
       BinaryDigits BinaryDigit
     BinaryDigit :: one of
       0 1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0b;
diff --git a/test/language/literals/numeric/binary-invalid-unicode.js b/test/language/literals/numeric/binary-invalid-unicode.js
index e43da930f8026a6b44d5f4827f25b9aef41135d1..eeaf5c8ec08da61ca81acb323c03962908e8cd67 100644
--- a/test/language/literals/numeric/binary-invalid-unicode.js
+++ b/test/language/literals/numeric/binary-invalid-unicode.js
@@ -13,7 +13,9 @@ info: >
       BinaryDigits BinaryDigit
     BinaryDigit :: one of
       0 1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0\u00620;
diff --git a/test/language/literals/numeric/legacy-octal-integer-strict.js b/test/language/literals/numeric/legacy-octal-integer-strict.js
index 9bbcf3b48ddb17fd40abd311dcbb31ee84764696..b463a751b575294ef223e9e6b6cf41b0e4b563b4 100644
--- a/test/language/literals/numeric/legacy-octal-integer-strict.js
+++ b/test/language/literals/numeric/legacy-octal-integer-strict.js
@@ -16,7 +16,9 @@ info: >
        0 OctalDigit
        LegacyOctalIntegerLiteral OctalDigit
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 00;
diff --git a/test/language/literals/numeric/non-octal-decimal-integer-strict.js b/test/language/literals/numeric/non-octal-decimal-integer-strict.js
index f20b77aa8e47e26806cde35072e61507a22cfdb3..d5ec7d00ead3adbb40f94223c7e419327aa21d71 100644
--- a/test/language/literals/numeric/non-octal-decimal-integer-strict.js
+++ b/test/language/literals/numeric/non-octal-decimal-integer-strict.js
@@ -22,7 +22,9 @@ info: >
      NonOctalDigit :: one of
        8 9
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 08;
diff --git a/test/language/literals/numeric/octal-invalid-digit.js b/test/language/literals/numeric/octal-invalid-digit.js
index 7823fe6b8c373971334b13dcb8343cc48d83d451..789365abdf0f777007cd1cbcc14c6d257f1d0540 100644
--- a/test/language/literals/numeric/octal-invalid-digit.js
+++ b/test/language/literals/numeric/octal-invalid-digit.js
@@ -13,7 +13,9 @@ info: >
       OctalDigits OctalDigit
     OctalDigit :: one of
       0 1 2 3 4 5 6 7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0o8;
diff --git a/test/language/literals/numeric/octal-invalid-leading.js b/test/language/literals/numeric/octal-invalid-leading.js
index 1319a384714539d92c7354b7b8470d15b43c2dbb..496856267a3db5f711c5b158662179c43f065e11 100644
--- a/test/language/literals/numeric/octal-invalid-leading.js
+++ b/test/language/literals/numeric/octal-invalid-leading.js
@@ -13,7 +13,9 @@ info: >
       OctalDigits OctalDigit
     OctalDigit :: one of
       0 1 2 3 4 5 6 7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 00o0;
diff --git a/test/language/literals/numeric/octal-invalid-truncated.js b/test/language/literals/numeric/octal-invalid-truncated.js
index f17c4860c111cbe827605651839b269c2d07cf9c..6d36ccc94c2d97aaaab569924e135c1177993c9a 100644
--- a/test/language/literals/numeric/octal-invalid-truncated.js
+++ b/test/language/literals/numeric/octal-invalid-truncated.js
@@ -13,7 +13,9 @@ info: >
       OctalDigits OctalDigit
     OctalDigit :: one of
       0 1 2 3 4 5 6 7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0o;
diff --git a/test/language/literals/numeric/octal-invalid-unicode.js b/test/language/literals/numeric/octal-invalid-unicode.js
index 9be0626abae0cdcf81751b8add7ab00b1c80704d..938d03c4f4d9f65f38ae9f02a7ec87148e63d069 100644
--- a/test/language/literals/numeric/octal-invalid-unicode.js
+++ b/test/language/literals/numeric/octal-invalid-unicode.js
@@ -13,7 +13,9 @@ info: >
       OctalDigits OctalDigit
     OctalDigit :: one of
       0 1 2 3 4 5 6 7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 0\u006f0;
diff --git a/test/language/literals/regexp/7.8.5-1gs.js b/test/language/literals/regexp/7.8.5-1gs.js
index a525c7f90ffa96ce6cddf7804f29750cc1e88607..cfb8b07960812bee476156f1d3df96d1fd1d4834 100644
--- a/test/language/literals/regexp/7.8.5-1gs.js
+++ b/test/language/literals/regexp/7.8.5-1gs.js
@@ -4,7 +4,9 @@
 /*---
 es5id: 7.8.5-1gs
 description: Empty literal RegExp should result in a SyntaxError
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw NotEarlyError;
diff --git a/test/language/literals/regexp/S7.8.5_A1.2_T1.js b/test/language/literals/regexp/S7.8.5_A1.2_T1.js
index 0d75cd4821b80491da895e34466f9675e13ed597..d4cec1ce2270357ccac3fa90395b220e26f66e9a 100644
--- a/test/language/literals/regexp/S7.8.5_A1.2_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A1.2_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T1
 description: "*"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.2_T2.js b/test/language/literals/regexp/S7.8.5_A1.2_T2.js
index fec6db97cae158117d225400ba471e680393d7b7..854a86eff3ad768eb7202ac24854caa036541a96 100644
--- a/test/language/literals/regexp/S7.8.5_A1.2_T2.js
+++ b/test/language/literals/regexp/S7.8.5_A1.2_T2.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T2
 description: \
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.2_T3.js b/test/language/literals/regexp/S7.8.5_A1.2_T3.js
index ea5a41b552d3342fb19064293ce8db0d74d18c6c..40a3940ef35ddec020761d3fa538ac2388b5bcd0 100644
--- a/test/language/literals/regexp/S7.8.5_A1.2_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A1.2_T3.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T3
 description: /
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.2_T4.js b/test/language/literals/regexp/S7.8.5_A1.2_T4.js
index 599c6fdc9ff645f0c52cdf6b915167de1a23bfe5..5c1818dccc36a0073ae6b9c022beb74213e36223 100644
--- a/test/language/literals/regexp/S7.8.5_A1.2_T4.js
+++ b/test/language/literals/regexp/S7.8.5_A1.2_T4.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T4
 description: "[empty]"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.3_T1.js b/test/language/literals/regexp/S7.8.5_A1.3_T1.js
index 7b49ef35a73b31c514b96ace72c20f3225588685..31e03c0e0f67cf5de571a73c51b05afd57ca1c0f 100644
--- a/test/language/literals/regexp/S7.8.5_A1.3_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A1.3_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A1.3_T1
 description: Line Feed, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.3_T3.js b/test/language/literals/regexp/S7.8.5_A1.3_T3.js
index e7c78e764d75835bd14eb6584c12780c6e7abe9a..c2ef82357ac8420b853ea5eff928738f63ea437f 100644
--- a/test/language/literals/regexp/S7.8.5_A1.3_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A1.3_T3.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionFirstChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A1.3_T3
 description: Carriage Return, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.5_T1.js b/test/language/literals/regexp/S7.8.5_A1.5_T1.js
index b5f81b07369f2c4d9f8316aa8682106e1245c9ed..2e62d51b3de913b589a2215caa569bd55ef6f0a4 100644
--- a/test/language/literals/regexp/S7.8.5_A1.5_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A1.5_T1.js
@@ -7,7 +7,9 @@ info: >
     incorrect
 es5id: 7.8.5_A1.5_T1
 description: Line Feed, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A1.5_T3.js b/test/language/literals/regexp/S7.8.5_A1.5_T3.js
index 03a4bf320d368be0b481caf7eb74fa565beb800c..92b1e2d0372ce868ce16ba5662aac3ef3f6b40bb 100644
--- a/test/language/literals/regexp/S7.8.5_A1.5_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A1.5_T3.js
@@ -7,7 +7,9 @@ info: >
     incorrect
 es5id: 7.8.5_A1.5_T3
 description: Carriage Return, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.2_T1.js b/test/language/literals/regexp/S7.8.5_A2.2_T1.js
index 602269b52edcaf302794cc787fc24da1f3a72cf9..b38c10ccc8a73a51a64ed2150d3cec317f728058 100644
--- a/test/language/literals/regexp/S7.8.5_A2.2_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A2.2_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: \\ or / is incorrect"
 es5id: 7.8.5_A2.2_T1
 description: \
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.2_T2.js b/test/language/literals/regexp/S7.8.5_A2.2_T2.js
index e9d02eedc1173316ea61cb6feb95d47bbd4b5ace..a231489510f25602d7210f893528ca0f54f1505f 100644
--- a/test/language/literals/regexp/S7.8.5_A2.2_T2.js
+++ b/test/language/literals/regexp/S7.8.5_A2.2_T2.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: \\ or / is incorrect"
 es5id: 7.8.5_A2.2_T2
 description: /
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.3_T1.js b/test/language/literals/regexp/S7.8.5_A2.3_T1.js
index 667e771cecb00cf865f26bb0de3614a8d7e50ea6..771cf4fe5759c3ad5503136440868a2144634f12 100644
--- a/test/language/literals/regexp/S7.8.5_A2.3_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A2.3_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A2.3_T1
 description: Line Feed, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.3_T3.js b/test/language/literals/regexp/S7.8.5_A2.3_T3.js
index 2cc2cda825ad1ceb0a4d22952a991e4c140826f0..aef8993cb9cb5f73e056753e71975f6bf4ff4a9b 100644
--- a/test/language/literals/regexp/S7.8.5_A2.3_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A2.3_T3.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A2.3_T3
 description: Carriage Return, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.5_T1.js b/test/language/literals/regexp/S7.8.5_A2.5_T1.js
index 44bd5da49923bdea9d2ab44ba8e3470bd15ebf84..50b89b9c7f9a3b5e719d94c0eb2dc8105c2e1cf2 100644
--- a/test/language/literals/regexp/S7.8.5_A2.5_T1.js
+++ b/test/language/literals/regexp/S7.8.5_A2.5_T1.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: BackslashSequence :: \\LineTerminator is incorrect"
 es5id: 7.8.5_A2.5_T1
 description: Line Feed, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/S7.8.5_A2.5_T3.js b/test/language/literals/regexp/S7.8.5_A2.5_T3.js
index 64afbad549729cf5748fd18771c0cd1a627bf545..c8bc4bfa15b2fedf637e4b7f70d39cf3222587f0 100644
--- a/test/language/literals/regexp/S7.8.5_A2.5_T3.js
+++ b/test/language/literals/regexp/S7.8.5_A2.5_T3.js
@@ -5,7 +5,9 @@
 info: "RegularExpressionChar :: BackslashSequence :: \\LineTerminator is incorrect"
 es5id: 7.8.5_A2.5_T3
 description: Carriage Return, without eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/regexp/early-err-bad-flag.js b/test/language/literals/regexp/early-err-bad-flag.js
index 72842c41a25f8b1a8906e065c906c1e8edbfd4ad..6e2fb67c5c16255c04458ea2ee425d2bf5507904 100644
--- a/test/language/literals/regexp/early-err-bad-flag.js
+++ b/test/language/literals/regexp/early-err-bad-flag.js
@@ -7,7 +7,9 @@ info: >
     It is a Syntax Error if FlagText of RegularExpressionLiteral contains any
     code points other than "g", "i", "m", "u", or "y", or if it contains the
     same code point more than once.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw new Test262Error();
diff --git a/test/language/literals/regexp/early-err-dup-flag.js b/test/language/literals/regexp/early-err-dup-flag.js
index 266fff009dca96e1f3c212ee0930b421b9518f7d..a58c3488742b043fb9037f40e90f011bf5c2bd22 100644
--- a/test/language/literals/regexp/early-err-dup-flag.js
+++ b/test/language/literals/regexp/early-err-dup-flag.js
@@ -7,7 +7,9 @@ info: >
     It is a Syntax Error if FlagText of RegularExpressionLiteral contains any
     code points other than "g", "i", "m", "u", or "y", or if it contains the
     same code point more than once.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw new Test262Error();
diff --git a/test/language/literals/regexp/early-err-flags-unicode-escape.js b/test/language/literals/regexp/early-err-flags-unicode-escape.js
index 16a5ec4e65bc84d1ece131d0c55e70d7b234a3db..daccd6df629ee2850d05a88daa57b65667b9605e 100644
--- a/test/language/literals/regexp/early-err-flags-unicode-escape.js
+++ b/test/language/literals/regexp/early-err-flags-unicode-escape.js
@@ -7,7 +7,9 @@ description: >
   RegularExpressionFlags :: RegularExpressionFlags IdentifierPart
 
   - It is a Syntax Error if IdentifierPart contains a Unicode escape sequence.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /./\u0067;
diff --git a/test/language/literals/regexp/early-err-pattern.js b/test/language/literals/regexp/early-err-pattern.js
index bdea79346afefd4da129d5c9af1fe6de1b9ab277..61b63a1f203a42905423f9e51684375eb64ef052 100644
--- a/test/language/literals/regexp/early-err-pattern.js
+++ b/test/language/literals/regexp/early-err-pattern.js
@@ -7,7 +7,9 @@ info: >
     It is a Syntax Error if BodyText of RegularExpressionLiteral cannot be
     recognized using the goal symbol Pattern of the ECMAScript RegExp grammar
     specified in 21.2.1.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 throw new Test262Error();
diff --git a/test/language/literals/regexp/invalid-braced-quantifier-exact.js b/test/language/literals/regexp/invalid-braced-quantifier-exact.js
index 31ade39d4e05308ae3c2ee1b16de3b50a284ce77..1f837e9c3b99cb87484bc16274e9aa4bf123fa3d 100644
--- a/test/language/literals/regexp/invalid-braced-quantifier-exact.js
+++ b/test/language/literals/regexp/invalid-braced-quantifier-exact.js
@@ -15,7 +15,9 @@ info: |
     ExtendedPatternCharacter, it also introduces the InvalidBracedQuantifier
     pattern with a higher precedence. This makes the SyntaxError for such
     patterns consistent between Annex-B and non-Annex-B environments.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /{2}/;
diff --git a/test/language/literals/regexp/invalid-braced-quantifier-lower.js b/test/language/literals/regexp/invalid-braced-quantifier-lower.js
index 48587fb6124bcb95d3e80d41e4f9a98a8df361a8..b18f42bc365afa9c82ab35897d51e49a4ee8ae07 100644
--- a/test/language/literals/regexp/invalid-braced-quantifier-lower.js
+++ b/test/language/literals/regexp/invalid-braced-quantifier-lower.js
@@ -15,7 +15,9 @@ info: |
     ExtendedPatternCharacter, it also introduces the InvalidBracedQuantifier
     pattern with a higher precedence. This makes the SyntaxError for such
     patterns consistent between Annex-B and non-Annex-B environments.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /{2,}/;
diff --git a/test/language/literals/regexp/invalid-braced-quantifier-range.js b/test/language/literals/regexp/invalid-braced-quantifier-range.js
index 56cb830f4572af00f2fa3fc38bda7b8b5c655139..9a95777bc30494e7cc5e075c7016daa0eede5dc2 100644
--- a/test/language/literals/regexp/invalid-braced-quantifier-range.js
+++ b/test/language/literals/regexp/invalid-braced-quantifier-range.js
@@ -15,7 +15,9 @@ info: |
     ExtendedPatternCharacter, it also introduces the InvalidBracedQuantifier
     pattern with a higher precedence. This makes the SyntaxError for such
     patterns consistent between Annex-B and non-Annex-B environments.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /{2,3}/;
diff --git a/test/language/literals/regexp/u-dec-esc.js b/test/language/literals/regexp/u-dec-esc.js
index a2f92f579f9c1322d2e74e0c5ea8bccb868b514c..b238d86bc6ed0da96f622b8834193a0cd64ad5a5 100644
--- a/test/language/literals/regexp/u-dec-esc.js
+++ b/test/language/literals/regexp/u-dec-esc.js
@@ -7,7 +7,9 @@ info: >
     DecimalEscape is not allowed when the `u` flag is set (regardless of Annex
     B extensions--see ES6 section B.1.4).
 es6id: 21.2.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\1/u;
diff --git a/test/language/literals/regexp/u-invalid-class-escape.js b/test/language/literals/regexp/u-invalid-class-escape.js
index 702f9ab7b5eb0a9b7f276343c30d6a08f69e34cd..1c17f05e6acf2e1cc389cdcf3561b301c30c4f6c 100644
--- a/test/language/literals/regexp/u-invalid-class-escape.js
+++ b/test/language/literals/regexp/u-invalid-class-escape.js
@@ -13,7 +13,9 @@ info: |
         CharacterEscape[?U]
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\c0/u;
diff --git a/test/language/literals/regexp/u-invalid-extended-pattern-char.js b/test/language/literals/regexp/u-invalid-extended-pattern-char.js
index a4a5a5df3f1f6415be4a0e164555d5c0fdcf4ea9..a6d91c9d43956272ce4ff17a0f39a5faacb72ef4 100644
--- a/test/language/literals/regexp/u-invalid-extended-pattern-char.js
+++ b/test/language/literals/regexp/u-invalid-extended-pattern-char.js
@@ -10,7 +10,9 @@ info: |
 
     Term[U] ::
          [~U] ExtendedAtom
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /{/u;
diff --git a/test/language/literals/regexp/u-invalid-identity-escape.js b/test/language/literals/regexp/u-invalid-identity-escape.js
index 4f16bf0f40d8a60d85a50e42836ff0154a353f47..b36d6f8a8878efbcb2a42275c6966307fa3419e2 100644
--- a/test/language/literals/regexp/u-invalid-identity-escape.js
+++ b/test/language/literals/regexp/u-invalid-identity-escape.js
@@ -12,7 +12,9 @@ info: |
 
     The `u` flag precludes the use of characters in  UnicodeIDContinue
     irrespective of the presence of Annex B extensions.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\M/u;
diff --git a/test/language/literals/regexp/u-invalid-legacy-octal-escape.js b/test/language/literals/regexp/u-invalid-legacy-octal-escape.js
index 7c752422caee1dd7fe8e202b902c693af99a6eca..204d341353122a7fa476d3d1eb8281ea510d1f21 100644
--- a/test/language/literals/regexp/u-invalid-legacy-octal-escape.js
+++ b/test/language/literals/regexp/u-invalid-legacy-octal-escape.js
@@ -15,7 +15,9 @@ info: |
         HexEscapeSequence
         RegExpUnicodeEscapeSequence[?U]
         IdentityEscape[?U]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\1/u;
diff --git a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js
index 5b8e427b501e512637f23656410cf8fb7fa0ad14..a88fe8a8c917dd980e3eab532fc9f764b3f1f8cb 100644
--- a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js
+++ b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js
@@ -22,7 +22,9 @@ info: |
        exactly one character, throw a SyntaxError exception.
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /[\d-a]/u;
diff --git a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js
index cd41a927ebceee108a9e5e6b4007d0344169c282..48e7172a4b8ffe33fa22f4bb55baf195770f53d5 100644
--- a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js
+++ b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js
@@ -22,7 +22,9 @@ info: |
        exactly one character, throw a SyntaxError exception.
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /[\s-\d]/u;
diff --git a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js
index 54b8ff674e882a709f4733dc76998d4f031ed6ad..cb41b9490ff8d7c53c8580c1cc34046117ee760b 100644
--- a/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js
+++ b/test/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js
@@ -22,7 +22,9 @@ info: |
        exactly one character, throw a SyntaxError exception.
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /[%-\d]/u;
diff --git a/test/language/literals/regexp/u-invalid-non-empty-class-ranges.js b/test/language/literals/regexp/u-invalid-non-empty-class-ranges.js
index 2187096539e7f162347e2fca4154bf2dc3e541dc..49b6580a51b765a5f311db4d1e1432bd97b5b3d3 100644
--- a/test/language/literals/regexp/u-invalid-non-empty-class-ranges.js
+++ b/test/language/literals/regexp/u-invalid-non-empty-class-ranges.js
@@ -21,7 +21,9 @@ info: |
        exactly one character, throw a SyntaxError exception.
 
     The `u` flag precludes the Annex B extension that enables this pattern.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /[--\d]/u;
diff --git a/test/language/literals/regexp/u-invalid-oob-decimal-escape.js b/test/language/literals/regexp/u-invalid-oob-decimal-escape.js
index bbebbe1070710057edc0f3627c9c34534b1024d9..47c63ab9522a635424b9682fd0bf9969bc96ce2d 100644
--- a/test/language/literals/regexp/u-invalid-oob-decimal-escape.js
+++ b/test/language/literals/regexp/u-invalid-oob-decimal-escape.js
@@ -10,7 +10,9 @@ info: |
 
     When the "unicode" flag is set, this algorithm is honored irrespective of
     the presence of Annex B extensions.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\8/u;
diff --git a/test/language/literals/regexp/u-invalid-quantifiable-assertion.js b/test/language/literals/regexp/u-invalid-quantifiable-assertion.js
index a26d51282d7d6c055a5915dc44eb98c96ace90a0..087124e62da88e3133357707a2be74e9057fc040 100644
--- a/test/language/literals/regexp/u-invalid-quantifiable-assertion.js
+++ b/test/language/literals/regexp/u-invalid-quantifiable-assertion.js
@@ -10,7 +10,9 @@ info: |
 
     Term[U] ::
          [~U] QuantifiableAssertion Quantifier
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /.(?=.)?/u;
diff --git a/test/language/literals/regexp/u-unicode-esc-bounds.js b/test/language/literals/regexp/u-unicode-esc-bounds.js
index 58badcde7ff445fd31fcc4a52525e05cb98000e6..b3140f808fa30ec4757ebcc80c6bb0fde6d368e5 100644
--- a/test/language/literals/regexp/u-unicode-esc-bounds.js
+++ b/test/language/literals/regexp/u-unicode-esc-bounds.js
@@ -10,7 +10,9 @@ info: >
     RegExpUnicodeEscapeSequence :: u{ HexDigits }
 
         - It is a Syntax Error if the MV of HexDigits > 1114111.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\u{110000}/u;
diff --git a/test/language/literals/regexp/u-unicode-esc-non-hex.js b/test/language/literals/regexp/u-unicode-esc-non-hex.js
index 21c23e91d28136dee6fb216c46e402e92c473905..c8265206bee7d6a82db15c385646431241c6be09 100644
--- a/test/language/literals/regexp/u-unicode-esc-non-hex.js
+++ b/test/language/literals/regexp/u-unicode-esc-non-hex.js
@@ -5,7 +5,9 @@
 description: >
     Non-hexadecimal value within the delimiters of a UnicodeEscapeSequence
 es6id: 21.2.1
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 /\u{1,}/u;
diff --git a/test/language/literals/string/7.8.4-1gs.js b/test/language/literals/string/7.8.4-1gs.js
index d78956031eec189477703e172dfde56e38d8c4b2..929907e3274f1771f95c51e2a239cd1b7c74c8b7 100644
--- a/test/language/literals/string/7.8.4-1gs.js
+++ b/test/language/literals/string/7.8.4-1gs.js
@@ -6,7 +6,9 @@ es5id: 7.8.4-1gs
 description: >
     Strict Mode - OctalEscapeSequence(\0110) is forbidden in strict
     mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/string/S7.8.4_A1.1_T1.js b/test/language/literals/string/S7.8.4_A1.1_T1.js
index 25e7947d1b39e6fcc40629c0d0262730e47956de..b1da233d7fb2c4bec692aa1523323f45af768e38 100644
--- a/test/language/literals/string/S7.8.4_A1.1_T1.js
+++ b/test/language/literals/string/S7.8.4_A1.1_T1.js
@@ -7,7 +7,9 @@ es5id: 7.8.4_A1.1_T1
 description: >
     DoubleStringCharacter :: SourceCharacter but not double-quote " or
     LineTerminator
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A1.1_T2.js b/test/language/literals/string/S7.8.4_A1.1_T2.js
index bd503769e87f72ba974cd4eebfd2778694a0c0bd..e3516a13f7db3f1f72c7c0bd2b60cc2536f156b7 100644
--- a/test/language/literals/string/S7.8.4_A1.1_T2.js
+++ b/test/language/literals/string/S7.8.4_A1.1_T2.js
@@ -7,7 +7,9 @@ es5id: 7.8.4_A1.1_T2
 description: >
     DoubleStringCharacter :: SourceCharacter but not double-quote " or
     LineTerminator
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A1.2_T1.js b/test/language/literals/string/S7.8.4_A1.2_T1.js
index 890a6b58e2f7750546e09f2c7cb91016d5cb8ad7..1bc242b5679fea6ef135c72adaecb1c76e6eaa74 100644
--- a/test/language/literals/string/S7.8.4_A1.2_T1.js
+++ b/test/language/literals/string/S7.8.4_A1.2_T1.js
@@ -7,7 +7,9 @@ es5id: 7.8.4_A1.2_T1
 description: >
     SingleStringCharacter :: SourceCharacter but not single-quote ' or
     LineTerminator
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A1.2_T2.js b/test/language/literals/string/S7.8.4_A1.2_T2.js
index cd300d10f8f582074c18f9ccc11acc1c559eaebb..5174b7bd7b4fecc7cab4560d5ebfc93c119d8f3e 100644
--- a/test/language/literals/string/S7.8.4_A1.2_T2.js
+++ b/test/language/literals/string/S7.8.4_A1.2_T2.js
@@ -7,7 +7,9 @@ es5id: 7.8.4_A1.2_T2
 description: >
     SingleStringCharacter :: SourceCharacter but not single-quote ' or
     LineTerminator
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A3.1_T1.js b/test/language/literals/string/S7.8.4_A3.1_T1.js
index d5755153008a31af332d9ed37cfbfaccc691b93f..19b3a6fd6dab059a6b19559911f0463981e01631 100644
--- a/test/language/literals/string/S7.8.4_A3.1_T1.js
+++ b/test/language/literals/string/S7.8.4_A3.1_T1.js
@@ -5,7 +5,9 @@
 info: "StringLiteral :: \"\\\" or '\\' is not correct"
 es5id: 7.8.4_A3.1_T1
 description: Checking if execution of "\" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A3.1_T2.js b/test/language/literals/string/S7.8.4_A3.1_T2.js
index eadb8d72b9d27cb4f146279567005e34fbebf11d..afdbf643c45e9d515593853611a325a076658cb5 100644
--- a/test/language/literals/string/S7.8.4_A3.1_T2.js
+++ b/test/language/literals/string/S7.8.4_A3.1_T2.js
@@ -5,7 +5,9 @@
 info: "StringLiteral :: \"\\\" or '\\' is not correct"
 es5id: 7.8.4_A3.1_T2
 description: Checking if execution of "'\'" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A3.2_T1.js b/test/language/literals/string/S7.8.4_A3.2_T1.js
index 4890f99acc23f58cd6d12b1e986d15244f14b5bb..45e6bd4ef91707292024e6c31412646528bc5f28 100644
--- a/test/language/literals/string/S7.8.4_A3.2_T1.js
+++ b/test/language/literals/string/S7.8.4_A3.2_T1.js
@@ -5,7 +5,9 @@
 info: "StringLiteral :: \"\\\\\\\" or '\\\\\\' is not correct"
 es5id: 7.8.4_A3.2_T1
 description: Checking if execution of "\\\" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A3.2_T2.js b/test/language/literals/string/S7.8.4_A3.2_T2.js
index 2f76790dcd8f4ab1a9bbcc13e27b9cb4962a95da..be3ab6f57837919faa01b1b7d69024dcd6875ea8 100644
--- a/test/language/literals/string/S7.8.4_A3.2_T2.js
+++ b/test/language/literals/string/S7.8.4_A3.2_T2.js
@@ -5,7 +5,9 @@
 info: "StringLiteral :: \"\\\\\\\" or '\\\\\\' is not correct"
 es5id: 7.8.4_A3.2_T2
 description: Checking if execution of '\\\' fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A4.3_T1.js b/test/language/literals/string/S7.8.4_A4.3_T1.js
index d8ccc3b0da3bade714d95d956173e46502ae01ed..cb1337c04483730de291db5d72798bc4080cd31b 100644
--- a/test/language/literals/string/S7.8.4_A4.3_T1.js
+++ b/test/language/literals/string/S7.8.4_A4.3_T1.js
@@ -5,7 +5,9 @@
 info: NonEscapeSequence is not EscapeCharacter
 es5id: 7.8.4_A4.3_T1
 description: "EscapeCharacter :: DecimalDigits :: 1"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/string/S7.8.4_A4.3_T2.js b/test/language/literals/string/S7.8.4_A4.3_T2.js
index daa88f3e7ab5ee533dc1d8a77ba04ea8d738ffc0..70cae8287948fcd3737916229f73030bd17b363a 100644
--- a/test/language/literals/string/S7.8.4_A4.3_T2.js
+++ b/test/language/literals/string/S7.8.4_A4.3_T2.js
@@ -5,7 +5,9 @@
 info: NonEscapeSequence is not EscapeCharacter
 es5id: 7.8.4_A4.3_T2
 description: "EscapeCharacter :: DecimalDigits :: 7"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/literals/string/S7.8.4_A7.1_T4.js b/test/language/literals/string/S7.8.4_A7.1_T4.js
index dc6d28dd515a68a5d2d3e2d32767871ab8330f20..390128b43f3a3a1e0c6b1be750b146392d84dabc 100644
--- a/test/language/literals/string/S7.8.4_A7.1_T4.js
+++ b/test/language/literals/string/S7.8.4_A7.1_T4.js
@@ -7,7 +7,9 @@ info: >
     HexDigit
 es5id: 7.8.4_A7.1_T4
 description: "UnicodeEscapeSequence :: u000G is incorrect"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#
diff --git a/test/language/literals/string/S7.8.4_A7.2_T1.js b/test/language/literals/string/S7.8.4_A7.2_T1.js
index 59ce6a0423c17f36e08d5df650f26ed1434b8993..255d3e83c64a44f981ac7a7b8db807bdf9c5710d 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T1.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T1.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T1
 description: ":: HexDigit :: 1"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T2.js b/test/language/literals/string/S7.8.4_A7.2_T2.js
index df4f0582d1531b4d7f2274041226d3800e219f1b..793819eedce560a9d59689c715948a7d071278c0 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T2.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T2.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T2
 description: ":: HexDigit :: A"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T3.js b/test/language/literals/string/S7.8.4_A7.2_T3.js
index a6ca9c6ec091d1ba65bb5633da3c709bd96618e6..2be1ce4ac6632529efcc07fe3ed1366991823a81 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T3.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T3.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T3
 description: ":: HexDigit :: 1"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T4.js b/test/language/literals/string/S7.8.4_A7.2_T4.js
index 6a02030dca5ea057a7e56c4eeefff972ead3fb8a..3711c0d098135e64ce6bcd900976a6c948996ad2 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T4.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T4.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T4
 description: ":: HexDigit :: A"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T5.js b/test/language/literals/string/S7.8.4_A7.2_T5.js
index 42d0aca8a5612754634f92899431a0b839f247b8..338425c10a87d704ceb1a03dbe35aac7d62cb7d4 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T5.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T5.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T5
 description: ":: HexDigit :: 1"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/S7.8.4_A7.2_T6.js b/test/language/literals/string/S7.8.4_A7.2_T6.js
index 462748fac7b9e24154775edc2bd593630cfa174b..3abb025a2aa2b2c3b3ea0cf9fe13e736803a8dda 100644
--- a/test/language/literals/string/S7.8.4_A7.2_T6.js
+++ b/test/language/literals/string/S7.8.4_A7.2_T6.js
@@ -5,7 +5,9 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T6
 description: ":: HexDigit :: A"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/language/literals/string/legacy-octal-escape-sequence-strict.js b/test/language/literals/string/legacy-octal-escape-sequence-strict.js
index 8486c0e817f344506ce9a8c3c7fddc9bbfb82bc0..c401353dc1462b6fa38f7fd44976ea430ecedf45 100644
--- a/test/language/literals/string/legacy-octal-escape-sequence-strict.js
+++ b/test/language/literals/string/legacy-octal-escape-sequence-strict.js
@@ -28,7 +28,9 @@ info: >
     This definition of EscapeSequence is not used in strict mode or when
     parsing TemplateCharacter.
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 '\1';
diff --git a/test/language/module-code/comment-multi-line-html-close.js b/test/language/module-code/comment-multi-line-html-close.js
index 22713d2a3278bb2221d6645bc2cbcd49405e00d6..6a4124d3e81ce580c7299ce9ec9a7925d4d14d01 100644
--- a/test/language/module-code/comment-multi-line-html-close.js
+++ b/test/language/module-code/comment-multi-line-html-close.js
@@ -6,7 +6,9 @@ description: >
     (MultiLineHTMLCloseComment)
 esid: sec-html-like-comments
 es6id: B1.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/comment-single-line-html-close.js b/test/language/module-code/comment-single-line-html-close.js
index 6e86c6a14862a9217ee9b4aac0539341bc3d9968..595b9d9c601e6df35be3014424f9e5ab9913fa2c 100644
--- a/test/language/module-code/comment-single-line-html-close.js
+++ b/test/language/module-code/comment-single-line-html-close.js
@@ -6,7 +6,9 @@ description: >
     (SingleLineHTMLCloseComment)
 esid: sec-html-like-comments
 es6id: B1.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/comment-single-line-html-open.js b/test/language/module-code/comment-single-line-html-open.js
index 17f8af2724b2e21d71a7e2db9030a7f28f2d3f6e..3218abfd5369f5cd8a59dbe7fb4ba061937e9351 100644
--- a/test/language/module-code/comment-single-line-html-open.js
+++ b/test/language/module-code/comment-single-line-html-open.js
@@ -6,7 +6,9 @@ description: >
     (SingleLineHTMLOpenComment)
 esid: sec-html-like-comments
 es6id: B1.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-dup-export-decl.js b/test/language/module-code/early-dup-export-decl.js
index 74ff07aff3f33405e617aee13dd21901dd3070c5..c6364991a3972f94c61517fa069ab77ea813e559 100644
--- a/test/language/module-code/early-dup-export-decl.js
+++ b/test/language/module-code/early-dup-export-decl.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export function f() {}
diff --git a/test/language/module-code/early-dup-export-dflt-id.js b/test/language/module-code/early-dup-export-dflt-id.js
index a82ae96fe32e65d3e65e96ce6d68fdd1d270c4c2..930d37b7301d91746e430e5d9eb1bb2653a559bd 100644
--- a/test/language/module-code/early-dup-export-dflt-id.js
+++ b/test/language/module-code/early-dup-export-dflt-id.js
@@ -7,7 +7,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x, y;
diff --git a/test/language/module-code/early-dup-export-dflt.js b/test/language/module-code/early-dup-export-dflt.js
index 0ddb08bb35a45c697c01cad94f69490b35581000..0bc2009f63f7709d6c4a1aa8f84edc4de4b11ee6 100644
--- a/test/language/module-code/early-dup-export-dflt.js
+++ b/test/language/module-code/early-dup-export-dflt.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export default var x = null;
diff --git a/test/language/module-code/early-dup-export-id-as.js b/test/language/module-code/early-dup-export-id-as.js
index 11d1e3e69b04f14216b33d6477ce183ab4f0f1a6..03a27f34febbbf25d6e3a52d79346fd02caf385b 100644
--- a/test/language/module-code/early-dup-export-id-as.js
+++ b/test/language/module-code/early-dup-export-id-as.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x, y;
diff --git a/test/language/module-code/early-dup-export-id.js b/test/language/module-code/early-dup-export-id.js
index 249553bb5fef1a08ed5750c6002022f62fbdd96f..9c155cccf49a890688b3cec9830fe2d122c2ca33 100644
--- a/test/language/module-code/early-dup-export-id.js
+++ b/test/language/module-code/early-dup-export-id.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if the ExportedNames of ModuleItemList contains any
     duplicate entries.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x;
diff --git a/test/language/module-code/early-dup-lables.js b/test/language/module-code/early-dup-lables.js
index 18e3a7b09fb2b635b6e8fc870931d5fc3219bc73..bb15af879a51626fc210f11566f69be5782354f6 100644
--- a/test/language/module-code/early-dup-lables.js
+++ b/test/language/module-code/early-dup-lables.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if ContainsDuplicateLabels of ModuleItemList with
     argument « » is true.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: {
diff --git a/test/language/module-code/early-dup-lex.js b/test/language/module-code/early-dup-lex.js
index fce2d71b9f6a7fb4a1dc2826c6560c8e728a8969..369ed1ec840a7b42d0bfeded0bfc525a5807d3b9 100644
--- a/test/language/module-code/early-dup-lex.js
+++ b/test/language/module-code/early-dup-lex.js
@@ -7,7 +7,9 @@ description: >
     contains any duplicate entries.
 flags: [module]
 features: [let, const]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 let x;
diff --git a/test/language/module-code/early-export-global.js b/test/language/module-code/early-export-global.js
index 2e02038bb2e3dd61d1fae571d3e8283d7d9b7640..3659544fd667b380cfcb6b682e941c7955e10242 100644
--- a/test/language/module-code/early-export-global.js
+++ b/test/language/module-code/early-export-global.js
@@ -9,7 +9,9 @@ info: >
     ModuleItemList does not also occur in either the VarDeclaredNames of
     ModuleItemList, or the LexicallyDeclaredNames of ModuleItemList.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export { Number };
diff --git a/test/language/module-code/early-export-unresolvable.js b/test/language/module-code/early-export-unresolvable.js
index 049dce70aaffb53aa06f3bd4a3d5ab75617ca5f1..b0f6a455bb28c91705cd36286ec28d2c7085ad52 100644
--- a/test/language/module-code/early-export-unresolvable.js
+++ b/test/language/module-code/early-export-unresolvable.js
@@ -7,7 +7,9 @@ description: >
     ModuleItemList does not also occur in either the VarDeclaredNames of
     ModuleItemList, or the LexicallyDeclaredNames of ModuleItemList.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export { unresolvable };
diff --git a/test/language/module-code/early-import-arguments.js b/test/language/module-code/early-import-arguments.js
index 0885a7ee663d58920a83374e61edb3fe405a31aa..fec3a8d92d044fea73acc58cb599e252d2dbd94d 100644
--- a/test/language/module-code/early-import-arguments.js
+++ b/test/language/module-code/early-import-arguments.js
@@ -18,7 +18,9 @@ info: |
     - It is a Syntax Error if the code matched by this production is contained
       in strict mode code and the StringValue of Identifier is "arguments" or
       "eval".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-import-as-arguments.js b/test/language/module-code/early-import-as-arguments.js
index f5250a38ca31df5f963d2494b3ae8df93c89bfd3..cec189e7079de41955d0319aed25f5757250dd0e 100644
--- a/test/language/module-code/early-import-as-arguments.js
+++ b/test/language/module-code/early-import-as-arguments.js
@@ -18,7 +18,9 @@ info: |
     - It is a Syntax Error if the code matched by this production is contained
       in strict mode code and the StringValue of Identifier is "arguments" or
       "eval".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-import-as-eval.js b/test/language/module-code/early-import-as-eval.js
index 2b732cebec8c8d22e2b22dc9c3acd234fc34a831..ce4c80885f88dc4a726d4ff90924554047e9f270 100644
--- a/test/language/module-code/early-import-as-eval.js
+++ b/test/language/module-code/early-import-as-eval.js
@@ -18,7 +18,9 @@ info: |
     - It is a Syntax Error if the code matched by this production is contained
       in strict mode code and the StringValue of Identifier is "arguments" or
       "eval".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-import-eval.js b/test/language/module-code/early-import-eval.js
index c8ba3d20f7c933023e229f43bb9e4d02c775f9d2..7e2bc97888c4775bd217a91ab37cb9affe7a465e 100644
--- a/test/language/module-code/early-import-eval.js
+++ b/test/language/module-code/early-import-eval.js
@@ -18,7 +18,9 @@ info: |
     - It is a Syntax Error if the code matched by this production is contained
       in strict mode code and the StringValue of Identifier is "arguments" or
       "eval".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/early-lex-and-var.js b/test/language/module-code/early-lex-and-var.js
index b5b9cae067df07c0c32ef666b51fc1274d874a7a..9d2f8aa3c92adaad362eba14f2827b1074468ad1 100644
--- a/test/language/module-code/early-lex-and-var.js
+++ b/test/language/module-code/early-lex-and-var.js
@@ -7,7 +7,9 @@ description: >
     ModuleItemList also occurs in the VarDeclaredNames of ModuleItemList.
 flags: [module]
 features: [let]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 let x;
diff --git a/test/language/module-code/early-new-target.js b/test/language/module-code/early-new-target.js
index 777deec067da9892659554b01aea3c7a6cad8483..2b4cf7e853e614976ea9fb8113f5b7b9dcb6e067 100644
--- a/test/language/module-code/early-new-target.js
+++ b/test/language/module-code/early-new-target.js
@@ -5,7 +5,9 @@ es6id: 15.2.1.1
 description: >
     It is a Syntax Error if ModuleItemList Contains NewTarget
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 new.target;
diff --git a/test/language/module-code/early-strict-mode.js b/test/language/module-code/early-strict-mode.js
index baa5324782116d8088488f4021b85e6536f0b07b..383e32af7e0f41d0e4416cf40382650c7071135b 100644
--- a/test/language/module-code/early-strict-mode.js
+++ b/test/language/module-code/early-strict-mode.js
@@ -5,7 +5,9 @@ description: Module code is always strict mode code.
 es6id: 10.2.1
 esid: sec-strict-mode-code
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 $ERROR('This statement should not be executed.');
diff --git a/test/language/module-code/early-super.js b/test/language/module-code/early-super.js
index b4acf2e3f6d0e4461033ccd8647d7e1e9d851e67..868708b109c21b122119df476609e15a236813a3 100644
--- a/test/language/module-code/early-super.js
+++ b/test/language/module-code/early-super.js
@@ -5,7 +5,9 @@ es6id: 15.2.1.1
 description: >
     It is a Syntax Error if ModuleItemList Contains super.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 super;
diff --git a/test/language/module-code/early-undef-break.js b/test/language/module-code/early-undef-break.js
index 4b99d2fc7943ecf6d4be99d628a55f6d719404ba..7616744d0b949faabf76752f17554310a511b0de 100644
--- a/test/language/module-code/early-undef-break.js
+++ b/test/language/module-code/early-undef-break.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if ContainsUndefinedBreakTarget of ModuleItemList with
     argument « » is true.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) {
diff --git a/test/language/module-code/early-undef-continue.js b/test/language/module-code/early-undef-continue.js
index cc9f5070be8079f1174f61c3081c016f8cf1b528..f973357bdf8361b05f8775fc9d4b4bc7a642ac27 100644
--- a/test/language/module-code/early-undef-continue.js
+++ b/test/language/module-code/early-undef-continue.js
@@ -6,7 +6,9 @@ description: >
     It is a Syntax Error if ContainsUndefinedContinueTarget of ModuleItemList
     with arguments « » and « » is true.
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) {
diff --git a/test/language/module-code/instn-iee-err-ambiguous-as.js b/test/language/module-code/instn-iee-err-ambiguous-as.js
index 944e948990525c212a97652d5838102b04f640e2..2cb1f99c5206055850aac430fdac766e03d5a07e 100644
--- a/test/language/module-code/instn-iee-err-ambiguous-as.js
+++ b/test/language/module-code/instn-iee-err-ambiguous-as.js
@@ -30,7 +30,9 @@ info: |
                   not the same Module Record or
                   SameValue(resolution.[[BindingName]],
                   starResolution.[[BindingName]]) is false, return "ambiguous".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-ambiguous.js b/test/language/module-code/instn-iee-err-ambiguous.js
index e3f1275e19f4837f1d99a91a9e8ee41fdedf72c1..006b8c1cd081e74627f0bcb9553f04243b37fc5c 100644
--- a/test/language/module-code/instn-iee-err-ambiguous.js
+++ b/test/language/module-code/instn-iee-err-ambiguous.js
@@ -30,7 +30,9 @@ info: |
                   not the same Module Record or
                   SameValue(resolution.[[BindingName]],
                   starResolution.[[BindingName]]) is false, return "ambiguous".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-circular-as.js b/test/language/module-code/instn-iee-err-circular-as.js
index da272aa2b805ee5bfc8c91af7a5822f32b205dc6..be5e0967c508a92fda0189ea0df8aab534288673 100644
--- a/test/language/module-code/instn-iee-err-circular-as.js
+++ b/test/language/module-code/instn-iee-err-circular-as.js
@@ -19,7 +19,9 @@ info: |
           SameValue(exportName, r.[[ExportName]]) is true, then
           i. Assert: this is a circular import request.
           ii. Return null.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-circular.js b/test/language/module-code/instn-iee-err-circular.js
index 6255577aa6daf244a1214d96d96fb11c979c860b..c45c71a129e563cf7464f392f42df94532c5e4c6 100644
--- a/test/language/module-code/instn-iee-err-circular.js
+++ b/test/language/module-code/instn-iee-err-circular.js
@@ -19,7 +19,9 @@ info: |
           SameValue(exportName, r.[[ExportName]]) is true, then
           i. Assert: this is a circular import request.
           ii. Return null.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-dflt-thru-star-as.js b/test/language/module-code/instn-iee-err-dflt-thru-star-as.js
index d7d7d992fcd68e50ae6629cc532d0999f779bf50..32c643d2167ae4647c1a235274e73873b29d56aa 100644
--- a/test/language/module-code/instn-iee-err-dflt-thru-star-as.js
+++ b/test/language/module-code/instn-iee-err-dflt-thru-star-as.js
@@ -18,7 +18,9 @@ info: |
        a. Assert: A default export was not explicitly defined by this module.
        b. Throw a SyntaxError exception.
        c. NOTE A default export cannot be provided by an export *.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-dflt-thru-star.js b/test/language/module-code/instn-iee-err-dflt-thru-star.js
index 6d8093158c5379e1129fc877268ba1a788c7bdaf..adda2b02246709219725e4b0f491bc86a00285bc 100644
--- a/test/language/module-code/instn-iee-err-dflt-thru-star.js
+++ b/test/language/module-code/instn-iee-err-dflt-thru-star.js
@@ -18,7 +18,9 @@ info: |
        a. Assert: A default export was not explicitly defined by this module.
        b. Throw a SyntaxError exception.
        c. NOTE A default export cannot be provided by an export *.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-not-found-as.js b/test/language/module-code/instn-iee-err-not-found-as.js
index 1befd1bbb97e5d94650c978a9e2b731ed39904e2..45340e09321e4b58890c3c1479189b34b70e5c41 100644
--- a/test/language/module-code/instn-iee-err-not-found-as.js
+++ b/test/language/module-code/instn-iee-err-not-found-as.js
@@ -18,7 +18,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-err-not-found.js b/test/language/module-code/instn-iee-err-not-found.js
index 349385247fa01a2f3d21993a8493995c838edfe8..1c8d138e6cdebaa9efb159a134e32ac3c27778ee 100644
--- a/test/language/module-code/instn-iee-err-not-found.js
+++ b/test/language/module-code/instn-iee-err-not-found.js
@@ -18,7 +18,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-iee-star-cycle.js b/test/language/module-code/instn-iee-star-cycle.js
index 31c843d6e3cefdaa7fc3c3ae16372a054f2647a5..1bd694b60fec1bff90bfd728f3972581ba7dbdcc 100644
--- a/test/language/module-code/instn-iee-star-cycle.js
+++ b/test/language/module-code/instn-iee-star-cycle.js
@@ -18,7 +18,9 @@ info: |
     7. If exportStarSet contains module, return null.
     8. Append module to exportStarSet.
     [...]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-ambiguous-as.js b/test/language/module-code/instn-named-err-ambiguous-as.js
index cf68ca0c5c54e2e618d2d348eb45fdd11ead01ef..8c6e35ffa1d9405e19bb459305d83adfe6c5e411 100644
--- a/test/language/module-code/instn-named-err-ambiguous-as.js
+++ b/test/language/module-code/instn-named-err-ambiguous-as.js
@@ -35,7 +35,9 @@ info: |
                   not the same Module Record or
                   SameValue(resolution.[[BindingName]],
                   starResolution.[[BindingName]]) is false, return "ambiguous".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-ambiguous.js b/test/language/module-code/instn-named-err-ambiguous.js
index 8e89f559d5d0d56a99c2521bd155d2db4290e8a3..ea38342cbd38c69c8acfa11b0b765fed1a2b6909 100644
--- a/test/language/module-code/instn-named-err-ambiguous.js
+++ b/test/language/module-code/instn-named-err-ambiguous.js
@@ -35,7 +35,9 @@ info: |
                   not the same Module Record or
                   SameValue(resolution.[[BindingName]],
                   starResolution.[[BindingName]]) is false, return "ambiguous".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-dflt-thru-star-as.js b/test/language/module-code/instn-named-err-dflt-thru-star-as.js
index 7f73a48ee0d63e3cf9f9f8c13e785ab9aad81805..9750a581998708ce69669c98b1419a36503ce7f5 100644
--- a/test/language/module-code/instn-named-err-dflt-thru-star-as.js
+++ b/test/language/module-code/instn-named-err-dflt-thru-star-as.js
@@ -23,7 +23,9 @@ info: |
        a. Assert: A default export was not explicitly defined by this module.
        b. Throw a SyntaxError exception.
        c. NOTE A default export cannot be provided by an export *.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-dflt-thru-star-dflt.js b/test/language/module-code/instn-named-err-dflt-thru-star-dflt.js
index e1a8e056c6543b3644af5b783bb9efaa9af8b097..35276861a7ebbc46d63af2e20d67ccca68de6ff1 100644
--- a/test/language/module-code/instn-named-err-dflt-thru-star-dflt.js
+++ b/test/language/module-code/instn-named-err-dflt-thru-star-dflt.js
@@ -23,7 +23,9 @@ info: |
        a. Assert: A default export was not explicitly defined by this module.
        b. Throw a SyntaxError exception.
        c. NOTE A default export cannot be provided by an export *.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-not-found-as.js b/test/language/module-code/instn-named-err-not-found-as.js
index 4d5c2f5ee2c3270a0c921671346752290f700b1e..29f658e213b711308361a7cca4cbaa046b845c35 100644
--- a/test/language/module-code/instn-named-err-not-found-as.js
+++ b/test/language/module-code/instn-named-err-not-found-as.js
@@ -23,7 +23,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-not-found-dflt.js b/test/language/module-code/instn-named-err-not-found-dflt.js
index 81528910d9736aecdda9f2f06c3794dec58d622d..d3316429a225efdd1d7cfbbc37ffd0e61700ca59 100644
--- a/test/language/module-code/instn-named-err-not-found-dflt.js
+++ b/test/language/module-code/instn-named-err-not-found-dflt.js
@@ -23,7 +23,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-err-not-found.js b/test/language/module-code/instn-named-err-not-found.js
index 135d8428c31a6a370a6c25edfc132667af0de40f..15f5af71524329d365eb4ff50d014fc627a42486 100644
--- a/test/language/module-code/instn-named-err-not-found.js
+++ b/test/language/module-code/instn-named-err-not-found.js
@@ -23,7 +23,9 @@ info: |
     10. For each ExportEntry Record e in module.[[StarExportEntries]], do
         [...]
     11. Return starResolution.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-named-star-cycle.js b/test/language/module-code/instn-named-star-cycle.js
index 38749ea9fac9385671c8797c23e49aa6482876c3..19a7c913a0bf3b7ca80f4d06053d2aeaa40f5175 100644
--- a/test/language/module-code/instn-named-star-cycle.js
+++ b/test/language/module-code/instn-named-star-cycle.js
@@ -27,7 +27,9 @@ info: |
     7. If exportStarSet contains module, return null.
     8. Append module to exportStarSet.
     [...]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-resolve-err-syntax.js b/test/language/module-code/instn-resolve-err-syntax.js
index 9c389ffcfaa2dcbbd2eaefc01f6e9c09aa0ef8c6..fcedb3942d632f52f2cbbb869d657848bdb65ee7 100644
--- a/test/language/module-code/instn-resolve-err-syntax.js
+++ b/test/language/module-code/instn-resolve-err-syntax.js
@@ -10,7 +10,9 @@ info: |
        [...]
        b. Let requiredModule be ? HostResolveImportedModule(module, required).
     [...]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-star-err-not-found.js b/test/language/module-code/instn-star-err-not-found.js
index 712172ec0bcc8fad015920cc222c6c2ae9f4f765..10313c971ad1cef8b69e6372c97dd5429699a299 100644
--- a/test/language/module-code/instn-star-err-not-found.js
+++ b/test/language/module-code/instn-star-err-not-found.js
@@ -22,7 +22,9 @@ info: |
        c. For each name that is an element of exportedNames,
           i. Let resolution be ? module.ResolveExport(name, « », « »).
           ii. If resolution is null, throw a SyntaxError exception.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/instn-star-star-cycle.js b/test/language/module-code/instn-star-star-cycle.js
index 69547618fe0bf324e24bc1b73505d1debd35fcd9..d40c973ac70fabba78fc3c38bc11a0368079aa55 100644
--- a/test/language/module-code/instn-star-star-cycle.js
+++ b/test/language/module-code/instn-star-star-cycle.js
@@ -22,7 +22,9 @@ info: |
     7. If exportStarSet contains module, return null.
     8. Append module to exportStarSet.
     [...]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-arrow-function.js b/test/language/module-code/parse-err-decl-pos-export-arrow-function.js
index ddc41e401fb0b522b7b827d202c8074dfdd5cf47..c416f182af1891f74381caa77170cf52c1628d27 100644
--- a/test/language/module-code/parse-err-decl-pos-export-arrow-function.js
+++ b/test/language/module-code/parse-err-decl-pos-export-arrow-function.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-block-stmt-list.js b/test/language/module-code/parse-err-decl-pos-export-block-stmt-list.js
index 6af476be1b2838322301b22603695f2ac8e8c20a..644ac851a701e9465f0ad3c0a8ff80742ced7092 100644
--- a/test/language/module-code/parse-err-decl-pos-export-block-stmt-list.js
+++ b/test/language/module-code/parse-err-decl-pos-export-block-stmt-list.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-block-stmt.js b/test/language/module-code/parse-err-decl-pos-export-block-stmt.js
index b263b7bcdc16913615d276b62f0b6da12a5f48f1..e9210b4997387a88f9c700da7616bf5845ebb536 100644
--- a/test/language/module-code/parse-err-decl-pos-export-block-stmt.js
+++ b/test/language/module-code/parse-err-decl-pos-export-block-stmt.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js b/test/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js
index b4d16fc1373b62b8c6d3a7d1a5653d55b6950d69..1b7981b903406179e8cb4d00acd42a3cc6627c70 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-decl-meth.js b/test/language/module-code/parse-err-decl-pos-export-class-decl-meth.js
index 40f20daa3fa591defaa4fe8d5975e4e698af8032..44850b010e0818af83fc1cac6f520397cd05cb06 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-decl-meth.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-decl-meth.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js b/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js
index f72b71335e414c07424e93f87b72f7fd6a5f6a90..fd2886f51c04bc49388d674eaef9282d8327fdef 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js b/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js
index 31e9e6a1812e0318b96cdbeb08d936877a98698a..a6cc6be07b1955b89a892b70ba39a1bd0da5f152 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js
index d588a06dc19fcb8dcc3baeef225467ad3a187707..adf2050cc60ab98f6b4be924f6cb38bf1bd1132b 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js
index d70d683164f4dd6d20b649583ee70a0e91dae473..2b419916872eb0324ffee40624c98c59f3a0a731 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js
index cbf0c6b6c637abca6e2af395190a17cb7de50753..7da2bcfa35de52c5b57d54e97378aaedcb6eb5ae 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth.js b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth.js
index 84121167b8d52d18e329ef4f0093f33d81380beb..5d569f206b3fca8285dd1846d55812d8c5663fc6 100644
--- a/test/language/module-code/parse-err-decl-pos-export-class-expr-meth.js
+++ b/test/language/module-code/parse-err-decl-pos-export-class-expr-meth.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-do-while.js b/test/language/module-code/parse-err-decl-pos-export-do-while.js
index f480d8ff6b8c982fe7f4820b11b5818a72335640..2ed5064de5d8f4ceb5c2a0d98fd406ee9bf92f30 100644
--- a/test/language/module-code/parse-err-decl-pos-export-do-while.js
+++ b/test/language/module-code/parse-err-decl-pos-export-do-while.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-const.js b/test/language/module-code/parse-err-decl-pos-export-for-const.js
index 7399befe3c820b390ec30d70e60a7cf79ee6c994..90019ce3d8372a96642cff1497ed16c38a4fffbe 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-const.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-in-const.js b/test/language/module-code/parse-err-decl-pos-export-for-in-const.js
index e75fd81bd998dca07837bdd805b616d88812d198..44adc1b6f880670850fe9a97ec47fd93f48ac820 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-in-const.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-in-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-in-let.js b/test/language/module-code/parse-err-decl-pos-export-for-in-let.js
index b89a175eb85b6b559a9d656e331ff0068eacb4fe..eb6866ffd807a5468486dc07ec98a868a162e98b 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-in-let.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-in-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-in-lhs.js b/test/language/module-code/parse-err-decl-pos-export-for-in-lhs.js
index 65e73a0c23918104049052bce17a490cc472ad10..b4732dae564e32d7589706ea326ea30159900900 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-in-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-in-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-in-var.js b/test/language/module-code/parse-err-decl-pos-export-for-in-var.js
index bbf1b26c2f3bdfc44c2150372f19e5e12743c1b8..e9f4520ded531aabf36988069600125820a61dbf 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-in-var.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-in-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-let.js b/test/language/module-code/parse-err-decl-pos-export-for-let.js
index 5873f7bcd3abe61c00fb41fcd9e800b5508b7fc1..735d09846b07f282549e64b0a39efbee5adf8005 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-let.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-lhs.js b/test/language/module-code/parse-err-decl-pos-export-for-lhs.js
index 62f7ce6ed7cc30f327ac1ed50d6472bfde73d2c1..392dc2ad7bac0194747759eace72c8dc3100d3a2 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-of-const.js b/test/language/module-code/parse-err-decl-pos-export-for-of-const.js
index 70ea0b75e1f5ddb86984bfdccbb1ba531364f67f..1163a69b09c9fc280950436e32a719f0cdeca34d 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-of-const.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-of-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-of-let.js b/test/language/module-code/parse-err-decl-pos-export-for-of-let.js
index 109bd992ba191bbcd7849b0127e7b6fb42460654..a20bf165f3b260b03826bda9ee002ef1f640b3d2 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-of-let.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-of-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-of-lhs.js b/test/language/module-code/parse-err-decl-pos-export-for-of-lhs.js
index 83f9af25a5d48be2d7366adb3803eb0c9c4501b8..7fb11c41bee61cd2d3b57558b7071f852f56a66b 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-of-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-of-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-of-var.js b/test/language/module-code/parse-err-decl-pos-export-for-of-var.js
index 96391d83895f6ade46d0b0293dd26dc2c0dff07d..bf435ffc9fb2e7b8a18f2c7e5a94c23325e7dfc9 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-of-var.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-of-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-for-var.js b/test/language/module-code/parse-err-decl-pos-export-for-var.js
index 040126bcfd556c79a3385bd45c530f460b25c869..5ebea8093a5d1c7e039a383808c64bb16d9410dd 100644
--- a/test/language/module-code/parse-err-decl-pos-export-for-var.js
+++ b/test/language/module-code/parse-err-decl-pos-export-for-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-function-decl.js b/test/language/module-code/parse-err-decl-pos-export-function-decl.js
index fe8995b749111716e12a90040c34f50dd97ad8eb..38dae22389c002e17c8904c975269c21900be84e 100644
--- a/test/language/module-code/parse-err-decl-pos-export-function-decl.js
+++ b/test/language/module-code/parse-err-decl-pos-export-function-decl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-function-expr.js b/test/language/module-code/parse-err-decl-pos-export-function-expr.js
index 4024793eea4dbf42d0407f6b5dc5562444d89b95..cff92106eb1c4e2abcbcf624b48a8ae95d819b76 100644
--- a/test/language/module-code/parse-err-decl-pos-export-function-expr.js
+++ b/test/language/module-code/parse-err-decl-pos-export-function-expr.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-generator-decl.js b/test/language/module-code/parse-err-decl-pos-export-generator-decl.js
index 0fdd413db236689535de9add4c4498913fa36ed6..a2761fde668c892046310cdcf37be1af2861761b 100644
--- a/test/language/module-code/parse-err-decl-pos-export-generator-decl.js
+++ b/test/language/module-code/parse-err-decl-pos-export-generator-decl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-generator-expr.js b/test/language/module-code/parse-err-decl-pos-export-generator-expr.js
index a9d1eb3c7a306832ba6fcd51bb76944d6fe25ae6..2a7e53e042e3c5293f4627ad93ccdd5dc02fdbbc 100644
--- a/test/language/module-code/parse-err-decl-pos-export-generator-expr.js
+++ b/test/language/module-code/parse-err-decl-pos-export-generator-expr.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-if-else.js b/test/language/module-code/parse-err-decl-pos-export-if-else.js
index 8d401b1bc7cf131416323e15fe4351e8f50fdb42..516d76d76786a840fa2165e90c1436e841e3dc3a 100644
--- a/test/language/module-code/parse-err-decl-pos-export-if-else.js
+++ b/test/language/module-code/parse-err-decl-pos-export-if-else.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-if-if.js b/test/language/module-code/parse-err-decl-pos-export-if-if.js
index 44112ddcbb554599f933322f6cb957e63b2bfbe8..012241a20169fb2ba9f5abe94ef8c38cafd3ae0a 100644
--- a/test/language/module-code/parse-err-decl-pos-export-if-if.js
+++ b/test/language/module-code/parse-err-decl-pos-export-if-if.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-labeled.js b/test/language/module-code/parse-err-decl-pos-export-labeled.js
index d9bcae028605ac03ea1226937f5baa4e205b7bcb..fff280da8a8ff35712d122dcc95f129665e61d3a 100644
--- a/test/language/module-code/parse-err-decl-pos-export-labeled.js
+++ b/test/language/module-code/parse-err-decl-pos-export-labeled.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-object-gen-method.js b/test/language/module-code/parse-err-decl-pos-export-object-gen-method.js
index 1718d525fd27b2e75955c97d36e299508954d492..1b56047172b5a343d91e310ac286183ae6b885ec 100644
--- a/test/language/module-code/parse-err-decl-pos-export-object-gen-method.js
+++ b/test/language/module-code/parse-err-decl-pos-export-object-gen-method.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-object-getter.js b/test/language/module-code/parse-err-decl-pos-export-object-getter.js
index 3e75cc5b7eb8d4f9ccfac85ea6d4aff1dc6a4eeb..86f3fb2081df8d76d1dfb68e72bf195b8dfa98d4 100644
--- a/test/language/module-code/parse-err-decl-pos-export-object-getter.js
+++ b/test/language/module-code/parse-err-decl-pos-export-object-getter.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-object-method.js b/test/language/module-code/parse-err-decl-pos-export-object-method.js
index a6d1426b3a990a683e4792e5971b803d64c82574..c035853d75000e39cd1bff777ab0fd0667d4861f 100644
--- a/test/language/module-code/parse-err-decl-pos-export-object-method.js
+++ b/test/language/module-code/parse-err-decl-pos-export-object-method.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-object-setter.js b/test/language/module-code/parse-err-decl-pos-export-object-setter.js
index 2c24a418fad3542339e83ea48d8fee31d5de6a04..b156b53a8a10842050f04c69250d3874f3f3272f 100644
--- a/test/language/module-code/parse-err-decl-pos-export-object-setter.js
+++ b/test/language/module-code/parse-err-decl-pos-export-object-setter.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js b/test/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js
index 2cfd81fda07a286bb05f0cc1d2b67edc0c5beef2..ba4780c9926105dcba89bc51848316802e7ad4a2 100644
--- a/test/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js
+++ b/test/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-switch-case.js b/test/language/module-code/parse-err-decl-pos-export-switch-case.js
index 9df8088f1b8d194ef294e03389d674ac10a4ed84..4ffefa1f1804c3db99b31db9f5a74abcaa344af3 100644
--- a/test/language/module-code/parse-err-decl-pos-export-switch-case.js
+++ b/test/language/module-code/parse-err-decl-pos-export-switch-case.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-switch-dftl.js b/test/language/module-code/parse-err-decl-pos-export-switch-dftl.js
index 78e98b03559f3724e9461a8764c868a772286e89..193acb42e284e0fdbc9b2db7a3a89def19fa4285 100644
--- a/test/language/module-code/parse-err-decl-pos-export-switch-dftl.js
+++ b/test/language/module-code/parse-err-decl-pos-export-switch-dftl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-try-catch-finally.js b/test/language/module-code/parse-err-decl-pos-export-try-catch-finally.js
index 929f12b5cbb2bc9fdfc188585e07f19668eda7e1..be7fa7742818d8ed5c2ac930ae4dfa8a41b2526f 100644
--- a/test/language/module-code/parse-err-decl-pos-export-try-catch-finally.js
+++ b/test/language/module-code/parse-err-decl-pos-export-try-catch-finally.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-try-catch.js b/test/language/module-code/parse-err-decl-pos-export-try-catch.js
index 2376cfe34901d17e2431885af0f40af8e0e13e27..cd7badb6ef20c1b394a056fccf76b9213ede9e33 100644
--- a/test/language/module-code/parse-err-decl-pos-export-try-catch.js
+++ b/test/language/module-code/parse-err-decl-pos-export-try-catch.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-try-finally.js b/test/language/module-code/parse-err-decl-pos-export-try-finally.js
index 529f15f58fb356bbe1488c57f79e6aa79f532d33..1f73825de2fb48ce8eeb78d09afe10150d6fbe83 100644
--- a/test/language/module-code/parse-err-decl-pos-export-try-finally.js
+++ b/test/language/module-code/parse-err-decl-pos-export-try-finally.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-try-try.js b/test/language/module-code/parse-err-decl-pos-export-try-try.js
index 202e0794692f114c58d1467d5596e03ab219b4f3..c641f4143315a2fe46f24442c4a380ad44d6b766 100644
--- a/test/language/module-code/parse-err-decl-pos-export-try-try.js
+++ b/test/language/module-code/parse-err-decl-pos-export-try-try.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-export-while.js b/test/language/module-code/parse-err-decl-pos-export-while.js
index c828f9b284c1a450b6be2f7727e36b72a57ed55b..b2115e5eedfb1c0c84627fb03d008fef939b4453 100644
--- a/test/language/module-code/parse-err-decl-pos-export-while.js
+++ b/test/language/module-code/parse-err-decl-pos-export-while.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `export` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-arrow-function.js b/test/language/module-code/parse-err-decl-pos-import-arrow-function.js
index 9bd081d19bb577b4752298a7a2437ac36e7e4b5b..958525b23477e888487e8f9864637645068ef51f 100644
--- a/test/language/module-code/parse-err-decl-pos-import-arrow-function.js
+++ b/test/language/module-code/parse-err-decl-pos-import-arrow-function.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-block-stmt-list.js b/test/language/module-code/parse-err-decl-pos-import-block-stmt-list.js
index 72452f50e2f2c49953fbd64e7497a6de3c4862e3..3b94c0f2a094fe01fe4932fe6f76bee10b11d48c 100644
--- a/test/language/module-code/parse-err-decl-pos-import-block-stmt-list.js
+++ b/test/language/module-code/parse-err-decl-pos-import-block-stmt-list.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-block-stmt.js b/test/language/module-code/parse-err-decl-pos-import-block-stmt.js
index d0d7fb561383f319f89636fb7366d26ee21099db..91688ce9dffc90810a6fdeee5f9c71942dd5e400 100644
--- a/test/language/module-code/parse-err-decl-pos-import-block-stmt.js
+++ b/test/language/module-code/parse-err-decl-pos-import-block-stmt.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js b/test/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js
index 32baf075b24cc493a6c7ac0af167edf08e612a92..f968a76c45dee0e97f25414b213ed410ce2ea286 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-decl-meth.js b/test/language/module-code/parse-err-decl-pos-import-class-decl-meth.js
index 6feebfd3879d4e610c6a412e3df98dd3a03a9ac6..3852acdbd949fbb3532d0032611d88fce4275262 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-decl-meth.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-decl-meth.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js b/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js
index 9989c819cf0552dea729035205c0071068ad9f0c..3f62c62f3d8cda16773f4f9957ff0311865c84fe 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js b/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js
index 3b365375114a23a8ed2074e85230711059f4f791..dd8d56a4cc8da7fadf32e0cc27e9b5f11a17ea17 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js
index b795945208f395f9b01d1461e296af8328a44c1c..e25f32f30d1af32221df804d72141a28257198e2 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js
index bc6a6954b38043a8935eac32696b7765e9f1215d..8a145d7d0cd3f208f075e23bd0617f65991e0565 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js
index f43d5db5ace175cfeeb490c53405869b4b960b6e..3ac43fd1b39108579ce91bddb886fd9a9a808462 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth.js b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth.js
index 845ab4ee740392c566a40eecf371ab6ea62646da..93a02d6470fc7cd521cda0618932e698b5b940cb 100644
--- a/test/language/module-code/parse-err-decl-pos-import-class-expr-meth.js
+++ b/test/language/module-code/parse-err-decl-pos-import-class-expr-meth.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-do-while.js b/test/language/module-code/parse-err-decl-pos-import-do-while.js
index 06200b07af9fa20e8bb037366bff76b47d5852f3..968b5794470984b5da573022ecfd585342ef47cd 100644
--- a/test/language/module-code/parse-err-decl-pos-import-do-while.js
+++ b/test/language/module-code/parse-err-decl-pos-import-do-while.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-const.js b/test/language/module-code/parse-err-decl-pos-import-for-const.js
index 4911d418416e7a407c788d24c695a209d2d66182..7df32518b8806dad08aa8fd2b405bc119e3f8909 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-const.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-in-const.js b/test/language/module-code/parse-err-decl-pos-import-for-in-const.js
index ad42e3ac9f6c69d113038fc1ca639ffe381c2e59..30abe3217d5c7d9442535e73c39a7f28fb319c05 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-in-const.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-in-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-in-let.js b/test/language/module-code/parse-err-decl-pos-import-for-in-let.js
index 01080d302274eb99de9fba03a0399013e74cbaf4..7961f5a860d444806141f45b79c6a58af869374a 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-in-let.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-in-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-in-lhs.js b/test/language/module-code/parse-err-decl-pos-import-for-in-lhs.js
index 24d6159c17c2be9a8121ef67ab935623900dddee..52b433c5e361f6bf5df1103b43e62c8af71648b3 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-in-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-in-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-in-var.js b/test/language/module-code/parse-err-decl-pos-import-for-in-var.js
index ea0f9ebe49358e31f47f14b10c9647af75402065..79af4f41a422a8dc0851d3f5f71f7227ad36bd37 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-in-var.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-in-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-let.js b/test/language/module-code/parse-err-decl-pos-import-for-let.js
index 1fee0012e7983927e90c31ea5542b0fc54ea98a4..369b1f20126983e38aff9e172ec3f4c468c7aac0 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-let.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-lhs.js b/test/language/module-code/parse-err-decl-pos-import-for-lhs.js
index 9d7407396007bd2adc20ffe0ad75e2803b74b5ca..f368c493b52409a6bd9698a07bc4df57432e7c55 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-of-const.js b/test/language/module-code/parse-err-decl-pos-import-for-of-const.js
index 7fabfe2ff0ace42bb08777dabab776c28fae3b04..5e93d21ab94fd5bc34c2ee86cc84148886ba5485 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-of-const.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-of-const.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-of-let.js b/test/language/module-code/parse-err-decl-pos-import-for-of-let.js
index b42b677e0dc9f7c0f8b9a966178e9c951ab691e7..0a7d6421003f50985d01c7f7c01db57a023fe110 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-of-let.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-of-let.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-of-lhs.js b/test/language/module-code/parse-err-decl-pos-import-for-of-lhs.js
index 6bdad656f1dc73d36ddc11d2eb5b745cd60c5805..dc06d5279ceb1f5c336e880dac39090f6fdd8c17 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-of-lhs.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-of-lhs.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-of-var.js b/test/language/module-code/parse-err-decl-pos-import-for-of-var.js
index 00d31771cc21e9a28d3baafa6d61e1289d63da12..dd95d3d970195915b901b9bb66e1eb2d77e5fb81 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-of-var.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-of-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-for-var.js b/test/language/module-code/parse-err-decl-pos-import-for-var.js
index 51bbc3954d0acc1d7375965cc6bb47255474cda4..74ba81ae6e7807c4f767acfaebbdc5b2141ef25e 100644
--- a/test/language/module-code/parse-err-decl-pos-import-for-var.js
+++ b/test/language/module-code/parse-err-decl-pos-import-for-var.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-function-decl.js b/test/language/module-code/parse-err-decl-pos-import-function-decl.js
index ae20168b6bb38f3468a43fe31df431604e941644..b03ffec8701b6a511f05f6be0571de3caa839965 100644
--- a/test/language/module-code/parse-err-decl-pos-import-function-decl.js
+++ b/test/language/module-code/parse-err-decl-pos-import-function-decl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-function-expr.js b/test/language/module-code/parse-err-decl-pos-import-function-expr.js
index 371c726c886d869a2ad77252da77f1d917babe16..d52ac19733c5bf98d2d642596fb170a1c55d1562 100644
--- a/test/language/module-code/parse-err-decl-pos-import-function-expr.js
+++ b/test/language/module-code/parse-err-decl-pos-import-function-expr.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-generator-decl.js b/test/language/module-code/parse-err-decl-pos-import-generator-decl.js
index b41a01ecb6d71c7612128e06e095b1a0e9679035..a29796607af30b6e6c9da7391f3f899e74d621fb 100644
--- a/test/language/module-code/parse-err-decl-pos-import-generator-decl.js
+++ b/test/language/module-code/parse-err-decl-pos-import-generator-decl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-generator-expr.js b/test/language/module-code/parse-err-decl-pos-import-generator-expr.js
index 52044a39bd4c6906446abfbda5497b60247913cd..ca3e9a3b73a31e59848267d1e54560b16281b2c3 100644
--- a/test/language/module-code/parse-err-decl-pos-import-generator-expr.js
+++ b/test/language/module-code/parse-err-decl-pos-import-generator-expr.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-if-else.js b/test/language/module-code/parse-err-decl-pos-import-if-else.js
index ce5b02398dc7f507cb6aa88268fb583585247e99..6023e015d11e190448c0ab08722c68dcd6dec0d6 100644
--- a/test/language/module-code/parse-err-decl-pos-import-if-else.js
+++ b/test/language/module-code/parse-err-decl-pos-import-if-else.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-if-if.js b/test/language/module-code/parse-err-decl-pos-import-if-if.js
index 7975a9b2533cbd05c01d1ca28126f9b988c54535..ca57171d7693d0dac3b7230a7b267b1c52b6a524 100644
--- a/test/language/module-code/parse-err-decl-pos-import-if-if.js
+++ b/test/language/module-code/parse-err-decl-pos-import-if-if.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-labeled.js b/test/language/module-code/parse-err-decl-pos-import-labeled.js
index 8ed78ae2d7622e139c2887644523eaf4369d1493..a4d963396b3b1178957dc5547a196f642cf1b269 100644
--- a/test/language/module-code/parse-err-decl-pos-import-labeled.js
+++ b/test/language/module-code/parse-err-decl-pos-import-labeled.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-object-gen-method.js b/test/language/module-code/parse-err-decl-pos-import-object-gen-method.js
index fe6e583401c910c6c138267039fcdfd596daf64b..a316e5a36d4d83972e81348d8ca3495761aa7486 100644
--- a/test/language/module-code/parse-err-decl-pos-import-object-gen-method.js
+++ b/test/language/module-code/parse-err-decl-pos-import-object-gen-method.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-object-getter.js b/test/language/module-code/parse-err-decl-pos-import-object-getter.js
index 74aca8c3930fa34aa70d062a55d049abf5f76ed1..6cd9488662738bd6fedbbbdaeb378146dbff93cb 100644
--- a/test/language/module-code/parse-err-decl-pos-import-object-getter.js
+++ b/test/language/module-code/parse-err-decl-pos-import-object-getter.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-object-method.js b/test/language/module-code/parse-err-decl-pos-import-object-method.js
index fdf7cccfe8794f292f8d176131452b9c52b400a9..7632d1fab4ded748ba6ac700604cd1cd36d18700 100644
--- a/test/language/module-code/parse-err-decl-pos-import-object-method.js
+++ b/test/language/module-code/parse-err-decl-pos-import-object-method.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-object-setter.js b/test/language/module-code/parse-err-decl-pos-import-object-setter.js
index a3dd23a29c3477464cfd8de8d7704ba796b0ba00..bc316b3d9a94f99415447c244349f5fc06ceb457 100644
--- a/test/language/module-code/parse-err-decl-pos-import-object-setter.js
+++ b/test/language/module-code/parse-err-decl-pos-import-object-setter.js
@@ -3,7 +3,9 @@
 /*---
 description: Expression cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js b/test/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js
index 1a56b8e84fbe1b40b85e98929b5d0325c7295b12..6081a05a9aa27a8b8c77878dfa75db2c24b018bf 100644
--- a/test/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js
+++ b/test/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-switch-case.js b/test/language/module-code/parse-err-decl-pos-import-switch-case.js
index e8efe29ef77e41916e866e84e220b9451eafa526..c8f22347dd338dc2d93e49a49c12e093d35c5bb5 100644
--- a/test/language/module-code/parse-err-decl-pos-import-switch-case.js
+++ b/test/language/module-code/parse-err-decl-pos-import-switch-case.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-switch-dftl.js b/test/language/module-code/parse-err-decl-pos-import-switch-dftl.js
index 8a855a97ea3204c110318b3b0f6b35422e3fb436..ad9cd2500f920eed2e0ce0034e886f894032abb5 100644
--- a/test/language/module-code/parse-err-decl-pos-import-switch-dftl.js
+++ b/test/language/module-code/parse-err-decl-pos-import-switch-dftl.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-try-catch-finally.js b/test/language/module-code/parse-err-decl-pos-import-try-catch-finally.js
index f0212bd37b672faabc8e63f816b1e28f7ee333b7..f1bde8b211b9d645d784f1fdb352f55b05395abd 100644
--- a/test/language/module-code/parse-err-decl-pos-import-try-catch-finally.js
+++ b/test/language/module-code/parse-err-decl-pos-import-try-catch-finally.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-try-catch.js b/test/language/module-code/parse-err-decl-pos-import-try-catch.js
index e0d4f944f84d4a748d0699cb5896d9635da9d562..289b3a750c04976d297b687a2a3075b4bf5e483b 100644
--- a/test/language/module-code/parse-err-decl-pos-import-try-catch.js
+++ b/test/language/module-code/parse-err-decl-pos-import-try-catch.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-try-finally.js b/test/language/module-code/parse-err-decl-pos-import-try-finally.js
index 76db6fd4c5ef3522d570ecc7e30bb44ad5b13a50..e99b64719b8d2d97baf56312e745ed4e84031057 100644
--- a/test/language/module-code/parse-err-decl-pos-import-try-finally.js
+++ b/test/language/module-code/parse-err-decl-pos-import-try-finally.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-try-try.js b/test/language/module-code/parse-err-decl-pos-import-try-try.js
index 39ed0e805352e8d8bc2cf2dac8e7f796a76b16e1..8e1d62b6c1262e21328d6a815dc88dab445afd56 100644
--- a/test/language/module-code/parse-err-decl-pos-import-try-try.js
+++ b/test/language/module-code/parse-err-decl-pos-import-try-try.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-decl-pos-import-while.js b/test/language/module-code/parse-err-decl-pos-import-while.js
index add8e60a110ba122f7d01c5e173904870576e3d2..c7840f3c46ad382baf789d972819e9659c9104c3 100644
--- a/test/language/module-code/parse-err-decl-pos-import-while.js
+++ b/test/language/module-code/parse-err-decl-pos-import-while.js
@@ -3,7 +3,9 @@
 /*---
 description: Statement cannot contain an `import` declaration
 esid: sec-modules
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-export-dflt-const.js b/test/language/module-code/parse-err-export-dflt-const.js
index ca886476e11217c345b1109354b0132325b719b0..ef7247b41555ae4305719bf0785d9367d873a473 100644
--- a/test/language/module-code/parse-err-export-dflt-const.js
+++ b/test/language/module-code/parse-err-export-dflt-const.js
@@ -5,7 +5,9 @@ esid: sec-exports
 es6id: 15.2.3
 description: The default export may not be a LexicalDeclaration (const)
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export default const x = null;
diff --git a/test/language/module-code/parse-err-export-dflt-expr.js b/test/language/module-code/parse-err-export-dflt-expr.js
index 61c05e49131599f948e9efb66397c6f8f8370991..c9f03e464fc6ea99bc3bbe3d847e5d2decdb9521 100644
--- a/test/language/module-code/parse-err-export-dflt-expr.js
+++ b/test/language/module-code/parse-err-export-dflt-expr.js
@@ -14,7 +14,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-export-dflt-let.js b/test/language/module-code/parse-err-export-dflt-let.js
index cb3ae054b0c865938d782c796911d84f25fd9629..e355941efae2532023fef0a4a14b4b49e25a07a8 100644
--- a/test/language/module-code/parse-err-export-dflt-let.js
+++ b/test/language/module-code/parse-err-export-dflt-let.js
@@ -5,7 +5,9 @@ esid: sec-exports
 es6id: 15.2.3
 description: The default export may not be a LexicalDeclaration (let)
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export default let x;
diff --git a/test/language/module-code/parse-err-export-dflt-var.js b/test/language/module-code/parse-err-export-dflt-var.js
index 5cd5102168a9475a2d4eccf14c4c30b63a62724d..4165cdf1f30b8a860b463246cd48bfa7e9dbce84 100644
--- a/test/language/module-code/parse-err-export-dflt-var.js
+++ b/test/language/module-code/parse-err-export-dflt-var.js
@@ -5,7 +5,9 @@ esid: sec-exports
 es6id: 15.2.3
 description: The default export may not be a VariableStatement
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 export default var x;
diff --git a/test/language/module-code/parse-err-hoist-lex-fun.js b/test/language/module-code/parse-err-hoist-lex-fun.js
index 98c95ae674757951f6afe04c51c69f9f7e25ec07..3ecf06c587b7473026d127cc0519fb3fbcff5140 100644
--- a/test/language/module-code/parse-err-hoist-lex-fun.js
+++ b/test/language/module-code/parse-err-hoist-lex-fun.js
@@ -13,7 +13,9 @@ info: |
 
     - It is a Syntax Error if any element of the LexicallyDeclaredNames of
       ModuleItemList also occurs in the VarDeclaredNames of ModuleItemList.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-hoist-lex-gen.js b/test/language/module-code/parse-err-hoist-lex-gen.js
index 6f32a70240223331e6b43a87f987a9e6b718b454..bb1f5d0fbead16ee352d35d7d61402530e4cb92d 100644
--- a/test/language/module-code/parse-err-hoist-lex-gen.js
+++ b/test/language/module-code/parse-err-hoist-lex-gen.js
@@ -14,7 +14,9 @@ info: |
 
     - It is a Syntax Error if any element of the LexicallyDeclaredNames of
       ModuleItemList also occurs in the VarDeclaredNames of ModuleItemList.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-invoke-anon-fun-decl.js b/test/language/module-code/parse-err-invoke-anon-fun-decl.js
index e1610369075719b0e86fb8be5630876d7ed8d76e..f443981cde4b907c97a0adaaaefaef99ae394fa3 100644
--- a/test/language/module-code/parse-err-invoke-anon-fun-decl.js
+++ b/test/language/module-code/parse-err-invoke-anon-fun-decl.js
@@ -14,7 +14,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-invoke-anon-gen-decl.js b/test/language/module-code/parse-err-invoke-anon-gen-decl.js
index 68c13642fee5f63ef7f74c60c6e58dd9d680690f..ea625968a9fd332b808240848f2037f7ed68868b 100644
--- a/test/language/module-code/parse-err-invoke-anon-gen-decl.js
+++ b/test/language/module-code/parse-err-invoke-anon-gen-decl.js
@@ -15,7 +15,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-return.js b/test/language/module-code/parse-err-return.js
index e51e894a8d045a04573c545422e0d490a6c21b7b..0130511208440a314727076d5b1e782c96c42e5b 100644
--- a/test/language/module-code/parse-err-return.js
+++ b/test/language/module-code/parse-err-return.js
@@ -22,7 +22,9 @@ info: |
     ExportDeclaration
     StatementListItem[~Yield, ~Return]
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 return;
diff --git a/test/language/module-code/parse-err-semi-dflt-expr.js b/test/language/module-code/parse-err-semi-dflt-expr.js
index 78cba692fdbb0055ee6c9e85d4b60b1bc925dea5..331915a7b4e6226264b269ddbae8559a292fe0e9 100644
--- a/test/language/module-code/parse-err-semi-dflt-expr.js
+++ b/test/language/module-code/parse-err-semi-dflt-expr.js
@@ -15,7 +15,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-semi-export-clause-from.js b/test/language/module-code/parse-err-semi-export-clause-from.js
index b581cd3e659c31e1401631565fd4ed9c1fd2d578..3eaa729a64a75f7d7699f5b879bc7d5e3ec25938 100644
--- a/test/language/module-code/parse-err-semi-export-clause-from.js
+++ b/test/language/module-code/parse-err-semi-export-clause-from.js
@@ -15,7 +15,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-semi-export-clause.js b/test/language/module-code/parse-err-semi-export-clause.js
index 7b4584629107cf8d6c87924817e4a5c42a353fd7..a876deeb541bd6389c932175ce3b8bbd031e78c1 100644
--- a/test/language/module-code/parse-err-semi-export-clause.js
+++ b/test/language/module-code/parse-err-semi-export-clause.js
@@ -15,7 +15,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-semi-export-star.js b/test/language/module-code/parse-err-semi-export-star.js
index cc8f908891ae8978daa9d3ae5304e8a4b80feea4..6ff59a84cfb69f21ce69c143f5e59dcb764196ff 100644
--- a/test/language/module-code/parse-err-semi-export-star.js
+++ b/test/language/module-code/parse-err-semi-export-star.js
@@ -14,7 +14,9 @@ info: |
       export default HoistableDeclaration[Default]
       export default ClassDeclaration[Default]
       export default [lookahead ∉ { function, class }] AssignmentExpression[In];
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [module]
 ---*/
 
diff --git a/test/language/module-code/parse-err-syntax.js b/test/language/module-code/parse-err-syntax.js
index ec36f521c67e6ec55106cf96614441a940c52498..818199963d61328d966c0ce38740b83a522f0895 100644
--- a/test/language/module-code/parse-err-syntax.js
+++ b/test/language/module-code/parse-err-syntax.js
@@ -3,7 +3,9 @@
 /*---
 description: Early SyntaxError resulting from module parsing
 esid: sec-parsemodule
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     [...]
     2. Parse sourceText using Module as the goal symbol and analyze the parse
diff --git a/test/language/module-code/parse-err-yield.js b/test/language/module-code/parse-err-yield.js
index 34600568a201f440cf0d1236dcb4fed0ef1c079f..17e20c96dcc48eb9444b5d109c1b8c8ead7710ff 100644
--- a/test/language/module-code/parse-err-yield.js
+++ b/test/language/module-code/parse-err-yield.js
@@ -22,7 +22,9 @@ info: |
     ExportDeclaration
     StatementListItem[~Yield, ~Return]
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 yield;
diff --git a/test/language/punctuators/S7.7_A2_T1.js b/test/language/punctuators/S7.7_A2_T1.js
index 1e955d54b62f2cb0abf57151a2c273380f864da4..52b658b056f42e0e606ce37277328c2be4f0a79c 100644
--- a/test/language/punctuators/S7.7_A2_T1.js
+++ b/test/language/punctuators/S7.7_A2_T1.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T1
 description: Try to use {} as a Unicode \u007B\u007D
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 \u007B\u007D;
diff --git a/test/language/punctuators/S7.7_A2_T10.js b/test/language/punctuators/S7.7_A2_T10.js
index 2fcdf86b4acaf7019f914b0d5e223248f4da6406..02765dc64f7aaea4218e625eee9ca158d17b71e2 100644
--- a/test/language/punctuators/S7.7_A2_T10.js
+++ b/test/language/punctuators/S7.7_A2_T10.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T10
 description: Try to use / as a Unicode \u002F
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002F2;
diff --git a/test/language/punctuators/S7.7_A2_T2.js b/test/language/punctuators/S7.7_A2_T2.js
index 665b24297887bba793900a81056f983d6ff90c6b..97118e83da4406ab22a32aa4a9abb0e71dc3f34b 100644
--- a/test/language/punctuators/S7.7_A2_T2.js
+++ b/test/language/punctuators/S7.7_A2_T2.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T2
 description: Try to use () as Unicode \u00281\u0029
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 \u00281\u0029;
diff --git a/test/language/punctuators/S7.7_A2_T3.js b/test/language/punctuators/S7.7_A2_T3.js
index a38c8f29245aa0655cc2de6b0da14694eb99ed30..c45c90eb12b677b897e38b0054db6ceaa102b46f 100644
--- a/test/language/punctuators/S7.7_A2_T3.js
+++ b/test/language/punctuators/S7.7_A2_T3.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T3
 description: Try to use [] as a Unicode \u005B\u005D
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 \u005B\u005D;
diff --git a/test/language/punctuators/S7.7_A2_T4.js b/test/language/punctuators/S7.7_A2_T4.js
index a6f1f305b8847a6d7b7bce67a6ddbc3cbcc5a28a..4963bda477210ec1f47854011c262fc35858a2e6 100644
--- a/test/language/punctuators/S7.7_A2_T4.js
+++ b/test/language/punctuators/S7.7_A2_T4.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T4
 description: Try to use ; as a Unicode \u003B
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 \u003B;
diff --git a/test/language/punctuators/S7.7_A2_T5.js b/test/language/punctuators/S7.7_A2_T5.js
index 59135976d3e220631c6947cfac40bf2e0b4081b7..379bfe789aa663ee1d1b52424386bcc26776909c 100644
--- a/test/language/punctuators/S7.7_A2_T5.js
+++ b/test/language/punctuators/S7.7_A2_T5.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T5
 description: Try to use . as a Unicode \u002E
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 x = 1;
diff --git a/test/language/punctuators/S7.7_A2_T6.js b/test/language/punctuators/S7.7_A2_T6.js
index db832e0fa9f84979840f548dfbf7c7ab422198c8..6d9f73c3e45839f2952c949235a4854db647a172 100644
--- a/test/language/punctuators/S7.7_A2_T6.js
+++ b/test/language/punctuators/S7.7_A2_T6.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T6
 description: Try to use , as a Unicode \u002C
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002C2;
diff --git a/test/language/punctuators/S7.7_A2_T7.js b/test/language/punctuators/S7.7_A2_T7.js
index 685311c3fece948ac3ef4d0f658f80a75b0a1461..9b066810b26569e10b55c87fda1534181e3a3fdc 100644
--- a/test/language/punctuators/S7.7_A2_T7.js
+++ b/test/language/punctuators/S7.7_A2_T7.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T7
 description: Try to use + as a Unicode \u002B
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002B2;
diff --git a/test/language/punctuators/S7.7_A2_T8.js b/test/language/punctuators/S7.7_A2_T8.js
index 7fd346dabb4a164e3242c1e1ccd4aa745a1ba9d1..88469020da08fe6bc449b1024af498765d4f49f5 100644
--- a/test/language/punctuators/S7.7_A2_T8.js
+++ b/test/language/punctuators/S7.7_A2_T8.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T8
 description: Try to use -  as a Unicode \u002D
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002D2;
diff --git a/test/language/punctuators/S7.7_A2_T9.js b/test/language/punctuators/S7.7_A2_T9.js
index 789a7d1e0e41e01f7279695d5ad582e4a8b42e20..cbfdeb8fc88d9363ff8e0975b3fa8547cc622eeb 100644
--- a/test/language/punctuators/S7.7_A2_T9.js
+++ b/test/language/punctuators/S7.7_A2_T9.js
@@ -7,7 +7,9 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T9
 description: Try to use * as a Unicode \u002A
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 1\u002A2;
diff --git a/test/language/reserved-words/7.6.1.2-1gs.js b/test/language/reserved-words/7.6.1.2-1gs.js
index 2dac3658737b6046da7285871018370cc7c28954..2642d13c61835fe3419375383b6de9034ad9b13e 100644
--- a/test/language/reserved-words/7.6.1.2-1gs.js
+++ b/test/language/reserved-words/7.6.1.2-1gs.js
@@ -6,7 +6,9 @@ es5id: 7.6.1.2-1gs
 description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'implements' occurs in strict mode code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/reserved-words/await-module.js b/test/language/reserved-words/await-module.js
index 1f822edc3416fa9643dfa8b546bd930c6128e820..0f80c91273e50037b5af56ea9e3221b49d3637df 100644
--- a/test/language/reserved-words/await-module.js
+++ b/test/language/reserved-words/await-module.js
@@ -5,7 +5,9 @@ esid: sec-reserved-words
 es6id: 11.6.2
 description: The `await` token is not permitted as an identifier in module code
 flags: [module]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var await;
diff --git a/test/language/rest-parameters/params-trailing-comma-rest.js b/test/language/rest-parameters/params-trailing-comma-rest.js
index 823b8806ccb066a7676b1f401ef5bdb44c6a18fb..028e7a36e5336681f04fd7ea0ec734b7ab82cd1d 100644
--- a/test/language/rest-parameters/params-trailing-comma-rest.js
+++ b/test/language/rest-parameters/params-trailing-comma-rest.js
@@ -6,7 +6,9 @@ description: >
   arguments in arrow function argument lists.
 info: http://jeffmo.github.io/es-trailing-function-commas/
 author: Jeff Morrison <lbljeffmo@gmail.com>
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 ((...a,) => {})
diff --git a/test/language/rest-parameters/position-invalid.js b/test/language/rest-parameters/position-invalid.js
index 27b6757725401e19756af95e854c48b569dc5347..bc64f3bb0bea83a226368fad8a8304dc851c9334 100644
--- a/test/language/rest-parameters/position-invalid.js
+++ b/test/language/rest-parameters/position-invalid.js
@@ -4,6 +4,8 @@
 es6id: 14.1
 description: >
     Rest parameter cannot be followed by another named parameter
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 function f(a, ...b, c) {}
diff --git a/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js b/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js
index 2284554d858d867ac57b9c66554e73493fcb2c78..dc8000e30cb745a30b8b4326b202fd729e73cb29 100644
--- a/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js
+++ b/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo(x = 1){"use strict"}
diff --git a/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js b/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js
index 6bfb5c8974635bba8865817838d1c0e7550d70e9..f107468b1e6ba2be8b1c528c8d0c6fa2d79ce148 100644
--- a/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js
+++ b/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains arguments in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js b/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js
index aa3e5e51598c44bc19c02883b337071bc2c12d89..f961342868f097426749205da4b2cf87bf253220 100644
--- a/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js
+++ b/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js
@@ -5,6 +5,8 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters' default expressions contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 async function foo (x = await) {  }
diff --git a/test/language/statements/async-function/early-errors-declaration-await-in-formals.js b/test/language/statements/async-function/early-errors-declaration-await-in-formals.js
index ee57dcd19c440d0d1a7d082228c76865495dda96..e93d9f6ab3f9421a2497483812d8fcc10d63d84b 100644
--- a/test/language/statements/async-function/early-errors-declaration-await-in-formals.js
+++ b/test/language/statements/async-function/early-errors-declaration-await-in-formals.js
@@ -5,6 +5,8 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 async function foo (await) {  }
diff --git a/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js b/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js
index 225e0085e3bf15acc77db01931cb7e3b93704a3a..a5c91fb576ff0b71543087fe5a55e17538015681 100644
--- a/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js
+++ b/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName arguments. 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 async function arguments () {  }
diff --git a/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js b/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js
index ea9a58e962218f51b67e68ce727bb8d305ad7864..29facf91aef2f9ca131d309b9addf8dfb42fbd61 100644
--- a/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js
+++ b/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName eval. 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 async function eval () {  }
diff --git a/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js b/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js
index b4ad18cccccd5f1ab0e4a840be6f03e7ceb706f4..a1d84ef3dda11a8f3283a85f42df1cea1d3b8698 100644
--- a/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js
+++ b/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (foo) { super() };
diff --git a/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js b/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js
index 53fb87e10c99bc80f6e06ba7119f455b9a06336d..ed9570766fce28a494bf37b251d319db93cac5ed 100644
--- a/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js
+++ b/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (foo) { super.prop };
diff --git a/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js b/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js
index f91c35c61492ce2003d46a23170940f0f908399c..186baca6dbfe2e5cf76bcfa331eec6835323e4c6 100644
--- a/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js
+++ b/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   If strict mode, early error rules for StrictFormalParameters are applied
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js b/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js
index f2b24adaa7b2eea940fab2e550c325b421d8681b..39d32b22ecc05b47bc4c4535f1aff36e7c35d75b 100644
--- a/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js
+++ b/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js b/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js
index 1de28ba4f2da3f8b344d1a361f8e76c649cebf81..c4132bd5320e5821a2d83dba21b703c419c794ac 100644
--- a/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js
+++ b/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (bar) { let bar; }
diff --git a/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js b/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js
index bdd6e2b55d17753801278170664167a7696a34fe..73e1ad87049b254c68181a567ead76a7f33b6b5b 100644
--- a/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js
+++ b/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (foo = super()) { let bar; }
diff --git a/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js b/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js
index d68260db71a596b021fc65e367ac9f36c4559176..ee20b11cf311dc09767d779d292ca778fe7311b6 100644
--- a/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js
+++ b/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function foo (foo = super.foo) { let bar; }
diff --git a/test/language/statements/async-function/early-errors-no-async-generator.js b/test/language/statements/async-function/early-errors-no-async-generator.js
index 4e4d2e44a7e7056a3d8c6b04fa672b109070dfce..9c4d2b47133d9b2112f0ab35e92c1c37a74d9c54 100644
--- a/test/language/statements/async-function/early-errors-no-async-generator.js
+++ b/test/language/statements/async-function/early-errors-no-async-generator.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   Async generators are not a thing (yet)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 async function* foo() { }
diff --git a/test/language/statements/block/S12.1_A4_T1.js b/test/language/statements/block/S12.1_A4_T1.js
index bcd1697bcbef84d5696aef2a6f3bd3b4bf1a8301..6addb73a51f3a2dc447e8960346a756383f79872 100644
--- a/test/language/statements/block/S12.1_A4_T1.js
+++ b/test/language/statements/block/S12.1_A4_T1.js
@@ -5,7 +5,9 @@
 info: The production Block can't be inside of expression
 es5id: 12.1_A4_T1
 description: Checking if execution of "y={__func}()" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function __func(){};
diff --git a/test/language/statements/block/S12.1_A4_T2.js b/test/language/statements/block/S12.1_A4_T2.js
index 2a6a56ffe50cd3c697041767cb529fb6ab0fccbf..0032285eb5f23b72bcce7280c8cc0191a45ff933 100644
--- a/test/language/statements/block/S12.1_A4_T2.js
+++ b/test/language/statements/block/S12.1_A4_T2.js
@@ -5,7 +5,9 @@
 info: The production Block can't be inside of expression
 es5id: 12.1_A4_T2
 description: Checking if execution of "y={x;}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 x=1;
diff --git a/test/language/statements/break/S12.8_A1_T1.js b/test/language/statements/break/S12.8_A1_T1.js
index 9a631ca00cfe0346150d71fdf412755ef1dbd397..5128e628476a66de6c2bf30d8ce2a6ca64b05b55 100644
--- a/test/language/statements/break/S12.8_A1_T1.js
+++ b/test/language/statements/break/S12.8_A1_T1.js
@@ -5,7 +5,9 @@
 info: Appearing of break without an IterationStatement leads to syntax error
 es5id: 12.8_A1_T1
 description: Checking if break statement with no loop fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/break/S12.8_A1_T2.js b/test/language/statements/break/S12.8_A1_T2.js
index 4b2ee30c2bd8fcd02726fd54372885b2826662ab..517cd8b75381a29fbd3925ec4a60e0257da05f48 100644
--- a/test/language/statements/break/S12.8_A1_T2.js
+++ b/test/language/statements/break/S12.8_A1_T2.js
@@ -5,7 +5,9 @@
 info: Appearing of break without an IterationStatement leads to syntax error
 es5id: 12.8_A1_T2
 description: Checking if break Identifier with no loop fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/language/statements/break/S12.8_A1_T3.js b/test/language/statements/break/S12.8_A1_T3.js
index 9f1693cbadad985ee33756df68828cb0636697ac..fbd6e646d80705a3e30acf061512ea8c793b334d 100644
--- a/test/language/statements/break/S12.8_A1_T3.js
+++ b/test/language/statements/break/S12.8_A1_T3.js
@@ -7,7 +7,9 @@ es5id: 12.8_A1_T3
 description: >
     Checking if break statement with no loop, placed into a block,
     fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/break/S12.8_A1_T4.js b/test/language/statements/break/S12.8_A1_T4.js
index e1c5752ea2d05e3b21b0aba9602748e92a936621..a8c085f6749db662bef85a23678c58f807da859d 100644
--- a/test/language/statements/break/S12.8_A1_T4.js
+++ b/test/language/statements/break/S12.8_A1_T4.js
@@ -7,7 +7,9 @@ es5id: 12.8_A1_T4
 description: >
     Checking if break Identifier with no loop, placed into a  block,
     fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/language/statements/break/S12.8_A5_T1.js b/test/language/statements/break/S12.8_A5_T1.js
index c30bfa322ccd46e650fbdd7b51f7e32e6b7c0db7..e74390fdd53e0959f9815bb9139fce24ba40af03 100644
--- a/test/language/statements/break/S12.8_A5_T1.js
+++ b/test/language/statements/break/S12.8_A5_T1.js
@@ -7,7 +7,9 @@ info: >
     crossing function boundaries) IterationStatement
 es5id: 12.8_A5_T1
 description: Checking if breaking another labeled loop fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/language/statements/break/S12.8_A5_T2.js b/test/language/statements/break/S12.8_A5_T2.js
index d22d0af9c7005681412b59150c3f496400b7cce4..91a0bc7f41fef69a5c2dc1129cd03a140370c68d 100644
--- a/test/language/statements/break/S12.8_A5_T2.js
+++ b/test/language/statements/break/S12.8_A5_T2.js
@@ -9,7 +9,9 @@ es5id: 12.8_A5_T2
 description: >
     Checking if using function name as an Identifier appears to be
     invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/language/statements/break/S12.8_A5_T3.js b/test/language/statements/break/S12.8_A5_T3.js
index ac14feb593e51c59f41eccf2102e3fe6f06bb62b..955e7794f383e5808db911d6e20e51e2fd943e37 100644
--- a/test/language/statements/break/S12.8_A5_T3.js
+++ b/test/language/statements/break/S12.8_A5_T3.js
@@ -9,7 +9,9 @@ es5id: 12.8_A5_T3
 description: >
     Checking if using internal loop label as an Identifier appears to
     be invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/language/statements/break/S12.8_A6.js b/test/language/statements/break/S12.8_A6.js
index d996d392046adad235eed9a8ddd836991a343031..1a3ad0014e5eb6b8ae5a412e1f07bb304bc0b06d 100644
--- a/test/language/statements/break/S12.8_A6.js
+++ b/test/language/statements/break/S12.8_A6.js
@@ -9,7 +9,9 @@ es5id: 12.8_A6
 description: >
     Checking if using "break Identifier" within a function body
     appears to be invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/break/S12.8_A8_T1.js b/test/language/statements/break/S12.8_A8_T1.js
index cdcb23e929046f368a35382d27f871d67427a17c..f2ff054be0058003a724ce29296fed5be1455899 100644
--- a/test/language/statements/break/S12.8_A8_T1.js
+++ b/test/language/statements/break/S12.8_A8_T1.js
@@ -7,7 +7,9 @@ es5id: 12.8_A8_T1
 description: >
     Checking if using "break Identifier" from within catch Block
     appears to be invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/break/S12.8_A8_T2.js b/test/language/statements/break/S12.8_A8_T2.js
index 51d7f1f49a16541eaff8097911033bfa9ee9b5e4..772289224f02847ab5607d91c6daaace931161f7 100644
--- a/test/language/statements/break/S12.8_A8_T2.js
+++ b/test/language/statements/break/S12.8_A8_T2.js
@@ -7,7 +7,9 @@ es5id: 12.8_A8_T2
 description: >
     Checking if using "break Identifier" from within catch Block
     appears to be invalid
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js b/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js
index 1df3a557dd95cbc1b79a68fc68f2823241e1044a..400cda4473914e676b0a5a97de8bdb0fd19946e0 100644
--- a/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js
+++ b/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async bar(x = 1) {"use strict"}
diff --git a/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js b/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js
index e19517e0091647b42b70c79ba1671ce46e81b8e8..6832dcea004872568852a1a5c0d31c7ca0d97709 100644
--- a/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js
+++ b/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains arguments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo (arguments) { }
diff --git a/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js b/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js
index 4575aa1d9e392f62239b26c6b3ba4b177548dfdc..48535adb202518444b88f068b6bb38780bf37093 100644
--- a/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js
+++ b/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters' default expressions contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo (x = await) {  }
diff --git a/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js b/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js
index 5a0512b3c833f3ded744a6d49ff131ab76c2ef1c..b6776099b45a3451f1de908bfe6e1106a43ca46f 100644
--- a/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js
+++ b/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains await
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo (await) {  }
diff --git a/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js b/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js
index 5e0814155c5196f997cad90a7fc86f2a4a51c913..5d3b515459ac608c1a6c76a4ceb4298598c742b2 100644
--- a/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js
+++ b/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if AsyncFunctionBody contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo () { super() }
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 aaa491c938850aec121ab1a0474c96ab66637826..b060183acc35acb7dd6483505079e00c51faa2b1 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
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   Early error rules for StrictFormalParameters are applied
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class Foo {
diff --git a/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js b/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js
index 2f4341fb55503f20223bccf559695047e21b5632..f476e3921496f9e93f94f3f743e7c8048b3f132c 100644
--- a/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js
+++ b/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a SyntaxError if FormalParameters contains eval in strict mode
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo(eval) { }
diff --git a/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js b/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js
index f7170dc9db32a0372147a21fa38c0fd20d966e3e..dbcdd6dba888470438e66a190a7b6ff75d64c1bb 100644
--- a/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js
+++ b/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js
@@ -6,7 +6,9 @@ author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: >
   It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class Foo {
diff --git a/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js b/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js
index 8103422068888ff02d26038df94b45570aeb3555..bef1a5c81196e62f0d64abf086242453743ce73c 100644
--- a/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js
+++ b/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js
@@ -5,7 +5,9 @@
 author: Brian Terlson <brian.terlson@microsoft.com>
 esid: pending
 description: It is a syntax error if FormalParameters contains SuperCall is true
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class Foo {
   async foo(foo = super()) { }
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-binding-identifier.js b/test/language/statements/class/definition/methods-gen-yield-as-binding-identifier.js
index 3bcdafe5d3fc28812ff31471eae63ceaa1626279..ff2f57abb2bda3b8fabe98961e554a29b1430635 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-binding-identifier.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-binding-identifier.js
@@ -7,7 +7,9 @@
       not be used as a binding identifier.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js b/test/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js
index bb081f14e90e0209e6714b3d9750f8ae946038b5..5540822b63516341b7689201f4e4330f98200c71 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js
@@ -7,7 +7,9 @@
       expression within classes.
   features: [generators]
   es6id: 14.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js b/test/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js
index 1cf64ff35780c8034f8ce6b78ce234dc1b330a5c..3ecab10e8f5f551b3faf886c1cf91fb9976aa498 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js
@@ -7,7 +7,9 @@
       within classes.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-label.js b/test/language/statements/class/definition/methods-gen-yield-as-label.js
index 094f90ac729eafa61e89bb83952f59ff90ea2fc3..6b9da37724a582322d6b04b48ccc5b1f2f39738c 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-label.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-label.js
@@ -7,7 +7,9 @@
       not be used as a label.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js b/test/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js
index f4bb32f4167e025d17853b0e1b5e074d91d0eafd..538a14447bba739fb2a0fd1439a4efce331a2c82 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js
@@ -6,7 +6,9 @@
       `yield` expressions are not LogicalOrExpressions.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-as-parameter.js b/test/language/statements/class/definition/methods-gen-yield-as-parameter.js
index a1b648051ed724c2c3c87acc6d820884c3a25845..2b036aaec1f2c71f4b7485e7342e7a23c6ddd29e 100644
--- a/test/language/statements/class/definition/methods-gen-yield-as-parameter.js
+++ b/test/language/statements/class/definition/methods-gen-yield-as-parameter.js
@@ -7,7 +7,9 @@
       not be used as the binding identifier of a parameter.
   features: [generators]
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-star-after-newline.js b/test/language/statements/class/definition/methods-gen-yield-star-after-newline.js
index 80cef3e5618953ad5cde502fdbc0e93fc56117d9..97cb6f5c5006edbad9c7a34884bdba10efcef096 100644
--- a/test/language/statements/class/definition/methods-gen-yield-star-after-newline.js
+++ b/test/language/statements/class/definition/methods-gen-yield-star-after-newline.js
@@ -6,7 +6,9 @@
       A newline may not precede the `*` token in a `yield` expression.
   features: [generators]
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/methods-gen-yield-weak-binding.js b/test/language/statements/class/definition/methods-gen-yield-weak-binding.js
index 8a8d4aa491946192c22c57e9946ec61e8f773d5b..b3e4aef7339cb5054560869dc1c72449fcc0dffb 100644
--- a/test/language/statements/class/definition/methods-gen-yield-weak-binding.js
+++ b/test/language/statements/class/definition/methods-gen-yield-weak-binding.js
@@ -6,7 +6,9 @@
       `yield` expressions bind weakly
   features: [generators]
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 class A {
diff --git a/test/language/statements/class/definition/params-trailing-comma-rest.js b/test/language/statements/class/definition/params-trailing-comma-rest.js
index 6ba7c5672e610d8c136bbcc2b281068a9cf827dc..d295a468bbe8aeb36b430f705f7ab61d76dceb70 100644
--- a/test/language/statements/class/definition/params-trailing-comma-rest.js
+++ b/test/language/statements/class/definition/params-trailing-comma-rest.js
@@ -6,7 +6,9 @@ description: >
   class method parameter lists.
 info: http://jeffmo.github.io/es-trailing-function-commas/
 author: Jeff Morrison <lbljeffmo@gmail.com>
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class C {
   m(...[],) {}
diff --git a/test/language/statements/class/gen-method-param-dflt-yield.js b/test/language/statements/class/gen-method-param-dflt-yield.js
index 708120b2b5160f9f31bbe9f20cdb959e14751866..1f0984718301ecb421901691acbe88fc0fec193e 100644
--- a/test/language/statements/class/gen-method-param-dflt-yield.js
+++ b/test/language/statements/class/gen-method-param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C {
diff --git a/test/language/statements/class/getter-param-dflt.js b/test/language/statements/class/getter-param-dflt.js
index 460bec80b82d63d8935132926ed6f219fcd02166..4e0db483254ee3c7181874ed65e028d2521b132b 100644
--- a/test/language/statements/class/getter-param-dflt.js
+++ b/test/language/statements/class/getter-param-dflt.js
@@ -13,7 +13,9 @@ info: |
 
     get PropertyName[?Yield] ( ) { FunctionBody }
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C { get a(param = null) {} }
diff --git a/test/language/statements/class/method-param-yield.js b/test/language/statements/class/method-param-yield.js
index 244c1e8945e0f7c251f7e821c0be36041400d55c..a8461d4c69bba393d9c7e37f1f5b90651ff24225 100644
--- a/test/language/statements/class/method-param-yield.js
+++ b/test/language/statements/class/method-param-yield.js
@@ -10,7 +10,9 @@ info: |
 
     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C {
diff --git a/test/language/statements/class/static-gen-method-param-dflt-yield.js b/test/language/statements/class/static-gen-method-param-dflt-yield.js
index 903c8eeba314c60f40306d46fc177fccf8f73590..31a0c074cfa65c28b30cb0469fd4ef04f1e104ca 100644
--- a/test/language/statements/class/static-gen-method-param-dflt-yield.js
+++ b/test/language/statements/class/static-gen-method-param-dflt-yield.js
@@ -15,7 +15,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C {
diff --git a/test/language/statements/class/static-method-param-yield.js b/test/language/statements/class/static-method-param-yield.js
index be2fc130021108b77a5013afca6389c7b39958ac..263b50f6b1d19156a1b8c84446177efb93516aa7 100644
--- a/test/language/statements/class/static-method-param-yield.js
+++ b/test/language/statements/class/static-method-param-yield.js
@@ -10,7 +10,9 @@ info: |
 
     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C {
diff --git a/test/language/statements/class/strict-mode/with.js b/test/language/statements/class/strict-mode/with.js
index 75858186d5c095595b5eb9faae5430a25ab717c2..b1a619fc8995a6b96c439bdbf91dc6fadf619ec3 100644
--- a/test/language/statements/class/strict-mode/with.js
+++ b/test/language/statements/class/strict-mode/with.js
@@ -4,7 +4,9 @@
 es6id: 14.5
 description: >
     class strict mode: `with` disallowed
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 class C extends (function B() { with ({}); return B; }()) {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js b/test/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js
index a40ed2472406c52e7e4d617bf45857d35e378d82..f2452f6fbe9348ad2a72eade5ebbb2af2da62755 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js
@@ -7,7 +7,9 @@ description: >
 
     It is a Syntax Error if PrototypePropertyNameList of ClassElementList contains more than one occurrence of "constructor".
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   constructor() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js b/test/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js
index 07a9c5d879611562975fef0560678a470c669678..0b759115ff0e4801f9471d7f7c4f15dc731e85ed 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js
@@ -10,7 +10,9 @@ description: >
       2. If constructor is empty, return false.
       3. Return HasDirectSuper of constructor.
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   constructor() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js
index f44157bb93b3b0dc1a8b3655cdc66b2038d0688f..7f5d66760e58de0d617beeae61e7f4565fc4fa94 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js
@@ -7,7 +7,9 @@ description: >
 
     It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true.
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js
index e850d38da8bd636b0bee967f1e4fd6a8a736859e..5d665efd5dc54dbff7b09e38faef065ac8598f8a 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (GeneratorMethod)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   * method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js
index aad5526bafe4ac43d0d3450ac01e3883f17c5d9d..b5888db49eb0e84d6a9f1e3e92fde3a71771580e 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js
@@ -9,7 +9,9 @@ description: >
 
     (GeneratorMethod)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   * constructor() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js
index 1cabc3a7e735df0106bb7a136481cb413c68a61d..0bb2db262671f75fb93ae6055dcfa01a8b877552 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (get)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   get method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js
index 5cf769a3fd88b67b79adb318ae1b06ecef31534e..c48d155928061c1b96bf90cafaee6bb5949586bb 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js
@@ -9,7 +9,9 @@ description: >
 
     (get)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   get constructor() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js
index 11a636583f3bd63e1d3c5b173346c05ab767fd6f..1132f0a87a512a7a8738dd0cdb3cd7265d7b0ea0 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (set)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   set method(_) {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js b/test/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js
index e0f3e48aced043b839f8be6bc8b62d2918a1c2f2..500da9c523b54531cc0c1dbc055be3a4de9feff5 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js
@@ -9,7 +9,9 @@ description: >
 
     (set)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   set constructor(_) {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js
index c5981097b126038a72f355ddda6cdbf74743892d..b738c74cf7285a3b5d19c233ccac2e67e8e076cf 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js
@@ -7,7 +7,9 @@ description: >
 
     It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js
index 4b1c412a63689340696b1a5c1ba2a9826e468e47..98918d166a5bd8c8b798c3fb3f4de53543ad14e3 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (get)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static get method() {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js
index 67afb020eac472d060233fccec715761c3d89adb..294f0552226a1ed3061a6a8956debadaae76f815 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js
@@ -9,7 +9,9 @@ description: >
 
     (get)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static get prototype() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js
index 6ea780588ed5933be1a305d5bc49c0587a25dbed..abd42901d3308844495a83d20432ec7d37fed155 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js
@@ -7,7 +7,9 @@ description: >
 
     It is a Syntax Error if PropName of MethodDefinition is "prototype".
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static prototype() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js
index fe7f6c52adb3e7b546461bca0d4a756387d2d18e..05de3dfc049bb6705e48bd6b61d6455d9ebd7c24 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js
@@ -9,7 +9,9 @@ description: >
 
     (set)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static set method(_) {
diff --git a/test/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js b/test/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js
index 03e104010c05b53e393fcca264bc3f3ba792db92..10f1a7716ff37eecd5a090586bec33d2b65c1bf2 100644
--- a/test/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js
+++ b/test/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js
@@ -9,7 +9,9 @@ description: >
 
     (set)
 
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {
   static set prototype() {}
diff --git a/test/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js b/test/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js
index 22e4c97ffda4915be19ed64f54b16f790641dfa3..80779355d0ffe10f9618b1b4aca43bbd0611bc13 100644
--- a/test/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js
+++ b/test/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js
@@ -6,7 +6,9 @@ description: >
     Block : { StatementList }
 
     It is a Syntax Error if the LexicallyDeclaredNames of StatementList contains any duplicate entries.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 {
   class A {}
diff --git a/test/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js b/test/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js
index 81f19676377df5e60f0ce2c91b9b090a14553008..1e5b1fd1eaa134d82b4783b0c0707e63a84cbdbe 100644
--- a/test/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js
+++ b/test/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js
@@ -6,7 +6,9 @@ description: >
     ScriptBody : StatementList
 
     It is a Syntax Error if the LexicallyDeclaredNames of StatementList contains any duplicate entries.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 class A {}
 class A {}
diff --git a/test/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js b/test/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js
index 7077a0fdb5f0d51e3607c82f3e465296538e6666..74863da56874422140405da438b3052306361626 100644
--- a/test/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js
+++ b/test/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     Redeclaration error within strict mode function inside non-strict code.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [noStrict]
 ---*/
 (function() { 'use strict'; { const f = 1; var f; } })
diff --git a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js
index c77cc74962e5ec775016050095aa367776b9b5f8..cde8810b16a5bf38933cf7a83b388ea28e091b99 100644
--- a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js
+++ b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     const declarations mixed: with, without initialiser
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 const x = 1, y;
 
diff --git a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js
index b80fe15099b429a037e6823f6f636b1b5bd18191..bd4d8ad1e99f8d2b6a5d0c32156a3965b756e29e 100644
--- a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js
+++ b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     const declarations mixed: without, with initialiser
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 const x, y = 1;
 
diff --git a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js
index acc7f5bd07bcbbcf4119575f9b21d62e767b9c30..a19ea69ce2e77b9656333319c433e13ac227b1a1 100644
--- a/test/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js
+++ b/test/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     const declarations without initialiser
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 const x;
 
diff --git a/test/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js b/test/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js
index e6d9a0108f175547f0a2d37734ae3d97ead10be8..559c283dfb42c6e432163ccef7faeae25c3ed2be 100644
--- a/test/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js
+++ b/test/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js
@@ -8,7 +8,9 @@ description: >
     const: |const let| split across two lines is a static semantics early error.
 info: >
   Lexical declarations may not declare a binding named "let".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 
diff --git a/test/language/statements/const/syntax/with-initializer-do-statement-while-expression.js b/test/language/statements/const/syntax/with-initializer-do-statement-while-expression.js
index b145b91b12f9f4acba3364c2274347cf0d089873..8cb66c374ce3d9113271b0b536265eae50c07b05 100644
--- a/test/language/statements/const/syntax/with-initializer-do-statement-while-expression.js
+++ b/test/language/statements/const/syntax/with-initializer-do-statement-while-expression.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 do const x = 1; while (false)
diff --git a/test/language/statements/const/syntax/with-initializer-for-statement.js b/test/language/statements/const/syntax/with-initializer-for-statement.js
index 3e9667a08b15579cd7bca6331a5cbd63b96c46ad..571125e68896a19c4d50f691ae96428ecc7ce1b2 100644
--- a/test/language/statements/const/syntax/with-initializer-for-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-for-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (;false;) const x = 1;
diff --git a/test/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js b/test/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js
index 2e4826da4bc8a62376fd9552e8fd95a01844fdd9..c710482d2a6edb3ebacfdd3b6117deef9725f6fa 100644
--- a/test/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) {} else const x = 1;
diff --git a/test/language/statements/const/syntax/with-initializer-if-expression-statement.js b/test/language/statements/const/syntax/with-initializer-if-expression-statement.js
index 6ecb959ae0bf844ab518ce53c748320f44ac32cc..f485a5ca77d06e8f044eac40d9d6c22a5fbedf3f 100644
--- a/test/language/statements/const/syntax/with-initializer-if-expression-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-if-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) const x = 1;
diff --git a/test/language/statements/const/syntax/with-initializer-label-statement.js b/test/language/statements/const/syntax/with-initializer-label-statement.js
index d6b4d144ca464582b2bed59a4b88e3ee8283f2dc..432c2d37449b57dfd358667a6d5f6e4ab5211ce8 100644
--- a/test/language/statements/const/syntax/with-initializer-label-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-label-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     label: Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 label: const x = 1;
diff --git a/test/language/statements/const/syntax/with-initializer-while-expression-statement.js b/test/language/statements/const/syntax/with-initializer-while-expression-statement.js
index 7c0ffab5d250f5f915a066b7f35860d455a30bfb..7d35cfeb5c0073856e5160166a218f63f37c0964 100644
--- a/test/language/statements/const/syntax/with-initializer-while-expression-statement.js
+++ b/test/language/statements/const/syntax/with-initializer-while-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations with initialisers in statement positions: 
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 while (false) const x = 1;
diff --git a/test/language/statements/const/syntax/without-initializer-case-expression-statement-list.js b/test/language/statements/const/syntax/without-initializer-case-expression-statement-list.js
index 542f2107f8ae5c5216d0be767b39f94fd90656b3..6656dd493595eaef5504256f6e529b9b353349b1 100644
--- a/test/language/statements/const/syntax/without-initializer-case-expression-statement-list.js
+++ b/test/language/statements/const/syntax/without-initializer-case-expression-statement-list.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     case Expression : StatementList
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 switch (true) { case true: const x; }
diff --git a/test/language/statements/const/syntax/without-initializer-default-statement-list.js b/test/language/statements/const/syntax/without-initializer-default-statement-list.js
index 7af1230546cf9fcaf8754a7ff044527ff37fb29f..1d5c088e3518c34bc56898a14a7897590968f48b 100644
--- a/test/language/statements/const/syntax/without-initializer-default-statement-list.js
+++ b/test/language/statements/const/syntax/without-initializer-default-statement-list.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     default : StatementList
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 switch (true) { default: const x; }
diff --git a/test/language/statements/const/syntax/without-initializer-do-statement-while-expression.js b/test/language/statements/const/syntax/without-initializer-do-statement-while-expression.js
index f0fa50472ea48682f9504510391ce5bedcf67b28..d8e5f62d2ff4315afdc760535cdadb1417b00ba1 100644
--- a/test/language/statements/const/syntax/without-initializer-do-statement-while-expression.js
+++ b/test/language/statements/const/syntax/without-initializer-do-statement-while-expression.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 do const x; while (false)
diff --git a/test/language/statements/const/syntax/without-initializer-for-statement.js b/test/language/statements/const/syntax/without-initializer-for-statement.js
index f1c4a535ae4d3f29e96eba0cc3419cf2add50a07..5ef41674c604ef04b67d2cbeab8222bfe770c836 100644
--- a/test/language/statements/const/syntax/without-initializer-for-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-for-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (;false;) const x;
diff --git a/test/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js b/test/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js
index af8e62312a48e64168520d3b35b1019e8ee5704c..a0c3043e9be608a3e32c7fa5010e6a7fb5bfe88b 100644
--- a/test/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) {} else const x;
diff --git a/test/language/statements/const/syntax/without-initializer-if-expression-statement.js b/test/language/statements/const/syntax/without-initializer-if-expression-statement.js
index a93aa3d7b70ee40ad30579e2dd194c544df95493..e84e357e1a64331ce4176bc0c1fc0ce7657af166 100644
--- a/test/language/statements/const/syntax/without-initializer-if-expression-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-if-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) const x;
diff --git a/test/language/statements/const/syntax/without-initializer-label-statement.js b/test/language/statements/const/syntax/without-initializer-label-statement.js
index 39279abcae70db06d48c7a3b93ff442e712e934d..d7cfd173f407d43ed5f5d27863b9977672f572aa 100644
--- a/test/language/statements/const/syntax/without-initializer-label-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-label-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     label: Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 label: const x;
diff --git a/test/language/statements/const/syntax/without-initializer-while-expression-statement.js b/test/language/statements/const/syntax/without-initializer-while-expression-statement.js
index 9210efce8243776583724a8f6753ec9b3f3e0179..f726a94cc71be31b0f0c8da24004a54e15809e55 100644
--- a/test/language/statements/const/syntax/without-initializer-while-expression-statement.js
+++ b/test/language/statements/const/syntax/without-initializer-while-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     const declarations without initialisers in statement positions: 
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 while (false) const x;
diff --git a/test/language/statements/continue/S12.7_A1_T1.js b/test/language/statements/continue/S12.7_A1_T1.js
index b93a188952f2dd67a2ecd9fe20b5fe6004ba4466..367ee71e77d146577dc91109f521a34ac4817af9 100644
--- a/test/language/statements/continue/S12.7_A1_T1.js
+++ b/test/language/statements/continue/S12.7_A1_T1.js
@@ -7,7 +7,9 @@ es5id: 12.7_A1_T1
 description: >
     Checking if execution of single "continue" without any
     IterationStatement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/continue/S12.7_A1_T2.js b/test/language/statements/continue/S12.7_A1_T2.js
index 3f64dc48f93fc392ee155414abc2381826b6d066..de01cbdfee9375f4702c51b6b8766d0c4679f656 100644
--- a/test/language/statements/continue/S12.7_A1_T2.js
+++ b/test/language/statements/continue/S12.7_A1_T2.js
@@ -7,7 +7,9 @@ es5id: 12.7_A1_T2
 description: >
     Checking if single "continue" with Label but without any
     IterationStatement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/language/statements/continue/S12.7_A1_T3.js b/test/language/statements/continue/S12.7_A1_T3.js
index 5dc269fa757568ef11fff410743bce34b69a1bf4..a3a77601b260a25f05c616e52cc83aaed4ad36ea 100644
--- a/test/language/statements/continue/S12.7_A1_T3.js
+++ b/test/language/statements/continue/S12.7_A1_T3.js
@@ -7,7 +7,9 @@ es5id: 12.7_A1_T3
 description: >
     Checking if laballed "continue" with no IterationStatement, placed
     into a block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/language/statements/continue/S12.7_A1_T4.js b/test/language/statements/continue/S12.7_A1_T4.js
index f766c3390a65a1cc3bb67d296b16dcb3eab91718..58c2ba0448c417a3b6bba72e71e4f30e4c168b81 100644
--- a/test/language/statements/continue/S12.7_A1_T4.js
+++ b/test/language/statements/continue/S12.7_A1_T4.js
@@ -7,7 +7,9 @@ es5id: 12.7_A1_T4
 description: >
     Checking if execution of "continue" with no IterationStatement,
     placed into a block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/continue/S12.7_A5_T1.js b/test/language/statements/continue/S12.7_A5_T1.js
index 48980dd7a28ecdbcc8a96fc3ba80f0ffa41e0275..9a553b6b18d169bcb52f849070a4b93ca05ba613 100644
--- a/test/language/statements/continue/S12.7_A5_T1.js
+++ b/test/language/statements/continue/S12.7_A5_T1.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T1
 description: Trying to continue another labeled loop
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/language/statements/continue/S12.7_A5_T2.js b/test/language/statements/continue/S12.7_A5_T2.js
index e31903c2c79d3a171234663b1e0eaa6aae0cc072..248eb84f11a0378e7a2ee6cde0ea6529a0f4d201 100644
--- a/test/language/statements/continue/S12.7_A5_T2.js
+++ b/test/language/statements/continue/S12.7_A5_T2.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T2
 description: Identifier is a function name
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/language/statements/continue/S12.7_A5_T3.js b/test/language/statements/continue/S12.7_A5_T3.js
index 1f7b0226f05a2212b9fc580e1e714979af9c0c25..e00bf8c787ae7c6ddaf9fb935ba39be220d74ff3 100644
--- a/test/language/statements/continue/S12.7_A5_T3.js
+++ b/test/language/statements/continue/S12.7_A5_T3.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T3
 description: Identifier is within loop label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/language/statements/continue/S12.7_A6.js b/test/language/statements/continue/S12.7_A6.js
index 48d0646b2a5abee418aa531f5d9d0bb4e5f41d20..4a98557171040a8ac01bf2483517d5fabb7c6077 100644
--- a/test/language/statements/continue/S12.7_A6.js
+++ b/test/language/statements/continue/S12.7_A6.js
@@ -7,7 +7,9 @@ info: >
     IterationStatement yields SyntaxError
 es5id: 12.7_A6
 description: Using labaled "continue Identifier" within a function body
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/continue/S12.7_A8_T1.js b/test/language/statements/continue/S12.7_A8_T1.js
index 68e2e22d58a3697541b91a3a8ddb14dd8cce12bb..ba4197939a783feb17fb13867a3fd63152b9d919 100644
--- a/test/language/statements/continue/S12.7_A8_T1.js
+++ b/test/language/statements/continue/S12.7_A8_T1.js
@@ -7,7 +7,9 @@ es5id: 12.7_A8_T1
 description: >
     Checking if execution of "continue Identifier" within catch Block
     fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/continue/S12.7_A8_T2.js b/test/language/statements/continue/S12.7_A8_T2.js
index 005df354e10d6e237396fff2a80bcca158a0726e..5c3c10072b81be877a7dd44f776e69e4bc7069da 100644
--- a/test/language/statements/continue/S12.7_A8_T2.js
+++ b/test/language/statements/continue/S12.7_A8_T2.js
@@ -5,7 +5,9 @@
 info: Appearing of "continue" within a "try/catch" Block yields SyntaxError
 es5id: 12.7_A8_T2
 description: Checking if execution of "continue" within catch Block fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/language/statements/debugger/expression.js b/test/language/statements/debugger/expression.js
index c335e4e2b54a1de182647f6fa6ce169069897ec9..1b965da36c2438ee2e8a984f093cdfcfa49a7b12 100644
--- a/test/language/statements/debugger/expression.js
+++ b/test/language/statements/debugger/expression.js
@@ -4,7 +4,9 @@
 description: The `debugger` token may not occupy an expression position
 esid: sec-debugger-statement
 es6id: 13.16
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 (debugger);
diff --git a/test/language/statements/do-while/S12.6.1_A12.js b/test/language/statements/do-while/S12.6.1_A12.js
index a174829c5f9ca0d48591550e282506da125ebfea..999d6d381f400594482d68551c98fc72187976a9 100644
--- a/test/language/statements/do-while/S12.6.1_A12.js
+++ b/test/language/statements/do-while/S12.6.1_A12.js
@@ -5,7 +5,9 @@
 info: Any statement within "do-while" construction must be a compound
 es5id: 12.6.1_A12
 description: Checking if execution of "do var x=1; var y =2; while (0)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A15.js b/test/language/statements/do-while/S12.6.1_A15.js
index f079896efac8906a43c5f20069e158ea9cc0c036..5c76c385c1a6ffe9c424cbf725379ecec6d4d457 100644
--- a/test/language/statements/do-while/S12.6.1_A15.js
+++ b/test/language/statements/do-while/S12.6.1_A15.js
@@ -5,7 +5,9 @@
 info: Block within a "do-while" Expression is not allowed
 es5id: 12.6.1_A15
 description: Using "{0}" Block as an Expression
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T1.js b/test/language/statements/do-while/S12.6.1_A6_T1.js
index a0aacd85fd7b4a1eb878543d1b3ae0c0d2892de3..2597009ea1037a3f0518593c350d2f5f1afc7951 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T1.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T1.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T1
 description: Checking if execution of "do{} while 1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T2.js b/test/language/statements/do-while/S12.6.1_A6_T2.js
index a7686e92c8533611c25f90d8bd49748a992a9596..c63c1bffcdd9bf8048209fed5fa5c2a83572fab1 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T2.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T2.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T2
 description: Checking if execution of "do{} while 0" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T3.js b/test/language/statements/do-while/S12.6.1_A6_T3.js
index 4f59089ddc33f336327b4ade2d5e51724cf8d333..fe0c68c05678b77ae247aae244211c4976ad9456 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T3.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T3.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T3
 description: Checking if execution of "do{}while true" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T4.js b/test/language/statements/do-while/S12.6.1_A6_T4.js
index 9e77619bcaa7e59a37cb0f0bb45a52465db3d76b..e10fbbf268820e32655d69bb5ccc1960cfb57f69 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T4.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T4.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T4
 description: Checking if execution of "do{}while false" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T5.js b/test/language/statements/do-while/S12.6.1_A6_T5.js
index 2182ea4f9af11c92a965714b16b41769649fe6a3..7ad3ebe8aa05c2a4118043f80f5c22e4508e2185 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T5.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T5.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T5
 description: Checking if execution of "do{}while ''" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A6_T6.js b/test/language/statements/do-while/S12.6.1_A6_T6.js
index 2ee26417fb30c4026b22e7499eccb6823294e1d0..88b0d79131e51f659e3d44e3b5aa70c395eddb51 100644
--- a/test/language/statements/do-while/S12.6.1_A6_T6.js
+++ b/test/language/statements/do-while/S12.6.1_A6_T6.js
@@ -5,7 +5,9 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T6
 description: Checking if execution of "do{}while 'hood'" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/decl-cls.js b/test/language/statements/do-while/decl-cls.js
index b88a399b8ba855454d066e4dfdb0111d0abcb3bc..f4bea89c81f1b5632f341de71e47c8f410e71ed0 100644
--- a/test/language/statements/do-while/decl-cls.js
+++ b/test/language/statements/do-while/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do class C {} while (false)
diff --git a/test/language/statements/do-while/decl-const.js b/test/language/statements/do-while/decl-const.js
index 6e8a23a70f1b022e8e1ab830fe80d98ef47e2c94..f1bacdb9e14bdee23df6363db89ccd669682c329 100644
--- a/test/language/statements/do-while/decl-const.js
+++ b/test/language/statements/do-while/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do const x = null; while (false)
diff --git a/test/language/statements/do-while/decl-fun.js b/test/language/statements/do-while/decl-fun.js
index ff94a75480aa77ac6d8ae820d278cfacaf5c9710..a1f104b498b1e5a67a79f25045783ed9bb3e0561 100644
--- a/test/language/statements/do-while/decl-fun.js
+++ b/test/language/statements/do-while/decl-fun.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do function f() {} while (false)
diff --git a/test/language/statements/do-while/decl-gen.js b/test/language/statements/do-while/decl-gen.js
index 2e47fcc5fd97b15c20291df71e918e725d177227..3fc8778ea8792515e182d5ce37c8645c68d6b13f 100644
--- a/test/language/statements/do-while/decl-gen.js
+++ b/test/language/statements/do-while/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do function* g() {} while (false)
diff --git a/test/language/statements/do-while/decl-let.js b/test/language/statements/do-while/decl-let.js
index 42c320ea45c3b9d52757e429f929d36278909d59..2392e6a2075bb8882b9379984fb7b6a7807962f4 100644
--- a/test/language/statements/do-while/decl-let.js
+++ b/test/language/statements/do-while/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-do-while-statement
 es6id: 13.7.2
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do let x; while (false)
diff --git a/test/language/statements/do-while/labelled-fn-stmt.js b/test/language/statements/do-while/labelled-fn-stmt.js
index 0469dc9b8fe5d7bc8997af19b876134c52bed578..80f2faf6d43d5556821bb0d2c174885d56b46ad8 100644
--- a/test/language/statements/do-while/labelled-fn-stmt.js
+++ b/test/language/statements/do-while/labelled-fn-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/expression/S12.4_A1.js b/test/language/statements/expression/S12.4_A1.js
index dc4fe9dc0358f5637eb97c34ec8964a05b2e0b63..7671e3cbfc37ce68298e21fac16c637a3e1b6b1c 100644
--- a/test/language/statements/expression/S12.4_A1.js
+++ b/test/language/statements/expression/S12.4_A1.js
@@ -7,7 +7,9 @@ info: >
     that might make it ambiguous with a FunctionDeclaration
 es5id: 12.4_A1
 description: Checking if execution of "function(){}()" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for-in/S12.6.4_A15.js b/test/language/statements/for-in/S12.6.4_A15.js
index 64f1e25e1b6639c7f3adaac5af2873db91d5d249..487474793e11d9ba4f33cb284cd10d82148c14f2 100644
--- a/test/language/statements/for-in/S12.6.4_A15.js
+++ b/test/language/statements/for-in/S12.6.4_A15.js
@@ -5,7 +5,9 @@
 info: Block within a "for-in" Expression is not allowed
 es5id: 12.6.4_A15
 description: Using block within "for-in" Expression
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var __arr=[1,2,3];
diff --git a/test/language/statements/for-in/decl-cls.js b/test/language/statements/for-in/decl-cls.js
index 85ff5e16a30590568db239367904a6c6572bc1fd..359f33b1d70772b510c02cfddc55dfde9086dedf 100644
--- a/test/language/statements/for-in/decl-cls.js
+++ b/test/language/statements/for-in/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) class C {}
diff --git a/test/language/statements/for-in/decl-const.js b/test/language/statements/for-in/decl-const.js
index 3a55cd477d68e98fa55da8f2d4659cb22f2d81d6..527202d75753454439d894c35403c2e3105ac701 100644
--- a/test/language/statements/for-in/decl-const.js
+++ b/test/language/statements/for-in/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) const y = null;
diff --git a/test/language/statements/for-in/decl-fun.js b/test/language/statements/for-in/decl-fun.js
index 29509bc4135c7551f26d949b32a16d85f237120f..5e8c5de56c93064dddb665ffad5a7275e0ccb647 100644
--- a/test/language/statements/for-in/decl-fun.js
+++ b/test/language/statements/for-in/decl-fun.js
@@ -4,7 +4,9 @@
 description: Function declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) function f() {}
diff --git a/test/language/statements/for-in/decl-gen.js b/test/language/statements/for-in/decl-gen.js
index 4d263ec376e9ef0c3eb751a439b1ff5a62388ef2..0dbf7e3c6652f8b85e3c75d3ccc40053e4b3f01f 100644
--- a/test/language/statements/for-in/decl-gen.js
+++ b/test/language/statements/for-in/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) function* g() {}
diff --git a/test/language/statements/for-in/decl-let.js b/test/language/statements/for-in/decl-let.js
index 2cf556476d6e1d5ffbd875807617c87a05880e62..0884d32202c6dab63836e12d76876e631c1c02a9 100644
--- a/test/language/statements/for-in/decl-let.js
+++ b/test/language/statements/for-in/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x in {}) let y;
diff --git a/test/language/statements/for-in/head-const-bound-names-dup.js b/test/language/statements/for-in/head-const-bound-names-dup.js
index a0afd41eb162159211b172e846f947267a688c89..b0388e1912e712732ce712112d2f0559e1f0ca82 100644
--- a/test/language/statements/for-in/head-const-bound-names-dup.js
+++ b/test/language/statements/for-in/head-const-bound-names-dup.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The head's declaration may not contain duplicate entries
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains any
     duplicate entries.
diff --git a/test/language/statements/for-in/head-const-bound-names-in-stmt.js b/test/language/statements/for-in/head-const-bound-names-in-stmt.js
index 3f8001633ec0f267040fed500fa64fc88092dfcf..e084ca56b507e6ecd2d45bc7922af8bde8ac629c 100644
--- a/test/language/statements/for-in/head-const-bound-names-in-stmt.js
+++ b/test/language/statements/for-in/head-const-bound-names-in-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The body may not re-declare variables declared in the head
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if any element of the BoundNames of ForDeclaration
     also occurs in the VarDeclaredNames of Statement.
diff --git a/test/language/statements/for-in/head-const-bound-names-let.js b/test/language/statements/for-in/head-const-bound-names-let.js
index ddaea955aa589ee086ac4c25e1cbca26c80f569e..dc83306d858feb1415775ce7291cc4d4b3b05531 100644
--- a/test/language/statements/for-in/head-const-bound-names-let.js
+++ b/test/language/statements/for-in/head-const-bound-names-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The declaration may not contain a binding for `let`
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
 esid: sec-for-in-and-for-of-statements
diff --git a/test/language/statements/for-in/head-let-bound-names-dup.js b/test/language/statements/for-in/head-let-bound-names-dup.js
index 8e395f5f93731a27bd364e60d1cf13beb3faed84..f347753a8f6829282413c44d0a46fdd691f977b7 100644
--- a/test/language/statements/for-in/head-let-bound-names-dup.js
+++ b/test/language/statements/for-in/head-let-bound-names-dup.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The head's declaration may not contain duplicate entries
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains any
     duplicate entries.
diff --git a/test/language/statements/for-in/head-let-bound-names-in-stmt.js b/test/language/statements/for-in/head-let-bound-names-in-stmt.js
index 219a7fd2e2076d8cb3e161b6c0e2ec8e155698c5..d4dfe3e268fbedbc447317089eba609df964021d 100644
--- a/test/language/statements/for-in/head-let-bound-names-in-stmt.js
+++ b/test/language/statements/for-in/head-let-bound-names-in-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The body may not re-declare variables declared in the head
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if any element of the BoundNames of ForDeclaration
     also occurs in the VarDeclaredNames of Statement.
diff --git a/test/language/statements/for-in/head-let-bound-names-let.js b/test/language/statements/for-in/head-let-bound-names-let.js
index d70fbc5e9b32cd38d7a18c36f077c0386c9a3c00..c5c9c9754a4f6a977f6e95fd9a84cc6dfac808ba 100644
--- a/test/language/statements/for-in/head-let-bound-names-let.js
+++ b/test/language/statements/for-in/head-let-bound-names-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The declaration may not contain a binding for `let`
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
 flags: [noStrict]
diff --git a/test/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js b/test/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js
index ea340a318ae1b6c071bd9da4194d79b96f98c5cf..031fe155e66156336a3eccea53e8303a2d1c0dbe 100644
--- a/test/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js
+++ b/test/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js
@@ -14,7 +14,9 @@ info: >
     LeftHandSideExpression. This rule is recursively applied.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ((this) in {}) {}
diff --git a/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js b/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js
index 460f9128e8991c69752381db0ecfd440379a4668..1f2585f4f2b034f9dc0d1431733a6c4791c63021 100644
--- a/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js
+++ b/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js
@@ -10,7 +10,9 @@ info: >
     AssignmentPattern as the goal symbol.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ([(x, y)] in {}) {}
diff --git a/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js b/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js
index 871ebfb4aacb3e0d98ab9712e52f080d1d5bb366..4089c5082e9e2f2dac29011852c79a8a97ae9ba1 100644
--- a/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js
+++ b/test/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js
@@ -10,7 +10,9 @@ info: >
     AssignmentPattern as the goal symbol.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ({ m() {} } in {}) {}
diff --git a/test/language/statements/for-in/head-lhs-non-asnmt-trgt.js b/test/language/statements/for-in/head-lhs-non-asnmt-trgt.js
index 55e906093db7ab26d47786fe5ec8caf671871930..0813f474e01bcfc8c69f6df2a87912c70b582ffd 100644
--- a/test/language/statements/for-in/head-lhs-non-asnmt-trgt.js
+++ b/test/language/statements/for-in/head-lhs-non-asnmt-trgt.js
@@ -8,7 +8,9 @@ info: >
     LeftHandSideExpression is false.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (this in {}) {}
diff --git a/test/language/statements/for-in/labelled-fn-stmt-const.js b/test/language/statements/for-in/labelled-fn-stmt-const.js
index 9feb0161cc2b1908c3d74d4149cdf880ab340a1b..d1362ea1af08605cb6da7a2d132912efb1737a62 100644
--- a/test/language/statements/for-in/labelled-fn-stmt-const.js
+++ b/test/language/statements/for-in/labelled-fn-stmt-const.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-in/labelled-fn-stmt-let.js b/test/language/statements/for-in/labelled-fn-stmt-let.js
index 6e2c24e0cfddf897b5e142b9d494e4ef139b3c8b..9fbb407fc6960e654e7af1b821116008f65942cd 100644
--- a/test/language/statements/for-in/labelled-fn-stmt-let.js
+++ b/test/language/statements/for-in/labelled-fn-stmt-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-in/labelled-fn-stmt-lhs.js b/test/language/statements/for-in/labelled-fn-stmt-lhs.js
index bc5f6490cea31c364416c0fa139dd07c63ad8a70..7564b4cb6d162e52ccc10fc4a2941a95edfe27ac 100644
--- a/test/language/statements/for-in/labelled-fn-stmt-lhs.js
+++ b/test/language/statements/for-in/labelled-fn-stmt-lhs.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-in/labelled-fn-stmt-var.js b/test/language/statements/for-in/labelled-fn-stmt-var.js
index 25a17fe36fa968e8a4fe49beaf08893322469fef..1ac8edb3db7576848773fada62bdc1165ef1bbed 100644
--- a/test/language/statements/for-in/labelled-fn-stmt-var.js
+++ b/test/language/statements/for-in/labelled-fn-stmt-var.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-of/decl-cls.js b/test/language/statements/for-of/decl-cls.js
index d33b4eb58e7648b21f00dd7f01672f2bdf9954f1..4871ac9cf0eeb54fec355743f4dba7af311e5272 100644
--- a/test/language/statements/for-of/decl-cls.js
+++ b/test/language/statements/for-of/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) class C {}
diff --git a/test/language/statements/for-of/decl-const.js b/test/language/statements/for-of/decl-const.js
index 69d193185bff0e2386931602f219248652ef2d4b..9c34b0123405fbfec016ffbbd844f2a4b387e9d6 100644
--- a/test/language/statements/for-of/decl-const.js
+++ b/test/language/statements/for-of/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) const y = null;
diff --git a/test/language/statements/for-of/decl-fun.js b/test/language/statements/for-of/decl-fun.js
index 8001c192e9ddaad8751dc929011e6b5043e96b75..e2330dc1553795688cad34674c2c725b76cf9582 100644
--- a/test/language/statements/for-of/decl-fun.js
+++ b/test/language/statements/for-of/decl-fun.js
@@ -4,7 +4,9 @@
 description: Function declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) function f() {}
diff --git a/test/language/statements/for-of/decl-gen.js b/test/language/statements/for-of/decl-gen.js
index eb4b3aab1f3a3b9838466decdde38cbdb6ddba96..1914167d2770482adb534b815c6c04c0243bc346 100644
--- a/test/language/statements/for-of/decl-gen.js
+++ b/test/language/statements/for-of/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) function* g() {}
diff --git a/test/language/statements/for-of/decl-let.js b/test/language/statements/for-of/decl-let.js
index 93cd0725def8785f2a0ba74675ef7d5fdbb2a020..a7fc8f2fd28a27f46ce9039919d2deba45474206 100644
--- a/test/language/statements/for-of/decl-let.js
+++ b/test/language/statements/for-of/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-for-in-and-for-of-statements
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of []) let y;
diff --git a/test/language/statements/for-of/head-const-bound-names-dup.js b/test/language/statements/for-of/head-const-bound-names-dup.js
index 0fbfeeb269779d9973c4d4f926416a259759b133..38544ffc5bfd1dc6d2224776976c20bb58f1b72c 100644
--- a/test/language/statements/for-of/head-const-bound-names-dup.js
+++ b/test/language/statements/for-of/head-const-bound-names-dup.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The head's declaration may not contain duplicate entries
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains any
     duplicate entries.
diff --git a/test/language/statements/for-of/head-const-bound-names-in-stmt.js b/test/language/statements/for-of/head-const-bound-names-in-stmt.js
index a9cafda4e3b6f479f0171153b6c3c31506353b5d..7aad7a615a5b92a9886d25801ec7774647eb6b2d 100644
--- a/test/language/statements/for-of/head-const-bound-names-in-stmt.js
+++ b/test/language/statements/for-of/head-const-bound-names-in-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The body may not re-declare variables declared in the head
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if any element of the BoundNames of ForDeclaration
     also occurs in the VarDeclaredNames of Statement.
diff --git a/test/language/statements/for-of/head-const-bound-names-let.js b/test/language/statements/for-of/head-const-bound-names-let.js
index 07b2cbfea9d18fd453517c28f2aca99c7a887499..c6885f79bf3d14cb60b1040c80e9ec55455a548d 100644
--- a/test/language/statements/for-of/head-const-bound-names-let.js
+++ b/test/language/statements/for-of/head-const-bound-names-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The declaration may not contain a binding for `let`
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
 esid: sec-for-in-and-for-of-statements
diff --git a/test/language/statements/for-of/head-decl-no-expr.js b/test/language/statements/for-of/head-decl-no-expr.js
index 01da99998f6feaa43f59273110a0dbb5124fc7df..675a67d679014e3493950af20aea72f0d48e0e52 100644
--- a/test/language/statements/for-of/head-decl-no-expr.js
+++ b/test/language/statements/for-of/head-decl-no-expr.js
@@ -7,7 +7,9 @@ info: >
     IterationStatement :
         for ( ForDeclaration of AssignmentExpression ) Statement
 es6id: 13.7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (let x of [], []) {}
diff --git a/test/language/statements/for-of/head-expr-no-expr.js b/test/language/statements/for-of/head-expr-no-expr.js
index 14e8e47bc430c5c522d9006a3bdb734e9ff5116e..1ecb7bab60f9f4e58a7eeaa3e3347c25917a14c4 100644
--- a/test/language/statements/for-of/head-expr-no-expr.js
+++ b/test/language/statements/for-of/head-expr-no-expr.js
@@ -7,7 +7,9 @@ info: >
     IterationStatement :
         for ( LeftHandSideExpression of AssignmentExpression ) Statement
 es6id: 13.7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var x;
diff --git a/test/language/statements/for-of/head-let-bound-names-dup.js b/test/language/statements/for-of/head-let-bound-names-dup.js
index 32bfb157b4767f94a3279be82aece0eb9cad3d08..51fd365615d13d46d6d338e644906b2c524059d8 100644
--- a/test/language/statements/for-of/head-let-bound-names-dup.js
+++ b/test/language/statements/for-of/head-let-bound-names-dup.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The head's declaration may not contain duplicate entries
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains any
     duplicate entries.
diff --git a/test/language/statements/for-of/head-let-bound-names-in-stmt.js b/test/language/statements/for-of/head-let-bound-names-in-stmt.js
index eababe1a3e166e6a02b485b44d334e7a3d51103f..42b512c4b25c817890f0018b9f49f9dad1fdefa0 100644
--- a/test/language/statements/for-of/head-let-bound-names-in-stmt.js
+++ b/test/language/statements/for-of/head-let-bound-names-in-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The body may not re-declare variables declared in the head
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if any element of the BoundNames of ForDeclaration
     also occurs in the VarDeclaredNames of Statement.
diff --git a/test/language/statements/for-of/head-let-bound-names-let.js b/test/language/statements/for-of/head-let-bound-names-let.js
index bff8bdbf56777a08e71a04f0f57de534c9ffe3cf..b591bc504b7f2e063bb57b01981c6c3016a3bd3e 100644
--- a/test/language/statements/for-of/head-let-bound-names-let.js
+++ b/test/language/statements/for-of/head-let-bound-names-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: The declaration may not contain a binding for `let`
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: |
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
 flags: [noStrict]
diff --git a/test/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js b/test/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js
index 7f7749ec7982c2259473c9b8edcb9be4a1555f87..025dd4fe15aee75a8882660aa8eef7b0de4e8303 100644
--- a/test/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js
+++ b/test/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js
@@ -14,7 +14,9 @@ info: >
     LeftHandSideExpression. This rule is recursively applied.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ((this) of []) {}
diff --git a/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js b/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js
index cde3f4ed2f58d404cc29bc63954c2633025465f8..0092b720c21e48aa8cabb4a5a889fb434457551c 100644
--- a/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js
+++ b/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js
@@ -10,7 +10,9 @@ info: >
     AssignmentPattern as the goal symbol.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ([(x, y)] of []) {}
diff --git a/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js b/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js
index 66562b56b4cb04a9b61b288a96341913dfad7d79..81b881177c415de06f3f9fa21a2d5653db82706c 100644
--- a/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js
+++ b/test/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js
@@ -10,7 +10,9 @@ info: >
     AssignmentPattern as the goal symbol.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ({ m() {} } of []) {}
diff --git a/test/language/statements/for-of/head-lhs-let.js b/test/language/statements/for-of/head-lhs-let.js
index 8c3e0fe2f651c7a726190e9ee1f2053c662fbddb..baa4db286ad0b61ab62c07e67f81429c46428e53 100644
--- a/test/language/statements/for-of/head-lhs-let.js
+++ b/test/language/statements/for-of/head-lhs-let.js
@@ -15,7 +15,9 @@ info: |
 
     for ( ForDeclaration[?Yield] of AssignmentExpression[+In, ?Yield] )
       Statement[?Yield, ?Return]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( let of [] ) ;
diff --git a/test/language/statements/for-of/head-lhs-non-asnmt-trgt.js b/test/language/statements/for-of/head-lhs-non-asnmt-trgt.js
index 3b0868017b3dee214d49a852eaf49a1ef1e28443..a0dc7105b2e5b2f4a56db017d88e55b1ef79c03f 100644
--- a/test/language/statements/for-of/head-lhs-non-asnmt-trgt.js
+++ b/test/language/statements/for-of/head-lhs-non-asnmt-trgt.js
@@ -8,7 +8,9 @@ info: >
     LeftHandSideExpression is false.
 esid: sec-for-in-and-for-of-statements-static-semantics-early-errors
 es6id: 13.7.5
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (this of []) {}
diff --git a/test/language/statements/for-of/head-var-no-expr.js b/test/language/statements/for-of/head-var-no-expr.js
index f2de943db97dd668bb01c29de6f96723844dc187..6e72ecd3031eb0a05e6f89393a978453bac88944 100644
--- a/test/language/statements/for-of/head-var-no-expr.js
+++ b/test/language/statements/for-of/head-var-no-expr.js
@@ -7,7 +7,9 @@ info: >
     IterationStatement :
         for ( var ForBinding of AssignmentExpression ) Statement
 es6id: 13.7
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for (var x of [], []) {}
diff --git a/test/language/statements/for-of/labelled-fn-stmt-const.js b/test/language/statements/for-of/labelled-fn-stmt-const.js
index 09cd108e533630c36e411f1a89e2bb8d5938247b..4442f3c4526fd78290f167b912dd470d07094863 100644
--- a/test/language/statements/for-of/labelled-fn-stmt-const.js
+++ b/test/language/statements/for-of/labelled-fn-stmt-const.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-of/labelled-fn-stmt-let.js b/test/language/statements/for-of/labelled-fn-stmt-let.js
index a4032965e09c294fc23cb9611ba77718cbfcead3..3a6b5184799e386e4e232493ff3136c5c8bb8509 100644
--- a/test/language/statements/for-of/labelled-fn-stmt-let.js
+++ b/test/language/statements/for-of/labelled-fn-stmt-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-of/labelled-fn-stmt-lhs.js b/test/language/statements/for-of/labelled-fn-stmt-lhs.js
index 7873b6bd19147dcfc3061270a3796296a7f9b37e..e0d2ef855c33045b7d22aaa3fcd51a27c81a63bd 100644
--- a/test/language/statements/for-of/labelled-fn-stmt-lhs.js
+++ b/test/language/statements/for-of/labelled-fn-stmt-lhs.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for-of/labelled-fn-stmt-var.js b/test/language/statements/for-of/labelled-fn-stmt-var.js
index 11c13cfb7e0f54ff51468d78d652c5421ffc4456..c174c5d2b1943854e8997ef5952a183d94304a48 100644
--- a/test/language/statements/for-of/labelled-fn-stmt-var.js
+++ b/test/language/statements/for-of/labelled-fn-stmt-var.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for/S12.6.3_A11.1_T3.js b/test/language/statements/for/S12.6.3_A11.1_T3.js
index 686587b616f32e1adec5b274d2fee1126cd8798a..94280411716a8386cf71e717beee9aeee6ed1f4b 100644
--- a/test/language/statements/for/S12.6.3_A11.1_T3.js
+++ b/test/language/statements/for/S12.6.3_A11.1_T3.js
@@ -8,7 +8,9 @@ info: >
     "var-loop" breaks
 es5id: 12.6.3_A11.1_T3
 description: Trying to continue non-existent label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/language/statements/for/S12.6.3_A11_T3.js b/test/language/statements/for/S12.6.3_A11_T3.js
index a3272871cb4e9bc66430aa637916e61993e8c85f..2dfabdcccdf31d6ea3604c0c8eaeb6210b14db1f 100644
--- a/test/language/statements/for/S12.6.3_A11_T3.js
+++ b/test/language/statements/for/S12.6.3_A11_T3.js
@@ -8,7 +8,9 @@ info: >
     breaks
 es5id: 12.6.3_A11_T3
 description: Trying to continue non-existent label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/language/statements/for/S12.6.3_A12.1_T3.js b/test/language/statements/for/S12.6.3_A12.1_T3.js
index b54efa56ce4f2959859fa8f743af770151f345dc..51508b0bc304994c063ab9a6a1a5d2e900f690e9 100644
--- a/test/language/statements/for/S12.6.3_A12.1_T3.js
+++ b/test/language/statements/for/S12.6.3_A12.1_T3.js
@@ -8,7 +8,9 @@ info: >
     returned while evaluating a "var-loop"
 es5id: 12.6.3_A12.1_T3
 description: Trying to break non-existent label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/language/statements/for/S12.6.3_A12_T3.js b/test/language/statements/for/S12.6.3_A12_T3.js
index 42680be4d67e900bd1d6b65014de091a7252e477..4c5d997ee2b207350a2208857aa8913198be4d1e 100644
--- a/test/language/statements/for/S12.6.3_A12_T3.js
+++ b/test/language/statements/for/S12.6.3_A12_T3.js
@@ -8,7 +8,9 @@ info: >
     returned while evaluating a loop
 es5id: 12.6.3_A12_T3
 description: Trying to break non-existent label
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/language/statements/for/S12.6.3_A4.1.js b/test/language/statements/for/S12.6.3_A4.1.js
index aa8b4dca22636af97a8ea2777c74e887017b1028..c699257ddea8b43e89ee6115cc5504153fcc8c7a 100644
--- a/test/language/statements/for/S12.6.3_A4.1.js
+++ b/test/language/statements/for/S12.6.3_A4.1.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4.1
 description: Checking if execution of "for (var a in arr;1;){}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/language/statements/for/S12.6.3_A4_T1.js b/test/language/statements/for/S12.6.3_A4_T1.js
index d9654fa5f858534e0b8255872e06df43a96b44bc..c8e355bb24c3cb96f0d52ab68e9beef4818032e7 100644
--- a/test/language/statements/for/S12.6.3_A4_T1.js
+++ b/test/language/statements/for/S12.6.3_A4_T1.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4_T1
 description: Checking if execution of "for (a in arr;1;){}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/language/statements/for/S12.6.3_A4_T2.js b/test/language/statements/for/S12.6.3_A4_T2.js
index 0fe801b152b08eb6acf08f9443cfc9afdd5ce58d..ccffa955b4ee69b69edc986acfef5ba0dda363e2 100644
--- a/test/language/statements/for/S12.6.3_A4_T2.js
+++ b/test/language/statements/for/S12.6.3_A4_T2.js
@@ -8,7 +8,9 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4_T2
 description: Checking if execution of "for (1 in arr;1;){}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/language/statements/for/S12.6.3_A7.1_T1.js b/test/language/statements/for/S12.6.3_A7.1_T1.js
index 5b6170827903b9b46cc20969c3173cfccb50e5f0..fba75344df3ba8604f08c661dd22f2e628dc03c5 100644
--- a/test/language/statements/for/S12.6.3_A7.1_T1.js
+++ b/test/language/statements/for/S12.6.3_A7.1_T1.js
@@ -9,7 +9,9 @@ es5id: 12.6.3_A7.1_T1
 description: >
     Checking if execution of "for(var index=0; index<10; index++;
     index--)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A7.1_T2.js b/test/language/statements/for/S12.6.3_A7.1_T2.js
index 20cd21ef76322e3d67a7676f235556a59dd096d8..439ac887d099b460440de8392a892cbdceac83cb 100644
--- a/test/language/statements/for/S12.6.3_A7.1_T2.js
+++ b/test/language/statements/for/S12.6.3_A7.1_T2.js
@@ -9,7 +9,9 @@ es5id: 12.6.3_A7.1_T2
 description: >
     Checking if execution of "for(var index=0; index<10; index+=4;
     index++; index--)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A7_T1.js b/test/language/statements/for/S12.6.3_A7_T1.js
index 11189440ee6bd8e67f05a238f55675ad6afff933..68eefb6dd73f609ff2532a5212b3f179ee2d4f73 100644
--- a/test/language/statements/for/S12.6.3_A7_T1.js
+++ b/test/language/statements/for/S12.6.3_A7_T1.js
@@ -9,7 +9,9 @@ es5id: 12.6.3_A7_T1
 description: >
     Checking if execution of "for(index=0; index<10; index++;
     index--)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A7_T2.js b/test/language/statements/for/S12.6.3_A7_T2.js
index 342a611457ddd154fdb7ec32c57d48b9aea0c586..81dd59e6353b291396705b4f317cd2277f52b8c6 100644
--- a/test/language/statements/for/S12.6.3_A7_T2.js
+++ b/test/language/statements/for/S12.6.3_A7_T2.js
@@ -9,7 +9,9 @@ es5id: 12.6.3_A7_T2
 description: >
     Checking if execution of "for(index=0; index<10; index+=4;
     index++; index--)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A8.1_T1.js b/test/language/statements/for/S12.6.3_A8.1_T1.js
index eae1d63e7083ee297549363ac1288c65a0e4fb93..788e5313feedf8defd9fbd51334a3a10c3941b69 100644
--- a/test/language/statements/for/S12.6.3_A8.1_T1.js
+++ b/test/language/statements/for/S12.6.3_A8.1_T1.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8.1_T1
 description: >
     Checking if execution of "for(var index=0; index<100; {index++;
     index*2;}) {  arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8.1_T2.js b/test/language/statements/for/S12.6.3_A8.1_T2.js
index d5774cd7bbbe5de27c343b3a2c890e786f6e5347..e5aa75eb31ce9d415f3dc2a04297a2a25ecda628 100644
--- a/test/language/statements/for/S12.6.3_A8.1_T2.js
+++ b/test/language/statements/for/S12.6.3_A8.1_T2.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8.1_T2
 description: >
     Checking if execution of "for(var index=0; {index++;index<100;};
     index*2;) {  arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8.1_T3.js b/test/language/statements/for/S12.6.3_A8.1_T3.js
index 2298869eb8a53cc2eae14f9e856886a1991fc2cd..a4ca8ef743ade7c2acf602dc107388a6237cf624 100644
--- a/test/language/statements/for/S12.6.3_A8.1_T3.js
+++ b/test/language/statements/for/S12.6.3_A8.1_T3.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8.1_T3
 description: >
     Checking if execution of "for({var index=0; index+=1;}
     index++<=10; index*2;) { arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8_T1.js b/test/language/statements/for/S12.6.3_A8_T1.js
index 90a8a52e3f6abb6282393c9de6e40954d068aeec..4c90bd691232fbdac32ceea45b1e97d30bb8c920 100644
--- a/test/language/statements/for/S12.6.3_A8_T1.js
+++ b/test/language/statements/for/S12.6.3_A8_T1.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8_T1
 description: >
     Checking if execution of "for(index=0; index<100; {index++;
     index*2;}) {  arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8_T2.js b/test/language/statements/for/S12.6.3_A8_T2.js
index 8bb3742e9b7c89618123790b770da89b352500e8..d307a29a4c2534c0865f161e47632d7a474cf170 100644
--- a/test/language/statements/for/S12.6.3_A8_T2.js
+++ b/test/language/statements/for/S12.6.3_A8_T2.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8_T2
 description: >
     Checking if execution of "for(index=0; {index++;index<100;};
     index*2;) {  arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/S12.6.3_A8_T3.js b/test/language/statements/for/S12.6.3_A8_T3.js
index cea0f6099e54e369e75ce50eb5a91a23474f4819..c29bcf3d2cb72bbd3116333e9d85b71b59eba35f 100644
--- a/test/language/statements/for/S12.6.3_A8_T3.js
+++ b/test/language/statements/for/S12.6.3_A8_T3.js
@@ -7,7 +7,9 @@ es5id: 12.6.3_A8_T3
 description: >
     Checking if execution of "for({index=0; index+=1;} index++<=10;
     index*2;) { arr.add(""+index);}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/language/statements/for/decl-cls.js b/test/language/statements/for/decl-cls.js
index 54a6ffbc500469d2dac9c21bbc5d0e69c8d89ebf..f3b9d9ba880811659d546342bb09ba070bdf496e 100644
--- a/test/language/statements/for/decl-cls.js
+++ b/test/language/statements/for/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) class C {}
diff --git a/test/language/statements/for/decl-const.js b/test/language/statements/for/decl-const.js
index 0c54e877416fdc4c72ac71f41bf63803ac00b9b5..ea599f0de592c5207a775b48ca2fca1ffa5254d2 100644
--- a/test/language/statements/for/decl-const.js
+++ b/test/language/statements/for/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) const x = null;
diff --git a/test/language/statements/for/decl-fun.js b/test/language/statements/for/decl-fun.js
index ef3005a5c0b34bdc8ba8780e893faaffcb61864a..6ae66fc468273efcd3e72bc66390f3225e990a8d 100644
--- a/test/language/statements/for/decl-fun.js
+++ b/test/language/statements/for/decl-fun.js
@@ -4,7 +4,9 @@
 description: Function declaration not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) function f() {}
diff --git a/test/language/statements/for/decl-gen.js b/test/language/statements/for/decl-gen.js
index 30a02fa163e92e0fbb345c97579bdca6c118d458..6d427ac666c717f96bcd68c78b4511aeb2c8f1f7 100644
--- a/test/language/statements/for/decl-gen.js
+++ b/test/language/statements/for/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) function* g() {}
diff --git a/test/language/statements/for/decl-let.js b/test/language/statements/for/decl-let.js
index 9b40c281d4ea001d0975d0b62b0ccd2c49c100be..7e65f0261e0a088c3d789eb37600ebd367a8d69a 100644
--- a/test/language/statements/for/decl-let.js
+++ b/test/language/statements/for/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-for-statement
 es6id: 13.7.4
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 for ( ; false; ) let x;
diff --git a/test/language/statements/for/head-const-bound-names-in-stmt.js b/test/language/statements/for/head-const-bound-names-in-stmt.js
index 65ad8dde249303b56ce85ffe1fe4ded07181917e..793d427a9c8ecdd79cef739a9b6c90dbee3fe233 100644
--- a/test/language/statements/for/head-const-bound-names-in-stmt.js
+++ b/test/language/statements/for/head-const-bound-names-in-stmt.js
@@ -8,7 +8,9 @@ info: |
 
     It is a Syntax Error if any element of the BoundNames of LexicalDeclaration
     also occurs in the VarDeclaredNames of Statement.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-for-statement
 es6id: 13.7.4
 ---*/
diff --git a/test/language/statements/for/head-let-bound-names-in-stmt.js b/test/language/statements/for/head-let-bound-names-in-stmt.js
index e026d4edf8a094348e8d3e1391059e9a2b80ef96..c2a6acb1e66e9a69af8eb72b7e6c958a8bcd6ea4 100644
--- a/test/language/statements/for/head-let-bound-names-in-stmt.js
+++ b/test/language/statements/for/head-let-bound-names-in-stmt.js
@@ -8,7 +8,9 @@ info: |
 
     It is a Syntax Error if any element of the BoundNames of LexicalDeclaration
     also occurs in the VarDeclaredNames of Statement.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-for-statement
 es6id: 13.7.4
 ---*/
diff --git a/test/language/statements/for/labelled-fn-stmt-const.js b/test/language/statements/for/labelled-fn-stmt-const.js
index ec6bfccffa15ae1361e7f9cd78166f28f0b1e162..d198573ae382260320b1bb19fe6ebbc5e4455b1a 100644
--- a/test/language/statements/for/labelled-fn-stmt-const.js
+++ b/test/language/statements/for/labelled-fn-stmt-const.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for/labelled-fn-stmt-expr.js b/test/language/statements/for/labelled-fn-stmt-expr.js
index 80cd61dcd1bd7627bf67e09fdf61b8727a672ef7..86aaa01a088ac917b406c24a45f2af69cf4fcc23 100644
--- a/test/language/statements/for/labelled-fn-stmt-expr.js
+++ b/test/language/statements/for/labelled-fn-stmt-expr.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for/labelled-fn-stmt-let.js b/test/language/statements/for/labelled-fn-stmt-let.js
index 9ac16eaf56552b49e0622ad33a02ab8ff5618ef6..47b14c01e2627eef7a1381c8560a1007fdcc1f93 100644
--- a/test/language/statements/for/labelled-fn-stmt-let.js
+++ b/test/language/statements/for/labelled-fn-stmt-let.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/for/labelled-fn-stmt-var.js b/test/language/statements/for/labelled-fn-stmt-var.js
index 58c08f623abb6a1fb51c59d3fc56b112d8b1aa86..c1ea93bb4050eef54ce0953da5d03d7f34861afa 100644
--- a/test/language/statements/for/labelled-fn-stmt-var.js
+++ b/test/language/statements/for/labelled-fn-stmt-var.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/function/13.0_4-5gs.js b/test/language/statements/function/13.0_4-5gs.js
index 325748e67128009a142ef3bdb0a1caaace590673..74ca27c4b9b3d4c4e24a89e2cb626f51b7e5e704 100644
--- a/test/language/statements/function/13.0_4-5gs.js
+++ b/test/language/statements/function/13.0_4-5gs.js
@@ -6,7 +6,9 @@ es5id: 13.0_4-5gs
 description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     a FunctionDeclaration is contained in strict mode code
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-13gs.js b/test/language/statements/function/13.1-13gs.js
index a39cfaa17db33c9b9ed5b8052a79ac956603caa2..585803950d3f771822badad51033b63209e993f8 100644
--- a/test/language/statements/function/13.1-13gs.js
+++ b/test/language/statements/function/13.1-13gs.js
@@ -6,7 +6,9 @@ es5id: 13.1-13gs
 description: >
     StrictMode - SyntaxError is thrown if 'arguments' occurs as the
     Identifier of a FunctionDeclaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-1gs.js b/test/language/statements/function/13.1-1gs.js
index 0dbfb456705092e523a04398296f814b78d33e60..87e05d48a11cee1a51ee3d5d8c0986e791d3ba3e 100644
--- a/test/language/statements/function/13.1-1gs.js
+++ b/test/language/statements/function/13.1-1gs.js
@@ -7,7 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown if the identifier 'eval'
     appears within a FormalParameterList of a strict mode
     FunctionDeclaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-4gs.js b/test/language/statements/function/13.1-4gs.js
index e7726c47ebb83722c236e54848be90193fdb0d24..8e97c1e13b72e32f361e21a4d332d523223c6df0 100644
--- a/test/language/statements/function/13.1-4gs.js
+++ b/test/language/statements/function/13.1-4gs.js
@@ -7,7 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown if the identifier 'arguments'
     appears within a FormalParameterList of a strict mode
     FunctionExpression
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-5gs.js b/test/language/statements/function/13.1-5gs.js
index 27c9026195c3a4e685cfcaa0378b6debd3b6bbfd..c274c9503f1dafccf12ff61cb8dba79aeec68ef8 100644
--- a/test/language/statements/function/13.1-5gs.js
+++ b/test/language/statements/function/13.1-5gs.js
@@ -6,7 +6,9 @@ es5id: 13.1-5gs
 description: >
     Strict Mode - SyntaxError is thrown if a FunctionDeclaration has
     two identical parameters
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/13.1-8gs.js b/test/language/statements/function/13.1-8gs.js
index a2c54ffdc4a24e3fd0b629d79c5c1667463d7b7d..b7d6a7a45a5cba66dabaf1ecf907e6fe3e6a1252 100644
--- a/test/language/statements/function/13.1-8gs.js
+++ b/test/language/statements/function/13.1-8gs.js
@@ -6,7 +6,9 @@ es5id: 13.1-8gs
 description: >
     Strict Mode - SyntaxError is thrown if a FunctionExpression has
     two identical parameters
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/function/S13_A7_T3.js b/test/language/statements/function/S13_A7_T3.js
index 315edd9470400223b1899bff818fb29daffeae84..81926f1006c255eb9f916dc09318b604a48221fc 100644
--- a/test/language/statements/function/S13_A7_T3.js
+++ b/test/language/statements/function/S13_A7_T3.js
@@ -5,7 +5,9 @@
 info: The FunctionBody must be SourceElements
 es5id: 13_A7_T3
 description: Checking if execution of "function __func(){\A\B\C}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function __func(){\A\B\C};
diff --git a/test/language/statements/function/early-body-super-call.js b/test/language/statements/function/early-body-super-call.js
index fa3c2a24d2b5ae498d8f1f811bcb0ac997d4624f..23380b0291bf563a3cb4831a270adbd72ae2fa7c 100644
--- a/test/language/statements/function/early-body-super-call.js
+++ b/test/language/statements/function/early-body-super-call.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Body may not contain a "super" call
 info: >
   It is a Syntax Error if FunctionBody Contains SuperCall is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f() {
diff --git a/test/language/statements/function/early-body-super-prop.js b/test/language/statements/function/early-body-super-prop.js
index b1602ff8565103be838bf13411343cfcbcc73032..3fc7f900a6349db3bbb2499ca7d5e57e52e3cab0 100644
--- a/test/language/statements/function/early-body-super-prop.js
+++ b/test/language/statements/function/early-body-super-prop.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Body may not contain a "super" property reference
 info: >
   It is a Syntax Error if FunctionBody Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f() {
diff --git a/test/language/statements/function/early-params-super-call.js b/test/language/statements/function/early-params-super-call.js
index be1ff3d6e44300b94b1b35f2d426956c3228140c..ce762e6b9607a114c6075237d00c13c13c548558 100644
--- a/test/language/statements/function/early-params-super-call.js
+++ b/test/language/statements/function/early-params-super-call.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Parameters may not contain a "super" call
 info: >
   It is a Syntax Error if FormalParameters Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f(x = super()) {}
diff --git a/test/language/statements/function/early-params-super-prop.js b/test/language/statements/function/early-params-super-prop.js
index 2dbe965d87562479fea6f8abfc868733baeb25eb..829470b7e433fec9a7dd135a9fdf85d9c7a1adc5 100644
--- a/test/language/statements/function/early-params-super-prop.js
+++ b/test/language/statements/function/early-params-super-prop.js
@@ -6,7 +6,9 @@ es6id: 14.1.2
 description: Parameters may not contain a "super" property reference
 info: >
   It is a Syntax Error if FunctionBody Contains SuperProperty is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f(x = super.x) {}
diff --git a/test/language/statements/function/param-dflt-yield-strict.js b/test/language/statements/function/param-dflt-yield-strict.js
index 39a14ad1d4579697dac341ea54830e0c859861b3..f2dd00ab2b23ece457d9dc2f93749513b01ed3ca 100644
--- a/test/language/statements/function/param-dflt-yield-strict.js
+++ b/test/language/statements/function/param-dflt-yield-strict.js
@@ -11,7 +11,9 @@ info: |
     function BindingIdentifier[?Yield] ( FormalParameters ) { FunctionBody }
 features: [generators, default-parameters]
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function *g() {
diff --git a/test/language/statements/function/use-strict-with-non-simple-param.js b/test/language/statements/function/use-strict-with-non-simple-param.js
index 91efcc18e32ac7674455c5bf7183c6b0bb477ca1..13821eb24d93ea44cd3ebe62871b7d9ed8cd26f5 100755
--- a/test/language/statements/function/use-strict-with-non-simple-param.js
+++ b/test/language/statements/function/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function f(a = 0) {
diff --git a/test/language/statements/generators/param-dflt-yield.js b/test/language/statements/generators/param-dflt-yield.js
index 6df68b3bebd51d2c89aa4593df048ca6d699efa2..5d7cc7e5619d4f941d3453ae1298162284da2839 100644
--- a/test/language/statements/generators/param-dflt-yield.js
+++ b/test/language/statements/generators/param-dflt-yield.js
@@ -14,7 +14,9 @@ info: |
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
 features: [default-parameters]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function* g(x = yield) {}
diff --git a/test/language/statements/generators/use-strict-with-non-simple-param.js b/test/language/statements/generators/use-strict-with-non-simple-param.js
index 1fc9b13ef76e1a574fc3d75061a6df1f1d3b4c13..91dd8c85929db270757327e821f90139001676e6 100755
--- a/test/language/statements/generators/use-strict-with-non-simple-param.js
+++ b/test/language/statements/generators/use-strict-with-non-simple-param.js
@@ -9,7 +9,9 @@ info: >
   Static Semantics: Early Errors
 
   It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of FormalParameters is false.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function* f(a = 0) {
diff --git a/test/language/statements/generators/yield-as-binding-identifier.js b/test/language/statements/generators/yield-as-binding-identifier.js
index fa7cc86cd04e9c42b8fdec37d52a9313141a7ec7..e45037877921f544b65927731318219d59f2a50d 100644
--- a/test/language/statements/generators/yield-as-binding-identifier.js
+++ b/test/language/statements/generators/yield-as-binding-identifier.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as a binding identifier.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 var result;
diff --git a/test/language/statements/generators/yield-as-label.js b/test/language/statements/generators/yield-as-label.js
index 21ad2760c42f513020ead5f444db787a02aa6db6..0da2b9a4241079e7826b824300d8bfef0ca04cbc 100644
--- a/test/language/statements/generators/yield-as-label.js
+++ b/test/language/statements/generators/yield-as-label.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as a label.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 function* g() {
diff --git a/test/language/statements/generators/yield-as-logical-or-expression.js b/test/language/statements/generators/yield-as-logical-or-expression.js
index 2ebb34402f73e203daff888295ede847637f7309..d77b31584cfd5fd068b3a250c2ca4cf60f434a6b 100644
--- a/test/language/statements/generators/yield-as-logical-or-expression.js
+++ b/test/language/statements/generators/yield-as-logical-or-expression.js
@@ -5,7 +5,9 @@
   description: >
       `yield` expressions are not LogicalOrExpressions.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 
diff --git a/test/language/statements/generators/yield-as-parameter.js b/test/language/statements/generators/yield-as-parameter.js
index 0b7c04ba058ee8c7e5f3bf837014894a12c89c27..1ced6fbb249b811ed93f3c91f08a8307f50abeaf 100644
--- a/test/language/statements/generators/yield-as-parameter.js
+++ b/test/language/statements/generators/yield-as-parameter.js
@@ -6,7 +6,9 @@
       `yield` is a reserved keyword within generator function bodies and may
       not be used as the binding identifier of a parameter.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 function* g(yield) {}
diff --git a/test/language/statements/generators/yield-star-after-newline.js b/test/language/statements/generators/yield-star-after-newline.js
index 0f4f65c558a00f759f015ab772d1d0c94a46269b..88d72db5c0be1eb8b360e17a53b11b5817e6642f 100644
--- a/test/language/statements/generators/yield-star-after-newline.js
+++ b/test/language/statements/generators/yield-star-after-newline.js
@@ -5,7 +5,9 @@
   description: >
       A newline may not precede the `*` token in a `yield` expression.
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 function* g() {
diff --git a/test/language/statements/generators/yield-weak-binding.js b/test/language/statements/generators/yield-weak-binding.js
index 6fab61a33c8389f2ad38b3ce2d8c42c20a93d8e6..5b5c2a1c56ba8018a4a1dbb175a8230259848bb3 100644
--- a/test/language/statements/generators/yield-weak-binding.js
+++ b/test/language/statements/generators/yield-weak-binding.js
@@ -5,7 +5,9 @@
   description: >
       `yield` expressions bind weakly
   es6id: 14.4
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
  ---*/
 
 function* g() { yield 3 + yield 4; }
diff --git a/test/language/statements/if/S12.5_A11.js b/test/language/statements/if/S12.5_A11.js
index a574356ea81763194149072eb3d239d8743bd375..322cd0b752cfffa55b27b0dbced0d8b0f81acec4 100644
--- a/test/language/statements/if/S12.5_A11.js
+++ b/test/language/statements/if/S12.5_A11.js
@@ -5,7 +5,9 @@
 info: "{} within the \"if\" expression is not allowed"
 es5id: 12.5_A11
 description: Checking if execution of "if({1})" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/if/S12.5_A6_T1.js b/test/language/statements/if/S12.5_A6_T1.js
index 0eef08663a12d22a6b09aea01b7946dd4b145fbf..b31fb3a799b4d6f631e2a2bc19ee26f8d8b39cd2 100644
--- a/test/language/statements/if/S12.5_A6_T1.js
+++ b/test/language/statements/if/S12.5_A6_T1.js
@@ -5,7 +5,9 @@
 info: In the If statement expression must be enclosed in braces
 es5id: 12.5_A6_T1
 description: Checking if execution of "if true" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/if/S12.5_A6_T2.js b/test/language/statements/if/S12.5_A6_T2.js
index f555ef988cb4621063f7186dd3a2d003bedc91d1..fb5f29796d280b0470bbc22dc00dca6c4d1ba50c 100644
--- a/test/language/statements/if/S12.5_A6_T2.js
+++ b/test/language/statements/if/S12.5_A6_T2.js
@@ -5,7 +5,9 @@
 info: In the If statement expression must be enclosed in braces
 es5id: 12.5_A6_T2
 description: Checking if execution of "if false" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/if/S12.5_A8.js b/test/language/statements/if/S12.5_A8.js
index f4488788e6150043c842247cbf6c3d1869b12a23..dc0a087c32bd70865ba6507476ee21eed8c32c81 100644
--- a/test/language/statements/if/S12.5_A8.js
+++ b/test/language/statements/if/S12.5_A8.js
@@ -5,7 +5,9 @@
 info: In the "if" Statement empty expression is not allowed
 es5id: 12.5_A8
 description: Checking if execution of "if()" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/if/if-cls-else-cls.js b/test/language/statements/if/if-cls-else-cls.js
index 16e6728367cf0250db0b62c837cc8f184384ea40..dad1387b664556be072d437f89c8d5729eb53c59 100644
--- a/test/language/statements/if/if-cls-else-cls.js
+++ b/test/language/statements/if/if-cls-else-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) class C {} else class D {}
diff --git a/test/language/statements/if/if-cls-else-stmt.js b/test/language/statements/if/if-cls-else-stmt.js
index 1c5fdca986e01c55a6e3c6880133e487e503fd20..7aef0ed5652b3458df171fe6c7208b54cc245fd6 100644
--- a/test/language/statements/if/if-cls-else-stmt.js
+++ b/test/language/statements/if/if-cls-else-stmt.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) class C {} else ;
diff --git a/test/language/statements/if/if-cls-no-else.js b/test/language/statements/if/if-cls-no-else.js
index 49956bf38c65dd22a5e095f47425a0a9fccc0da8..0d3da48837b9419552a1652226f90f30bda567ca 100644
--- a/test/language/statements/if/if-cls-no-else.js
+++ b/test/language/statements/if/if-cls-no-else.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) class C {}
diff --git a/test/language/statements/if/if-const-else-const.js b/test/language/statements/if/if-const-else-const.js
index fba8cdbadfc9dd503a895a20cfad9f794102082f..1612733656f159f877dd93203194b325d1bd9a42 100644
--- a/test/language/statements/if/if-const-else-const.js
+++ b/test/language/statements/if/if-const-else-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) const x = null; else const y = null;
diff --git a/test/language/statements/if/if-const-else-stmt.js b/test/language/statements/if/if-const-else-stmt.js
index e051c1726c1b78d990ea83146db82d648e0821ee..f95e1a3bcefde2503e339915f787e1fc2618b631 100644
--- a/test/language/statements/if/if-const-else-stmt.js
+++ b/test/language/statements/if/if-const-else-stmt.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) const x = null; else ;
diff --git a/test/language/statements/if/if-const-no-else.js b/test/language/statements/if/if-const-no-else.js
index 317751f4e4b16cd8dd0a1bfb2a04facfda907b96..b50b138109a29f3f7a68bbf41119b770614594ad 100644
--- a/test/language/statements/if/if-const-no-else.js
+++ b/test/language/statements/if/if-const-no-else.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) const x = null;
diff --git a/test/language/statements/if/if-decl-else-decl-strict.js b/test/language/statements/if/if-decl-else-decl-strict.js
index f510ab911edf2a3a61269d730ac69d60ec537c96..8304624ff63c16609be3f38372fa264d5859909e 100644
--- a/test/language/statements/if/if-decl-else-decl-strict.js
+++ b/test/language/statements/if/if-decl-else-decl-strict.js
@@ -4,7 +4,9 @@
 description: AnnexB extension not honored in strict mode (IfStatement with a declaration in both statement positions in the global scope)
 es6id: B.3.4
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
     
diff --git a/test/language/statements/if/if-decl-else-stmt-strict.js b/test/language/statements/if/if-decl-else-stmt-strict.js
index 3303fdcaded2e08766781e668b0ee4ee2534f570..a44d3566f57ade72578e1294df6b204a918573ea 100644
--- a/test/language/statements/if/if-decl-else-stmt-strict.js
+++ b/test/language/statements/if/if-decl-else-stmt-strict.js
@@ -4,7 +4,9 @@
 description: AnnexB extension not honored in strict mode (IfStatement with a declaration in the first statement position in the global scope)
 es6id: B.3.4
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
     
diff --git a/test/language/statements/if/if-decl-no-else-strict.js b/test/language/statements/if/if-decl-no-else-strict.js
index 22001387f17b8255c130e8c497a329af08f00734..6e6ce0b5f946092962ded4f60df6736196a1daca 100644
--- a/test/language/statements/if/if-decl-no-else-strict.js
+++ b/test/language/statements/if/if-decl-no-else-strict.js
@@ -4,7 +4,9 @@
 description: AnnexB extension not honored in strict mode (IfStatement without an else clause in the global scope)
 es6id: B.3.4
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
     
diff --git a/test/language/statements/if/if-fun-else-fun-strict.js b/test/language/statements/if/if-fun-else-fun-strict.js
index f6f58378744f23b071d1b17bd72ac9f08cfd7ab5..5242b83c6837a36554f4b757977e972e14d153ba 100644
--- a/test/language/statements/if/if-fun-else-fun-strict.js
+++ b/test/language/statements/if/if-fun-else-fun-strict.js
@@ -5,7 +5,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec
 esid: sec-if-statement
 es6id: 13.6
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
 
diff --git a/test/language/statements/if/if-fun-else-stmt-strict.js b/test/language/statements/if/if-fun-else-stmt-strict.js
index fcb8da8deb1a52eccd4e825e85c9b048ef72ebf4..d82cc8c709f03f7adf9295f5e4283fb4170a8e9b 100644
--- a/test/language/statements/if/if-fun-else-stmt-strict.js
+++ b/test/language/statements/if/if-fun-else-stmt-strict.js
@@ -5,7 +5,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec
 esid: sec-if-statement
 es6id: 13.6
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
 
diff --git a/test/language/statements/if/if-fun-no-else-strict.js b/test/language/statements/if/if-fun-no-else-strict.js
index 7e1199e363d84f4425bcf273ca260f81ceb053ce..0e30a9f622b810faecd7b5dbfd9ac20ab92ec0c9 100644
--- a/test/language/statements/if/if-fun-no-else-strict.js
+++ b/test/language/statements/if/if-fun-no-else-strict.js
@@ -5,7 +5,9 @@ description: AnnexB extension not honored in strict mode (IfStatement without an
 esid: sec-if-statement
 es6id: 13.6
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
 
diff --git a/test/language/statements/if/if-gen-else-gen.js b/test/language/statements/if/if-gen-else-gen.js
index 438b1e2cb605878db3b0a21ef5024d0069ee70c9..9d6517d44ae36ddcaca7e7d21e6303daa548b039 100644
--- a/test/language/statements/if/if-gen-else-gen.js
+++ b/test/language/statements/if/if-gen-else-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) function* g() {  } else function* _g() {}
diff --git a/test/language/statements/if/if-gen-else-stmt.js b/test/language/statements/if/if-gen-else-stmt.js
index a39b393374c3ad42e8b40e959e1e6782728889a3..d735c65fe826940a2beb5f5908ca150bd0878d5b 100644
--- a/test/language/statements/if/if-gen-else-stmt.js
+++ b/test/language/statements/if/if-gen-else-stmt.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) function* g() {  } else ;
diff --git a/test/language/statements/if/if-gen-no-else.js b/test/language/statements/if/if-gen-no-else.js
index 5a90a93a5a19621e96aa42aa042e0a3e79a3a0ae..8f575bae7f9951881249efb12f85a97945d2b259 100644
--- a/test/language/statements/if/if-gen-no-else.js
+++ b/test/language/statements/if/if-gen-no-else.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) function* g() {  }
diff --git a/test/language/statements/if/if-let-else-let.js b/test/language/statements/if/if-let-else-let.js
index 499132770491f965a259f09ac3f0726d851e79ab..ef7eef79c22f06723304bf4753430e36cadd44b3 100644
--- a/test/language/statements/if/if-let-else-let.js
+++ b/test/language/statements/if/if-let-else-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) let x; else let y;
diff --git a/test/language/statements/if/if-let-else-stmt.js b/test/language/statements/if/if-let-else-stmt.js
index 065476cb9b0fa9ea661a6783a16473cbaa81c1fe..638a8eff81c37273ba95573c80f29930982633ef 100644
--- a/test/language/statements/if/if-let-else-stmt.js
+++ b/test/language/statements/if/if-let-else-stmt.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) let x; else ;
diff --git a/test/language/statements/if/if-let-no-else.js b/test/language/statements/if/if-let-no-else.js
index c24f675ea284b247d8003a63c62b503436a847ee..634a61b1d39ceaa546c46480439a03d58b5dc872 100644
--- a/test/language/statements/if/if-let-no-else.js
+++ b/test/language/statements/if/if-let-no-else.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) let x;
diff --git a/test/language/statements/if/if-stmt-else-cls.js b/test/language/statements/if/if-stmt-else-cls.js
index 2d05e58d8a0daf4250fbf6dd05860a5ae8d20898..9ddb252fd572fa4bd7ae185b58d9f58f4b782c13 100644
--- a/test/language/statements/if/if-stmt-else-cls.js
+++ b/test/language/statements/if/if-stmt-else-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) ; else class C {}
diff --git a/test/language/statements/if/if-stmt-else-const.js b/test/language/statements/if/if-stmt-else-const.js
index e8746d34dbb9311e000dc0b2b2966743a82be268..21dc19451fdfe7c50bb76f15176041b28aca910d 100644
--- a/test/language/statements/if/if-stmt-else-const.js
+++ b/test/language/statements/if/if-stmt-else-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) ; else const x = null;
diff --git a/test/language/statements/if/if-stmt-else-decl-strict.js b/test/language/statements/if/if-stmt-else-decl-strict.js
index fc7ad50daa9e52a27e3f42238dd9105b8b84bc92..4db206e30d652765092c1c55dfba98999b8da8d5 100644
--- a/test/language/statements/if/if-stmt-else-decl-strict.js
+++ b/test/language/statements/if/if-stmt-else-decl-strict.js
@@ -4,7 +4,9 @@
 description: AnnexB extension not honored in strict mode (IfStatement with a declaration in the second statement position in the global scope)
 es6id: B.3.4
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
     
diff --git a/test/language/statements/if/if-stmt-else-fun-strict.js b/test/language/statements/if/if-stmt-else-fun-strict.js
index 80326edf3ecbc088753783791aa469f2edacbade..d9610f50dce578104f2781d3ae497b98d79a6b90 100644
--- a/test/language/statements/if/if-stmt-else-fun-strict.js
+++ b/test/language/statements/if/if-stmt-else-fun-strict.js
@@ -5,7 +5,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec
 esid: sec-if-statement
 es6id: 13.6
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 info: >
     The following rules for IfStatement augment those in 13.6:
 
diff --git a/test/language/statements/if/if-stmt-else-gen.js b/test/language/statements/if/if-stmt-else-gen.js
index d5a158e294b91779918c3213013f51c820042f08..7579651aed0a469b7ecb42e5e373a91beb0c2eb0 100644
--- a/test/language/statements/if/if-stmt-else-gen.js
+++ b/test/language/statements/if/if-stmt-else-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) ; else function* g() {  }
diff --git a/test/language/statements/if/if-stmt-else-let.js b/test/language/statements/if/if-stmt-else-let.js
index 28cd5a74acb067282e997d98ca3af31949a4d2a8..78016c57ebdae65215224d947c24a3984ccff0e1 100644
--- a/test/language/statements/if/if-stmt-else-let.js
+++ b/test/language/statements/if/if-stmt-else-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-if-statement
 es6id: 13.6
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) ; else let x;
diff --git a/test/language/statements/if/labelled-fn-stmt-first.js b/test/language/statements/if/labelled-fn-stmt-first.js
index b17aaafec86f0eff1c33e0aa1ccb42ae1cdc53ed..6d930fc05b9bc7d2635f9f49f4db02e38b062837 100644
--- a/test/language/statements/if/labelled-fn-stmt-first.js
+++ b/test/language/statements/if/labelled-fn-stmt-first.js
@@ -19,7 +19,9 @@ info: |
 
   In the absence of Annex B.3.2, a SyntaxError should be produced due to the
   labelled function declaration itself.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) label1: label2: function test262() {} else ;
diff --git a/test/language/statements/if/labelled-fn-stmt-lone.js b/test/language/statements/if/labelled-fn-stmt-lone.js
index c6e03f370038f1d81ed09845a3cf90c755826210..50a627c0faabb0d006e8a84d9a901c961960731f 100644
--- a/test/language/statements/if/labelled-fn-stmt-lone.js
+++ b/test/language/statements/if/labelled-fn-stmt-lone.js
@@ -19,7 +19,9 @@ info: |
 
   In the absence of Annex B.3.2, a SyntaxError should be produced due to the
   labelled function declaration itself.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (false) label1: label2: function test262() {}
diff --git a/test/language/statements/if/labelled-fn-stmt-second.js b/test/language/statements/if/labelled-fn-stmt-second.js
index 6433ce9dd4e5f0b7a50296a5e913d97a57e141f1..559ad47abd70aaf849e85a1dccdaaa941fd36935 100644
--- a/test/language/statements/if/labelled-fn-stmt-second.js
+++ b/test/language/statements/if/labelled-fn-stmt-second.js
@@ -19,7 +19,9 @@ info: |
 
   In the absence of Annex B.3.2, a SyntaxError should be produced due to the
   labelled function declaration itself.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 if (true) ; else label1: label2: function test262() {}
diff --git a/test/language/statements/labeled/continue.js b/test/language/statements/labeled/continue.js
index 315718a4cc7bd427c72f267a64c3a193c7ec1d3c..3c2f4a84e4635fd64d11451a35934a1511576d4c 100644
--- a/test/language/statements/labeled/continue.js
+++ b/test/language/statements/labeled/continue.js
@@ -13,7 +13,9 @@ info: |
   2. Let newLabelSet be a copy of labelSet with label appended.
   3. Return ContainsUndefinedContinueTarget of LabelledItem with arguments
      iterationSet and newLabelSet. negative: SyntaxError
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 do {
diff --git a/test/language/statements/labeled/decl-cls.js b/test/language/statements/labeled/decl-cls.js
index 5b94766564b7a0ba1298bcb40510a2c465221df2..a3ab64d75840fb58fcae407e0240fbd0d6e6bfba 100644
--- a/test/language/statements/labeled/decl-cls.js
+++ b/test/language/statements/labeled/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-labelled-statements
 es6id: 13.13
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: class C {}
diff --git a/test/language/statements/labeled/decl-const.js b/test/language/statements/labeled/decl-const.js
index 0cbc8f8693aa86491ca16ea65a12af063a586bdd..18e38c301274b29f3a9e45149d3f90c3d38c80cb 100644
--- a/test/language/statements/labeled/decl-const.js
+++ b/test/language/statements/labeled/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-labelled-statements
 es6id: 13.13
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: const x = null;
diff --git a/test/language/statements/labeled/decl-fun-strict.js b/test/language/statements/labeled/decl-fun-strict.js
index edbf6a3d0d23e02493a73221aa467c5b8277b4ee..400d0950d2767cd7a53412bccb398c6336345052 100644
--- a/test/language/statements/labeled/decl-fun-strict.js
+++ b/test/language/statements/labeled/decl-fun-strict.js
@@ -7,7 +7,9 @@ description: >
     function declarations in statement position in strict mode:
     label: Statement
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: function g() {}
diff --git a/test/language/statements/labeled/decl-gen.js b/test/language/statements/labeled/decl-gen.js
index 7ba25d863e9cdfc4a198ba93bf0f94d417ac1cbe..7a361e22615d72ae28a7166a1f8684585122b5ae 100644
--- a/test/language/statements/labeled/decl-gen.js
+++ b/test/language/statements/labeled/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-labelled-statements
 es6id: 13.13
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: function* g() {}
diff --git a/test/language/statements/labeled/decl-let.js b/test/language/statements/labeled/decl-let.js
index 8d5d9e5d5df1f2db56acd5894e770b15fdeb71b9..56547ab2ee81826b46cca91d70045c73b286a3bb 100644
--- a/test/language/statements/labeled/decl-let.js
+++ b/test/language/statements/labeled/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-labelled-statements
 es6id: 13.13
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 label: let x;
diff --git a/test/language/statements/labeled/value-yield-strict.js b/test/language/statements/labeled/value-yield-strict.js
index 855a0aa088728ed796fb5419f225740885eb3e1e..544a2db941ce91a028617ccf8738f24d4bb7393d 100644
--- a/test/language/statements/labeled/value-yield-strict.js
+++ b/test/language/statements/labeled/value-yield-strict.js
@@ -6,7 +6,9 @@
       `yield` is a reserved identifier in strict mode code and may not be used
       as a label.
   es6id: 12.1.1
-  negative: SyntaxError
+  negative:
+    phase: early
+    type: SyntaxError
   flags: [onlyStrict]
  ---*/
 
diff --git a/test/language/statements/let/redeclaration-error-from-within-strict-mode-function.js b/test/language/statements/let/redeclaration-error-from-within-strict-mode-function.js
index 0f59463f1450942b245f42d8faa8d28a4a0ab7a0..90813599045938d062075774245741ce2d17934e 100644
--- a/test/language/statements/let/redeclaration-error-from-within-strict-mode-function.js
+++ b/test/language/statements/let/redeclaration-error-from-within-strict-mode-function.js
@@ -4,7 +4,9 @@
 es6id: 13.1
 description: >
     Redeclaration error within strict mode function inside non-strict code.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [noStrict]
 ---*/
 (function() { 'use strict'; { let f; var f; } })
diff --git a/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js b/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js
index 5663651f0671d63c567ca9538f60652b981662ca..15b1659c3cd5eb942382a8d1b7398440ccfbc19e 100644
--- a/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js
+++ b/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js
@@ -5,6 +5,8 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare let binding with function declaration
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { let f; function f() {} }
diff --git a/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js b/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js
index 427692df6774cb5fbfbad6f4110fe6676850b27e..ab18e36810651f756a24c899abf164ed683670c1 100644
--- a/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js
+++ b/test/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js
@@ -5,7 +5,9 @@ es6id: B.3.3
 description: >
     redeclaration within block:
     attempt to redeclare let binding with var
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 { let f; var f; }
 
diff --git a/test/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict.js b/test/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict.js
index fb677c8041a56ef21892c5d10ab88c23291b440e..50a08aa4edb5b715c0867788a376f140170160d5 100644
--- a/test/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict.js
+++ b/test/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict.js
@@ -6,7 +6,9 @@ description: >
     for declaration:
     identifier "let" disallowed as lefthandside expression in strict mode
 flags: [onlyStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 var o = { a: 1 };
 for (let in o) { }
diff --git a/test/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js b/test/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js
index b7db9eed0ad862457597fd29bd6d2b505b9066bd..7331e5cbb5c1e1518b5e18c118749f3c5ad93ca1 100644
--- a/test/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js
+++ b/test/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js
@@ -4,7 +4,9 @@
 es6id: 13.6.4.1
 description: >
     It is a Syntax Error if the BoundNames of ForDeclaration contains "let".
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (let let in {}) { }
 
diff --git a/test/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js b/test/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js
index 0ef615cea4b93e9300c83cfb5fdefb175d654510..541dcef3552666926fec86129571fea1323ef9a1 100644
--- a/test/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js
+++ b/test/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js
@@ -22,7 +22,9 @@ info: >
   are considered.  *Then* 13.3.1.1's static semantics for the LexicalDeclaration
   just chosen, per 5.3, are validated to recognize the Script as invalid.  Thus
   the eval script can't be evaluated, and a SyntaxError is thrown.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 
diff --git a/test/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js b/test/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js
index 5efbf57212c57fdd8631ca5747d099f758592d24..30b0de237e7ad9c4b3b94707596faaf29d74f1c3 100644
--- a/test/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js
+++ b/test/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js
@@ -22,7 +22,9 @@ info: >
   are considered.  *Then* 13.3.1.1's static semantics for the LexicalDeclaration
   just chosen, per 5.3, are validated to recognize the Script as invalid.  Thus
   the eval script can't be evaluated, and a SyntaxError is thrown.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 throw NotEarlyError;
 
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js
index a0633d27d14a75d8bd72dfab1b9c8f688c15eaf7..9640ced8dfc40287ff51cb02d257e2d2092530ed 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 do let x = 1; while (false)
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js
index 0da5b348c385622210c8c3e1f1c08682a71e8dc0..d2a04734027dbf9a682cb7351866313f8bdf750f 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (;false;) let x = 1;
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js
index c1bc33779db88aff6ba2e9692ef6a4d174cc393e..96f368d6bd38fa4221fe69d43e56613fef505e22 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) {} else let x = 1;
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js
index eadff5feb1e3017127667f584b082c8bbcaaec61..e41d75cb720b102df6fa2eb87178641c92723174 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) let x = 1;
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js
index 93c7ed337e0ebc77727c6018cf8e604034edaf13..05559bf840e607aa430afbefad02a31f9dd9ddf2 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     label: Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 label: let x = 1;
diff --git a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js
index c200c59a0a6e64069579e440d3104f5510ac665a..2e7762be9f9fd85dbf82b2f8e7b9ffe884f106cb 100644
--- a/test/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js
+++ b/test/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations with initialisers in statement positions: 
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 while (false) let x = 1;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js
index 6e39f9bfc31c5d3d9ecbd5698cd22e9467fde8e3..45573edfc192efc8e0dbfd1c603458f8a28dc7f4 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     do Statement while ( Expression )
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 do let x; while (false)
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js
index 52d3082b69b9ad4a0bec72a65884b39cdb6973ff..8b401e5fd1d3450c40436c872945cf949b1ad122 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     for ( ;;) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 for (;false;) let x;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js
index 5d21b1f003e3b34eb897365b84fe41e915934d61..b130b250a585be8c5bd1253c74dc8488630774c6 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     if ( Expression ) Statement else Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) {} else let x;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js
index 26198763fbc78e7dad9c4950d7d5b49eb911078b..5f85664450bd6ce27b45e98a8a9219bba3342dbc 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     if ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 if (true) let x;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js
index f4024fb75683a6da76d2b244c4bdd663304d08da..625e7b93b4930ababa1b9d38dc3586c3432ce0db 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     label: Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 label: let x;
diff --git a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js
index 359f2a11829c17272ea8f8a86d8933a12cad908d..3ccb8cc70f7d52d8999d65cae730f8cc91bd16bf 100644
--- a/test/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js
+++ b/test/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js
@@ -5,6 +5,8 @@ es6id: 13.1
 description: >
     let declarations without initialisers in statement positions: 
     while ( Expression ) Statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 while (false) let x;
diff --git a/test/language/statements/return/S12.9_A1_T1.js b/test/language/statements/return/S12.9_A1_T1.js
index 5738fa4c6a4be39b10ac8e6c11c998d2d3ce7f9d..bbf69f627655641212a6297d73567642ac2dad8b 100644
--- a/test/language/statements/return/S12.9_A1_T1.js
+++ b/test/language/statements/return/S12.9_A1_T1.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T1
 description: Checking if execution of "return" with no function fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T10.js b/test/language/statements/return/S12.9_A1_T10.js
index b7bce0a7755288027ac9ceff99f6025f74bf96e0..7ca8dc906c8f6c2818a1b8ff9057a9e427e5e7f2 100644
--- a/test/language/statements/return/S12.9_A1_T10.js
+++ b/test/language/statements/return/S12.9_A1_T10.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T10
 description: Checking if execution of "return (0)" with no function fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T2.js b/test/language/statements/return/S12.9_A1_T2.js
index 52fc7500c5785419c5fadc5e9399536c4fc4bab1..38555bd1d790dfca81fb57150c4ff3cd5fd3fbda 100644
--- a/test/language/statements/return/S12.9_A1_T2.js
+++ b/test/language/statements/return/S12.9_A1_T2.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T2
 description: Checking if execution of "return x" with no function fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T3.js b/test/language/statements/return/S12.9_A1_T3.js
index db82a9aa29374db9640ef867929d43d3f9476068..f1b07cb3c81d20a2d6b9510704f0a4fb437dbaf8 100644
--- a/test/language/statements/return/S12.9_A1_T3.js
+++ b/test/language/statements/return/S12.9_A1_T3.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T3
 description: Checking if execution of "return" within "try" statement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T4.js b/test/language/statements/return/S12.9_A1_T4.js
index c26d347e336552052d645f995dee3734b247a4de..7e5c5f4fec2e160783c9249c16f6eac6205036f4 100644
--- a/test/language/statements/return/S12.9_A1_T4.js
+++ b/test/language/statements/return/S12.9_A1_T4.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T4
 description: Checking if execution of "return" with no function fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T5.js b/test/language/statements/return/S12.9_A1_T5.js
index 12c8a617a099020512d5e3853de9d3c93b31c4ef..b63023b29438de858dca1770d90ca0ae413ae404 100644
--- a/test/language/statements/return/S12.9_A1_T5.js
+++ b/test/language/statements/return/S12.9_A1_T5.js
@@ -7,7 +7,9 @@ es5id: 12.9_A1_T5
 description: >
     Checking if execution of "return" with no function, placed into a
     Block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T6.js b/test/language/statements/return/S12.9_A1_T6.js
index 372d6a4b93db6f5c48afcb5ecec39f3924daf824..9e62cd7f0d1a43f830a732915232865157d1e8c3 100644
--- a/test/language/statements/return/S12.9_A1_T6.js
+++ b/test/language/statements/return/S12.9_A1_T6.js
@@ -7,7 +7,9 @@ es5id: 12.9_A1_T6
 description: >
     Checking if execution of "return" with no function, placed into a
     loop, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T7.js b/test/language/statements/return/S12.9_A1_T7.js
index 0a2d7d33a9b4a424261a71190bc02f048c5b74de..d37b225ca42f49854bfa3bb047963de3a1219563 100644
--- a/test/language/statements/return/S12.9_A1_T7.js
+++ b/test/language/statements/return/S12.9_A1_T7.js
@@ -7,7 +7,9 @@ es5id: 12.9_A1_T7
 description: >
     Checking if execution of "return x" with no function, placed
     inside Block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T8.js b/test/language/statements/return/S12.9_A1_T8.js
index 0433fabc2e7db7ae2f93ba59230a8992a38a6ccd..6ec21b547164a62e00724a64010e9d48f14bc6cd 100644
--- a/test/language/statements/return/S12.9_A1_T8.js
+++ b/test/language/statements/return/S12.9_A1_T8.js
@@ -7,7 +7,9 @@ es5id: 12.9_A1_T8
 description: >
     Checking if execution of "return x" with no function, placed into
     a loop, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A1_T9.js b/test/language/statements/return/S12.9_A1_T9.js
index d6df82e8617db5dcaee043b02813d936b4447c7d..9b9ad3f3b2898c376f4a47da584b354279ed1fd6 100644
--- a/test/language/statements/return/S12.9_A1_T9.js
+++ b/test/language/statements/return/S12.9_A1_T9.js
@@ -5,7 +5,9 @@
 info: Appearing of "return" without a function body leads to syntax error
 es5id: 12.9_A1_T9
 description: Checking if execution of "return", placed into a catch Block, fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/switch/S12.11_A2_T1.js b/test/language/statements/switch/S12.11_A2_T1.js
index 5947de0f9804b26e92b3c1caf6457c4a9e7c148d..71c4b1b5415ed95c58ac8297eb5b3d002b96de0c 100644
--- a/test/language/statements/switch/S12.11_A2_T1.js
+++ b/test/language/statements/switch/S12.11_A2_T1.js
@@ -5,7 +5,9 @@
 info: There can be only one DefaultClause
 es5id: 12.11_A2_T1
 description: Duplicate DefaultClause
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/S12.11_A3_T1.js b/test/language/statements/switch/S12.11_A3_T1.js
index 56fa00ebd7b6d7ead4c1f70009663c2695136310..b2fb28997b0e6757f740598e21b0829bf13c7336 100644
--- a/test/language/statements/switch/S12.11_A3_T1.js
+++ b/test/language/statements/switch/S12.11_A3_T1.js
@@ -5,7 +5,9 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T1
 description: Checking if execution of "switch() {}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/S12.11_A3_T2.js b/test/language/statements/switch/S12.11_A3_T2.js
index a6c4cecaebfb716af94c214a4d8e55ce1d788912..6774c8cbb9090d9c5e3d92ccf427cea6ed8c8346 100644
--- a/test/language/statements/switch/S12.11_A3_T2.js
+++ b/test/language/statements/switch/S12.11_A3_T2.js
@@ -5,7 +5,9 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T2
 description: Checking if execution of "switch {}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/S12.11_A3_T3.js b/test/language/statements/switch/S12.11_A3_T3.js
index bb983237bafe295c4da91ad94d1a7779e476a116..5a8fa38c4f8b8b52999c530916b3ffa1ba09a0e7 100644
--- a/test/language/statements/switch/S12.11_A3_T3.js
+++ b/test/language/statements/switch/S12.11_A3_T3.js
@@ -5,7 +5,9 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T3
 description: Checking if execution of "switch(value)" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 switch(value);
diff --git a/test/language/statements/switch/S12.11_A3_T4.js b/test/language/statements/switch/S12.11_A3_T4.js
index 856e189d82387ea2de26369151f23abe46474561..94a3320ce4ffedd802c85ad3f5d6e8c1cb3fd8ae 100644
--- a/test/language/statements/switch/S12.11_A3_T4.js
+++ b/test/language/statements/switch/S12.11_A3_T4.js
@@ -7,7 +7,9 @@ es5id: 12.11_A3_T4
 description: >
     Using "case" that has no Expresson after it. "CaseClause: case
     Expression : [StatementList]"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/S12.11_A3_T5.js b/test/language/statements/switch/S12.11_A3_T5.js
index 8dbb4d954825ad5a41e6bc3f521292484230c730..80b10ddf77789a7b8690b7734fd7656006d3b54b 100644
--- a/test/language/statements/switch/S12.11_A3_T5.js
+++ b/test/language/statements/switch/S12.11_A3_T5.js
@@ -5,7 +5,9 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T5
 description: Introducing statement not followed by "case" keyword
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/language/statements/switch/early-lex-dup.js b/test/language/statements/switch/early-lex-dup.js
index 3f74919c6f8d5436defce2c6b1155830bf89b9ca..c9896a52751b0d48f8d0c198cea4d4cf81010821 100644
--- a/test/language/statements/switch/early-lex-dup.js
+++ b/test/language/statements/switch/early-lex-dup.js
@@ -7,7 +7,9 @@ description: Syntax error from duplicate lexical variables
 info: >
   It is a Syntax Error if the LexicallyDeclaredNames of CaseBlock contains any
   duplicate entries.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [let, const]
 ---*/
 
diff --git a/test/language/statements/switch/early-lex-var-collision.js b/test/language/statements/switch/early-lex-var-collision.js
index b642264586ae47410d5cc1435ca855edf5d61d5a..9150eb4984e2c334ddee495d477301f7ff450f33 100644
--- a/test/language/statements/switch/early-lex-var-collision.js
+++ b/test/language/statements/switch/early-lex-var-collision.js
@@ -9,7 +9,9 @@ description: >
 info: >
   It is a Syntax Error if any element of the LexicallyDeclaredNames of
   CaseClauses also occurs in the VarDeclaredNames of CaseClauses.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [let]
 ---*/
 
diff --git a/test/language/statements/try/12.14.1-1gs.js b/test/language/statements/try/12.14.1-1gs.js
index 33b87b9a58c37c067d4c540ea6cbce38e6c09be3..a575377fd7fded3c18765da0cc125812769c96a5 100644
--- a/test/language/statements/try/12.14.1-1gs.js
+++ b/test/language/statements/try/12.14.1-1gs.js
@@ -7,7 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown if a TryStatement with a Catch
     occurs within strict code and the Identifier of the Catch
     production is eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/try/S12.14_A16_T1.js b/test/language/statements/try/S12.14_A16_T1.js
index 2d4f7c81e65f0c51f0fdf474efd88e51e899c1b3..fbc1eb64193adb1e5ebe401f2eda792045326c0c 100644
--- a/test/language/statements/try/S12.14_A16_T1.js
+++ b/test/language/statements/try/S12.14_A16_T1.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T1
 description: Checking if pure "try" syntax construction passes
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T10.js b/test/language/statements/try/S12.14_A16_T10.js
index b70057076fa0da06f5a47cf11eb0bee131b474f2..274a9561869075936621e1de3889569bad1dcf16 100644
--- a/test/language/statements/try/S12.14_A16_T10.js
+++ b/test/language/statements/try/S12.14_A16_T10.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T10
 description: "Catch: \"catch (Identifier ) Block\""
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T11.js b/test/language/statements/try/S12.14_A16_T11.js
index 8b46cf73cb929f1bdb8663123fda43f28f24b8b9..32a4966e99007cbdddfdb03cecbbc1feb289e4c1 100644
--- a/test/language/statements/try/S12.14_A16_T11.js
+++ b/test/language/statements/try/S12.14_A16_T11.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T11
 description: >
     Catch and Finally are placed into the Block of "try" (whitle
     expected outside)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T12.js b/test/language/statements/try/S12.14_A16_T12.js
index 0d6246dc93799080214d227e9ca62b1faa0a4f05..56d699c45cb5393d42ebc38d2c16d59a7af04485 100644
--- a/test/language/statements/try/S12.14_A16_T12.js
+++ b/test/language/statements/try/S12.14_A16_T12.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T12
 description: Embedded "try" statements followed by two "catch" statements
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T13.js b/test/language/statements/try/S12.14_A16_T13.js
index ece3312bfe31c04685e456af9dc05dc192ff814a..bc6fd3e47ca0dbab721a3ba9d9541752e549a778 100644
--- a/test/language/statements/try/S12.14_A16_T13.js
+++ b/test/language/statements/try/S12.14_A16_T13.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T13
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of "22"
     passes at the place of Identifier of "catch"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T14.js b/test/language/statements/try/S12.14_A16_T14.js
index 472201bc685f0f25409d412a4ee7dd8bebf13b9b..af40c60983b00a45afb6bb50a9870def5c3a89b8 100644
--- a/test/language/statements/try/S12.14_A16_T14.js
+++ b/test/language/statements/try/S12.14_A16_T14.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T14
 description: Checking if passing argument to "try" statement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T15.js b/test/language/statements/try/S12.14_A16_T15.js
index 6290c9e09e714e26f52a95684bf02cee67dc7d2b..03369e0c728541a1c7e21a4a6da575f0f0e7621c 100644
--- a/test/language/statements/try/S12.14_A16_T15.js
+++ b/test/language/statements/try/S12.14_A16_T15.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T15
 description: >
     Finally: "finally Block". Checking if passing argument to "try"
     statement fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T2.js b/test/language/statements/try/S12.14_A16_T2.js
index 2aa5ae6ef15ca70a8ddd6d7127fb6ef0acd2e738..9ec0979d1a03650c12e818f04c31aa9dab31f7c7 100644
--- a/test/language/statements/try/S12.14_A16_T2.js
+++ b/test/language/statements/try/S12.14_A16_T2.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T2
 description: Checking if execution of "catch" with no "try" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T3.js b/test/language/statements/try/S12.14_A16_T3.js
index bed9ac8ab6009ee6b7aa01aeeb2e0de08e5f041d..8fd817c327dde175c11fcb10296222d8288e39a6 100644
--- a/test/language/statements/try/S12.14_A16_T3.js
+++ b/test/language/statements/try/S12.14_A16_T3.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T3
 description: Checking if execution of "finally" with no "try" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T4.js b/test/language/statements/try/S12.14_A16_T4.js
index 65d66448ae98d8921b42b4b0f96012032a9edb90..b764c035a3a6f6cb9953c48a1fde50bf1a193a0c 100644
--- a/test/language/statements/try/S12.14_A16_T4.js
+++ b/test/language/statements/try/S12.14_A16_T4.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T4
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of
     "catch" that takes no arguments fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T5.js b/test/language/statements/try/S12.14_A16_T5.js
index 48722136f86dcc7e59cfa10a197441769a62210d..bb41afe34610376d05310a8d02b7f70f5bf87a26 100644
--- a/test/language/statements/try/S12.14_A16_T5.js
+++ b/test/language/statements/try/S12.14_A16_T5.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T5
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of
     "catch" with no Block fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T6.js b/test/language/statements/try/S12.14_A16_T6.js
index fd00f1fd1a5d8f4a5f38c86e084152f4005e24c8..d5010188bed5ddf6ea6e3f8b768de3ae24339883 100644
--- a/test/language/statements/try/S12.14_A16_T6.js
+++ b/test/language/statements/try/S12.14_A16_T6.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T6
 description: >
     Block: "{ StatementList }". Checking if execution of "try{
     catch{}{}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T7.js b/test/language/statements/try/S12.14_A16_T7.js
index 44ca68cf303b519b738a60454884c7e63f3c2c31..b3a6af9f8fcbd2874523663c386bace135fafbf7 100644
--- a/test/language/statements/try/S12.14_A16_T7.js
+++ b/test/language/statements/try/S12.14_A16_T7.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T7
 description: >
     Block: "{ StatementList }". Checking if execution of "try{}
     catch(){" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T8.js b/test/language/statements/try/S12.14_A16_T8.js
index b9266cf7dcc577bad754415d660da7b8610ef0e4..d966bb1f1b597345a1de2994a1dd7472cff25f41 100644
--- a/test/language/statements/try/S12.14_A16_T8.js
+++ b/test/language/statements/try/S12.14_A16_T8.js
@@ -9,7 +9,9 @@ es5id: 12.14_A16_T8
 description: >
     Block: "{ StatementList }". Catch: "catch (Identifier ) Block".
     Checking if execution of "try{} catch(){finally{}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/S12.14_A16_T9.js b/test/language/statements/try/S12.14_A16_T9.js
index c6ca68ad0c88544a7617518766b53fbb38cb6f88..c92a76a158c3441cba69c0823075e9728b139c86 100644
--- a/test/language/statements/try/S12.14_A16_T9.js
+++ b/test/language/statements/try/S12.14_A16_T9.js
@@ -7,7 +7,9 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T9
 description: Checking if execution of "catch(){} finally{}" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/language/statements/try/early-catch-duplicates.js b/test/language/statements/try/early-catch-duplicates.js
index 59fedeeafd8e530be559554cff99ce8ecd7dd4f4..9dcd0483f9194330e84d3ae12e05e531426f98a0 100644
--- a/test/language/statements/try/early-catch-duplicates.js
+++ b/test/language/statements/try/early-catch-duplicates.js
@@ -6,7 +6,9 @@ es6id: 13.15.1
 description: >
     It is a Syntax Error if BoundNames of CatchParameter contains any duplicate
     elements.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 $ERROR('This code should not be executed.');
diff --git a/test/language/statements/try/early-catch-lex.js b/test/language/statements/try/early-catch-lex.js
index e685e3369b80262b804b865d32c6a41a3d2f1084..7608a94d3df4f220408282a179af164277ccbcc7 100644
--- a/test/language/statements/try/early-catch-lex.js
+++ b/test/language/statements/try/early-catch-lex.js
@@ -6,7 +6,9 @@ es6id: 13.15.1
 description: >
     It is a Syntax Error if any element of the BoundNames of CatchParameter
     also occurs in the LexicallyDeclaredNames of Block.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 features: [let]
 ---*/
 
diff --git a/test/language/statements/try/early-catch-var.js b/test/language/statements/try/early-catch-var.js
index 51d772c12d29708d821c0969e8e40c6b1fe7ab00..43e5555085e3b6194b9ab8c4b151ebafd78b8ac3 100644
--- a/test/language/statements/try/early-catch-var.js
+++ b/test/language/statements/try/early-catch-var.js
@@ -11,7 +11,9 @@ info: >
     VariableDeclarationList of a for statement, and the ForBinding of a for-of
     statement. Bindings from the ForBinding of a for-in statement are
     restricted regardless of the application of Annex B.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 $ERROR('This code should not be executed.');
diff --git a/test/language/statements/variable/12.2.1-1gs.js b/test/language/statements/variable/12.2.1-1gs.js
index 59fb0a2db3fc536110367635788956b6e590398c..b1047b29de7669866d56679253a689ff9481cd25 100644
--- a/test/language/statements/variable/12.2.1-1gs.js
+++ b/test/language/statements/variable/12.2.1-1gs.js
@@ -6,7 +6,9 @@ es5id: 12.2.1-1gs
 description: >
     Strict Mode - SyntaxError is thrown if a VariableDeclaration
     occurs within strict code and its Identifier is eval
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/variable/12.2.1-4gs.js b/test/language/statements/variable/12.2.1-4gs.js
index 868265bedd2a3f7817c4279b457ee49155605cd4..58a0a7b38d4d38593c467947a61ef7cdc8a48aea 100644
--- a/test/language/statements/variable/12.2.1-4gs.js
+++ b/test/language/statements/variable/12.2.1-4gs.js
@@ -6,7 +6,9 @@ es5id: 12.2.1-4gs
 description: >
     Strict Mode - SyntaxError is thrown if a VariableDeclarationNoIn
     occurs within strict code and its Identifier is arguments
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/variable/S12.2_A8_T1.js b/test/language/statements/variable/S12.2_A8_T1.js
index 4e5f1efacddae4a1f19006ee03be4def444f85e5..52b7c5177b79c4bf684c493fd4e4e74da446c4a6 100644
--- a/test/language/statements/variable/S12.2_A8_T1.js
+++ b/test/language/statements/variable/S12.2_A8_T1.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T1
 description: Checking if execution of "var x += 1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T2.js b/test/language/statements/variable/S12.2_A8_T2.js
index 8f60c152c03a24b9ae501317f1bc21d7ab03e0b5..742821c8ad16cc2190193ef1da66a356bae869c2 100644
--- a/test/language/statements/variable/S12.2_A8_T2.js
+++ b/test/language/statements/variable/S12.2_A8_T2.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T2
 description: Checking if execution of "var x | true" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T3.js b/test/language/statements/variable/S12.2_A8_T3.js
index b5b8949b9902909b134a1d4475319788b98d066c..b945fabda52588002948ade35e5dcbec6a73fad1 100644
--- a/test/language/statements/variable/S12.2_A8_T3.js
+++ b/test/language/statements/variable/S12.2_A8_T3.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T3
 description: Checking if execution of "var x && 1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T4.js b/test/language/statements/variable/S12.2_A8_T4.js
index 9b125cc983dd69b205a42d62f50db75067fa11c9..0676a72447542fa6805d047cbeec6caf687de0ec 100644
--- a/test/language/statements/variable/S12.2_A8_T4.js
+++ b/test/language/statements/variable/S12.2_A8_T4.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T4
 description: Checking if execution of "var x++" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T5.js b/test/language/statements/variable/S12.2_A8_T5.js
index 4640a96dbc97b3524ed9c8ff25f6eb90a8ac8b66..bde43d8be7f6dfbb9f2356623dc80f3ca9c61425 100644
--- a/test/language/statements/variable/S12.2_A8_T5.js
+++ b/test/language/statements/variable/S12.2_A8_T5.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T5
 description: Checking if execution of "var --x" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T6.js b/test/language/statements/variable/S12.2_A8_T6.js
index 9eb53feb8c6360cd8956a78453408b7cc7f374a0..288fbf26ba80271bc4c6bd269ee278d458a41541 100644
--- a/test/language/statements/variable/S12.2_A8_T6.js
+++ b/test/language/statements/variable/S12.2_A8_T6.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T6
 description: Checking if execution of "var x*1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T7.js b/test/language/statements/variable/S12.2_A8_T7.js
index 6a80d0d7ab4c88fbfc063fc91676a403f91ce8aa..cb2610e235242e1d70ef4977e142ec00d4b582b0 100644
--- a/test/language/statements/variable/S12.2_A8_T7.js
+++ b/test/language/statements/variable/S12.2_A8_T7.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T7
 description: Checking if execution of "var x>>1" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/variable/S12.2_A8_T8.js b/test/language/statements/variable/S12.2_A8_T8.js
index e5138c7e06444ebf2707c626ba97f69b983b4508..9871fc63c93d7ccae3bae7e5a87f957f82dc0ca5 100644
--- a/test/language/statements/variable/S12.2_A8_T8.js
+++ b/test/language/statements/variable/S12.2_A8_T8.js
@@ -5,7 +5,9 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T8
 description: Checking if execution of "var x in __arr" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 __arr = [];
diff --git a/test/language/statements/while/S12.6.2_A15.js b/test/language/statements/while/S12.6.2_A15.js
index a5dcce4a5c30035d087fc174d58be90aac98eddc..de53df5c7c260d3777324a05c1ad0ef72f01ddf6 100644
--- a/test/language/statements/while/S12.6.2_A15.js
+++ b/test/language/statements/while/S12.6.2_A15.js
@@ -5,7 +5,9 @@
 info: Block within a "while" Expression is not allowed
 es5id: 12.6.2_A15
 description: Expression is "{0}"
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T1.js b/test/language/statements/while/S12.6.2_A6_T1.js
index b2d4949b1521f5b145e22455d17ad7908c74c059..a7e555c37de822b03828b99d8992e6b5b98d3db4 100644
--- a/test/language/statements/while/S12.6.2_A6_T1.js
+++ b/test/language/statements/while/S12.6.2_A6_T1.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T1
 description: Checking if execution of "while 1 break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T2.js b/test/language/statements/while/S12.6.2_A6_T2.js
index beb06e866ae0d060fc2bc1c88a52b6f7c5785905..fdc2a8baa918df1338c9648949ddd52803c838fd 100644
--- a/test/language/statements/while/S12.6.2_A6_T2.js
+++ b/test/language/statements/while/S12.6.2_A6_T2.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T2
 description: Checking if execution of "while 0 break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T3.js b/test/language/statements/while/S12.6.2_A6_T3.js
index 6c28cf6628d0d55a791367a7af4d4f0da3cc3498..d9685dd1c2ca2f84246d7d0e0378a30b28fd568c 100644
--- a/test/language/statements/while/S12.6.2_A6_T3.js
+++ b/test/language/statements/while/S12.6.2_A6_T3.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T3
 description: Checking if execution of "while true break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T4.js b/test/language/statements/while/S12.6.2_A6_T4.js
index 7b74d4efce73bb2723edf0367747c4f160dd1b4e..ad94fbc6d0baae58d648c63877bd075696fa5d39 100644
--- a/test/language/statements/while/S12.6.2_A6_T4.js
+++ b/test/language/statements/while/S12.6.2_A6_T4.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T4
 description: Checking if execution of "while false break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T5.js b/test/language/statements/while/S12.6.2_A6_T5.js
index 644e32b52511ee75f082096ec18dfd4a727260dc..19b1eb6af76cbf031739953126da29366ed12d09 100644
--- a/test/language/statements/while/S12.6.2_A6_T5.js
+++ b/test/language/statements/while/S12.6.2_A6_T5.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T5
 description: Checking if execution of "while '' break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A6_T6.js b/test/language/statements/while/S12.6.2_A6_T6.js
index 49cba88d4df5aea23637fbd02e035260e00317db..66ecbee8ab8c869ccd6078c91b7cf19abb186a54 100644
--- a/test/language/statements/while/S12.6.2_A6_T6.js
+++ b/test/language/statements/while/S12.6.2_A6_T6.js
@@ -5,7 +5,9 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T6
 description: Checking if execution of "while 'hood' break" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/decl-cls.js b/test/language/statements/while/decl-cls.js
index f2c30d1e6333d30be4b6b6c7c50ba5a1cd69ad28..491f50e717188aa75207b78025891e757ee0b14e 100644
--- a/test/language/statements/while/decl-cls.js
+++ b/test/language/statements/while/decl-cls.js
@@ -4,7 +4,9 @@
 description: Class declaration not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) class C {}
diff --git a/test/language/statements/while/decl-const.js b/test/language/statements/while/decl-const.js
index 93b313f3ce04cf419b70dda384219032aeeea8c3..efc004035e3f0825b8c9c47988684243a1f638e1 100644
--- a/test/language/statements/while/decl-const.js
+++ b/test/language/statements/while/decl-const.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (const) not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) const x = null;
diff --git a/test/language/statements/while/decl-fun.js b/test/language/statements/while/decl-fun.js
index e76d8c893f2e16960f54dad6711aadd88d833bea..92ad5bb65d0359f6f7d7167d08c9d37d1e4c5f2e 100644
--- a/test/language/statements/while/decl-fun.js
+++ b/test/language/statements/while/decl-fun.js
@@ -4,7 +4,9 @@
 description: Function declaration not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) function f() {}
diff --git a/test/language/statements/while/decl-gen.js b/test/language/statements/while/decl-gen.js
index 62973f4581df579b550052b9cfd9681d15cc85d1..06340c8985a6411d8fde4e86f3eb0679302f38f7 100644
--- a/test/language/statements/while/decl-gen.js
+++ b/test/language/statements/while/decl-gen.js
@@ -4,7 +4,9 @@
 description: Generator declaration not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) function* g() {}
diff --git a/test/language/statements/while/decl-let.js b/test/language/statements/while/decl-let.js
index 920673f56c822964c5ffb966a31cac716e3cae14..1c0bfa24bbafc31f652db9f6d4a4a532e3cfd451 100644
--- a/test/language/statements/while/decl-let.js
+++ b/test/language/statements/while/decl-let.js
@@ -4,7 +4,9 @@
 description: Lexical declaration (let) not allowed in statement position
 esid: sec-while-statement
 es6id: 13.7.3
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 while (false) let x;
diff --git a/test/language/statements/while/labelled-fn-stmt.js b/test/language/statements/while/labelled-fn-stmt.js
index e82e9318740b4506151c44d62015a0c4ccd3aa1e..1d30320d7a497ae14f208db6d9ebc3de8f726507 100644
--- a/test/language/statements/while/labelled-fn-stmt.js
+++ b/test/language/statements/while/labelled-fn-stmt.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: It is a Syntax Error if IsLabelledFunction(Statement) is true.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 esid: sec-semantics-static-semantics-early-errors
 es6id: 13.7.1.1
 info: >
diff --git a/test/language/statements/with/12.10.1-11gs.js b/test/language/statements/with/12.10.1-11gs.js
index c00f62bee3361a6f91041d1689f84b52dc3d373d..cb2f432d8abd226c73cf02692dc9808ba87517e3 100644
--- a/test/language/statements/with/12.10.1-11gs.js
+++ b/test/language/statements/with/12.10.1-11gs.js
@@ -4,7 +4,9 @@
 /*---
 es5id: 12.10.1-11gs
 description: Strict Mode - SyntaxError is thrown when using with statement
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/language/statements/with/decl-cls.js b/test/language/statements/with/decl-cls.js
index 18f1f9ab5f9d17fccfdb0015b73036340335d611..267a5136b44a58daf0471cf08240d2fa043f1fd7 100644
--- a/test/language/statements/with/decl-cls.js
+++ b/test/language/statements/with/decl-cls.js
@@ -5,7 +5,9 @@ description: Class declaration not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) class C {}
diff --git a/test/language/statements/with/decl-const.js b/test/language/statements/with/decl-const.js
index d5e5b8aeb1ac4785defbb2a1dfc7ca53ebe456c7..e7f52299fa618ee90b1bb97e1c21268f06972695 100644
--- a/test/language/statements/with/decl-const.js
+++ b/test/language/statements/with/decl-const.js
@@ -5,7 +5,9 @@ description: Lexical declaration (const) not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) const x = null;
diff --git a/test/language/statements/with/decl-fun.js b/test/language/statements/with/decl-fun.js
index 3bed84ea2d36d58e98024eb0d8ef91a1dcd38654..7601f9af6cd890b7f966643497d7381dfee4940c 100644
--- a/test/language/statements/with/decl-fun.js
+++ b/test/language/statements/with/decl-fun.js
@@ -5,7 +5,9 @@ description: Function declaration not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) function f() {}
diff --git a/test/language/statements/with/decl-gen.js b/test/language/statements/with/decl-gen.js
index 0d0c2451e2750876b52a82221f78d6606432c119..8a492d2d4e21e21aea0e50a7a2cbcfdf81bc8754 100644
--- a/test/language/statements/with/decl-gen.js
+++ b/test/language/statements/with/decl-gen.js
@@ -5,7 +5,9 @@ description: Generator declaration not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) function* g() {}
diff --git a/test/language/statements/with/decl-let.js b/test/language/statements/with/decl-let.js
index 9293c0aa564f1c7a90d4c71a17e8ef0cfc8884c5..577f5bcff0a96b9b75e6c1859e94204bba19380f 100644
--- a/test/language/statements/with/decl-let.js
+++ b/test/language/statements/with/decl-let.js
@@ -5,7 +5,9 @@ description: Lexical declaration (let) not allowed in statement position
 esid: sec-with-statement
 es6id: 13.11
 flags: [noStrict]
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) let x;
diff --git a/test/language/statements/with/labelled-fn-stmt.js b/test/language/statements/with/labelled-fn-stmt.js
index 4725c360f368012c470ae64b4de41d8e475e7eed..8008b3930882e65d2a45e34410960c69c63ab300 100644
--- a/test/language/statements/with/labelled-fn-stmt.js
+++ b/test/language/statements/with/labelled-fn-stmt.js
@@ -16,7 +16,9 @@ info: |
 
   In the absence of Annex B.3.2, a SyntaxError should be produced due to the
   labelled function declaration itself.
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 with ({}) label1: label2: function test262() {}
diff --git a/test/language/types/null/S8.2_A2.js b/test/language/types/null/S8.2_A2.js
index 620e1ea06bfe41788f373f5d0e7a9f423fb118be..c4810923f489cfcd4b84f0e47834a50b9de38b5c 100644
--- a/test/language/types/null/S8.2_A2.js
+++ b/test/language/types/null/S8.2_A2.js
@@ -5,7 +5,9 @@
 info: The null is resrved word
 es5id: 8.2_A2
 description: Checking if execution of "var null" fails
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var null;
diff --git a/test/language/types/string/S8.4_A13_T1.js b/test/language/types/string/S8.4_A13_T1.js
index 60d047be9fd06a2ecb24163473bdae68b7594f4e..e0d8a133d2eff2e88da349cd7ecb8a3edae0781c 100644
--- a/test/language/types/string/S8.4_A13_T1.js
+++ b/test/language/types/string/S8.4_A13_T1.js
@@ -5,7 +5,9 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T1
 description: Try to create variable using 3 single-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = ''';
diff --git a/test/language/types/string/S8.4_A13_T2.js b/test/language/types/string/S8.4_A13_T2.js
index c4912bd52b4a4c7cd3f551a6a788056620d33f9e..8c67774ea8bf85abcd516c9ec91528eee7879735 100644
--- a/test/language/types/string/S8.4_A13_T2.js
+++ b/test/language/types/string/S8.4_A13_T2.js
@@ -5,7 +5,9 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T2
 description: Try to create variable using 1 single-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = ';
diff --git a/test/language/types/string/S8.4_A13_T3.js b/test/language/types/string/S8.4_A13_T3.js
index 7a028d6fb443180fe82f8d2574b9b776d3261fe1..13e7ff79d1877754cb95333c6c1d49153eaf9706 100644
--- a/test/language/types/string/S8.4_A13_T3.js
+++ b/test/language/types/string/S8.4_A13_T3.js
@@ -5,7 +5,9 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T3
 description: Try to create variable using 4 single-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = '''';
diff --git a/test/language/types/string/S8.4_A14_T1.js b/test/language/types/string/S8.4_A14_T1.js
index 80def88b064399baa76a7dcff5d8e105153454d1..178b6cbe26be1b7b7299fa3dd14bd2367bd8ffbe 100644
--- a/test/language/types/string/S8.4_A14_T1.js
+++ b/test/language/types/string/S8.4_A14_T1.js
@@ -5,7 +5,9 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T1
 description: Try to create variable using 1 double-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = ";
diff --git a/test/language/types/string/S8.4_A14_T2.js b/test/language/types/string/S8.4_A14_T2.js
index 21a98042142f269690a50d15691680e1b984e4a1..a87b6110e4ad3f416c5cb84c0bc4011d5f310f66 100644
--- a/test/language/types/string/S8.4_A14_T2.js
+++ b/test/language/types/string/S8.4_A14_T2.js
@@ -5,7 +5,9 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T2
 description: Try to create variable using 3 double-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = """;
diff --git a/test/language/types/string/S8.4_A14_T3.js b/test/language/types/string/S8.4_A14_T3.js
index 40d8743acd3f02a1698c08180f3764e27b8145ec..5304a43d7cac6cf8f8ee1cf1088e1eb28772cfbc 100644
--- a/test/language/types/string/S8.4_A14_T3.js
+++ b/test/language/types/string/S8.4_A14_T3.js
@@ -5,7 +5,9 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T3
 description: Try to create variable using 4 double-quote
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var str = """";
diff --git a/test/language/white-space/S7.2_A5_T1.js b/test/language/white-space/S7.2_A5_T1.js
index 957767e8a0539d519bfab43b4a282a5554ad356d..7fcef77219875de310a36785bd1c585a95b29ab1 100644
--- a/test/language/white-space/S7.2_A5_T1.js
+++ b/test/language/white-space/S7.2_A5_T1.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T1
 description: Use TAB (U+0009)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u0009x;
diff --git a/test/language/white-space/S7.2_A5_T2.js b/test/language/white-space/S7.2_A5_T2.js
index bd60773b27adb48025f13ad5a80f6a83a77fc90d..320dbf31f358011029e22833bd53abdf75b0ced0 100644
--- a/test/language/white-space/S7.2_A5_T2.js
+++ b/test/language/white-space/S7.2_A5_T2.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T2
 description: Use VERTICAL TAB (U+000B)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u000Bx;
diff --git a/test/language/white-space/S7.2_A5_T3.js b/test/language/white-space/S7.2_A5_T3.js
index fa3a23620ddde1e073d0fbe59d5a65dfc3218a24..6187c2b7512fefa02e55db1dd02bae932feba4ac 100644
--- a/test/language/white-space/S7.2_A5_T3.js
+++ b/test/language/white-space/S7.2_A5_T3.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T3
 description: Use FORM FEED (U+000C)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u000Cx;
diff --git a/test/language/white-space/S7.2_A5_T4.js b/test/language/white-space/S7.2_A5_T4.js
index 4ff6bbad43b4430f0534e7cc4edb3a64bbacfa19..21ae38f7ce2c13383e794191e480173517ad0efd 100644
--- a/test/language/white-space/S7.2_A5_T4.js
+++ b/test/language/white-space/S7.2_A5_T4.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T4
 description: Use SPACE (U+0020)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u0020x;
diff --git a/test/language/white-space/S7.2_A5_T5.js b/test/language/white-space/S7.2_A5_T5.js
index 956341d91399ef376d2b2a4c373d6c5b780b7980..439efb4bec2f3137a77a63cd73d05b0e3b97b689 100644
--- a/test/language/white-space/S7.2_A5_T5.js
+++ b/test/language/white-space/S7.2_A5_T5.js
@@ -7,7 +7,9 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T5
 description: Use NO-BREAK SPACE (U+00A0)
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 var\u00A0x;
diff --git a/test/language/white-space/mongolian-vowel-separator.js b/test/language/white-space/mongolian-vowel-separator.js
index 1229707a9eb49d4344eacf99bfef03b7e1732b80..6a134eba1a54f72783e075a1f67c55bd9769d6da 100644
--- a/test/language/white-space/mongolian-vowel-separator.js
+++ b/test/language/white-space/mongolian-vowel-separator.js
@@ -20,7 +20,9 @@ info: >
     Other category “Zs” code points
 
   General Category of U+180E is “Cf” (Format).
-negative: SyntaxError
+negative:
+  phase: early
+  type: SyntaxError
 ---*/
 
 // U+180E between "var" and "foo"; UTF8(0x180E) = 0xE1 0xA0 0x8E