diff --git a/test/suite/bestPractice/Sbp_12.5_A9_T3.js b/test/suite/bestPractice/Sbp_12.5_A9_T3.js
index b66b91d74f90df0c54203f5aaaf217bf176b89e8..cb00f3ea470aab7cc7a60ccbd9b1df4644b0d677 100644
--- a/test/suite/bestPractice/Sbp_12.5_A9_T3.js
+++ b/test/suite/bestPractice/Sbp_12.5_A9_T3.js
@@ -6,7 +6,7 @@ info: Function declaration within an "if" statement is not allowed
 description: >
     Declaring function within an "if" statement that is declared
     within the function declaration
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function(){
diff --git a/test/suite/bestPractice/Sbp_12.6.1_A13_T3.js b/test/suite/bestPractice/Sbp_12.6.1_A13_T3.js
index 65cb3331b1fd08894765f476fd6cb3bcf54ea217..2891ce60942c43af8ddd6a5f2926299a8d67acb9 100644
--- a/test/suite/bestPractice/Sbp_12.6.1_A13_T3.js
+++ b/test/suite/bestPractice/Sbp_12.6.1_A13_T3.js
@@ -6,7 +6,7 @@ info: FunctionDeclaration within a "do-while" Block is not allowed
 description: >
     Declaring a function within a "do-while" loop that is within a
     function declaration itself
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function(){
diff --git a/test/suite/bestPractice/Sbp_12.6.2_A13_T3.js b/test/suite/bestPractice/Sbp_12.6.2_A13_T3.js
index cc6a2e1c781e66ee93f9dbfb04b6130a2e3c153f..790a46cc9935d986be256f589450b56d60ede27a 100644
--- a/test/suite/bestPractice/Sbp_12.6.2_A13_T3.js
+++ b/test/suite/bestPractice/Sbp_12.6.2_A13_T3.js
@@ -6,7 +6,7 @@ info: FunctionDeclaration within a "while" Statement is not allowed
 description: >
     Checking if declaring a function within a "while" Statement that
     is in a function body leads to an exception
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function(){
diff --git a/test/suite/bestPractice/Sbp_12.6.4_A13_T3.js b/test/suite/bestPractice/Sbp_12.6.4_A13_T3.js
index 1da0487f61acc992911bafe7b699392670173f11..0a934ad548b417c0fc0a9ddff8bb73dec3337656 100644
--- a/test/suite/bestPractice/Sbp_12.6.4_A13_T3.js
+++ b/test/suite/bestPractice/Sbp_12.6.4_A13_T3.js
@@ -6,7 +6,7 @@ info: FunctionDeclaration within a "for-in" Statement is not allowed
 description: >
     Declaring function within a "for-in" Statement that is within
     function declaration
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function(){
diff --git a/test/suite/bestPractice/Sbp_7.8.4_A6.1_T4.js b/test/suite/bestPractice/Sbp_7.8.4_A6.1_T4.js
index ec504c5032d403cb8edbf7aa72eabad61c318a16..33061648afe996415de1b3577d8d72a855adff06 100644
--- a/test/suite/bestPractice/Sbp_7.8.4_A6.1_T4.js
+++ b/test/suite/bestPractice/Sbp_7.8.4_A6.1_T4.js
@@ -4,7 +4,7 @@
 /*---
 info: "EscapeSequence :: HexEscapeSequence :: x HexDigit HexDigit"
 description: "HexEscapeSequence :: x0G is incorrect"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#
diff --git a/test/suite/bestPractice/Sbp_7.8.4_A6.2_T1.js b/test/suite/bestPractice/Sbp_7.8.4_A6.2_T1.js
index 517eb009389b2ea6bc54f3cd4984fc1a20ea1a03..a44677357f132ef085201c2f6681673128cbcc90 100644
--- a/test/suite/bestPractice/Sbp_7.8.4_A6.2_T1.js
+++ b/test/suite/bestPractice/Sbp_7.8.4_A6.2_T1.js
@@ -4,7 +4,7 @@
 /*---
 info: "HexEscapeSequence :: x HexDigit is incorrect"
 description: "HexDigit :: 1"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/bestPractice/Sbp_7.8.4_A6.2_T2.js b/test/suite/bestPractice/Sbp_7.8.4_A6.2_T2.js
index f8193f2a48afbdbbf471c90654b349d49ebec984..1c3165a73ae0dcd454aee8752ec7ab3cc141a895 100644
--- a/test/suite/bestPractice/Sbp_7.8.4_A6.2_T2.js
+++ b/test/suite/bestPractice/Sbp_7.8.4_A6.2_T2.js
@@ -4,7 +4,7 @@
 /*---
 info: "HexEscapeSequence :: x HexDigit is incorrect"
 description: "HexDigit :: A"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.2/S7.2_A5_T1.js b/test/suite/ch07/7.2/S7.2_A5_T1.js
index 2886621759834854d573e2e237736abb12890384..957767e8a0539d519bfab43b4a282a5554ad356d 100644
--- a/test/suite/ch07/7.2/S7.2_A5_T1.js
+++ b/test/suite/ch07/7.2/S7.2_A5_T1.js
@@ -7,7 +7,7 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T1
 description: Use TAB (U+0009)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u0009x;
diff --git a/test/suite/ch07/7.2/S7.2_A5_T2.js b/test/suite/ch07/7.2/S7.2_A5_T2.js
index 66f6064757e62229dbdd43876f6034a7ecbc397d..bd60773b27adb48025f13ad5a80f6a83a77fc90d 100644
--- a/test/suite/ch07/7.2/S7.2_A5_T2.js
+++ b/test/suite/ch07/7.2/S7.2_A5_T2.js
@@ -7,7 +7,7 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T2
 description: Use VERTICAL TAB (U+000B)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u000Bx;
diff --git a/test/suite/ch07/7.2/S7.2_A5_T3.js b/test/suite/ch07/7.2/S7.2_A5_T3.js
index 67da9023a39cc33b30be2739e1fc89ee87519a75..fa3a23620ddde1e073d0fbe59d5a65dfc3218a24 100644
--- a/test/suite/ch07/7.2/S7.2_A5_T3.js
+++ b/test/suite/ch07/7.2/S7.2_A5_T3.js
@@ -7,7 +7,7 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T3
 description: Use FORM FEED (U+000C)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u000Cx;
diff --git a/test/suite/ch07/7.2/S7.2_A5_T4.js b/test/suite/ch07/7.2/S7.2_A5_T4.js
index cffd17512b2a21768f8e12ed7c437b29f6454703..4ff6bbad43b4430f0534e7cc4edb3a64bbacfa19 100644
--- a/test/suite/ch07/7.2/S7.2_A5_T4.js
+++ b/test/suite/ch07/7.2/S7.2_A5_T4.js
@@ -7,7 +7,7 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T4
 description: Use SPACE (U+0020)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u0020x;
diff --git a/test/suite/ch07/7.2/S7.2_A5_T5.js b/test/suite/ch07/7.2/S7.2_A5_T5.js
index f35d220f402450d5bbc10ac9f3171171b6efb317..956341d91399ef376d2b2a4c373d6c5b780b7980 100644
--- a/test/suite/ch07/7.2/S7.2_A5_T5.js
+++ b/test/suite/ch07/7.2/S7.2_A5_T5.js
@@ -7,7 +7,7 @@ info: >
     of six characters, namely \u plus four hexadecimal digits
 es5id: 7.2_A5_T5
 description: Use NO-BREAK SPACE (U+00A0)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u00A0x;
diff --git a/test/suite/ch07/7.3/S7.3_A2.1_T1.js b/test/suite/ch07/7.3/S7.3_A2.1_T1.js
index 3fc7f84230ed9417587e7555a87c43a81181dfaf..3e8cad14aec9afa5fa49052a5f769f6656a36e1d 100644
--- a/test/suite/ch07/7.3/S7.3_A2.1_T1.js
+++ b/test/suite/ch07/7.3/S7.3_A2.1_T1.js
@@ -5,7 +5,7 @@
 info: LINE FEED (U+000A) within strings is not allowed
 es5id: 7.3_A2.1_T1
 description: Insert LINE FEED (\u000A) into string
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A2.1_T2.js b/test/suite/ch07/7.3/S7.3_A2.1_T2.js
index 41a3694c645bdaf855da26bc5e298d9a4c1ce66e..00c7a1d4b43ac5d9099ebafa660d95c128690c53 100644
--- a/test/suite/ch07/7.3/S7.3_A2.1_T2.js
+++ b/test/suite/ch07/7.3/S7.3_A2.1_T2.js
@@ -5,7 +5,7 @@
 info: LINE FEED (U+000A) within strings is not allowed
 es5id: 7.3_A2.1_T2
 description: Use real LINE FEED into string
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A2.2_T1.js b/test/suite/ch07/7.3/S7.3_A2.2_T1.js
index 64199e91f98bd7d2e13daf8a265358255f5ca690..bb50b71a302133f7af20a3eb0a0b583341f51162 100644
--- a/test/suite/ch07/7.3/S7.3_A2.2_T1.js
+++ b/test/suite/ch07/7.3/S7.3_A2.2_T1.js
@@ -5,7 +5,7 @@
 info: CARRIAGE RETURN (U+000D) within strings is not allowed
 es5id: 7.3_A2.2_T1
 description: Insert CARRIAGE RETURN (\u000D) into string
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A2.2_T2.js b/test/suite/ch07/7.3/S7.3_A2.2_T2.js
index a556aa41436bf1099b671ea77687a202c3f418a3..dce4f2a2b990383a444ed5e207d77b1c94aa3e98 100644
--- a/test/suite/ch07/7.3/S7.3_A2.2_T2.js
+++ b/test/suite/ch07/7.3/S7.3_A2.2_T2.js
@@ -5,7 +5,7 @@
 info: CARRIAGE RETURN (U+000D) within strings is not allowed
 es5id: 7.3_A2.2_T2
 description: Insert real CARRIAGE RETURN into string
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A2.3.js b/test/suite/ch07/7.3/S7.3_A2.3.js
index dd811410c62175d03f17c2721ec18b657cf31aa0..439140a558b3451d208bb39ef9e082e9f78dc5a2 100644
--- a/test/suite/ch07/7.3/S7.3_A2.3.js
+++ b/test/suite/ch07/7.3/S7.3_A2.3.js
@@ -5,7 +5,7 @@
 info: LINE SEPARATOR (U+2028) within strings is not allowed
 es5id: 7.3_A2.3
 description: Insert LINE SEPARATOR (\u2028) into string
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A2.4.js b/test/suite/ch07/7.3/S7.3_A2.4.js
index debb2089592a03bc96d0d44cc0ecda3e4963df54..9db6e42e8b9ed25c8fbf73c4b891b02d29170966 100644
--- a/test/suite/ch07/7.3/S7.3_A2.4.js
+++ b/test/suite/ch07/7.3/S7.3_A2.4.js
@@ -5,7 +5,7 @@
 info: PARAGRAPH SEPARATOR (U+2029) within strings is not allowed
 es5id: 7.3_A2.4
 description: Insert PARAGRAPH SEPARATOR (\u2029) into string
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.1_T1.js b/test/suite/ch07/7.3/S7.3_A3.1_T1.js
index 84532006e45fb89063ab0610f9c64098a459b881..fa3ef486f88772bf6b8eb1bc53f71bdc1a9dfd11 100644
--- a/test/suite/ch07/7.3/S7.3_A3.1_T1.js
+++ b/test/suite/ch07/7.3/S7.3_A3.1_T1.js
@@ -5,7 +5,7 @@
 info: Single line comments can not contain LINE FEED (U+000A) inside
 es5id: 7.3_A3.1_T1
 description: Insert LINE FEED (\u000A) into single line comment
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.1_T2.js b/test/suite/ch07/7.3/S7.3_A3.1_T2.js
index b0e74af980761ca8d50e79dd3a3629b815e0638f..61d2bbbaa32d4a4318a396e3a70edc8c636dd765 100644
--- a/test/suite/ch07/7.3/S7.3_A3.1_T2.js
+++ b/test/suite/ch07/7.3/S7.3_A3.1_T2.js
@@ -5,7 +5,7 @@
 info: Single line comments can not contain LINE FEED (U+000A) inside
 es5id: 7.3_A3.1_T2
 description: Insert LINE FEED (\u000A) into begin of single line comment
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.1_T3.js b/test/suite/ch07/7.3/S7.3_A3.1_T3.js
index 41f3d5c5b2e96712ff41cc287aba60c76c01dc1f..68c5a9062621d68fbfb5de9d4edbdf3c215c5c0f 100644
--- a/test/suite/ch07/7.3/S7.3_A3.1_T3.js
+++ b/test/suite/ch07/7.3/S7.3_A3.1_T3.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.2_T1.js b/test/suite/ch07/7.3/S7.3_A3.2_T1.js
index 5bde26889741e8673bda261b00135354d27fc0cc..11f0b00956f3553ba631d1a5cb7abc95832b11a5 100644
--- a/test/suite/ch07/7.3/S7.3_A3.2_T1.js
+++ b/test/suite/ch07/7.3/S7.3_A3.2_T1.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.2_T2.js b/test/suite/ch07/7.3/S7.3_A3.2_T2.js
index 7c34bcd0df771b8548d513edcd530cad79e3ca9d..04cde82e4e429e984d9ac79db105588acf270309 100644
--- a/test/suite/ch07/7.3/S7.3_A3.2_T2.js
+++ b/test/suite/ch07/7.3/S7.3_A3.2_T2.js
@@ -5,7 +5,7 @@
 info: Single line comments can not contain CARRIAGE RETURN (U+000D) inside
 es5id: 7.3_A3.2_T2
 description: Insert CARRIAGE RETURN (\u000D) into begin of single line comment
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.2_T3.js b/test/suite/ch07/7.3/S7.3_A3.2_T3.js
index b610bd50ad51e7136914172926e8c8a6f0c5b060..02b123410f15b65c7c71b7aba67bdeefd1e4483d 100644
--- a/test/suite/ch07/7.3/S7.3_A3.2_T3.js
+++ b/test/suite/ch07/7.3/S7.3_A3.2_T3.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.3_T1.js b/test/suite/ch07/7.3/S7.3_A3.3_T1.js
index 033ed8984d4a233e7620be94a31072a11060babd..26076de50783fc7ead78c12de50f0bc144f23e18 100644
--- a/test/suite/ch07/7.3/S7.3_A3.3_T1.js
+++ b/test/suite/ch07/7.3/S7.3_A3.3_T1.js
@@ -5,7 +5,7 @@
 info: Single line comments can not contain LINE SEPARATOR (U+2028) inside
 es5id: 7.3_A3.3_T1
 description: Insert LINE SEPARATOR (\u2028) into single line comment
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.3_T2.js b/test/suite/ch07/7.3/S7.3_A3.3_T2.js
index d9b9a3a0cf2b30417f5f68fed80dc614716bcbc2..07d3f855a2d49311839cfcf7c8a6d2c42e67e7bd 100644
--- a/test/suite/ch07/7.3/S7.3_A3.3_T2.js
+++ b/test/suite/ch07/7.3/S7.3_A3.3_T2.js
@@ -5,7 +5,7 @@
 info: Single line comments can not contain LINE SEPARATOR (U+2028) inside
 es5id: 7.3_A3.3_T2
 description: Insert LINE SEPARATOR (\u2028) into begin of single line comment
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.4_T1.js b/test/suite/ch07/7.3/S7.3_A3.4_T1.js
index 2a0b7c82514dba9e2631d0d803cdefc67b05ed00..d7d7b1b929c99d9e64a39b92c74196819cd1f6ef 100644
--- a/test/suite/ch07/7.3/S7.3_A3.4_T1.js
+++ b/test/suite/ch07/7.3/S7.3_A3.4_T1.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A3.4_T2.js b/test/suite/ch07/7.3/S7.3_A3.4_T2.js
index d483a972a90d71417264f2ff575644c092799b02..6393ba801a6056f4d0706114de1e19c439dac9f0 100644
--- a/test/suite/ch07/7.3/S7.3_A3.4_T2.js
+++ b/test/suite/ch07/7.3/S7.3_A3.4_T2.js
@@ -7,7 +7,7 @@ es5id: 7.3_A3.4_T2
 description: >
     Insert PARAGRAPH SEPARATOR (\u2029) into begin of single line
     comment
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch07/7.3/S7.3_A6_T1.js b/test/suite/ch07/7.3/S7.3_A6_T1.js
index fba455c4f70d79b5ad28a66c81a392f47627eed5..bc16811d3925e00de7dc253cf6f78a2815847969 100644
--- a/test/suite/ch07/7.3/S7.3_A6_T1.js
+++ b/test/suite/ch07/7.3/S7.3_A6_T1.js
@@ -7,7 +7,7 @@ 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u000Ax;
diff --git a/test/suite/ch07/7.3/S7.3_A6_T2.js b/test/suite/ch07/7.3/S7.3_A6_T2.js
index 2fa68cf2a89aea5e753fe7a98be15b143c7531e5..ed3acaa4567af22127842fdd2b8750e2b8c1ab50 100644
--- a/test/suite/ch07/7.3/S7.3_A6_T2.js
+++ b/test/suite/ch07/7.3/S7.3_A6_T2.js
@@ -7,7 +7,7 @@ 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u000Dx;
diff --git a/test/suite/ch07/7.3/S7.3_A6_T3.js b/test/suite/ch07/7.3/S7.3_A6_T3.js
index c288088b0e6de76a55537fb9d53d6ffa9cd7b748..ea10ae15834cd7b9b5840f51efbccedf9bae95ff 100644
--- a/test/suite/ch07/7.3/S7.3_A6_T3.js
+++ b/test/suite/ch07/7.3/S7.3_A6_T3.js
@@ -7,7 +7,7 @@ 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u2028x;
diff --git a/test/suite/ch07/7.3/S7.3_A6_T4.js b/test/suite/ch07/7.3/S7.3_A6_T4.js
index 9f679d5f4aea9389e76c8756e9918492c13aa265..daa1ad396b5a003c1a299b11504234ff5e69dd57 100644
--- a/test/suite/ch07/7.3/S7.3_A6_T4.js
+++ b/test/suite/ch07/7.3/S7.3_A6_T4.js
@@ -7,7 +7,7 @@ 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var\u2029x;
diff --git a/test/suite/ch07/7.4/S7.4_A2_T2.js b/test/suite/ch07/7.4/S7.4_A2_T2.js
index 2d4103f0a0cf7509ce9caf0b6967ce6ed872191e..e46e9ef731975f4c3b4b8f3ba979a96c996909f7 100644
--- a/test/suite/ch07/7.4/S7.4_A2_T2.js
+++ b/test/suite/ch07/7.4/S7.4_A2_T2.js
@@ -5,7 +5,7 @@
 info: Correct interpretation of multi line comments
 es5id: 7.4_A2_T2
 description: Try use /*CHECK#1/. This is not closed multi line comment
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 /*CHECK#1/
diff --git a/test/suite/ch07/7.4/S7.4_A3.js b/test/suite/ch07/7.4/S7.4_A3.js
index 98d090bcddc14b3b2479d79002d2ed4978e5fb3e..422bc3d9c0b5acdfa38e55d557313ccb00c3e221 100644
--- a/test/suite/ch07/7.4/S7.4_A3.js
+++ b/test/suite/ch07/7.4/S7.4_A3.js
@@ -5,7 +5,7 @@
 info: Multi line comments cannot nest
 es5id: 7.4_A3
 description: Try use nested comments
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/suite/ch07/7.4/S7.4_A4_T1.js b/test/suite/ch07/7.4/S7.4_A4_T1.js
index 52b4f5b66b15da55ae37f42d28414275c55b2d46..ea6281a671779c762946ef6f5439d3d2df532494 100644
--- a/test/suite/ch07/7.4/S7.4_A4_T1.js
+++ b/test/suite/ch07/7.4/S7.4_A4_T1.js
@@ -5,7 +5,7 @@
 info: Single and Multi line comments are used together
 es5id: 7.4_A4_T1
 description: Try use 2 close comment tags
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/suite/ch07/7.4/S7.4_A4_T4.js b/test/suite/ch07/7.4/S7.4_A4_T4.js
index 4ba143789a4ee7dff331e4b6043a7531c22b83bb..a6913e7d02b6f5671b0f7859d982f192e4ade0e6 100644
--- a/test/suite/ch07/7.4/S7.4_A4_T4.js
+++ b/test/suite/ch07/7.4/S7.4_A4_T4.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 /*CHECK#1*/
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js
index f9e5ffb782805e3b5da159ec818cb8c0d625a9af..a254c9266223d735fbd28cd066a645fb75f781ea 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.1.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 break = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js
index 247cff6c710bdf97bc726ec86b3156352d3fc4a2..053e0faca62200d106bbaae87aeaab8e55b86754 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 for = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js
index bca8904815ae8675753746dd47d139d0c38b2e7b..96652e2b10b239d62d43b5c5f9b915e3f1b8d70e 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.11.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js
index 5fc1157bc1e4c81c7de839a8862de9f205e1ec7e..603ecbe1332a7ca6a29786b25a96a738196e8f0d 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.12.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 if = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js
index bf2c8223737a8230428dbac40639e2d76a2ee874..d7da9537db0c2f5159b026f837637f606ce98895 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.13.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 in = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js
index 34e64144c3c28d679845b8c91c8ed91c6f9d5785..d5044199445b46dc906806e3279608c1f0e0aab2 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.14.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 instanceof = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js
index 57df440349fbe9babd8414194c26a3ddb4507d51..e623b1a0be5bf9286ccec273d36879526fe04eff 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.15.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 new = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js
index f73677136aa3d1d9e8e0b41d24f18828a1d66021..add73e9f27530a15b2ce39089d82fd5f565af9ab 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.16.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 return = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js
index 68bbcf7447f952eef3fae62e95ffa2b941629023..ae8dbae8e0a8f382492cebdb58b16f89c1a1c544 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.17.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 switch = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js
index 3f531cd4100dcda446276364223cbed63e5b2f1d..6c9fa99f7d984389594aa4eab41a76f6f86b2599 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.18.js
@@ -5,7 +5,7 @@
 info: The "this" token can not be used as identifier
 es5id: 7.6.1.1_A1.18
 description: Checking if execution of "this=1" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 this = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js
index a8982560186b0512d42646b4a8fd5925678c4dcd..16418ccb0fb028752e906bec45553cf5520133ef 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.19.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 throw = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js
index 9916fa0f1ece332dae8bf302c8355c0c79728c28..a973527c4da9f04ae93a9a6b8073bfd18e684898 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.2.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 case = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js
index fea685b8164c00801ef92384e5d2e5ed44007dfc..a72a7ae35aae0d41e4b28d7b7814ba609e766853 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.20.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 try = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js
index 91535f9f2922d9943f270372fa973c3f14251d17..6a3b03a0b2b2724dae43ef0faf826d5330eacdd3 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.21.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 typeof = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js
index a9c6eb3bed36ceac52eb299e0dd5694f7059bf1c..3192d857abaa2f2fec03e2ba3f5b63b89c23609b 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.22.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js
index 0bbce995e42513332714ce05be4146c7e51de03c..b6cded9f36df3959eaadb20c0f0ed7e1e0e4a9aa 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.23.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 void = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js
index 8d3aa5e2bfdd7dee3e667d56011e6f30b64e4b11..6cbfa08e9854ad0ca7b2fac8a294584f8cde3e8b 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.24.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 while = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js
index c71a36033ebc3c905e93a262f27eae1d7b6da881..693163b6dd4ded75c619c4ad5c5ff8401ba28ac2 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.25.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 with = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js
index 8f2bbad205e3718745c15ad9a7301f3e87e49abf..e896e65557653b558916d3f0348e251b3ee57452 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.3.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 catch = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js
index ee61da986f5fe1f098e3ffa90d698cc9296a7a1b..f9215dcdccbb08a1450e9a6e66813a9d8d12b0fc 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.4.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 continue = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js
index 376ca18090613ce39ca6abe8e92f88acb056c8f8..35425610c51313e461d80617f709ba0b29febeb8 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.5.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 default = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js
index cc1f1aec5ba504d604e7ddeff3a8b0180a009d10..e4330159acdc17954e1dba4933d6baeb8c8b0cc0 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.6.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 delete = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js
index 857f0ed41f6f9e08f04680995f4f61fe47a2d3b7..b9428377a69cd067d3dac7bcbc496262fdb967e6 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.7.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 do = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js
index 14197fc75694b2bd0f8a0f92bbebe2ada65828c7..bf4409e315f2f71e467e35c1d31acf87a6f6cf07 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.8.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 else = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js
index 8ea4a785b2b3a57fb235ddc1b1b84ae1c9f2e66f..50af87b024f2d2e25cf6d9b2b93e8a216ffc7546 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.9.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 finally = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2-1gs.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2-1gs.js
index bfa17e26c121b80ba5a0ff848fd6fc5e731e0f95..63c34a88118b7f8d371d6a04e5c5c9c173662be8 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2-1gs.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2-1gs.js
@@ -9,7 +9,7 @@ es5id: 7.6.1.2-1gs
 description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'implements' occurs in strict mode code
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js
index 627eef99e189f867dc3eb92dc69afb6518320e4e..183fd9909030c77b934339d70d986037d337ae76 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.10.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var export = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js
index 8ed1aca7926dac9139f614800b2e57938c6199e8..5d5d6237c434e66775e7b3479ba99631a81e96c4 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.11.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var extends = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js
index b2c41f50ac1f8a608c59d1df39462866f4300db7..abe941d4ef0d92989e51290c36c394994ceb899e 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.15.js
@@ -5,9 +5,8 @@
 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
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js
index fd5126cd45cb46a8be6c9758dce0ce59a853e710..b7c078dd63468fd3ae99549f216a6e5183bacc6e 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.16.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var import = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js
index a7364bf19cdfda9b0da1698be8103b01d6bbe2b9..abe69cfc8bcd43ceea04e250179aaa163f58abb8 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.18.js
@@ -5,9 +5,8 @@
 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
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js
index 123bb38ff1c99660aea221de05f6d882725398d5..2462ba6e352ee18da0d7563c08aa00a86fbd27b3 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.21.js
@@ -5,9 +5,8 @@
 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
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js
index 7ff05421227a576df347a3b8e67f9c29ad48b42f..ef7e7b3350ad04dab97908e7b67e12f19ca21b03 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.22.js
@@ -5,9 +5,8 @@
 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
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js
index 519543a9e8da90f69f60c798bfdd039c5a6169c5..8b527aabcf8d7d5baca481544e1f5b966285fbcc 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.23.js
@@ -5,9 +5,8 @@
 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
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js
index 117263714a58f0a8e0e8e432ffbca224c94e51aa..7382f31aa5ccbbaf4a4eecb829304ed736525881 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.24.js
@@ -5,9 +5,8 @@
 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
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js
index 5debcde9fbeae23b258d2aa50a1eb43a6c0fdddb..b5b9e431c9ee787e241eb6ba17d575b50c271322 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.26.js
@@ -5,9 +5,8 @@
 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
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js
index cb7c70b8d889a49cc33b448cec1207a10076d9af..8011fb1833a35be57dd0112200f997b04eb24e74 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.27.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var super = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js
index 98aefffa98978fd90236a60f93b0d55dbf165462..b1c184f444fb97372037f12c1d5cfcf4408dc09e 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.5.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var class = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js
index 4e9f3746d5ff5a2dc2cca6d8e33dc2fa5b7c7d89..af899166d5475530d45ed9c884b324b904e3687e 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.6.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var const = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js
index f089ca5ebd44ad940ab854630c00b12b29f46b96..b5217a3f508e14764ab755d2be7ab324640f80a7 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.7.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var debugger = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js
index c1ed82611e9684096e9a1e8052637d796ca96542..78fc962f8871301cc16db2f2f5fb4fa4959865a7 100644
--- a/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js
+++ b/test/suite/ch07/7.6/7.6.1/7.6.1.2/S7.6.1.2_A1.9.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var enum = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.1.js b/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.1.js
index cd3c57059e28f7b0cd8f09dd06482c11f553687a..76b1803b0ff787cb907a31457bbccc0f2a8d9119 100644
--- a/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.1.js
+++ b/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.1.js
@@ -5,7 +5,7 @@
 info: The "null" token can not be used as identifier
 es5id: 7.6.1_A1.1
 description: Checking if execution of "null = 1" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 null = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.2.js b/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.2.js
index 1f5a74942cd9955e2765e9d2817a1f694ec5263a..e593fd56c13be965b9f8e2a593f06cd71521667d 100644
--- a/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.2.js
+++ b/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.2.js
@@ -5,7 +5,7 @@
 info: The "true" token can not be used as identifier
 es5id: 7.6.1_A1.2
 description: Checking if execution of "true=1" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 true = 1;
diff --git a/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.3.js b/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.3.js
index 7e7340424cccc6c3632d9dbc0df35f06cf581e88..1c94158bdeaab68e475a9070dd6af1b0a8543cda 100644
--- a/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.3.js
+++ b/test/suite/ch07/7.6/7.6.1/S7.6.1_A1.3.js
@@ -5,7 +5,7 @@
 info: The "false" token can not be used as identifier
 es5id: 7.6.1_A1.3
 description: Checking if execution of "false=1" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 false = 1;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T1.js b/test/suite/ch07/7.7/S7.7_A2_T1.js
index c9b44f5b2723fe36993874e87211a0dc60444719..1e955d54b62f2cb0abf57151a2c273380f864da4 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T1.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T1.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T1
 description: Try to use {} as a Unicode \u007B\u007D
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 \u007B\u007D;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T10.js b/test/suite/ch07/7.7/S7.7_A2_T10.js
index 80776912160ad332f245202979aa26646ccac8ec..2fcdf86b4acaf7019f914b0d5e223248f4da6406 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T10.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T10.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T10
 description: Try to use / as a Unicode \u002F
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 1\u002F2;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T2.js b/test/suite/ch07/7.7/S7.7_A2_T2.js
index 29933c497e05b8c7fd0efbe26a6453b81d58cf6a..665b24297887bba793900a81056f983d6ff90c6b 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T2.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T2.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T2
 description: Try to use () as Unicode \u00281\u0029
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 \u00281\u0029;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T3.js b/test/suite/ch07/7.7/S7.7_A2_T3.js
index 28dce54839303d81623f2f6a05b7e760750d48ac..a38c8f29245aa0655cc2de6b0da14694eb99ed30 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T3.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T3.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T3
 description: Try to use [] as a Unicode \u005B\u005D
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 \u005B\u005D;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T4.js b/test/suite/ch07/7.7/S7.7_A2_T4.js
index 30cb76d7841b13699e398d09732250648f1031ce..a6f1f305b8847a6d7b7bce67a6ddbc3cbcc5a28a 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T4.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T4.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T4
 description: Try to use ; as a Unicode \u003B
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 \u003B;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T5.js b/test/suite/ch07/7.7/S7.7_A2_T5.js
index 13d4f5d4b42bd0a484dc5df24fd8687ae0f89b1c..59135976d3e220631c6947cfac40bf2e0b4081b7 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T5.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T5.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T5
 description: Try to use . as a Unicode \u002E
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 x = 1;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T6.js b/test/suite/ch07/7.7/S7.7_A2_T6.js
index 45455c1d64d101ff1fabd72ed5391d26e9ccd3cd..db832e0fa9f84979840f548dfbf7c7ab422198c8 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T6.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T6.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T6
 description: Try to use , as a Unicode \u002C
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 1\u002C2;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T7.js b/test/suite/ch07/7.7/S7.7_A2_T7.js
index fdf78e26d84da8dc5fe8f8afecdf8f211ffbe14f..685311c3fece948ac3ef4d0f658f80a75b0a1461 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T7.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T7.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T7
 description: Try to use + as a Unicode \u002B
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 1\u002B2;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T8.js b/test/suite/ch07/7.7/S7.7_A2_T8.js
index a39e6a6fb7f7518cf030972a197bcb57d4704445..7fd346dabb4a164e3242c1e1ccd4aa745a1ba9d1 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T8.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T8.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T8
 description: Try to use -  as a Unicode \u002D
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 1\u002D2;
diff --git a/test/suite/ch07/7.7/S7.7_A2_T9.js b/test/suite/ch07/7.7/S7.7_A2_T9.js
index e625cfb99ff9bb23456942c322110458479cada7..789a7d1e0e41e01f7279695d5ad582e4a8b42e20 100644
--- a/test/suite/ch07/7.7/S7.7_A2_T9.js
+++ b/test/suite/ch07/7.7/S7.7_A2_T9.js
@@ -7,7 +7,7 @@ info: >
     six characters, namely \u plus four hexadecimal digits
 es5id: 7.7_A2_T9
 description: Try to use * as a Unicode \u002A
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 1\u002A2;
diff --git a/test/suite/ch07/7.8/7.8.3/7.8.3-1gs.js b/test/suite/ch07/7.8/7.8.3/7.8.3-1gs.js
index 313736c5a7d6d165c9fd2f52cada47c057209bda..9c080b8d9db50069fed0914ad3b917f0b7785110 100644
--- a/test/suite/ch07/7.8/7.8.3/7.8.3-1gs.js
+++ b/test/suite/ch07/7.8/7.8.3/7.8.3-1gs.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 7.8.3-1gs
 description: Strict Mode - octal extension(010) is forbidden in strict mode
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch07/7.8/7.8.3/7.8.3-2gs.js b/test/suite/ch07/7.8/7.8.3/7.8.3-2gs.js
index 40e5d4eca6b8b28b58276a1815482ba6ae9cac67..3c64a0c192b2cdd348d97a584f484e3896c91532 100644
--- a/test/suite/ch07/7.8/7.8.3/7.8.3-2gs.js
+++ b/test/suite/ch07/7.8/7.8.3/7.8.3-2gs.js
@@ -9,7 +9,7 @@ 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: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js
index 000dce748e47115ee26cb7ef7f4e49b0acf1caf2..e1db008cb1f428baaa67d5befeb7d6daf67c5fdc 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T1.js
@@ -5,7 +5,7 @@
 info: "DecimalLiteral :: ExponentPart is incorrect"
 es5id: 7.8.3_A4.1_T1
 description: "ExponentPart :: e DecimalDigits"
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js
index 6625ffdf27e0e58fff1b526a82b55110820b80ba..5e65f18eac4b3fe7f785a2ace74c77db5c31f040 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T2.js
@@ -5,7 +5,7 @@
 info: "DecimalLiteral :: ExponentPart is incorrect"
 es5id: 7.8.3_A4.1_T2
 description: "ExponentPart :: E DecimalDigits"
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js
index 1d299cb344c72940bedf9e187939e10921f2d7c8..c9c9a631bdb804f7714e64b668b950480865dfb5 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T3.js
@@ -5,7 +5,7 @@
 info: "DecimalLiteral :: ExponentPart is incorrect"
 es5id: 7.8.3_A4.1_T3
 description: "ExponentPart :: e DecimalDigits"
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js
index b8324463fb2a3af6b5a341b7502658f52ae3c3d3..c99ba6d18c7966e82a792c425c62603420789b9a 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T4.js
@@ -5,7 +5,7 @@
 info: "DecimalLiteral :: ExponentPart is incorrect"
 es5id: 7.8.3_A4.1_T4
 description: "ExponentPart :: E DecimalDigits"
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js
index ece71ed0fa39a18b79d1307238b45dd968607873..3b26c5b4f0a8019f6b3bf6bc62f34c9e91441a8a 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T5.js
@@ -5,7 +5,7 @@
 info: "DecimalLiteral :: ExponentPart is incorrect"
 es5id: 7.8.3_A4.1_T5
 description: "ExponentPart :: e DecimalDigits"
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js
index f4c27104920ae8f41484ed8fa65c171d1bffe09b..c3cf5e7cc07422b4f2218bd12ef52abd56b71659 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T6.js
@@ -5,7 +5,7 @@
 info: "DecimalLiteral :: ExponentPart is incorrect"
 es5id: 7.8.3_A4.1_T6
 description: "ExponentPart :: E DecimalDigits"
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js
index b65398adcee5f417914e1ea28e060fb65c4107d4..5ae2cf0ace0e5cec4e1867746d602311a142739e 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T7.js
@@ -5,7 +5,7 @@
 info: "DecimalLiteral :: ExponentPart is incorrect"
 es5id: 7.8.3_A4.1_T7
 description: "ExponentPart :: e 0"
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js
index 7e56e0b129fe80cf145abe3513ef350bde0f57f3..9adcd083761a18068e533e80f7a258c26b61f645 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A4.1_T8.js
@@ -5,7 +5,7 @@
 info: "DecimalLiteral :: ExponentPart is incorrect"
 es5id: 7.8.3_A4.1_T8
 description: "ExponentPart :: E 0"
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js
index ece509cfcad77109528dfd57595edccba41221fd..23be70d68db19baa6c7b5ae017007eb4b9be22d2 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.1_T1.js
@@ -5,7 +5,7 @@
 info: "HexIntegerLiteral :: 0(x/X) is incorrect"
 es5id: 7.8.3_A6.1_T1
 description: Checking if execution of "0x" passes
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js
index c99ba9587945e1cd0e013574f0a93d0e58373bf1..ab511578fae1d1d98857e2734bf199889f4fc247 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.1_T2.js
@@ -5,7 +5,7 @@
 info: "HexIntegerLiteral :: 0(x/X) is incorrect"
 es5id: 7.8.3_A6.1_T2
 description: Checking if execution of "0X" passes
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js
index c5283e76dc82cf6f55c88ac8c5907fbb2f2bc990..bb9870aa2ec3e8cba11a5c7a0392de28b6d65368 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js
@@ -5,7 +5,7 @@
 info: 0xG is incorrect
 es5id: 7.8.3_A6.2_T1
 description: Checking if execution of "0xG" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js b/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js
index 6fdd49ea2330ce229b3fdc1793ad8f68dbcca49e..db0ae747f4db89ce49b690526fca5f096aa5ec4b 100644
--- a/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js
+++ b/test/suite/ch07/7.8/7.8.3/S7.8.3_A6.2_T2.js
@@ -5,7 +5,7 @@
 info: 0xG is incorrect
 es5id: 7.8.3_A6.2_T2
 description: Checking if execution of "0xg" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/7.8.4-1gs.js b/test/suite/ch07/7.8/7.8.4/7.8.4-1gs.js
index e0cbd6d5a4ef8e690fe1d9069ad44720eafd3bda..976e77bd8b8171082e6a00ef8fd9d77d3fd32447 100644
--- a/test/suite/ch07/7.8/7.8.4/7.8.4-1gs.js
+++ b/test/suite/ch07/7.8/7.8.4/7.8.4-1gs.js
@@ -9,7 +9,7 @@ es5id: 7.8.4-1gs
 description: >
     Strict Mode - OctalEscapeSequence(\0110) is forbidden in strict
     mode
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js
index 26e9ff8e6e771db967d5e764c734190b058e11dc..25e7947d1b39e6fcc40629c0d0262730e47956de 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.1_T1.js
@@ -7,7 +7,7 @@ es5id: 7.8.4_A1.1_T1
 description: >
     DoubleStringCharacter :: SourceCharacter but not double-quote " or
     LineTerminator
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js
index e9f19686d057043597e60edad3844aca452dbec0..bd503769e87f72ba974cd4eebfd2778694a0c0bd 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.1_T2.js
@@ -7,7 +7,7 @@ es5id: 7.8.4_A1.1_T2
 description: >
     DoubleStringCharacter :: SourceCharacter but not double-quote " or
     LineTerminator
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js
index 6d42906ef4fa77c002536906af4f682f72438c07..890a6b58e2f7750546e09f2c7cb91016d5cb8ad7 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.2_T1.js
@@ -7,7 +7,7 @@ es5id: 7.8.4_A1.2_T1
 description: >
     SingleStringCharacter :: SourceCharacter but not single-quote ' or
     LineTerminator
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js
index 2fee0e8d03dc9ec2fe4280051ee2082d58fdbb56..cd300d10f8f582074c18f9ccc11acc1c559eaebb 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A1.2_T2.js
@@ -7,7 +7,7 @@ es5id: 7.8.4_A1.2_T2
 description: >
     SingleStringCharacter :: SourceCharacter but not single-quote ' or
     LineTerminator
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js
index 7833281e1d8edbecc664981f9d559de4a1bd8d84..d5755153008a31af332d9ed37cfbfaccc691b93f 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.1_T1.js
@@ -5,7 +5,7 @@
 info: "StringLiteral :: \"\\\" or '\\' is not correct"
 es5id: 7.8.4_A3.1_T1
 description: Checking if execution of "\" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js
index 41d611118d11b037f946eaac70782402c43d1147..eadb8d72b9d27cb4f146279567005e34fbebf11d 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.1_T2.js
@@ -5,7 +5,7 @@
 info: "StringLiteral :: \"\\\" or '\\' is not correct"
 es5id: 7.8.4_A3.1_T2
 description: Checking if execution of "'\'" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js
index 4e06f85249f554caf1467320b5e4193e1daa1428..4890f99acc23f58cd6d12b1e986d15244f14b5bb 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.2_T1.js
@@ -5,7 +5,7 @@
 info: "StringLiteral :: \"\\\\\\\" or '\\\\\\' is not correct"
 es5id: 7.8.4_A3.2_T1
 description: Checking if execution of "\\\" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js
index a97f65464ad1674110ad283f4df0805e1812fae1..2f76790dcd8f4ab1a9bbcc13e27b9cb4962a95da 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A3.2_T2.js
@@ -5,7 +5,7 @@
 info: "StringLiteral :: \"\\\\\\\" or '\\\\\\' is not correct"
 es5id: 7.8.4_A3.2_T2
 description: Checking if execution of '\\\' fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js
index b0f5f43b1abcbde1ee70bba2c645ced0bfd56fe8..5d2e6065289bce5486d9003594837e9963ff9dc4 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A4.3_T1.js
@@ -5,9 +5,8 @@
 info: NonEscapeSequence is not EscapeCharacter
 es5id: 7.8.4_A4.3_T1
 description: "EscapeCharacter :: DecimalDigits :: 1"
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js
index bf7cdd3f0dfd6a05f5335390c351a39e045bbf41..5b55f54770dce2d5cd86e6532e2a4957faec89a0 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A4.3_T2.js
@@ -5,9 +5,8 @@
 info: NonEscapeSequence is not EscapeCharacter
 es5id: 7.8.4_A4.3_T2
 description: "EscapeCharacter :: DecimalDigits :: 7"
-flags:
-    - onlyStrict
-    - negative
+negative: SyntaxError
+flags: [onlyStrict]
 ---*/
 
 "use strict";
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js
index 119d49822e85336765140b226c6dbf97a9bc34f8..dc6d28dd515a68a5d2d3e2d32767871ab8330f20 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.1_T4.js
@@ -7,7 +7,7 @@ info: >
     HexDigit
 es5id: 7.8.4_A7.1_T4
 description: "UnicodeEscapeSequence :: u000G is incorrect"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js
index 5ead7488587e3831add1d224d539f334cad517f2..59ce6a0423c17f36e08d5df650f26ed1434b8993 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T1.js
@@ -5,7 +5,7 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T1
 description: ":: HexDigit :: 1"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js
index 58cea9c898ff76385ac56378326f8bf250e76c7d..df4f0582d1531b4d7f2274041226d3800e219f1b 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T2.js
@@ -5,7 +5,7 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T2
 description: ":: HexDigit :: A"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js
index 37a53be1dde5bfddde3a03dee22f1b9072192bf0..a6ca9c6ec091d1ba65bb5633da3c709bd96618e6 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T3.js
@@ -5,7 +5,7 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T3
 description: ":: HexDigit :: 1"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js
index 791a7c9d4ad622d8481c79631333b8c0562d96ae..6a02030dca5ea057a7e56c4eeefff972ead3fb8a 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T4.js
@@ -5,7 +5,7 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T4
 description: ":: HexDigit :: A"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js
index 7d25bb2c327d4d0988348a3d915b3642509754f1..42d0aca8a5612754634f92899431a0b839f247b8 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T5.js
@@ -5,7 +5,7 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T5
 description: ":: HexDigit :: 1"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js
index a140caed84dc09eb1cb36af2e04cb8c320432dda..462748fac7b9e24154775edc2bd593630cfa174b 100644
--- a/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js
+++ b/test/suite/ch07/7.8/7.8.4/S7.8.4_A7.2_T6.js
@@ -5,7 +5,7 @@
 info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect"
 es5id: 7.8.4_A7.2_T6
 description: ":: HexDigit :: A"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/7.8.5-1gs.js b/test/suite/ch07/7.8/7.8.5/7.8.5-1gs.js
index 6cad8ce6781cc713d45cf53ba0c0914abd8b68f0..4caa0b60833e11e4c9ccd8be01dc68c44a7d8447 100644
--- a/test/suite/ch07/7.8/7.8.5/7.8.5-1gs.js
+++ b/test/suite/ch07/7.8/7.8.5/7.8.5-1gs.js
@@ -1,14 +1,14 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 7.8.5-1gs
-description: Empty literal RegExp should result in a SyntaxError
-negative: ^((?!NotEarlyError).)*$
----*/
-
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// Ecma International makes this code available under the terms and conditions set
+// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+// "Use Terms").   Any redistribution of this code must retain the above
+// copyright and this notice and otherwise comply with the Use Terms.
+
+/*---
+es5id: 7.8.5-1gs
+description: Empty literal RegExp should result in a SyntaxError
+negative: SyntaxError
+---*/
+
 throw NotEarlyError;
-var re = //;
+var re = //;
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js
index 4f285a332321cdf6141ec3cee420d458a5374414..0d75cd4821b80491da895e34466f9675e13ed597 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T1.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T1
 description: "*"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js
index f5788af9ac968447e9fca2d615cf9d7538550fb3..fec6db97cae158117d225400ba471e680393d7b7 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T2.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T2
 description: \
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js
index 1f83641ebc070f057932dea7e94129072360d27a..ea5a41b552d3342fb19064293ce8db0d74d18c6c 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T3.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T3
 description: /
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js
index c8e613b474c89678d92fea2da51ad79da5a67813..599c6fdc9ff645f0c52cdf6b915167de1a23bfe5 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.2_T4.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionFirstChar :: * or \\ or / or [empty] is incorrect"
 es5id: 7.8.5_A1.2_T4
 description: "[empty]"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js
index 03a40762f73c24bb3e0ac6f894a9d1fdb1fe14bc..7b49ef35a73b31c514b96ace72c20f3225588685 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.3_T1.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionFirstChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A1.3_T1
 description: Line Feed, without eval
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js
index eb6727ff3bb7da7c77d02e11f9c13d9618ed1702..e7c78e764d75835bd14eb6584c12780c6e7abe9a 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.3_T3.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionFirstChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A1.3_T3
 description: Carriage Return, without eval
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js
index d691a51e3fe4db7aab3b41e840fe58c174675c4c..b5f81b07369f2c4d9f8316aa8682106e1245c9ed 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.5_T1.js
@@ -7,7 +7,7 @@ info: >
     incorrect
 es5id: 7.8.5_A1.5_T1
 description: Line Feed, without eval
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js
index fd05081ab65f254576a375881abed9b5011d43c7..03a4bf320d368be0b481caf7eb74fa565beb800c 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A1.5_T3.js
@@ -7,7 +7,7 @@ info: >
     incorrect
 es5id: 7.8.5_A1.5_T3
 description: Carriage Return, without eval
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js
index a177c1029613b72e5f843481a3e2f019979b66ef..602269b52edcaf302794cc787fc24da1f3a72cf9 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.2_T1.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionChar :: \\ or / is incorrect"
 es5id: 7.8.5_A2.2_T1
 description: \
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js
index 4c6b4235c550289960213f29fd01595b50fee783..e9d02eedc1173316ea61cb6feb95d47bbd4b5ace 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.2_T2.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionChar :: \\ or / is incorrect"
 es5id: 7.8.5_A2.2_T2
 description: /
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js
index 508d99009e690f5ab6916caa08695cf2ed6c1fd8..667e771cecb00cf865f26bb0de3614a8d7e50ea6 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.3_T1.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A2.3_T1
 description: Line Feed, without eval
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js
index 437b6737ad42dd7ceb96c432c56b12bddff43926..2cc2cda825ad1ceb0a4d22952a991e4c140826f0 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.3_T3.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionChar :: LineTerminator is incorrect"
 es5id: 7.8.5_A2.3_T3
 description: Carriage Return, without eval
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js
index 6c901c6e1b0afa9a9444e83785dff82441c473fd..44bd5da49923bdea9d2ab44ba8e3470bd15ebf84 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.5_T1.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionChar :: BackslashSequence :: \\LineTerminator is incorrect"
 es5id: 7.8.5_A2.5_T1
 description: Line Feed, without eval
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js
index 414da68fbaa63e44a89c5e3de38635d021a7b527..64afbad549729cf5748fd18771c0cd1a627bf545 100644
--- a/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js
+++ b/test/suite/ch07/7.8/7.8.5/S7.8.5_A2.5_T3.js
@@ -5,7 +5,7 @@
 info: "RegularExpressionChar :: BackslashSequence :: \\LineTerminator is incorrect"
 es5id: 7.8.5_A2.5_T3
 description: Carriage Return, without eval
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T1.js b/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T1.js
index 873318739a6f9c0fe23fa052da7f163693bd71a8..5a7921e8def21a822717f697133a1d3ac9e0c868 100644
--- a/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T1.js
+++ b/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T1.js
@@ -5,7 +5,7 @@
 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"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T3.js b/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T3.js
index 96ada674c9381f0050c7f0815f26035ac6eae16c..5cb51f5d0f05349ed717ec37dbe079d56af1f1a8 100644
--- a/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T3.js
+++ b/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T3.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T6.js b/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T6.js
index 1873d39921caddd3fcd6fbcd10fe1c8f1f1305c5..c7eeea2c76bdf49118981f7709a6491f7f4816de 100644
--- a/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T6.js
+++ b/test/suite/ch07/7.9/7.9.2/S7.9.2_A1_T6.js
@@ -7,7 +7,7 @@ es5id: 7.9.2_A1_T6
 description: >
     if(a>b) \n else c=d is not a valid sentence in the ECMAScript
     grammar
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A10_T2.js b/test/suite/ch07/7.9/S7.9_A10_T2.js
index b028e20fbf11846923f6ca204371c470a005d11d..b99ed68c4252c94b97fe3ef8f22905f1aaabb7b6 100644
--- a/test/suite/ch07/7.9/S7.9_A10_T2.js
+++ b/test/suite/ch07/7.9/S7.9_A10_T2.js
@@ -5,7 +5,7 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T2
 description: Checking if execution of "{}*1" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A10_T4.js b/test/suite/ch07/7.9/S7.9_A10_T4.js
index 80ee69fa1ff13f15f764d407f37ced5b91d89c5f..bf2a59e98f004bce2aa55e7454a5cdb4d237d37d 100644
--- a/test/suite/ch07/7.9/S7.9_A10_T4.js
+++ b/test/suite/ch07/7.9/S7.9_A10_T4.js
@@ -5,7 +5,7 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T4
 description: Checking if execution of "({};)*1" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A10_T6.js b/test/suite/ch07/7.9/S7.9_A10_T6.js
index e4b4e6826ae52864869ff48fe18b4218cd5ae552..36f462f9acfb474c2f5d7ffadaa2372edbb1e14d 100644
--- a/test/suite/ch07/7.9/S7.9_A10_T6.js
+++ b/test/suite/ch07/7.9/S7.9_A10_T6.js
@@ -5,7 +5,7 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T6
 description: Checking if execution of "{} \n * 1" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A10_T8.js b/test/suite/ch07/7.9/S7.9_A10_T8.js
index 27ca52fff267c84a70dcd143a52ba8d1f50cc7ee..c439b1599d75216adf5de59606a2144b4e7b1c9f 100644
--- a/test/suite/ch07/7.9/S7.9_A10_T8.js
+++ b/test/suite/ch07/7.9/S7.9_A10_T8.js
@@ -5,7 +5,7 @@
 info: Check {} for automatic semicolon insertion
 es5id: 7.9_A10_T8
 description: Checking if execution of "{1 2} 3" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A11_T4.js b/test/suite/ch07/7.9/S7.9_A11_T4.js
index e2a63e8cc0595c9bdd650cf54eb48974fc546efc..45663bcee88e9cf08f5a9a5319e34c17581cee2e 100644
--- a/test/suite/ch07/7.9/S7.9_A11_T4.js
+++ b/test/suite/ch07/7.9/S7.9_A11_T4.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A11_T8.js b/test/suite/ch07/7.9/S7.9_A11_T8.js
index 3356f1f3cf10acecb564143b2e5e5388b2af47e0..314d52781e05ad1527bc75d973dd7773de58fcb1 100644
--- a/test/suite/ch07/7.9/S7.9_A11_T8.js
+++ b/test/suite/ch07/7.9/S7.9_A11_T8.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A4.js b/test/suite/ch07/7.9/S7.9_A4.js
index 73cb507c471b6dcf53193c243c845a6595124aa5..35a01435251409ba40a4a7e26388429c6a23c732 100644
--- a/test/suite/ch07/7.9/S7.9_A4.js
+++ b/test/suite/ch07/7.9/S7.9_A4.js
@@ -5,7 +5,7 @@
 info: Check Throw Statement for automatic semicolon insertion
 es5id: 7.9_A4
 description: Try use Throw \n Expression construction
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A5.1_T1.js b/test/suite/ch07/7.9/S7.9_A5.1_T1.js
index 022c45fe5a1e74efc98237a3d9c5e7a019598a65..e8d2d9e7824c1bb5d5f19085cf0614dfe99c3363 100644
--- a/test/suite/ch07/7.9/S7.9_A5.1_T1.js
+++ b/test/suite/ch07/7.9/S7.9_A5.1_T1.js
@@ -5,7 +5,7 @@
 info: Check Postfix Increment Operator for automatic semicolon insertion
 es5id: 7.9_A5.1_T1
 description: Try use Variable \n ++ construction
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A5.3_T1.js b/test/suite/ch07/7.9/S7.9_A5.3_T1.js
index e075106956d8391fd5a160cbfd033ba5991ba9ef..402f82b6104293e4dbd633ceb246ac9a987151c9 100644
--- a/test/suite/ch07/7.9/S7.9_A5.3_T1.js
+++ b/test/suite/ch07/7.9/S7.9_A5.3_T1.js
@@ -5,7 +5,7 @@
 info: Check Postfix Decrement Operator for automatic semicolon insertion
 es5id: 7.9_A5.3_T1
 description: Try use Variable \n -- construction
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A5.7_T1.js b/test/suite/ch07/7.9/S7.9_A5.7_T1.js
index ccaddcc05ef4a9f22ad4d9ccd66768a10160f022..d61fc10158ff2d8b60b50b147fd43f2193ee8cbd 100644
--- a/test/suite/ch07/7.9/S7.9_A5.7_T1.js
+++ b/test/suite/ch07/7.9/S7.9_A5.7_T1.js
@@ -3,11 +3,16 @@
 
 /*---
 info: >
-    Since LineTerminator(LT) between Postfix Increment/Decrement Operator(I/DO) and operand is not allowed, two IO(just as two DO and their combination)
-    between two references separated by [LT] after automatic semicolon insertion lead to syntax error
+
+    Since LineTerminator(LT) between Postfix Increment/Decrement
+    Operator(I/DO) and operand is not allowed, two IO(just as two DO
+    and their combination) between two references separated by [LT]
+    after automatic semicolon insertion lead to syntax error
+    ES6 specifies this as `ReferenceError`
+
 es5id: 7.9_A5.7_T1
 description: Try use Variable1 \n ++ \n ++ \n Variable2 construction
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 var x=0, y=0;
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T1.js b/test/suite/ch07/7.9/S7.9_A6.2_T1.js
index b7d11f8df1c9c837770e00ac22e8c67fa64aa5e6..7134816e22c0d76e45be78027469d574164979e5 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T1.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T1.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T1
 description: For header is (semicolon \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T10.js b/test/suite/ch07/7.9/S7.9_A6.2_T10.js
index c86136d070df75cea7047a4dbe10f5149725060b..201d7395525b81a47f7fc351a2d0b523e06f0e1f 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T10.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T10.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T10
 description: For header is (\n false \n semicolon)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T2.js b/test/suite/ch07/7.9/S7.9_A6.2_T2.js
index 8a9a3f16dc0776343991c551ca7a1f06f6f8adff..8ada9e295bef0439611f51da0fa220652e1f40ca 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T2.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T2.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T2
 description: For header is (\n semicolon \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T3.js b/test/suite/ch07/7.9/S7.9_A6.2_T3.js
index ff6df09530d42ca72dfc7e30d1a2b6e9cfdc5f2d..c6e8e6e478d5402b42a6e0d4abb069658d9deeb8 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T3.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T3.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T3
 description: For header is (\n semicolon)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T4.js b/test/suite/ch07/7.9/S7.9_A6.2_T4.js
index 6e938b54b6ed6654dac2a68c217da6919991c053..5daf51dc7af8c3f7361ad6eff7fcd62134ab3221 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T4.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T4.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T4
 description: For header is (\n \n semicolon)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T5.js b/test/suite/ch07/7.9/S7.9_A6.2_T5.js
index 5a736005c21455a55a48196542fbe4cf9f8ac509..27ffc7c287d28dfacb86480d6faacc5169f64b24 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T5.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T5.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T5
 description: For header is (false semicolon false\n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T6.js b/test/suite/ch07/7.9/S7.9_A6.2_T6.js
index 7c9f03e5c9287fac94f5ef056d7e3317683ab91d..2cb7e7b3cc781f4a83cf4c5feea0f866b5f708b5 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T6.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T6.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T6
 description: For header is (false semicolon \n false)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T7.js b/test/suite/ch07/7.9/S7.9_A6.2_T7.js
index a96ad0b0b9c95dd9815204a7635d1cf77a2f3b4d..98e1c25342c4f2a751e1addbc3d50401e877649c 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T7.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T7.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T7
 description: For header is (false \n semicolon \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T8.js b/test/suite/ch07/7.9/S7.9_A6.2_T8.js
index 5f8a513619d96c977106c536397366cb718a35a6..622bcae48972e5031a7a91b00699ac926cf97052 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T8.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T8.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T8
 description: For header is (false \n semicolon false \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.2_T9.js b/test/suite/ch07/7.9/S7.9_A6.2_T9.js
index ea04419767c5200f540108a8cc1e984d417b9a4e..67588f2c049bc18955ebb31850b42c20cd0b18ae 100644
--- a/test/suite/ch07/7.9/S7.9_A6.2_T9.js
+++ b/test/suite/ch07/7.9/S7.9_A6.2_T9.js
@@ -8,7 +8,7 @@ info: >
     Use one semicolon
 es5id: 7.9_A6.2_T9
 description: For header is (\n semicolon false)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.3_T1.js b/test/suite/ch07/7.9/S7.9_A6.3_T1.js
index 8b774ddb200d7bb8a66ae810895f6426b5715e8b..84a1e927ff634dc2f2ffa9d788298cbe74001bb7 100644
--- a/test/suite/ch07/7.9/S7.9_A6.3_T1.js
+++ b/test/suite/ch07/7.9/S7.9_A6.3_T1.js
@@ -8,7 +8,7 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T1
 description: For header is (\n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.3_T2.js b/test/suite/ch07/7.9/S7.9_A6.3_T2.js
index 0b3b7035700d168e954a1d1bc38a779a51485f84..73c9ae4dc26025a6a5dc7a20c4250c6d6ed4c167 100644
--- a/test/suite/ch07/7.9/S7.9_A6.3_T2.js
+++ b/test/suite/ch07/7.9/S7.9_A6.3_T2.js
@@ -8,7 +8,7 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T2
 description: For header is (\n \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.3_T3.js b/test/suite/ch07/7.9/S7.9_A6.3_T3.js
index 8d39015d5ba39ab28797c87ff904f7cb089309cf..ed7bc7c14860b6d378d19a3ec7f043981cdf273e 100644
--- a/test/suite/ch07/7.9/S7.9_A6.3_T3.js
+++ b/test/suite/ch07/7.9/S7.9_A6.3_T3.js
@@ -8,7 +8,7 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T3
 description: For header is (\n \n \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.3_T4.js b/test/suite/ch07/7.9/S7.9_A6.3_T4.js
index acbd8dc15cb6c1d89863ea880646550c3af688ad..334cffb1c7f106836070b2244d7f70d0df63e947 100644
--- a/test/suite/ch07/7.9/S7.9_A6.3_T4.js
+++ b/test/suite/ch07/7.9/S7.9_A6.3_T4.js
@@ -8,7 +8,7 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T4
 description: For header is (\n false \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.3_T5.js b/test/suite/ch07/7.9/S7.9_A6.3_T5.js
index fb291d50002d9c10f8745aeff4cc0cd444540e9a..da20591fff2b03f256550c7d795e5ca159468d48 100644
--- a/test/suite/ch07/7.9/S7.9_A6.3_T5.js
+++ b/test/suite/ch07/7.9/S7.9_A6.3_T5.js
@@ -8,7 +8,7 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T5
 description: For header is (false \n false \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.3_T6.js b/test/suite/ch07/7.9/S7.9_A6.3_T6.js
index 5f185b600b5a43b4fae73c4287307d639bfb619d..a456b4907a459673728235c8dbe376fa3f52592a 100644
--- a/test/suite/ch07/7.9/S7.9_A6.3_T6.js
+++ b/test/suite/ch07/7.9/S7.9_A6.3_T6.js
@@ -8,7 +8,7 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T6
 description: For header is (\n false \n false \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.3_T7.js b/test/suite/ch07/7.9/S7.9_A6.3_T7.js
index 3fd1a1fd5665c4203f6e8e40a540fe1e0544e5e6..4289645a1c0a62e195a2639c73129fcd1f39f375 100644
--- a/test/suite/ch07/7.9/S7.9_A6.3_T7.js
+++ b/test/suite/ch07/7.9/S7.9_A6.3_T7.js
@@ -8,7 +8,7 @@ info: >
     Don`t use semicolons
 es5id: 7.9_A6.3_T7
 description: For header is (\n false \n false \n false \n)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.4_T1.js b/test/suite/ch07/7.9/S7.9_A6.4_T1.js
index d41d81e28aa7cb10d4788ae460a875a92b1c493a..1d58d7249f62b6687e73fd50f37b1532024569ff 100644
--- a/test/suite/ch07/7.9/S7.9_A6.4_T1.js
+++ b/test/suite/ch07/7.9/S7.9_A6.4_T1.js
@@ -7,7 +7,7 @@ es5id: 7.9_A6.4_T1
 description: >
     Three semicolons. For header is (false semicolon false semicolon
     false semicolon)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A6.4_T2.js b/test/suite/ch07/7.9/S7.9_A6.4_T2.js
index d89eeb59805d051d7e971aba85890cfdf01c96f4..7eb567287c3d9080ca436361b2e5619a5b2ad0d0 100644
--- a/test/suite/ch07/7.9/S7.9_A6.4_T2.js
+++ b/test/suite/ch07/7.9/S7.9_A6.4_T2.js
@@ -7,7 +7,7 @@ es5id: 7.9_A6.4_T2
 description: >
     Three semicolons. For header is (false semicolon false two
     semicolons false)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A7_T7.js b/test/suite/ch07/7.9/S7.9_A7_T7.js
index fc314abc5080ea1dbf1a5043ce26547aa88053c6..bc570566f2cd2f00a4949f002895ad8d16a9ef92 100644
--- a/test/suite/ch07/7.9/S7.9_A7_T7.js
+++ b/test/suite/ch07/7.9/S7.9_A7_T7.js
@@ -5,7 +5,7 @@
 info: Check Var Statement for automatic semicolon insertion
 es5id: 7.9_A7_T7
 description: Checking if execution of "var x \n y" passes
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A9_T6.js b/test/suite/ch07/7.9/S7.9_A9_T6.js
index 95119d67f3e30c942d4645d09974c62478a2c606..0457fe39115ed1ab829c78c111c8d29a2358f385 100644
--- a/test/suite/ch07/7.9/S7.9_A9_T6.js
+++ b/test/suite/ch07/7.9/S7.9_A9_T6.js
@@ -5,7 +5,7 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T6
 description: Execute do \n while(false)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A9_T7.js b/test/suite/ch07/7.9/S7.9_A9_T7.js
index 70264d0d4725b9da907fa3d2926e74e724c2bdac..3d2fe4aefae3204dd55201105eaf99aeab7acb44 100644
--- a/test/suite/ch07/7.9/S7.9_A9_T7.js
+++ b/test/suite/ch07/7.9/S7.9_A9_T7.js
@@ -5,7 +5,7 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T7
 description: Execute do \n\n while(false)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch07/7.9/S7.9_A9_T8.js b/test/suite/ch07/7.9/S7.9_A9_T8.js
index 847f2ac099695bff2654b86510c316de027a1364..70f5d851f56bc0dd4ac591782a1dd1504e75c380 100644
--- a/test/suite/ch07/7.9/S7.9_A9_T8.js
+++ b/test/suite/ch07/7.9/S7.9_A9_T8.js
@@ -5,7 +5,7 @@
 info: Check Do-While Statement for automatic semicolon insertion
 es5id: 7.9_A9_T8
 description: Execute do {}; \n while(false)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch08/8.2/S8.2_A2.js b/test/suite/ch08/8.2/S8.2_A2.js
index fbd42c6760f4901b30f13dee9a2fccf01c1e9e82..620e1ea06bfe41788f373f5d0e7a9f423fb118be 100644
--- a/test/suite/ch08/8.2/S8.2_A2.js
+++ b/test/suite/ch08/8.2/S8.2_A2.js
@@ -5,7 +5,7 @@
 info: The null is resrved word
 es5id: 8.2_A2
 description: Checking if execution of "var null" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var null;
diff --git a/test/suite/ch08/8.3/S8.3_A2.1.js b/test/suite/ch08/8.3/S8.3_A2.1.js
index 55f2f83cc1908c686bfd24de06a2f02ebf5b936e..1a15285385dea3b067578bd0eff915617e60423f 100644
--- a/test/suite/ch08/8.3/S8.3_A2.1.js
+++ b/test/suite/ch08/8.3/S8.3_A2.1.js
@@ -5,7 +5,7 @@
 info: The true is reserved word
 es5id: 8.3_A2.1
 description: Checking if execution of "true=1" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 true = 1;
diff --git a/test/suite/ch08/8.3/S8.3_A2.2.js b/test/suite/ch08/8.3/S8.3_A2.2.js
index 9258a21810cc50af1fb577499125f6f144226e9c..8a254e33904817e21abdda2fc794b2ad5b6468e7 100644
--- a/test/suite/ch08/8.3/S8.3_A2.2.js
+++ b/test/suite/ch08/8.3/S8.3_A2.2.js
@@ -5,7 +5,7 @@
 info: The false is reserved word
 es5id: 8.3_A2.2
 description: Checking if execution of "false=0" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 false = 0;
diff --git a/test/suite/ch08/8.4/S8.4_A13_T1.js b/test/suite/ch08/8.4/S8.4_A13_T1.js
index 46841c4a5dd60a24e78a6422b3c30be64ab91850..60d047be9fd06a2ecb24163473bdae68b7594f4e 100644
--- a/test/suite/ch08/8.4/S8.4_A13_T1.js
+++ b/test/suite/ch08/8.4/S8.4_A13_T1.js
@@ -5,7 +5,7 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T1
 description: Try to create variable using 3 single-quote
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var str = ''';
diff --git a/test/suite/ch08/8.4/S8.4_A13_T2.js b/test/suite/ch08/8.4/S8.4_A13_T2.js
index e13fabf743ef126f9d9d56e002ae9f0f519bd621..c4912bd52b4a4c7cd3f551a6a788056620d33f9e 100644
--- a/test/suite/ch08/8.4/S8.4_A13_T2.js
+++ b/test/suite/ch08/8.4/S8.4_A13_T2.js
@@ -5,7 +5,7 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T2
 description: Try to create variable using 1 single-quote
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var str = ';
diff --git a/test/suite/ch08/8.4/S8.4_A13_T3.js b/test/suite/ch08/8.4/S8.4_A13_T3.js
index 444e34f2439f45f319d74b904618e6006b4f3561..7a028d6fb443180fe82f8d2574b9b776d3261fe1 100644
--- a/test/suite/ch08/8.4/S8.4_A13_T3.js
+++ b/test/suite/ch08/8.4/S8.4_A13_T3.js
@@ -5,7 +5,7 @@
 info: When appears not closed single-quote program failes
 es5id: 8.4_A13_T3
 description: Try to create variable using 4 single-quote
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var str = '''';
diff --git a/test/suite/ch08/8.4/S8.4_A14_T1.js b/test/suite/ch08/8.4/S8.4_A14_T1.js
index 802e3fa28b24a0c70eb13a4c0c683c42c0442118..80def88b064399baa76a7dcff5d8e105153454d1 100644
--- a/test/suite/ch08/8.4/S8.4_A14_T1.js
+++ b/test/suite/ch08/8.4/S8.4_A14_T1.js
@@ -5,7 +5,7 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T1
 description: Try to create variable using 1 double-quote
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var str = ";
diff --git a/test/suite/ch08/8.4/S8.4_A14_T2.js b/test/suite/ch08/8.4/S8.4_A14_T2.js
index fa07f666220f3d753934bcc4bb5279e0d83a905e..21a98042142f269690a50d15691680e1b984e4a1 100644
--- a/test/suite/ch08/8.4/S8.4_A14_T2.js
+++ b/test/suite/ch08/8.4/S8.4_A14_T2.js
@@ -5,7 +5,7 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T2
 description: Try to create variable using 3 double-quote
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var str = """;
diff --git a/test/suite/ch08/8.4/S8.4_A14_T3.js b/test/suite/ch08/8.4/S8.4_A14_T3.js
index bd3d8919bfb0122a284b2f011c4dd08787a22340..40d8743acd3f02a1698c08180f3764e27b8145ec 100644
--- a/test/suite/ch08/8.4/S8.4_A14_T3.js
+++ b/test/suite/ch08/8.4/S8.4_A14_T3.js
@@ -5,7 +5,7 @@
 info: When appears not closed double-quote program failes
 es5id: 8.4_A14_T3
 description: Try to create variable using 4 double-quote
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var str = """";
diff --git a/test/suite/ch08/8.4/S8.4_A7.1.js b/test/suite/ch08/8.4/S8.4_A7.1.js
index 9249c0e060bb7cbec59f4f02cda75ab273d208c5..5479cf8b336ba93dcbd0f9ea785608919eaee336 100644
--- a/test/suite/ch08/8.4/S8.4_A7.1.js
+++ b/test/suite/ch08/8.4/S8.4_A7.1.js
@@ -5,7 +5,7 @@
 info: <LF> between chunks of one string not allowed
 es5id: 8.4_A7.1
 description: Insert <LF> between chunks of one string
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 eval("var x = asdf\u000Aghjk");
diff --git a/test/suite/ch08/8.4/S8.4_A7.2.js b/test/suite/ch08/8.4/S8.4_A7.2.js
index fa0187002cc1a02280f7ba21ac5b5f177389edc1..fa50f856933173db056d8b8db1f6f411d7691c0a 100644
--- a/test/suite/ch08/8.4/S8.4_A7.2.js
+++ b/test/suite/ch08/8.4/S8.4_A7.2.js
@@ -5,7 +5,7 @@
 info: <CR> between chunks of one string not allowed
 es5id: 8.4_A7.2
 description: Insert <CR> between chunks of one string
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 eval("var x = asdf\u000Dghjk");
diff --git a/test/suite/ch08/8.4/S8.4_A7.3.js b/test/suite/ch08/8.4/S8.4_A7.3.js
index 70a746e93208bc5ea0e0c80c96854589aa6c18cb..2320a56a3242f22a98e240f724118ce2d220038c 100644
--- a/test/suite/ch08/8.4/S8.4_A7.3.js
+++ b/test/suite/ch08/8.4/S8.4_A7.3.js
@@ -5,7 +5,7 @@
 info: <PS> between chunks of one string not allowed
 es5id: 8.4_A7.3
 description: Insert <PS> between chunks of one string
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 eval("var x = asdf\u2028ghjk");
diff --git a/test/suite/ch08/8.4/S8.4_A7.4.js b/test/suite/ch08/8.4/S8.4_A7.4.js
index 32ea695bb7dd88b27f12e003d80369c142a6ba53..82c79bb5b539e7b7f49c8bf7791f03a7fc1c4c4d 100644
--- a/test/suite/ch08/8.4/S8.4_A7.4.js
+++ b/test/suite/ch08/8.4/S8.4_A7.4.js
@@ -5,7 +5,7 @@
 info: <LS> between chunks of one string not allowed
 es5id: 8.4_A7.4
 description: Insert <LS> between chunks of one string
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 eval("var x = asdf\u2029ghjk");
diff --git a/test/suite/ch08/8.6/8.6.2/S8.6.2_A7.js b/test/suite/ch08/8.6/8.6.2/S8.6.2_A7.js
index eee46c18151b58a1ba6fa0a323800eae65fe083b..a75b9ef0e59a13374042c9a7937d4898325d010c 100644
--- a/test/suite/ch08/8.6/8.6.2/S8.6.2_A7.js
+++ b/test/suite/ch08/8.6/8.6.2/S8.6.2_A7.js
@@ -7,7 +7,7 @@ info: >
     constructors. Math object is NOT constructor
 es5id: 8.6.2_A7
 description: Checking if execution of "var objMath=new Math" passes
-flags: [negative]
+negative: TypeError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch08/8.7/S8.7.2_A1_T1.js b/test/suite/ch08/8.7/S8.7.2_A1_T1.js
index d6a75cf5bd431698d8576f71888811e9cb11c5f7..e023f355d4bba15389b872afb25441eeb3045e22 100644
--- a/test/suite/ch08/8.7/S8.7.2_A1_T1.js
+++ b/test/suite/ch08/8.7/S8.7.2_A1_T1.js
@@ -5,7 +5,7 @@
 info: GetValue(V) mast fail
 es5id: 8.7.2_A1_T1
 description: Checking if execution of "'litera'=1;" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 'litera'=1;
diff --git a/test/suite/ch08/8.7/S8.7.2_A1_T2.js b/test/suite/ch08/8.7/S8.7.2_A1_T2.js
index a26bf80d8a4279a6e26b9303965b127d954205a7..b59fda7b4108501165e72162464249358e520214 100644
--- a/test/suite/ch08/8.7/S8.7.2_A1_T2.js
+++ b/test/suite/ch08/8.7/S8.7.2_A1_T2.js
@@ -5,7 +5,7 @@
 info: GetValue(V) mast fail
 es5id: 8.7.2_A1_T2
 description: Checking if execution of "1=1" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 1=1;
diff --git a/test/suite/ch10/10.1/10.1.1/10.1.1-2gs.js b/test/suite/ch10/10.1/10.1.1/10.1.1-2gs.js
index 0c2dbe840e14c17a946bb9904e235db8459f6056..da0a123e97b6efbda59efd1dd722d513afb12cd0 100644
--- a/test/suite/ch10/10.1/10.1.1/10.1.1-2gs.js
+++ b/test/suite/ch10/10.1/10.1.1/10.1.1-2gs.js
@@ -9,7 +9,7 @@ es5id: 10.1.1-2gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict''
     which lost the last character ';'
-negative: ^((?!NotEarlyError).)*$
+negative: NotEarlyError
 flags: [noStrict]
 ---*/
 
diff --git a/test/suite/ch10/10.1/10.1.1/10.1.1-5gs.js b/test/suite/ch10/10.1/10.1.1/10.1.1-5gs.js
index 3b0c23dcfcc38693c6213b469ce0a5502c249abf..5b31cfe11a27995f546fa0446730181a8aa275f3 100644
--- a/test/suite/ch10/10.1/10.1.1/10.1.1-5gs.js
+++ b/test/suite/ch10/10.1/10.1.1/10.1.1-5gs.js
@@ -9,7 +9,7 @@ es5id: 10.1.1-5gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict';'
     which appears at the start of the code
-negative: ^((?!NotEarlyError).)*$
+negative: NotEarlyError
 flags: [noStrict]
 ---*/
 
diff --git a/test/suite/ch10/10.1/10.1.1/10.1.1-8gs.js b/test/suite/ch10/10.1/10.1.1/10.1.1-8gs.js
index 518b4e9464230af6dda358d1af5a7529b90cf5ef..5d141ad06a046bedbc3a13754a8eae1d4ff2d7a5 100644
--- a/test/suite/ch10/10.1/10.1.1/10.1.1-8gs.js
+++ b/test/suite/ch10/10.1/10.1.1/10.1.1-8gs.js
@@ -9,7 +9,7 @@ es5id: 10.1.1-8gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict';'
     which appears twice in the code
-negative: ^((?!NotEarlyError).)*$
+negative: NotEarlyError
 flags: [noStrict]
 ---*/
 
diff --git a/test/suite/ch10/10.4/10.4.2/10.4.2.1-1gs.js b/test/suite/ch10/10.4/10.4.2/10.4.2.1-1gs.js
index b786bdb8395c8aabbe9fe5c175c39714ede9315c..75f49ccbb57049dc39ddff017fc7427b1e738e3f 100644
--- a/test/suite/ch10/10.4/10.4.2/10.4.2.1-1gs.js
+++ b/test/suite/ch10/10.4/10.4.2/10.4.2.1-1gs.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - eval code cannot instantiate variable in the
     variable environment of the calling context that invoked the eval
     if the code of the calling context is strict code
-negative: ^((?!NotEarlyError).)*$
+negative: ReferenceError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch10/10.5/10.5-1gs.js b/test/suite/ch10/10.5/10.5-1gs.js
index 7e94a44c28c45b17d09e57ae81690cc376e488e3..b7be54878e03b29ef22f6bc059f919d53197bc11 100644
--- a/test/suite/ch10/10.5/10.5-1gs.js
+++ b/test/suite/ch10/10.5/10.5-1gs.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 10.5-1gs
 description: Strict Mode - arguments cannot be assigned to in a strict function
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch11/11.1/11.1.1/S11.1.1_A1.js b/test/suite/ch11/11.1/11.1.1/S11.1.1_A1.js
index 3932674f570b5623287de5c9661b885aeaa89f24..922253a16735425e36d8fec6138ef2dbcac69608 100644
--- a/test/suite/ch11/11.1/11.1.1/S11.1.1_A1.js
+++ b/test/suite/ch11/11.1/11.1.1/S11.1.1_A1.js
@@ -5,7 +5,7 @@
 info: The "this" is reserved word
 es5id: 11.1.1_A1
 description: Checking if execution of "this=1" fails
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 this = 1;
diff --git a/test/suite/ch11/11.1/11.1.5/11.1.5-1gs.js b/test/suite/ch11/11.1/11.1.5/11.1.5-1gs.js
index d05c3479fe1381e10785cd11a6d250facdcc3c08..8cb4d4762fc52249dea2d11e052136a51f54ac52 100644
--- a/test/suite/ch11/11.1/11.1.5/11.1.5-1gs.js
+++ b/test/suite/ch11/11.1/11.1.5/11.1.5-1gs.js
@@ -10,7 +10,7 @@ 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: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch11/11.1/11.1.5/11.1.5-2gs.js b/test/suite/ch11/11.1/11.1.5/11.1.5-2gs.js
index 19d13b794b66c71c4464241e1674584e83563cb8..a64847246e0f65ea310f0e0d54a8e0208dd8061d 100644
--- a/test/suite/ch11/11.1/11.1.5/11.1.5-2gs.js
+++ b/test/suite/ch11/11.1/11.1.5/11.1.5-2gs.js
@@ -9,7 +9,7 @@ es5id: 11.1.5-2gs
 description: >
     Strict Mode - SyntaxError is thrown when eval code contains an
     ObjectLiteral with more than one definition of any data property
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch11/11.13/11.13.1/11.13.1-4-28gs.js b/test/suite/ch11/11.13/11.13.1/11.13.1-4-28gs.js
index fa6945babba9ae1389df5aab2ef0d2075f4f9166..5f9873637a7ca1e87122a3b665c78ea63206403d 100644
--- a/test/suite/ch11/11.13/11.13.1/11.13.1-4-28gs.js
+++ b/test/suite/ch11/11.13/11.13.1/11.13.1-4-28gs.js
@@ -7,13 +7,11 @@
 /*---
 es5id: 11.13.1-4-28gs
 description: >
-    Strict Mode - SyntaxError is thrown if the identifier 'Math.PI'
+    Strict Mode - TypeError is thrown if the identifier 'Math.PI'
     appears as the LeftHandSideExpression of simple assignment(=)
-negative: Test262Error
+negative: TypeError
 flags: [onlyStrict]
-includes: [Test262Error.js]
 ---*/
 
 "use strict";
-throw new Test262Error();
 Math.PI = 20;
diff --git a/test/suite/ch11/11.13/11.13.1/S11.13.1_A2.1_T3.js b/test/suite/ch11/11.13/11.13.1/S11.13.1_A2.1_T3.js
index d0eab54201c8fe6089efa89303e84fcc3f2f9d77..17eef53cf55841871465e654ca8980c3e08ac631 100644
--- a/test/suite/ch11/11.13/11.13.1/S11.13.1_A2.1_T3.js
+++ b/test/suite/ch11/11.13/11.13.1/S11.13.1_A2.1_T3.js
@@ -6,18 +6,18 @@ info: Operator x = y uses GetValue and PutValue
 es5id: 11.13.1_A2.1_T3
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError)
-flags: [negative]
+    ReferenceError
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   1 = 1;
-  $ERROR('#1.1: 1 = 1 throw ReferenceError (or SyntaxError). Actual: ' + (1 = 1));  
+  $ERROR('#1.1: 1 = 1 throw ReferenceError. Actual: ' + (1 = 1));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 = 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 = 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     1 = 1;
   }
diff --git a/test/suite/ch11/11.13/11.13.2/11.13.2-6-1gs.js b/test/suite/ch11/11.13/11.13.2/11.13.2-6-1gs.js
index 92393573f1e78836bb606af21121f7ed4efa54fa..d6b746f8ac5d3d6dfeef98e8b46983784f29c61e 100644
--- a/test/suite/ch11/11.13/11.13.2/11.13.2-6-1gs.js
+++ b/test/suite/ch11/11.13/11.13.2/11.13.2-6-1gs.js
@@ -9,10 +9,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: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
 "use strict";
-throw NotEarlyError;
 eval *= 20;
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T1.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T1.js
index a09ee7f06b34e2c21e61016910e22d2446f33b44..0d2f2da613b3377b017f12542bd26e083dfe8bd0 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T1.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T1.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T1
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x *= y"
-flags: [negative]
+    ReferenceError. Check operator is "x *= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 *= 1);
-  $ERROR('#1.1: 1 *= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 *= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 *= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 *= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 *= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T10.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T10.js
index 04f3935fd68275d7e5d78d798c866555eba1d0a3..82b6c7646c01ded2eb2893f1db984b7d0a08ff8f 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T10.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T10.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T10
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x ^= y"
-flags: [negative]
+    ReferenceError. Check operator is "x ^= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 ^= 1);
-  $ERROR('#1.1: 1 ^= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 ^= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 ^= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 ^= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 ^= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T11.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T11.js
index 023a1867bf95256a4dd3c59d81cce72914c440ae..082e26e3d68d0f6b706839073658c1e782bc8607 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T11.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T11.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T11
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x |= y"
-flags: [negative]
+    ReferenceError. Check operator is "x |= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 |= 1);
-  $ERROR('#1.1: 1 |= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 |= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 |= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 |= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 |= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T2.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T2.js
index 3c909bd9968f416894351aea29f4807f508f6e6f..7d88d53dc2b62fffb2cbf5350a354bafdf9750dc 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T2.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T2.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T2
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x /= y"
-flags: [negative]
+    ReferenceError. Check operator is "x /= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 /= 1);
-  $ERROR('#1.1: 1 /= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 /= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 /= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 /= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 /= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T3.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T3.js
index a00a9f96ce10a6066fb4ef1854883f63f586dbd0..b6295420a384dc7835d58b331f4ae0ee3855dccc 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T3.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T3.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T3
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x %= y"
-flags: [negative]
+    ReferenceError. Check operator is "x %= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 %= 1);
-  $ERROR('#1.1: 1 %= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 %= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 %= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 %= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 %= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T4.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T4.js
index 4cc5b03a868b1f486bfa1bcf54b42339595dfefb..f0453f600be4acfb34cf6472e18fbd4bb3e63b74 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T4.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T4.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T4
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x += y"
-flags: [negative]
+    ReferenceError. Check operator is "x += y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 += 1);
-  $ERROR('#1.1: 1 += 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 += 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 += 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 += 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 += 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T5.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T5.js
index 091193e0e0daf9de5e2ce98014f11599f54458d6..7a47e877a800907493a16536d1e0cbf68d81788f 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T5.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T5.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T5
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x -= y"
-flags: [negative]
+    ReferenceError. Check operator is "x -= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 -= 1);
-  $ERROR('#1.1: 1 -= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 -= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 -= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 -= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 -= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T6.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T6.js
index 1970c9f0aec22d1cf1ae2f1290b6c148b3e097e3..447256afeb01b32359cfad0d5210a0c32425dc70 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T6.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T6.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T6
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x <<= y"
-flags: [negative]
+    ReferenceError. Check operator is "x <<= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 <<= 1);
-  $ERROR('#1.1: 1 <<= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 <<= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 <<= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 <<= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 <<= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T7.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T7.js
index c75b2655e547dc36ded65942d17bb8d112dc5342..53f90d34fa1440ef04002dd59c2f04d610f8a58f 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T7.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T7.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T7
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x >>= y"
-flags: [negative]
+    ReferenceError. Check operator is "x >>= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 >>= 1);
-  $ERROR('#1.1: 1 >>= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 >>= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 >>= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 >>= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 >>= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T8.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T8.js
index 3ab2d9630897b5d3d65a16bf860990df984cec8a..60f928e96cb9d77f3bf516413cfafbfd4364241d 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T8.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T8.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T8
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x >>>= y"
-flags: [negative]
+    ReferenceError. Check operator is "x >>>= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 >>>= 1);
-  $ERROR('#1.1: 1 >>>= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 >>>= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 >>>= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 >>>= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 >>>= 1);
   }
diff --git a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T9.js b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T9.js
index 1e9a3263da77ff940500ac1a27662349ab698af4..378932d68e6c92ffd7c8f08ed824aa71560f7a4b 100644
--- a/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T9.js
+++ b/test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T9.js
@@ -6,18 +6,18 @@ info: Operator uses PutValue
 es5id: 11.13.2_A2.2_T9
 description: >
     If Type(LeftHandSideExpression) is not Reference, throw
-    ReferenceError (or SyntaxError). Check operator is "x &= y"
-flags: [negative]
+    ReferenceError. Check operator is "x &= y"
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   var z = (1 &= 1);
-  $ERROR('#1.1: 1 &= 1 throw ReferenceError (or SyntaxError). Actual: ' + (z));  
+  $ERROR('#1.1: 1 &= 1 throw ReferenceError. Actual: ' + (z));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1 &= 1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1 &= 1 throw ReferenceError. Actual: ' + (e));  
   } else {
     var z = (1 &= 1);
   }
diff --git a/test/suite/ch11/11.2/11.2.4/S11.2.4_A1.3_T1.js b/test/suite/ch11/11.2/11.2.4/S11.2.4_A1.3_T1.js
index 29d1111b05b6e9041d407e124e93574abbb15d7b..e97e6edd0e960f73bbf1c3e505d7b544503904c0 100644
--- a/test/suite/ch11/11.2/11.2.4/S11.2.4_A1.3_T1.js
+++ b/test/suite/ch11/11.2/11.2.4/S11.2.4_A1.3_T1.js
@@ -7,7 +7,7 @@ info: >
     syntax
 es5id: 11.2.4_A1.3_T1
 description: incorrect syntax
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function f_arg() {
diff --git a/test/suite/ch11/11.3/11.3.1/11.3.1-2-1gs.js b/test/suite/ch11/11.3/11.3.1/11.3.1-2-1gs.js
index 7aa7f51de6b1ef6e9b88b4a62b9e345715f3d5b0..5725fb92284a0006112cd2529151a1b918c75532 100644
--- a/test/suite/ch11/11.3/11.3.1/11.3.1-2-1gs.js
+++ b/test/suite/ch11/11.3/11.3.1/11.3.1-2-1gs.js
@@ -9,7 +9,7 @@ es5id: 11.3.1-2-1gs
 description: >
     Strict Mode - SyntaxError is throw if the identifier arguments
     appear as a PostfixExpression(arguments++)
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T1.js b/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T1.js
index 0ec0dd42cd977984d05d22e97d2fbfb84cb2abaf..3e678b5ed253745d8f679967127978dd3f446627 100644
--- a/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T1.js
+++ b/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T1.js
@@ -5,7 +5,7 @@
 info: Line Terminator between LeftHandSideExpression and "++" is not allowed
 es5id: 11.3.1_A1.1_T1
 description: Checking Line Feed
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T2.js b/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T2.js
index 7348232aefff605c894e1771c7fded4443183ea9..296ea00009a5db848f192f712b160c164caf02be 100644
--- a/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T2.js
+++ b/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T2.js
@@ -5,7 +5,7 @@
 info: Line Terminator between LeftHandSideExpression and "++" is not allowed
 es5id: 11.3.1_A1.1_T2
 description: Carriage Return
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T3.js b/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T3.js
index fbdcf073691298b470356361e5804e4277454d35..d6a51bd559de62c0820bcd42229ebe0a18c81306 100644
--- a/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T3.js
+++ b/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T3.js
@@ -5,7 +5,7 @@
 info: Line Terminator between LeftHandSideExpression and "++" is not allowed
 es5id: 11.3.1_A1.1_T3
 description: Checking Line Seprator
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T4.js b/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T4.js
index c00676e1c8000c022cbee9a5deb9797d1ac531c7..8afd23013d513a6070deedfa016f40184fad4565 100644
--- a/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T4.js
+++ b/test/suite/ch11/11.3/11.3.1/S11.3.1_A1.1_T4.js
@@ -5,7 +5,7 @@
 info: Line Terminator between LeftHandSideExpression and "++" is not allowed
 es5id: 11.3.1_A1.1_T4
 description: Checking Paragraph separator
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.3/11.3.1/S11.3.1_A2.1_T3.js b/test/suite/ch11/11.3/11.3.1/S11.3.1_A2.1_T3.js
index 0d2ad4de8ee4dd9efb2240c71121e7dfb52ca05a..2e505b53240d4bf393df6e540e7cc6d3e6dd18e7 100644
--- a/test/suite/ch11/11.3/11.3.1/S11.3.1_A2.1_T3.js
+++ b/test/suite/ch11/11.3/11.3.1/S11.3.1_A2.1_T3.js
@@ -2,20 +2,22 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Operator x++ uses GetValue and PutValue
+info: > 
+ Operator x++ uses GetValue and PutValue
+ ES6, 12.4.1 and 12.5.1 specify ReferenceError
 es5id: 11.3.1_A2.1_T3
-description: If Type(x) is not Reference, throw ReferenceError (or SyntaxError)
-flags: [negative]
+description: If Type(x) is not Reference, throw ReferenceError
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   1++;
-  $ERROR('#1.1: 1++ throw ReferenceError (or SyntaxError). Actual: ' + (1++));  
+  $ERROR('#1.1: 1++ throw ReferenceError. Actual: ' + (1++));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1++ throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1++ throw ReferenceError. Actual: ' + (e));  
   } else {
     1++;
   }
diff --git a/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T1.js b/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T1.js
index a6df2dbf952e0e9d1ab271a4c7f4ba59e76e4244..226042ee9d82efaf6ae6e941e0468871375339b3 100644
--- a/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T1.js
+++ b/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T1.js
@@ -5,7 +5,7 @@
 info: Line Terminator between LeftHandSideExpression and "--" is not allowed
 es5id: 11.3.2_A1.1_T1
 description: Checking Line Feed
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T2.js b/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T2.js
index 08a84af4baac7ba7dfcc6c36af694238f7643a98..5f9564515efc9651df6cf351d825d1cee5b80d4f 100644
--- a/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T2.js
+++ b/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T2.js
@@ -5,7 +5,7 @@
 info: Line Terminator between LeftHandSideExpression and "--" is not allowed
 es5id: 11.3.2_A1.1_T2
 description: Checking Carriage Return
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T3.js b/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T3.js
index 0dcbd04766a922049f1610341e65023ca585ac66..e691a9a9a0aa202d4d33e23657f34f5f4e7efc2b 100644
--- a/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T3.js
+++ b/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T3.js
@@ -5,7 +5,7 @@
 info: Line Terminator between LeftHandSideExpression and "--" is not allowed
 es5id: 11.3.2_A1.1_T3
 description: Checking Page separator
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T4.js b/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T4.js
index fe1ea374fa0438c3e2f82524807f7d225cd18430..9dcac1ee08e610377d11e27d648fd1fa22db2d0b 100644
--- a/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T4.js
+++ b/test/suite/ch11/11.3/11.3.2/S11.3.2_A1.1_T4.js
@@ -5,7 +5,7 @@
 info: Line Terminator between LeftHandSideExpression and "--" is not allowed
 es5id: 11.3.2_A1.1_T4
 description: Checking Line separator
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.3/11.3.2/S11.3.2_A2.1_T3.js b/test/suite/ch11/11.3/11.3.2/S11.3.2_A2.1_T3.js
index 3897f319aa072c5950d908d413c30721a28d17a0..6730b85c9b9ef831e0436a02e656696157de5a9c 100644
--- a/test/suite/ch11/11.3/11.3.2/S11.3.2_A2.1_T3.js
+++ b/test/suite/ch11/11.3/11.3.2/S11.3.2_A2.1_T3.js
@@ -2,20 +2,22 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Operator x-- uses GetValue and PutValue
+info: >
+ Operator x-- uses GetValue and PutValue
+ ES6, 12.4.1 and 12.5.1 specify ReferenceError
 es5id: 11.3.2_A2.1_T3
-description: If Type(x) is not Reference, throw ReferenceError (or SyntaxError)
-flags: [negative]
+description: If Type(x) is not Reference, throw ReferenceError
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   1--;
-  $ERROR('#1.1: 1-- throw ReferenceError (or SyntaxError). Actual: ' + (1--));  
+  $ERROR('#1.1: 1-- throw ReferenceError. Actual: ' + (1--));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: 1-- throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: 1-- throw ReferenceError. Actual: ' + (e));  
   } else {
     1--;
   }
diff --git a/test/suite/ch11/11.4/11.4.1/11.4.1-5-a-5gs.js b/test/suite/ch11/11.4/11.4.1/11.4.1-5-a-5gs.js
index 1498dc497fca44bed91fc4d76b6ad05cd99a88a2..9700cadc332cde0364eac6f28acae051542f199c 100644
--- a/test/suite/ch11/11.4/11.4.1/11.4.1-5-a-5gs.js
+++ b/test/suite/ch11/11.4/11.4.1/11.4.1-5-a-5gs.js
@@ -9,7 +9,7 @@ es5id: 11.4.1-5-a-5gs
 description: >
     Strict Mode - SyntaxError is thrown when deleting a variable which
     is primitive type(boolean)
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch11/11.4/11.4.2/S11.4.2_A2_T2.js b/test/suite/ch11/11.4/11.4.2/S11.4.2_A2_T2.js
index dc65118cbe357aaed6e790fd056b0938acfb2696..a43f99ca7896650c8ccc19d1fa3eccb43012f03c 100644
--- a/test/suite/ch11/11.4/11.4.2/S11.4.2_A2_T2.js
+++ b/test/suite/ch11/11.4/11.4.2/S11.4.2_A2_T2.js
@@ -5,7 +5,7 @@
 info: Operator "void" uses GetValue
 es5id: 11.4.2_A2_T2
 description: If GetBase(x) is null, throw ReferenceError
-flags: [negative]
+negative: ReferenceError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch11/11.4/11.4.4/S11.4.4_A2.1_T3.js b/test/suite/ch11/11.4/11.4.4/S11.4.4_A2.1_T3.js
index 72ed452f471e302e961a97c30d5ffd6247937d83..ffb1d1c3774307f6b6820bfe5d335cd50d4210d8 100644
--- a/test/suite/ch11/11.4/11.4.4/S11.4.4_A2.1_T3.js
+++ b/test/suite/ch11/11.4/11.4.4/S11.4.4_A2.1_T3.js
@@ -2,20 +2,22 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Operator ++x uses GetValue and PutValue
+info: >
+ Operator ++x uses GetValue and PutValue
+ ES6, 12.4.1 and 12.5.1 specify ReferenceError
 es5id: 11.4.4_A2.1_T3
-description: If Type(x) is not Reference, throw ReferenceError (or SyntaxError)
-flags: [negative]
+description: If Type(x) is not Reference, throw ReferenceError
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   ++1;
-  $ERROR('#1.1: ++1 throw ReferenceError (or SyntaxError). Actual: ' + (++1));  
+  $ERROR('#1.1: ++1 throw ReferenceError. Actual: ' + (++1));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: ++1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: ++1 throw ReferenceError. Actual: ' + (e));  
   } else {
     ++1;
   }
diff --git a/test/suite/ch11/11.4/11.4.5/11.4.5-2-2gs.js b/test/suite/ch11/11.4/11.4.5/11.4.5-2-2gs.js
index 2779698e9eba691a5f7c4afc159d545ea4077c14..a2644888699b7ca185760e0499cedae79873cafe 100644
--- a/test/suite/ch11/11.4/11.4.5/11.4.5-2-2gs.js
+++ b/test/suite/ch11/11.4/11.4.5/11.4.5-2-2gs.js
@@ -9,7 +9,7 @@ es5id: 11.4.5-2-2gs
 description: >
     Strict Mode - SyntaxError is throw if the UnaryExpression operated
     upon by a Prefix Increment operator(--arguments)
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch11/11.4/11.4.5/S11.4.5_A2.1_T3.js b/test/suite/ch11/11.4/11.4.5/S11.4.5_A2.1_T3.js
index e0f0449ff09f463de493e7e9e7ed2be3f2e22acd..26767649214a4bfb79b8352d5ff9ca6e7517ceb7 100644
--- a/test/suite/ch11/11.4/11.4.5/S11.4.5_A2.1_T3.js
+++ b/test/suite/ch11/11.4/11.4.5/S11.4.5_A2.1_T3.js
@@ -2,20 +2,22 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Operator --x uses GetValue and PutValue
+info: > 
+ Operator --x uses GetValue and PutValue
+ ES6 12.5.1 specifies this as ReferenceError
 es5id: 11.4.5_A2.1_T3
-description: If Type(x) is not Reference, throw ReferenceError (or SyntaxError)
-flags: [negative]
+description: If Type(x) is not Reference, throw ReferenceError
+negative: ReferenceError
 ---*/
 
 //CHECK#1
 try {
   --1;
-  $ERROR('#1.1: --1 throw ReferenceError (or SyntaxError). Actual: ' + (--1));  
+  $ERROR('#1.1: --1 throw ReferenceError. Actual: ' + (--1));  
 }
 catch (e) {
   if ((e instanceof ReferenceError) !== true) {
-    $ERROR('#1.2: --1 throw ReferenceError (or SyntaxError). Actual: ' + (e));  
+    $ERROR('#1.2: --1 throw ReferenceError. Actual: ' + (e));  
   } else {
     --1;
   }
diff --git a/test/suite/ch12/12.1/S12.1_A4_T1.js b/test/suite/ch12/12.1/S12.1_A4_T1.js
index ab3effee41194a6ebc33cf8b09c7690206b40e60..bcd1697bcbef84d5696aef2a6f3bd3b4bf1a8301 100644
--- a/test/suite/ch12/12.1/S12.1_A4_T1.js
+++ b/test/suite/ch12/12.1/S12.1_A4_T1.js
@@ -5,13 +5,13 @@
 info: The production Block can't be inside of expression
 es5id: 12.1_A4_T1
 description: Checking if execution of "y={__func}()" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function __func(){};
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-y={__func}();
+y={__func;}();
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.1/S12.1_A4_T2.js b/test/suite/ch12/12.1/S12.1_A4_T2.js
index 7b332eb64daaacaf3b7916ce4e7685ff8a6a2981..10cfb43aa6053060426b8c639d79b5a686206d39 100644
--- a/test/suite/ch12/12.1/S12.1_A4_T2.js
+++ b/test/suite/ch12/12.1/S12.1_A4_T2.js
@@ -5,13 +5,13 @@
 info: The production Block can't be inside of expression
 es5id: 12.1_A4_T2
 description: Checking if execution of "y={x}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 x=1;
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-y={x};
+y={x;};
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.10/12.10.1/12.10.1-11gs.js b/test/suite/ch12/12.10/12.10.1/12.10.1-11gs.js
index f3b3d479c9c91920ec2e002ec7ec93f5e2417508..d96c43dbff297ce94c974b659221ea792a650f29 100644
--- a/test/suite/ch12/12.10/12.10.1/12.10.1-11gs.js
+++ b/test/suite/ch12/12.10/12.10.1/12.10.1-11gs.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 12.10.1-11gs
 description: Strict Mode - SyntaxError is thrown when using with statement
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch12/12.11/S12.11_A2_T1.js b/test/suite/ch12/12.11/S12.11_A2_T1.js
index c90633297de18f2ec4c500427cc5c4beea85ae80..5947de0f9804b26e92b3c1caf6457c4a9e7c148d 100644
--- a/test/suite/ch12/12.11/S12.11_A2_T1.js
+++ b/test/suite/ch12/12.11/S12.11_A2_T1.js
@@ -5,7 +5,7 @@
 info: There can be only one DefaultClause
 es5id: 12.11_A2_T1
 description: Duplicate DefaultClause
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/suite/ch12/12.11/S12.11_A3_T1.js b/test/suite/ch12/12.11/S12.11_A3_T1.js
index 892defa42fad78388e3d72c857613135776e5253..56fa00ebd7b6d7ead4c1f70009663c2695136310 100644
--- a/test/suite/ch12/12.11/S12.11_A3_T1.js
+++ b/test/suite/ch12/12.11/S12.11_A3_T1.js
@@ -5,7 +5,7 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T1
 description: Checking if execution of "switch() {}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/suite/ch12/12.11/S12.11_A3_T2.js b/test/suite/ch12/12.11/S12.11_A3_T2.js
index 9ccf91ac101cec24f3e9e49905268df00c36e946..a6c4cecaebfb716af94c214a4d8e55ce1d788912 100644
--- a/test/suite/ch12/12.11/S12.11_A3_T2.js
+++ b/test/suite/ch12/12.11/S12.11_A3_T2.js
@@ -5,7 +5,7 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T2
 description: Checking if execution of "switch {}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/suite/ch12/12.11/S12.11_A3_T3.js b/test/suite/ch12/12.11/S12.11_A3_T3.js
index f0bd3f868a73f6fddf126b6608494e6ed80a76a2..bb983237bafe295c4da91ad94d1a7779e476a116 100644
--- a/test/suite/ch12/12.11/S12.11_A3_T3.js
+++ b/test/suite/ch12/12.11/S12.11_A3_T3.js
@@ -5,7 +5,7 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T3
 description: Checking if execution of "switch(value)" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 switch(value);
diff --git a/test/suite/ch12/12.11/S12.11_A3_T4.js b/test/suite/ch12/12.11/S12.11_A3_T4.js
index dd86d3e6214b141e9f34b5e1d02b83b61fb037ca..856e189d82387ea2de26369151f23abe46474561 100644
--- a/test/suite/ch12/12.11/S12.11_A3_T4.js
+++ b/test/suite/ch12/12.11/S12.11_A3_T4.js
@@ -7,7 +7,7 @@ es5id: 12.11_A3_T4
 description: >
     Using "case" that has no Expresson after it. "CaseClause: case
     Expression : [StatementList]"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/suite/ch12/12.11/S12.11_A3_T5.js b/test/suite/ch12/12.11/S12.11_A3_T5.js
index 5aedd37f02d35ea817064d45e8d787171e61f95e..8dbb4d954825ad5a41e6bc3f521292484230c730 100644
--- a/test/suite/ch12/12.11/S12.11_A3_T5.js
+++ b/test/suite/ch12/12.11/S12.11_A3_T5.js
@@ -5,7 +5,7 @@
 info: Syntax constructions of switch statement
 es5id: 12.11_A3_T5
 description: Introducing statement not followed by "case" keyword
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function SwitchTest(value){
diff --git a/test/suite/ch12/12.13/S12.13_A1.js b/test/suite/ch12/12.13/S12.13_A1.js
index e907a2fcbc25f0f34aff02f59ac31814a742f00a..ce48406d25e51e22407d7e9f0fcb78813e168576 100644
--- a/test/suite/ch12/12.13/S12.13_A1.js
+++ b/test/suite/ch12/12.13/S12.13_A1.js
@@ -5,7 +5,7 @@
 info: Sanity test for throw statement
 es5id: 12.13_A1
 description: Trying to throw exception with "throw"
-flags: [negative]
+negative: expected_message
 ---*/
 
-throw "error";
+throw "expected_message";
diff --git a/test/suite/ch12/12.14/12.14.1/12.14.1-1gs.js b/test/suite/ch12/12.14/12.14.1/12.14.1-1gs.js
index 55ad37ef1fb6a0b1901dd6a4823edd9b46b10ac0..4574705f9d9cd0fa39bf370a339b78c0d94fd533 100644
--- a/test/suite/ch12/12.14/12.14.1/12.14.1-1gs.js
+++ b/test/suite/ch12/12.14/12.14.1/12.14.1-1gs.js
@@ -10,7 +10,7 @@ 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: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch12/12.14/S12.14_A16_T1.js b/test/suite/ch12/12.14/S12.14_A16_T1.js
index f6dd97aac18ee4100a6ff133dbc422dfe808bd4a..2d4f7c81e65f0c51f0fdf474efd88e51e899c1b3 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T1.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T1.js
@@ -7,7 +7,7 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T1
 description: Checking if pure "try" syntax construction passes
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T10.js b/test/suite/ch12/12.14/S12.14_A16_T10.js
index c5579e419ba165ba4e3d3aa811dd6d14aa92b1ce..b70057076fa0da06f5a47cf11eb0bee131b474f2 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T10.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T10.js
@@ -7,7 +7,7 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T10
 description: "Catch: \"catch (Identifier ) Block\""
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T11.js b/test/suite/ch12/12.14/S12.14_A16_T11.js
index 03a4c4059b6765d101ca3c866129905298952246..8b46cf73cb929f1bdb8663123fda43f28f24b8b9 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T11.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T11.js
@@ -9,7 +9,7 @@ es5id: 12.14_A16_T11
 description: >
     Catch and Finally are placed into the Block of "try" (whitle
     expected outside)
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T12.js b/test/suite/ch12/12.14/S12.14_A16_T12.js
index e20b1f0b4932dae27a3a3d441530f176da32103d..0d6246dc93799080214d227e9ca62b1faa0a4f05 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T12.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T12.js
@@ -7,7 +7,7 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T12
 description: Embedded "try" statements followed by two "catch" statements
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T13.js b/test/suite/ch12/12.14/S12.14_A16_T13.js
index b1d24f6647c49cfa9863f9ac43637e3f90db8b96..ece3312bfe31c04685e456af9dc05dc192ff814a 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T13.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T13.js
@@ -9,7 +9,7 @@ es5id: 12.14_A16_T13
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of "22"
     passes at the place of Identifier of "catch"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T14.js b/test/suite/ch12/12.14/S12.14_A16_T14.js
index 9fed9a23fc72f36b53dbd5221fbb7d97ca4bdc41..472201bc685f0f25409d412a4ee7dd8bebf13b9b 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T14.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T14.js
@@ -7,7 +7,7 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T14
 description: Checking if passing argument to "try" statement fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T15.js b/test/suite/ch12/12.14/S12.14_A16_T15.js
index 47d7f8c995debb5188f294658f338c2d4a45e878..6290c9e09e714e26f52a95684bf02cee67dc7d2b 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T15.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T15.js
@@ -9,7 +9,7 @@ es5id: 12.14_A16_T15
 description: >
     Finally: "finally Block". Checking if passing argument to "try"
     statement fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T2.js b/test/suite/ch12/12.14/S12.14_A16_T2.js
index 1d21b5c98c2ba6cf5027594b2dbaa892fdacd2fd..2aa5ae6ef15ca70a8ddd6d7127fb6ef0acd2e738 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T2.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T2.js
@@ -7,7 +7,7 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T2
 description: Checking if execution of "catch" with no "try" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T3.js b/test/suite/ch12/12.14/S12.14_A16_T3.js
index 5b8e70e4ac687ca62455eaa374612e5b14121279..bed9ac8ab6009ee6b7aa01aeeb2e0de08e5f041d 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T3.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T3.js
@@ -7,7 +7,7 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T3
 description: Checking if execution of "finally" with no "try" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T4.js b/test/suite/ch12/12.14/S12.14_A16_T4.js
index 4078ed6e52aa7f6b7bfea7e5d5fe37758b5b939c..65d66448ae98d8921b42b4b0f96012032a9edb90 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T4.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T4.js
@@ -9,7 +9,7 @@ es5id: 12.14_A16_T4
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of
     "catch" that takes no arguments fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T5.js b/test/suite/ch12/12.14/S12.14_A16_T5.js
index 896b6487fb8133ca7e278f9e4587fb49791c3917..48722136f86dcc7e59cfa10a197441769a62210d 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T5.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T5.js
@@ -9,7 +9,7 @@ es5id: 12.14_A16_T5
 description: >
     Catch: "catch (Identifier ) Block". Checking if execution of
     "catch" with no Block fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T6.js b/test/suite/ch12/12.14/S12.14_A16_T6.js
index 261160f453769f524844316b0eb7c4d3b3a4a949..fd00f1fd1a5d8f4a5f38c86e084152f4005e24c8 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T6.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T6.js
@@ -9,7 +9,7 @@ es5id: 12.14_A16_T6
 description: >
     Block: "{ StatementList }". Checking if execution of "try{
     catch{}{}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T7.js b/test/suite/ch12/12.14/S12.14_A16_T7.js
index 96d948160a8794e3b0b1d19a50eebf4edfd4de6e..44ca68cf303b519b738a60454884c7e63f3c2c31 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T7.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T7.js
@@ -9,7 +9,7 @@ es5id: 12.14_A16_T7
 description: >
     Block: "{ StatementList }". Checking if execution of "try{}
     catch(){" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T8.js b/test/suite/ch12/12.14/S12.14_A16_T8.js
index 6eebb0dd36ac7a7935336c5fc9056b373d363e72..b9266cf7dcc577bad754415d660da7b8610ef0e4 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T8.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T8.js
@@ -9,7 +9,7 @@ es5id: 12.14_A16_T8
 description: >
     Block: "{ StatementList }". Catch: "catch (Identifier ) Block".
     Checking if execution of "try{} catch(){finally{}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.14/S12.14_A16_T9.js b/test/suite/ch12/12.14/S12.14_A16_T9.js
index 1eec9a544a0bdbf41340f6679c02ac48e682c18f..c6ca68ad0c88544a7617518766b53fbb38cb6f88 100644
--- a/test/suite/ch12/12.14/S12.14_A16_T9.js
+++ b/test/suite/ch12/12.14/S12.14_A16_T9.js
@@ -7,7 +7,7 @@ info: >
     Catch Finally"
 es5id: 12.14_A16_T9
 description: Checking if execution of "catch(){} finally{}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 // CHECK#1
diff --git a/test/suite/ch12/12.2/12.2.1/12.2.1-1gs.js b/test/suite/ch12/12.2/12.2.1/12.2.1-1gs.js
index 5cd0797eae92e01681af40457e1293b78e463da3..bed6f5a605e2b5ff2e7ced8b0ba54175999d26f5 100644
--- a/test/suite/ch12/12.2/12.2.1/12.2.1-1gs.js
+++ b/test/suite/ch12/12.2/12.2.1/12.2.1-1gs.js
@@ -9,7 +9,7 @@ es5id: 12.2.1-1gs
 description: >
     Strict Mode - SyntaxError is thrown if a VariableDeclaration
     occurs within strict code and its Identifier is eval
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch12/12.2/12.2.1/12.2.1-4gs.js b/test/suite/ch12/12.2/12.2.1/12.2.1-4gs.js
index 111bf357adce876f6b030ac331ed2973a02861cf..538089d10f35c7a132e9e38b7775a00563a60545 100644
--- a/test/suite/ch12/12.2/12.2.1/12.2.1-4gs.js
+++ b/test/suite/ch12/12.2/12.2.1/12.2.1-4gs.js
@@ -9,7 +9,7 @@ es5id: 12.2.1-4gs
 description: >
     Strict Mode - SyntaxError is thrown if a VariableDeclarationNoIn
     occurs within strict code and its Identifier is arguments
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch12/12.2/S12.2_A8_T1.js b/test/suite/ch12/12.2/S12.2_A8_T1.js
index 51e06b78ba4c141ad0f0b0c9873b5a762f2337d7..4e5f1efacddae4a1f19006ee03be4def444f85e5 100644
--- a/test/suite/ch12/12.2/S12.2_A8_T1.js
+++ b/test/suite/ch12/12.2/S12.2_A8_T1.js
@@ -5,7 +5,7 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T1
 description: Checking if execution of "var x += 1" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.2/S12.2_A8_T2.js b/test/suite/ch12/12.2/S12.2_A8_T2.js
index c71294daa059773acea85c53db193cf50d7ac28e..8f60c152c03a24b9ae501317f1bc21d7ab03e0b5 100644
--- a/test/suite/ch12/12.2/S12.2_A8_T2.js
+++ b/test/suite/ch12/12.2/S12.2_A8_T2.js
@@ -5,7 +5,7 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T2
 description: Checking if execution of "var x | true" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.2/S12.2_A8_T3.js b/test/suite/ch12/12.2/S12.2_A8_T3.js
index 00fcb034fbd60b3339999d0e40cf0f672f7ef992..b5b8949b9902909b134a1d4475319788b98d066c 100644
--- a/test/suite/ch12/12.2/S12.2_A8_T3.js
+++ b/test/suite/ch12/12.2/S12.2_A8_T3.js
@@ -5,7 +5,7 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T3
 description: Checking if execution of "var x && 1" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.2/S12.2_A8_T4.js b/test/suite/ch12/12.2/S12.2_A8_T4.js
index e23fc937e8af47bfc817457cf413d611c3c64c2d..9b125cc983dd69b205a42d62f50db75067fa11c9 100644
--- a/test/suite/ch12/12.2/S12.2_A8_T4.js
+++ b/test/suite/ch12/12.2/S12.2_A8_T4.js
@@ -5,7 +5,7 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T4
 description: Checking if execution of "var x++" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.2/S12.2_A8_T5.js b/test/suite/ch12/12.2/S12.2_A8_T5.js
index cde132209b6b2066313c17e71307888843916b04..4640a96dbc97b3524ed9c8ff25f6eb90a8ac8b66 100644
--- a/test/suite/ch12/12.2/S12.2_A8_T5.js
+++ b/test/suite/ch12/12.2/S12.2_A8_T5.js
@@ -5,7 +5,7 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T5
 description: Checking if execution of "var --x" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.2/S12.2_A8_T6.js b/test/suite/ch12/12.2/S12.2_A8_T6.js
index dca790eeedbf2564c658bf7a1d359a5559702499..9eb53feb8c6360cd8956a78453408b7cc7f374a0 100644
--- a/test/suite/ch12/12.2/S12.2_A8_T6.js
+++ b/test/suite/ch12/12.2/S12.2_A8_T6.js
@@ -5,7 +5,7 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T6
 description: Checking if execution of "var x*1" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.2/S12.2_A8_T7.js b/test/suite/ch12/12.2/S12.2_A8_T7.js
index 32b93b448355b95456007b94921fed55dc9bcdfd..6a80d0d7ab4c88fbfc063fc91676a403f91ce8aa 100644
--- a/test/suite/ch12/12.2/S12.2_A8_T7.js
+++ b/test/suite/ch12/12.2/S12.2_A8_T7.js
@@ -5,7 +5,7 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T7
 description: Checking if execution of "var x>>1" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.2/S12.2_A8_T8.js b/test/suite/ch12/12.2/S12.2_A8_T8.js
index 9b7795e2b3089a69e0bfe9853323c4faf8035d5e..e5138c7e06444ebf2707c626ba97f69b983b4508 100644
--- a/test/suite/ch12/12.2/S12.2_A8_T8.js
+++ b/test/suite/ch12/12.2/S12.2_A8_T8.js
@@ -5,7 +5,7 @@
 info: Only AssignmentExpression is admitted when variable is initialized
 es5id: 12.2_A8_T8
 description: Checking if execution of "var x in __arr" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 __arr = [];
diff --git a/test/suite/ch12/12.4/S12.4_A1.js b/test/suite/ch12/12.4/S12.4_A1.js
index 4ca4e197f1de4942067b30220cd2d695e52e8a7b..dc4fe9dc0358f5637eb97c34ec8964a05b2e0b63 100644
--- a/test/suite/ch12/12.4/S12.4_A1.js
+++ b/test/suite/ch12/12.4/S12.4_A1.js
@@ -7,7 +7,7 @@ info: >
     that might make it ambiguous with a FunctionDeclaration
 es5id: 12.4_A1
 description: Checking if execution of "function(){}()" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.5/S12.5_A11.js b/test/suite/ch12/12.5/S12.5_A11.js
index d2f9ae7c0682405a437a0ffb32b5d60c99196eb6..a574356ea81763194149072eb3d239d8743bd375 100644
--- a/test/suite/ch12/12.5/S12.5_A11.js
+++ b/test/suite/ch12/12.5/S12.5_A11.js
@@ -5,7 +5,7 @@
 info: "{} within the \"if\" expression is not allowed"
 es5id: 12.5_A11
 description: Checking if execution of "if({1})" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.5/S12.5_A2.js b/test/suite/ch12/12.5/S12.5_A2.js
index ec21a347195b7fa6462c6c6f2794059017f26595..7b36e2eea018b8f8b8cd503dc95f64994bdae4ba 100644
--- a/test/suite/ch12/12.5/S12.5_A2.js
+++ b/test/suite/ch12/12.5/S12.5_A2.js
@@ -5,8 +5,9 @@
 info: In the "if" Statement eval in Expression is admitted
 es5id: 12.5_A2
 description: Checking by using eval "eval("true")"
-flags: [negative]
-includes: [$FAIL.js]
 ---*/
 
-if (eval("true")) $FAIL('#1: In the "if" Statement eval as Expression is admitted');
+if (eval("true")) {
+} else {
+    $ERROR('#1: In the "if" Statement eval as Expression is admitted'); 
+}
diff --git a/test/suite/ch12/12.5/S12.5_A6_T1.js b/test/suite/ch12/12.5/S12.5_A6_T1.js
index ddac88dfe39663299abeddc561e66bb2cca6fd3e..0eef08663a12d22a6b09aea01b7946dd4b145fbf 100644
--- a/test/suite/ch12/12.5/S12.5_A6_T1.js
+++ b/test/suite/ch12/12.5/S12.5_A6_T1.js
@@ -5,7 +5,7 @@
 info: In the If statement expression must be enclosed in braces
 es5id: 12.5_A6_T1
 description: Checking if execution of "if true" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.5/S12.5_A6_T2.js b/test/suite/ch12/12.5/S12.5_A6_T2.js
index 1628a57b6d72e3a1fe5b378f3473e24894fe6fc0..f555ef988cb4621063f7186dd3a2d003bedc91d1 100644
--- a/test/suite/ch12/12.5/S12.5_A6_T2.js
+++ b/test/suite/ch12/12.5/S12.5_A6_T2.js
@@ -5,7 +5,7 @@
 info: In the If statement expression must be enclosed in braces
 es5id: 12.5_A6_T2
 description: Checking if execution of "if false" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.5/S12.5_A8.js b/test/suite/ch12/12.5/S12.5_A8.js
index 6ccf77f501c28454039b4348635f15e784cd124b..f4488788e6150043c842247cbf6c3d1869b12a23 100644
--- a/test/suite/ch12/12.5/S12.5_A8.js
+++ b/test/suite/ch12/12.5/S12.5_A8.js
@@ -5,7 +5,7 @@
 info: In the "if" Statement empty expression is not allowed
 es5id: 12.5_A8
 description: Checking if execution of "if()" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.1/S12.6.1_A12.js b/test/suite/ch12/12.6/12.6.1/S12.6.1_A12.js
index 19d010b46affd7ca263fa8e3009f28e4dc29d41b..a174829c5f9ca0d48591550e282506da125ebfea 100644
--- a/test/suite/ch12/12.6/12.6.1/S12.6.1_A12.js
+++ b/test/suite/ch12/12.6/12.6.1/S12.6.1_A12.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.1/S12.6.1_A15.js b/test/suite/ch12/12.6/12.6.1/S12.6.1_A15.js
index 198d7b3b93c6f2010372f79c89a1f38f1ab4b012..f079896efac8906a43c5f20069e158ea9cc0c036 100644
--- a/test/suite/ch12/12.6/12.6.1/S12.6.1_A15.js
+++ b/test/suite/ch12/12.6/12.6.1/S12.6.1_A15.js
@@ -5,7 +5,7 @@
 info: Block within a "do-while" Expression is not allowed
 es5id: 12.6.1_A15
 description: Using "{0}" Block as an Expression
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T1.js b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T1.js
index f12b627d1c24a4a3e7a6462fe6b377ae83c8c719..a0aacd85fd7b4a1eb878543d1b3ae0c0d2892de3 100644
--- a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T1.js
+++ b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T1.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T2.js b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T2.js
index b4adc61884b4576154d9394aeda74f044d0188f8..a7686e92c8533611c25f90d8bd49748a992a9596 100644
--- a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T2.js
+++ b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T2.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T3.js b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T3.js
index a392a85dc525122b75bad4d4a6017c2d047e7600..4f59089ddc33f336327b4ade2d5e51724cf8d333 100644
--- a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T3.js
+++ b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T3.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T4.js b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T4.js
index 674fde0de44f69da05445007a06907e46c88e205..9e77619bcaa7e59a37cb0f0bb45a52465db3d76b 100644
--- a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T4.js
+++ b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T4.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T5.js b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T5.js
index d40e36d7c88b9b77be2f4bd35e961e7ec649d307..2182ea4f9af11c92a965714b16b41769649fe6a3 100644
--- a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T5.js
+++ b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T5.js
@@ -5,7 +5,7 @@
 info: Expression in "do-while" IterationStatement is bracketed with braces
 es5id: 12.6.1_A6_T5
 description: Checking if execution of "do{}while ''" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T6.js b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T6.js
index f84325b85cd4ccdcfbe40087597b1ae6d8bc73bb..2ee26417fb30c4026b22e7499eccb6823294e1d0 100644
--- a/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T6.js
+++ b/test/suite/ch12/12.6/12.6.1/S12.6.1_A6_T6.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.2/S12.6.2_A15.js b/test/suite/ch12/12.6/12.6.2/S12.6.2_A15.js
index 0ec17b53d154146b898c653c9f2deac47ef5589f..a5dcce4a5c30035d087fc174d58be90aac98eddc 100644
--- a/test/suite/ch12/12.6/12.6.2/S12.6.2_A15.js
+++ b/test/suite/ch12/12.6/12.6.2/S12.6.2_A15.js
@@ -5,7 +5,7 @@
 info: Block within a "while" Expression is not allowed
 es5id: 12.6.2_A15
 description: Expression is "{0}"
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T1.js b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T1.js
index d5b8a897db9722da6c1c711b02c2f8a056244fa5..b2d4949b1521f5b145e22455d17ad7908c74c059 100644
--- a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T1.js
+++ b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T1.js
@@ -5,7 +5,7 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T1
 description: Checking if execution of "while 1 break" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T2.js b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T2.js
index 0d611b50e8bf20e9564c68bb527471c9fa28b905..beb06e866ae0d060fc2bc1c88a52b6f7c5785905 100644
--- a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T2.js
+++ b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T2.js
@@ -5,7 +5,7 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T2
 description: Checking if execution of "while 0 break" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T3.js b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T3.js
index 6a7ab5475c5aa6da75e9a199515178fbac2ced57..6c28cf6628d0d55a791367a7af4d4f0da3cc3498 100644
--- a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T3.js
+++ b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T3.js
@@ -5,7 +5,7 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T3
 description: Checking if execution of "while true break" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T4.js b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T4.js
index 5534501bbd18d8a7e0d6ce4a176095d1cfb5f3b8..7b74d4efce73bb2723edf0367747c4f160dd1b4e 100644
--- a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T4.js
+++ b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T4.js
@@ -5,7 +5,7 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T4
 description: Checking if execution of "while false break" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T5.js b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T5.js
index 403bb69924f599153ab8559b78163b268d1a1c84..644e32b52511ee75f082096ec18dfd4a727260dc 100644
--- a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T5.js
+++ b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T5.js
@@ -5,7 +5,7 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T5
 description: Checking if execution of "while '' break" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T6.js b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T6.js
index 7996d422c327622f86db684a316abcdac2c7dab2..49cba88d4df5aea23637fbd02e035260e00317db 100644
--- a/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T6.js
+++ b/test/suite/ch12/12.6/12.6.2/S12.6.2_A6_T6.js
@@ -5,7 +5,7 @@
 info: Expression in "while" IterationStatement is bracketed with braces
 es5id: 12.6.2_A6_T6
 description: Checking if execution of "while 'hood' break" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A11.1_T3.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A11.1_T3.js
index 67a98b22bc15e72f71cd59ec3706d6887ff8ff5c..686587b616f32e1adec5b274d2fee1126cd8798a 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A11.1_T3.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A11.1_T3.js
@@ -8,7 +8,7 @@ info: >
     "var-loop" breaks
 es5id: 12.6.3_A11.1_T3
 description: Trying to continue non-existent label
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A11_T3.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A11_T3.js
index a8b6ca9c269f1120befa7b1c1d5db5d76c589385..a3272871cb4e9bc66430aa637916e61993e8c85f 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A11_T3.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A11_T3.js
@@ -8,7 +8,7 @@ info: >
     breaks
 es5id: 12.6.3_A11_T3
 description: Trying to continue non-existent label
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A12.1_T3.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A12.1_T3.js
index 467305186d393a114a659927ea925f0de2f86c44..b54efa56ce4f2959859fa8f743af770151f345dc 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A12.1_T3.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A12.1_T3.js
@@ -8,7 +8,7 @@ info: >
     returned while evaluating a "var-loop"
 es5id: 12.6.3_A12.1_T3
 description: Trying to break non-existent label
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A12_T3.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A12_T3.js
index 022e9318d7ccc50963118b3905b13a429bc46bb5..42680be4d67e900bd1d6b65014de091a7252e477 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A12_T3.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A12_T3.js
@@ -8,7 +8,7 @@ info: >
     returned while evaluating a loop
 es5id: 12.6.3_A12_T3
 description: Trying to break non-existent label
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 __str="";
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A4.1.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A4.1.js
index 4fff7bdc71e3daf3721f2131779a72ba48eb078f..aa8b4dca22636af97a8ea2777c74e887017b1028 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A4.1.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A4.1.js
@@ -8,7 +8,7 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4.1
 description: Checking if execution of "for (var a in arr;1;){}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T1.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T1.js
index 6a8945f26d56e3e0e51e6d25999370a3c2306584..d9654fa5f858534e0b8255872e06df43a96b44bc 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T1.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T1.js
@@ -8,7 +8,7 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4_T1
 description: Checking if execution of "for (a in arr;1;){}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T2.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T2.js
index f2116de452cf35f68b468f7ec3baf2928976cdce..0fe801b152b08eb6acf08f9443cfc9afdd5ce58d 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T2.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T2.js
@@ -8,7 +8,7 @@ info: >
     IterationStatement
 es5id: 12.6.3_A4_T2
 description: Checking if execution of "for (1 in arr;1;){}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 arr = [1,2,3,4,5];
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A7.1_T1.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A7.1_T1.js
index 8646600c6610d0b580846944113d6bb45c1cd980..5b6170827903b9b46cc20969c3173cfccb50e5f0 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A7.1_T1.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A7.1_T1.js
@@ -9,7 +9,7 @@ es5id: 12.6.3_A7.1_T1
 description: >
     Checking if execution of "for(var index=0; index<10; index++;
     index--)" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A7.1_T2.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A7.1_T2.js
index cad7077293d1e483d96219f9b47103590253ae28..20cd21ef76322e3d67a7676f235556a59dd096d8 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A7.1_T2.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A7.1_T2.js
@@ -9,7 +9,7 @@ es5id: 12.6.3_A7.1_T2
 description: >
     Checking if execution of "for(var index=0; index<10; index+=4;
     index++; index--)" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A7_T1.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A7_T1.js
index b4e47a486a022b639ec44050076834ff3ced9547..11189440ee6bd8e67f05a238f55675ad6afff933 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A7_T1.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A7_T1.js
@@ -9,7 +9,7 @@ es5id: 12.6.3_A7_T1
 description: >
     Checking if execution of "for(index=0; index<10; index++;
     index--)" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A7_T2.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A7_T2.js
index ecc6011ccf033ac69930bb09a3a26b48405cdb05..342a611457ddd154fdb7ec32c57d48b9aea0c586 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A7_T2.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A7_T2.js
@@ -9,7 +9,7 @@ es5id: 12.6.3_A7_T2
 description: >
     Checking if execution of "for(index=0; index<10; index+=4;
     index++; index--)" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T1.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T1.js
index 6e680ac17f7ccc3cf730e2306d123c33158890fd..eae1d63e7083ee297549363ac1288c65a0e4fb93 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T1.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T1.js
@@ -7,7 +7,7 @@ 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T2.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T2.js
index 4075a08b4dab5fa5452910797eed1adff8afe445..d5774cd7bbbe5de27c343b3a2c890e786f6e5347 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T2.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T2.js
@@ -7,7 +7,7 @@ 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T3.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T3.js
index 2d11d19c0e3a0ea5a4015333df403b79a8db17e5..2298869eb8a53cc2eae14f9e856886a1991fc2cd 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T3.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8.1_T3.js
@@ -7,7 +7,7 @@ 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T1.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T1.js
index b61735e61d4cc0088a75b384bbdbbccd62ba0a64..90a8a52e3f6abb6282393c9de6e40954d068aeec 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T1.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T1.js
@@ -7,7 +7,7 @@ es5id: 12.6.3_A8_T1
 description: >
     Checking if execution of "for(index=0; index<100; {index++;
     index*2;}) {  arr.add(""+index);}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T2.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T2.js
index aac7670df143ab23956287373cff69d4590574e4..8bb3742e9b7c89618123790b770da89b352500e8 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T2.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T2.js
@@ -7,7 +7,7 @@ es5id: 12.6.3_A8_T2
 description: >
     Checking if execution of "for(index=0; {index++;index<100;};
     index*2;) {  arr.add(""+index);}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T3.js b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T3.js
index a343bde6d5489a02462b4c039b15f2c225afd57c..cea0f6099e54e369e75ce50eb5a91a23474f4819 100644
--- a/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T3.js
+++ b/test/suite/ch12/12.6/12.6.3/S12.6.3_A8_T3.js
@@ -7,7 +7,7 @@ es5id: 12.6.3_A8_T3
 description: >
     Checking if execution of "for({index=0; index+=1;} index++<=10;
     index*2;) { arr.add(""+index);}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var arr = [];
diff --git a/test/suite/ch12/12.6/12.6.4/S12.6.4_A15.js b/test/suite/ch12/12.6/12.6.4/S12.6.4_A15.js
index 039ec346ea77ec59b4851e292dcc5ad4b6cbd93a..64f1e25e1b6639c7f3adaac5af2873db91d5d249 100644
--- a/test/suite/ch12/12.6/12.6.4/S12.6.4_A15.js
+++ b/test/suite/ch12/12.6/12.6.4/S12.6.4_A15.js
@@ -5,14 +5,14 @@
 info: Block within a "for-in" Expression is not allowed
 es5id: 12.6.4_A15
 description: Using block within "for-in" Expression
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var __arr=[1,2,3];
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#
-for(x in {__arr}){
+for(x in {__arr;}){
    break ;
 };
 //
diff --git a/test/suite/ch12/12.7/S12.7_A1_T1.js b/test/suite/ch12/12.7/S12.7_A1_T1.js
index 30b5da7b65a6b8d3750b6a7b5e9750c124d3f98b..b93a188952f2dd67a2ecd9fe20b5fe6004ba4466 100644
--- a/test/suite/ch12/12.7/S12.7_A1_T1.js
+++ b/test/suite/ch12/12.7/S12.7_A1_T1.js
@@ -7,7 +7,7 @@ es5id: 12.7_A1_T1
 description: >
     Checking if execution of single "continue" without any
     IterationStatement fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.7/S12.7_A1_T2.js b/test/suite/ch12/12.7/S12.7_A1_T2.js
index 7158c19cc33f78b0212a90e5860bc1a33ab45717..3f64dc48f93fc392ee155414abc2381826b6d066 100644
--- a/test/suite/ch12/12.7/S12.7_A1_T2.js
+++ b/test/suite/ch12/12.7/S12.7_A1_T2.js
@@ -7,7 +7,7 @@ es5id: 12.7_A1_T2
 description: >
     Checking if single "continue" with Label but without any
     IterationStatement fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/suite/ch12/12.7/S12.7_A1_T3.js b/test/suite/ch12/12.7/S12.7_A1_T3.js
index b5b980febb8e1672464203103f9697c04787c260..5dc269fa757568ef11fff410743bce34b69a1bf4 100644
--- a/test/suite/ch12/12.7/S12.7_A1_T3.js
+++ b/test/suite/ch12/12.7/S12.7_A1_T3.js
@@ -7,7 +7,7 @@ es5id: 12.7_A1_T3
 description: >
     Checking if laballed "continue" with no IterationStatement, placed
     into a block, fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/suite/ch12/12.7/S12.7_A1_T4.js b/test/suite/ch12/12.7/S12.7_A1_T4.js
index 72d7b6a5daf09c83ea8a293f22ba728f9104d26a..f766c3390a65a1cc3bb67d296b16dcb3eab91718 100644
--- a/test/suite/ch12/12.7/S12.7_A1_T4.js
+++ b/test/suite/ch12/12.7/S12.7_A1_T4.js
@@ -7,7 +7,7 @@ es5id: 12.7_A1_T4
 description: >
     Checking if execution of "continue" with no IterationStatement,
     placed into a block, fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.7/S12.7_A5_T1.js b/test/suite/ch12/12.7/S12.7_A5_T1.js
index 82655a7caab0e5a9b5a38cb21d8444ec759b2a00..48980dd7a28ecdbcc8a96fc3ba80f0ffa41e0275 100644
--- a/test/suite/ch12/12.7/S12.7_A5_T1.js
+++ b/test/suite/ch12/12.7/S12.7_A5_T1.js
@@ -8,7 +8,7 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T1
 description: Trying to continue another labeled loop
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/suite/ch12/12.7/S12.7_A5_T2.js b/test/suite/ch12/12.7/S12.7_A5_T2.js
index c2ba06648bb4797818ef09c37bb1230886b66485..e31903c2c79d3a171234663b1e0eaa6aae0cc072 100644
--- a/test/suite/ch12/12.7/S12.7_A5_T2.js
+++ b/test/suite/ch12/12.7/S12.7_A5_T2.js
@@ -8,7 +8,7 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T2
 description: Identifier is a function name
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/suite/ch12/12.7/S12.7_A5_T3.js b/test/suite/ch12/12.7/S12.7_A5_T3.js
index d1b6aec5ee697c77a4555b0c31e0ffb59b989a5b..1f7b0226f05a2212b9fc580e1e714979af9c0c25 100644
--- a/test/suite/ch12/12.7/S12.7_A5_T3.js
+++ b/test/suite/ch12/12.7/S12.7_A5_T3.js
@@ -8,7 +8,7 @@ info: >
     IterationStatement
 es5id: 12.7_A5_T3
 description: Identifier is within loop label
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 LABEL_OUT : var x=0, y=0;
diff --git a/test/suite/ch12/12.7/S12.7_A6.js b/test/suite/ch12/12.7/S12.7_A6.js
index 2ba847496f10d832ca2158e3e0bf7834b6fd5ca5..48d0646b2a5abee418aa531f5d9d0bb4e5f41d20 100644
--- a/test/suite/ch12/12.7/S12.7_A6.js
+++ b/test/suite/ch12/12.7/S12.7_A6.js
@@ -7,7 +7,7 @@ info: >
     IterationStatement yields SyntaxError
 es5id: 12.7_A6
 description: Using labaled "continue Identifier" within a function body
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/suite/ch12/12.7/S12.7_A8_T1.js b/test/suite/ch12/12.7/S12.7_A8_T1.js
index 3887cd247ca9c1bcdce6cfb4daa1522bc5bf27ad..68e2e22d58a3697541b91a3a8ddb14dd8cce12bb 100644
--- a/test/suite/ch12/12.7/S12.7_A8_T1.js
+++ b/test/suite/ch12/12.7/S12.7_A8_T1.js
@@ -7,7 +7,7 @@ es5id: 12.7_A8_T1
 description: >
     Checking if execution of "continue Identifier" within catch Block
     fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/suite/ch12/12.7/S12.7_A8_T2.js b/test/suite/ch12/12.7/S12.7_A8_T2.js
index 90228d44ab744f26f06ba74d07f6a027c8862ca3..005df354e10d6e237396fff2a80bcca158a0726e 100644
--- a/test/suite/ch12/12.7/S12.7_A8_T2.js
+++ b/test/suite/ch12/12.7/S12.7_A8_T2.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/suite/ch12/12.8/S12.8_A1_T1.js b/test/suite/ch12/12.8/S12.8_A1_T1.js
index da7652d4652a3a2d86ab6353cd88a78477ddd502..9a631ca00cfe0346150d71fdf412755ef1dbd397 100644
--- a/test/suite/ch12/12.8/S12.8_A1_T1.js
+++ b/test/suite/ch12/12.8/S12.8_A1_T1.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.8/S12.8_A1_T2.js b/test/suite/ch12/12.8/S12.8_A1_T2.js
index 7076da14b4aacd92cdb822273cc893aeb62dbc7b..4b2ee30c2bd8fcd02726fd54372885b2826662ab 100644
--- a/test/suite/ch12/12.8/S12.8_A1_T2.js
+++ b/test/suite/ch12/12.8/S12.8_A1_T2.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/suite/ch12/12.8/S12.8_A1_T3.js b/test/suite/ch12/12.8/S12.8_A1_T3.js
index f0491b68aa4b2975bc04877e219fd2a2e7296a7a..9f1693cbadad985ee33756df68828cb0636697ac 100644
--- a/test/suite/ch12/12.8/S12.8_A1_T3.js
+++ b/test/suite/ch12/12.8/S12.8_A1_T3.js
@@ -7,7 +7,7 @@ es5id: 12.8_A1_T3
 description: >
     Checking if break statement with no loop, placed into a block,
     fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.8/S12.8_A1_T4.js b/test/suite/ch12/12.8/S12.8_A1_T4.js
index d011cc1b1ec28980984d412da749f9d10d6aa50d..e1c5752ea2d05e3b21b0aba9602748e92a936621 100644
--- a/test/suite/ch12/12.8/S12.8_A1_T4.js
+++ b/test/suite/ch12/12.8/S12.8_A1_T4.js
@@ -7,7 +7,7 @@ es5id: 12.8_A1_T4
 description: >
     Checking if break Identifier with no loop, placed into a  block,
     fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 LABEL : x=3.14;
diff --git a/test/suite/ch12/12.8/S12.8_A5_T1.js b/test/suite/ch12/12.8/S12.8_A5_T1.js
index 53fe39c746f010f573478a531569fb7ff5d8af78..c30bfa322ccd46e650fbdd7b51f7e32e6b7c0db7 100644
--- a/test/suite/ch12/12.8/S12.8_A5_T1.js
+++ b/test/suite/ch12/12.8/S12.8_A5_T1.js
@@ -7,7 +7,7 @@ info: >
     crossing function boundaries) IterationStatement
 es5id: 12.8_A5_T1
 description: Checking if breaking another labeled loop fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/suite/ch12/12.8/S12.8_A5_T2.js b/test/suite/ch12/12.8/S12.8_A5_T2.js
index 2c9eb0ba907389a1620a1cda38f0bc970dc1a011..d22d0af9c7005681412b59150c3f496400b7cce4 100644
--- a/test/suite/ch12/12.8/S12.8_A5_T2.js
+++ b/test/suite/ch12/12.8/S12.8_A5_T2.js
@@ -9,7 +9,7 @@ es5id: 12.8_A5_T2
 description: >
     Checking if using function name as an Identifier appears to be
     invalid
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/suite/ch12/12.8/S12.8_A5_T3.js b/test/suite/ch12/12.8/S12.8_A5_T3.js
index 456c6116901dc97fce454ec4a589e6b3af0b98c9..ac14feb593e51c59f41eccf2102e3fe6f06bb62b 100644
--- a/test/suite/ch12/12.8/S12.8_A5_T3.js
+++ b/test/suite/ch12/12.8/S12.8_A5_T3.js
@@ -9,7 +9,7 @@ es5id: 12.8_A5_T3
 description: >
     Checking if using internal loop label as an Identifier appears to
     be invalid
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 (function(){
diff --git a/test/suite/ch12/12.8/S12.8_A6.js b/test/suite/ch12/12.8/S12.8_A6.js
index e503aa14a042619383b20b39b667d499264449ed..d996d392046adad235eed9a8ddd836991a343031 100644
--- a/test/suite/ch12/12.8/S12.8_A6.js
+++ b/test/suite/ch12/12.8/S12.8_A6.js
@@ -9,7 +9,7 @@ es5id: 12.8_A6
 description: >
     Checking if using "break Identifier" within a function body
     appears to be invalid
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/suite/ch12/12.8/S12.8_A8_T1.js b/test/suite/ch12/12.8/S12.8_A8_T1.js
index 9b995278da09f60b2361add7fc674a6d40c03484..cdcb23e929046f368a35382d27f871d67427a17c 100644
--- a/test/suite/ch12/12.8/S12.8_A8_T1.js
+++ b/test/suite/ch12/12.8/S12.8_A8_T1.js
@@ -7,7 +7,7 @@ es5id: 12.8_A8_T1
 description: >
     Checking if using "break Identifier" from within catch Block
     appears to be invalid
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/suite/ch12/12.8/S12.8_A8_T2.js b/test/suite/ch12/12.8/S12.8_A8_T2.js
index 946bef6072f3a4ca226b65ae15317e60e2eeeb6d..51d7f1f49a16541eaff8097911033bfa9ee9b5e4 100644
--- a/test/suite/ch12/12.8/S12.8_A8_T2.js
+++ b/test/suite/ch12/12.8/S12.8_A8_T2.js
@@ -7,7 +7,7 @@ es5id: 12.8_A8_T2
 description: >
     Checking if using "break Identifier" from within catch Block
     appears to be invalid
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 var x=0,y=0;
diff --git a/test/suite/ch12/12.9/S12.9_A1_T1.js b/test/suite/ch12/12.9/S12.9_A1_T1.js
index f4e191e38f13e906c78dcf581e9a5331d2c831b5..5738fa4c6a4be39b10ac8e6c11c998d2d3ce7f9d 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T1.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T1.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T10.js b/test/suite/ch12/12.9/S12.9_A1_T10.js
index fe67d24c7305884eee8b159b626a85bc91d54eab..b7bce0a7755288027ac9ceff99f6025f74bf96e0 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T10.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T10.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T2.js b/test/suite/ch12/12.9/S12.9_A1_T2.js
index c8348dd9df5d5fda9d65aef5bc6321f99ca11c8b..52fc7500c5785419c5fadc5e9399536c4fc4bab1 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T2.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T2.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T3.js b/test/suite/ch12/12.9/S12.9_A1_T3.js
index 353b902cf45a7ddd99a3e2220e89c2e2d721f928..db82a9aa29374db9640ef867929d43d3f9476068 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T3.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T3.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T4.js b/test/suite/ch12/12.9/S12.9_A1_T4.js
index a372d85418aa761e966d3a4df05e99b8e2d6c2e3..c26d347e336552052d645f995dee3734b247a4de 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T4.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T4.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T5.js b/test/suite/ch12/12.9/S12.9_A1_T5.js
index 473ea4efc831c6caa8f700205c16582085490fd5..12c8a617a099020512d5e3853de9d3c93b31c4ef 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T5.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T5.js
@@ -7,7 +7,7 @@ es5id: 12.9_A1_T5
 description: >
     Checking if execution of "return" with no function, placed into a
     Block, fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T6.js b/test/suite/ch12/12.9/S12.9_A1_T6.js
index 0438d5c46b8ec34dbddb3ef515462df7dc65d7d1..372d6a4b93db6f5c48afcb5ecec39f3924daf824 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T6.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T6.js
@@ -7,7 +7,7 @@ es5id: 12.9_A1_T6
 description: >
     Checking if execution of "return" with no function, placed into a
     loop, fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T7.js b/test/suite/ch12/12.9/S12.9_A1_T7.js
index e9f64c79d14d9cc92e4fe8099ff8fffe60fcc100..0a2d7d33a9b4a424261a71190bc02f048c5b74de 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T7.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T7.js
@@ -7,7 +7,7 @@ es5id: 12.9_A1_T7
 description: >
     Checking if execution of "return x" with no function, placed
     inside Block, fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T8.js b/test/suite/ch12/12.9/S12.9_A1_T8.js
index 15457787539627aeb37317a0e2bb7f12c2ae3b42..0433fabc2e7db7ae2f93ba59230a8992a38a6ccd 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T8.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T8.js
@@ -7,7 +7,7 @@ es5id: 12.9_A1_T8
 description: >
     Checking if execution of "return x" with no function, placed into
     a loop, fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch12/12.9/S12.9_A1_T9.js b/test/suite/ch12/12.9/S12.9_A1_T9.js
index ef3fa9c4422ba0fe292d8774a2987e1dbd9a8f6e..d6df82e8617db5dcaee043b02813d936b4447c7d 100644
--- a/test/suite/ch12/12.9/S12.9_A1_T9.js
+++ b/test/suite/ch12/12.9/S12.9_A1_T9.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch13/13.0/13.0_4-17gs.js b/test/suite/ch13/13.0/13.0_4-17gs.js
index fe927783c94da3100c4a9d9aebeb80bd4999b7ff..6cfee358d9243c0d3c61a8b2c6601027d7bdda9b 100644
--- a/test/suite/ch13/13.0/13.0_4-17gs.js
+++ b/test/suite/ch13/13.0/13.0_4-17gs.js
@@ -9,11 +9,8 @@ es5id: 13.0_4-17gs
 description: >
     Strict Mode - SourceElements is not evaluated as strict mode code
     when a Function constructor is contained in strict mode code
-negative: Test262Error
 flags: [onlyStrict]
-includes: [Test262Error.js]
 ---*/
 
 "use strict";
 var _13_0_4_17_fun = new Function('eval = 42;');
-throw new Test262Error();
diff --git a/test/suite/ch13/13.0/13.0_4-5gs.js b/test/suite/ch13/13.0/13.0_4-5gs.js
index b5d43182aab6d97ef5036a42f5e69de7bf21ca8c..49e32cfd7af6dabd2707799d78de67514cb9265c 100644
--- a/test/suite/ch13/13.0/13.0_4-5gs.js
+++ b/test/suite/ch13/13.0/13.0_4-5gs.js
@@ -9,7 +9,7 @@ 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: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch13/13.0/S13_A7_T3.js b/test/suite/ch13/13.0/S13_A7_T3.js
index cc00387e2124d4d8685d6a9ca8f8c4d0538b3f4c..315edd9470400223b1899bff818fb29daffeae84 100644
--- a/test/suite/ch13/13.0/S13_A7_T3.js
+++ b/test/suite/ch13/13.0/S13_A7_T3.js
@@ -5,7 +5,7 @@
 info: The FunctionBody must be SourceElements
 es5id: 13_A7_T3
 description: Checking if execution of "function __func(){\A\B\C}" fails
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 function __func(){\A\B\C};
diff --git a/test/suite/ch13/13.1/13.1-13gs.js b/test/suite/ch13/13.1/13.1-13gs.js
index 0c2f8eb7ed375bf4fb8c7cc9a3dc11aa27113af4..6d31f5266ede8c51c8b34153a8d8ab4ce68c9ec3 100644
--- a/test/suite/ch13/13.1/13.1-13gs.js
+++ b/test/suite/ch13/13.1/13.1-13gs.js
@@ -9,7 +9,7 @@ es5id: 13.1-13gs
 description: >
     StrictMode - SyntaxError is thrown if 'arguments' occurs as the
     Identifier of a FunctionDeclaration
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch13/13.1/13.1-1gs.js b/test/suite/ch13/13.1/13.1-1gs.js
index cfb1b8e67d880f49b80840e8886fe11ac8b01a14..17d9148cde16ea2635e12c948f859846a0983593 100644
--- a/test/suite/ch13/13.1/13.1-1gs.js
+++ b/test/suite/ch13/13.1/13.1-1gs.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - SyntaxError is thrown if the identifier 'eval'
     appears within a FormalParameterList of a strict mode
     FunctionDeclaration
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch13/13.1/13.1-4gs.js b/test/suite/ch13/13.1/13.1-4gs.js
index 1f97e1e09b70adde50fee78fdc1cd7583a93e2c0..e47d37f510325c7d51670aee1d09f358b79ca933 100644
--- a/test/suite/ch13/13.1/13.1-4gs.js
+++ b/test/suite/ch13/13.1/13.1-4gs.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - SyntaxError is thrown if the identifier 'arguments'
     appears within a FormalParameterList of a strict mode
     FunctionExpression
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch13/13.1/13.1-5gs.js b/test/suite/ch13/13.1/13.1-5gs.js
index 0bf5dbde20a93b727a3c8c8adfabc548142b66b4..d150dd37e5c668a1b49902b4c4c41b611b04e097 100644
--- a/test/suite/ch13/13.1/13.1-5gs.js
+++ b/test/suite/ch13/13.1/13.1-5gs.js
@@ -9,7 +9,7 @@ es5id: 13.1-5gs
 description: >
     Strict Mode - SyntaxError is thrown if a FunctionDeclaration has
     two identical parameters
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch13/13.1/13.1-8gs.js b/test/suite/ch13/13.1/13.1-8gs.js
index bb81b20d4b1b5be7ae3b88ab16ec073a2e2fbc74..2572d649c80c6b57f92cd359ad815c06471a9206 100644
--- a/test/suite/ch13/13.1/13.1-8gs.js
+++ b/test/suite/ch13/13.1/13.1-8gs.js
@@ -9,7 +9,7 @@ es5id: 13.1-8gs
 description: >
     Strict Mode - SyntaxError is thrown if a FunctionExpression has
     two identical parameters
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch13/13.2/13.2-19-b-3gs.js b/test/suite/ch13/13.2/13.2-19-b-3gs.js
index 7a124383439dd28ea23875546eb0cfcd29f2e243..156c150c80c62dfbb538e844eca9ba0100a85599 100644
--- a/test/suite/ch13/13.2/13.2-19-b-3gs.js
+++ b/test/suite/ch13/13.2/13.2-19-b-3gs.js
@@ -9,12 +9,10 @@ es5id: 13.2-19-b-3gs
 description: >
     StrictMode - error is thrown when assign a value to the 'caller'
     property of a function object
-negative: Test262Error
+negative: TypeError
 flags: [onlyStrict]
-includes: [Test262Error.js]
 ---*/
 
 "use strict";
-throw new Test262Error();
 function _13_2_19_b_3_gs() {}
 _13_2_19_b_3_gs.caller = 1;
diff --git a/test/suite/ch14/14.1/14.1-4gs.js b/test/suite/ch14/14.1/14.1-4gs.js
index 34a6bc1b67e87ec29562881b308af0ac6c1c6793..e9a439bbe611a306261aa7c543d16890d8c718ba 100644
--- a/test/suite/ch14/14.1/14.1-4gs.js
+++ b/test/suite/ch14/14.1/14.1-4gs.js
@@ -9,7 +9,7 @@ es5id: 14.1-4gs
 description: >
     StrictMode - a Use Strict Directive followed by a strict mode
     violation
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch14/14.1/14.1-5gs.js b/test/suite/ch14/14.1/14.1-5gs.js
index 2ac4ac9c1372083787abd82d4cd007facf2da7cc..92ce007eedc583cd4ca4368b08e37df7a9129d4a 100644
--- a/test/suite/ch14/14.1/14.1-5gs.js
+++ b/test/suite/ch14/14.1/14.1-5gs.js
@@ -9,7 +9,7 @@ es5id: 14.1-5gs
 description: >
     StrictMode - a Use Strict Directive embedded in a directive
     prologue followed by a strict mode violation
-negative: ^((?!NotEarlyError).)*$
+negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
diff --git a/test/suite/ch15/15.1/15.1.2/15.1.2.1/S15.1.2.1_A2_T2.js b/test/suite/ch15/15.1/15.1.2/15.1.2.1/S15.1.2.1_A2_T2.js
index 1338b1f1604a4cf63f2ca8983ab79e22fcc3692f..54716deafa3ed3d8959352f07ede57ad51dcf2d8 100644
--- a/test/suite/ch15/15.1/15.1.2/15.1.2.1/S15.1.2.1_A2_T2.js
+++ b/test/suite/ch15/15.1/15.1.2/15.1.2.1/S15.1.2.1_A2_T2.js
@@ -5,7 +5,7 @@
 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
-flags: [negative]
+negative: SyntaxError
 ---*/
 
 //CHECK#1
diff --git a/test/suite/ch15/15.1/S15.1_A1_T1.js b/test/suite/ch15/15.1/S15.1_A1_T1.js
index fa53b9b59330f55751d662bd2af0e3976de125a0..fc285a2fec44845d9017f53fe332bf7822c2628d 100644
--- a/test/suite/ch15/15.1/S15.1_A1_T1.js
+++ b/test/suite/ch15/15.1/S15.1_A1_T1.js
@@ -7,7 +7,7 @@ es5id: 15.1_A1_T1
 description: >
     It is not possible to use the global object as a constructor  with
     the new operator
-flags: [negative]
+negative: TypeError
 ---*/
 
 new this;
diff --git a/test/suite/ch15/15.1/S15.1_A1_T2.js b/test/suite/ch15/15.1/S15.1_A1_T2.js
index 353fc90c1239bacaee308ded846f37278edd48c4..e2bab6d97f4de80b378fe7a7b51e3092da727147 100644
--- a/test/suite/ch15/15.1/S15.1_A1_T2.js
+++ b/test/suite/ch15/15.1/S15.1_A1_T2.js
@@ -7,7 +7,7 @@ es5id: 15.1_A1_T2
 description: >
     It is not possible to use the global object as a constructor  with
     the new operator
-flags: [negative]
+negative: TypeError
 ---*/
 
 new this();
diff --git a/test/suite/ch15/15.1/S15.1_A2_T1.js b/test/suite/ch15/15.1/S15.1_A2_T1.js
index 1325d5638171e7d836a8f18648a37164108aed43..018ba752fc42080aa92676b48f8180d75b0dd6f1 100644
--- a/test/suite/ch15/15.1/S15.1_A2_T1.js
+++ b/test/suite/ch15/15.1/S15.1_A2_T1.js
@@ -5,7 +5,7 @@
 info: The global object does not have a [[Call]] property
 es5id: 15.1_A2_T1
 description: It is not possible to invoke the global object as a function
-flags: [negative]
+negative: TypeError
 ---*/
 
 this();
diff --git a/test/suite/ch15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-2.js b/test/suite/ch15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-2.js
index cc7b9301042058cbb617a31cdce89aa1f153844c..2794d04a1ce780a6115c6869e30bf5cf44e398e6 100644
--- a/test/suite/ch15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-2.js
+++ b/test/suite/ch15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-2.js
@@ -9,12 +9,13 @@ es5id: 15.11.4.4-8-2
 description: >
     Error.prototype.toString return empty string when 'name' is empty
     string and 'msg' is undefined
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        var errObj = new Error();
-        errObj.name = "";
-        return errObj.toString() === "";
-    }
-runTestCase(testcase);
+var errObj = new Error();
+errObj.name = "";
+if (errObj.name !== "") {
+    $ERROR("Expected errObj.name to be '', actually " + errObj.name);
+}
+if (errObj.toString() !== "") {
+    $ERROR("Expected errObj.toString() to be '', actually " + errObj.toString());
+}
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js
index ece9b230fbc4b13e2b66d62d516fe3663f7bb0f5..2fdda1531f9cee236e70802e3419cae2c6340b27 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js
@@ -6,16 +6,10 @@
 
 /*---
 es5id: 15.2.3.4-1-4
+info: >
+  ES5 requires a `TypeError` here, while ES6 requires `ToObject` (19.1.2.7, 19.1.2.8.1)
 description: Object.getOwnPropertyNames throws TypeError if 'O' is a boolean
-includes: [runTestCase.js]
+negative: TypeError
 ---*/
 
-function testcase() {
-        try {
-            Object.getOwnPropertyNames(true);
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
-runTestCase(testcase);
+Object.getOwnPropertyNames(true);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js
index 9dd7d265ad43ad488433664ffdf2b37003301bb5..74f66d60d7d2bd6428238d6a60b9a9d064101dfb 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js
@@ -6,16 +6,10 @@
 
 /*---
 es5id: 15.2.3.4-1-5
+info: >
+  ES5 requires a `TypeError` here, while ES6 requires `ToObject` (19.1.2.7, 19.1.2.8.1)
 description: Object.getOwnPropertyNames throws TypeError if 'O' is a string
-includes: [runTestCase.js]
+negative: TypeError
 ---*/
 
-function testcase() {
-        try {
-            Object.getOwnPropertyNames("abc");
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
-runTestCase(testcase);
+Object.getOwnPropertyNames("abc");
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js
index 96cf9c8b619f2da79cda045174f9ffb987826012..5d3f9748ef36fc325306c87128840a43bfb498c8 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js
@@ -6,20 +6,12 @@
 
 /*---
 es5id: 15.2.3.4-1
+info: >
+  ES5 requires a `TypeError` here, while ES6 requires `ToObject` (19.1.2.7, 19.1.2.8.1)
 description: >
     Object.getOwnPropertyNames throws TypeError if type of first param
     is not Object
-includes: [runTestCase.js]
+negative: TypeError
 ---*/
 
-function testcase() {
-    try {
-      Object.getOwnPropertyNames(0);
-    }
-    catch (e) {
-      if (e instanceof TypeError) {
-        return true;
-      }
-    }
- }
-runTestCase(testcase);
+Object.getOwnPropertyNames(0);
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A12.js b/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A12.js
index e88e23bc518becfd6bded3658e547faf359a22aa..f49b906bed978e4cf06f3a15d741c2bd0e54a91f 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A12.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A12.js
@@ -6,7 +6,7 @@ es5id: 15.2.4.3_A12
 description: >
     Let O be the result of calling ToObject passing the this value as
     the argument.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.toLocaleString.call(undefined);
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A13.js b/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A13.js
index c438ea539d3b1c803f98201899e9adecb05de783..682fa9994e08468ea1052882109932b7ea9381a1 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A13.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A13.js
@@ -6,7 +6,7 @@ es5id: 15.2.4.3_A13
 description: >
     Let O be the result of calling ToObject passing the this value as
     the argument.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.toLocaleString.call(null);
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A12.js b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A12.js
index e620e6da84488dd5caf03403fae8a3d7982216a0..24b24f66ee7e6fc14072f6fe528edfe8da8e67f3 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A12.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A12.js
@@ -7,7 +7,7 @@ info: >
     argument.
 es5id: 15.2.4.4_A12
 description: Checking Object.prototype.valueOf invoked by the 'call' property.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.valueOf.call(undefined);
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A13.js b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A13.js
index b60d60537d483644a895071321e031656d9f6314..05e6972092dfa8dac1dc0f4cd7b6b1e3ad05c1a4 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A13.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A13.js
@@ -7,7 +7,7 @@ info: >
     argument.
 es5id: 15.2.4.4_A13
 description: Checking Object.prototype.valueOf invoked by the 'call' property.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.valueOf.call(null);
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A14.js b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A14.js
index 1f1df5b7a2badfbcfd4ade566f3db55adbe0e88a..cdb953f084d1f4e2004ce4fc81bb77c0070d4ee9 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A14.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A14.js
@@ -7,7 +7,7 @@ info: >
     argument.
 es5id: 15.2.4.4_A14
 description: Checking Object.prototype.valueOf invoked by the 'call' property.
-flags: [negative]
+negative: TypeError
 ---*/
 
 (1,Object.prototype.valueOf)();
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A15.js b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A15.js
index b95ec31965eb89b5f5366bd7ab37f2ccd144c121..148e06fc4bea3608b2352e0ccdd1968499591795 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A15.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A15.js
@@ -7,7 +7,7 @@ info: >
     argument.
 es5id: 15.2.4.4_A15
 description: Checking Object.prototype.valueOf when called as a global function.
-flags: [negative]
+negative: TypeError
 ---*/
 
 var v = Object.prototype.valueOf;
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A12.js b/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A12.js
index a873a36cc726e169cc219822d1cb74f99efc22e7..6a97daba709480622e93008f775dae71154c75fc 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A12.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A12.js
@@ -6,7 +6,7 @@ es5id: 15.2.4.5_A12
 description: >
     Let O be the result of calling ToObject passing the this value as
     the argument.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.hasOwnProperty.call(undefined, 'foo');
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A13.js b/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A13.js
index a2264a9a91bd0b275e41fede6aedd44086f3d982..ea6df998e499f0b3b051090d37799eee2992d53b 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A13.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A13.js
@@ -6,7 +6,7 @@ es5id: 15.2.4.5_A13
 description: >
     Let O be the result of calling ToObject passing the this value as
     the argument.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.hasOwnProperty.call(null, 'foo');
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A12.js b/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A12.js
index ada5deb3b15b4a7a0c1a5b35658517b6e06f5365..8ca37a1aa8b086330e7bd66fda44fe2f4672ec2e 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A12.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A12.js
@@ -6,7 +6,7 @@ es5id: 15.2.4.6_A12
 description: >
     Let O be the result of calling ToObject passing the this value as
     the argument.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.isPrototypeOf.call(undefined, {});
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A13.js b/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A13.js
index f2fd45dd3aec6b2e9b0512c643ce1d2d22dc4ab0..720b469bef17edf3d17c993a733a68be174fefe9 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A13.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A13.js
@@ -6,7 +6,7 @@ es5id: 15.2.4.6_A13
 description: >
     Let O be the result of calling ToObject passing the this value as
     the argument.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.isPrototypeOf.call(null, {});
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A12.js b/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A12.js
index a7449b757db9499c49d1ee5a7db3aada6766eff8..7f109a78fc3bd28d3512b6ebcd21afefd0b8333d 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A12.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A12.js
@@ -6,7 +6,7 @@ es5id: 15.2.4.7_A12
 description: >
     Let O be the result of calling ToObject passing the this value as
     the argument.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.propertyIsEnumerable.call(undefined, 'foo');
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A13.js b/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A13.js
index 99177cb25d547a581fad5fc57963e174abb6507e..e5df558b53a8f9855da001c28ed65e9e45d2092e 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A13.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A13.js
@@ -6,7 +6,7 @@ es5id: 15.2.4.7_A13
 description: >
     Let O be the result of calling ToObject passing the this value as
     the argument.
-flags: [negative]
+negative: TypeError
 ---*/
 
 Object.prototype.propertyIsEnumerable.call(null, 'foo');
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5-2gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5-2gs.js
index f4895b2657d87add38b05738b7b80a4cd8a7f6aa..3bf8680c119ca4c0be386013fc9e6e375fbbef49 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5-2gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5-2gs.js
@@ -9,7 +9,7 @@ es5id: 15.3.5-2gs
 description: >
     StrictMode - error is thrown when reading the 'caller' property of
     a function object
-negative: ^((?!NotEarlyError).)*$
+negative: TypeError
 flags: [onlyStrict]
 ---*/
 
diff --git a/tools/packaging/test262.py b/tools/packaging/test262.py
index 55cb55add30904c39689a211c356b77d8ab7bb90..8e6fd0a1054e5391e6906280925408b1e3809cb2 100755
--- a/tools/packaging/test262.py
+++ b/tools/packaging/test262.py
@@ -148,25 +148,27 @@ class TestResult(object):
     if self.HasUnexpectedOutcome():
       if self.case.IsNegative():
         print "=== %s was expected to fail in %s, but didn't ===" % (name, mode)
+        print "--- expected error: %s ---\n" % self.case.GetNegative()
       else:
         if long_format:
           print "=== %s failed in %s ===" % (name, mode)
         else:
           print "%s in %s: " % (name, mode)
-        out = self.stdout.strip()
-        if len(out) > 0:
-          print "--- output ---"
-          print out
-        err = self.stderr.strip()
-        if len(err) > 0:
-          print "--- errors ---"
-          print err
-        if long_format:
-          print "==="
+      self.WriteOutput(sys.stdout)
+      if long_format:
+        print "==="
     elif self.case.IsNegative():
       print "%s failed in %s as expected" % (name, mode)
     else:
       print "%s passed in %s" % (name, mode)
+
+  def WriteOutput(self, target):
+    out = self.stdout.strip()
+    if len(out) > 0:
+       target.write("--- output --- \n %s" % out)
+    err = self.stderr.strip()
+    if len(err) > 0:
+       target.write("--- errors ---  \n %s" % err)
     
   def XmlAssemble(self, result):
     test_name = self.case.GetName()
@@ -205,12 +207,13 @@ class TestResult(object):
 
   def HasUnexpectedOutcome(self):
     if self.case.IsAsyncTest():		
-	return self.AsyncHasFailed() or self.HasFailed()
+       return self.AsyncHasFailed() or self.HasFailed()
     elif self.case.IsNegative():      
-       return not self.HasFailed()
+       return not (self.HasFailed() and self.case.NegativeMatch(self.stderr))
     else:      
        return self.HasFailed()
 
+
 class TestCase(object):
 
   def __init__(self, suite, name, full_path, strict_mode):
@@ -228,6 +231,12 @@ class TestCase(object):
     testRecord.pop("commentary", None)    # do not throw if missing
     self.testRecord = testRecord;
     
+  def NegativeMatch(self, stderr):
+    neg = re.compile(self.GetNegative())
+    return re.search(neg, stderr)
+
+  def GetNegative(self):
+    return self.testRecord['negative']
 
   def GetName(self):
     return path.join(*self.name)
@@ -549,17 +558,14 @@ class TestSuite(object):
     name = result.case.GetName()
     mode = result.case.GetMode()
     if result.HasUnexpectedOutcome():
-       if result.case.IsNegative():
+      if result.case.IsNegative():
           self.logf.write("=== %s was expected to fail in %s, but didn't === \n" % (name, mode))
-       else:
+          self.logf.write("--- expected error: %s ---\n" % result.case.GetNegative())
+          result.WriteOutput(self.logf)
+      else:
           self.logf.write("=== %s failed in %s === \n" % (name, mode))
-          out = result.stdout.strip()
-          if len(out) > 0:
-             self.logf.write("--- output --- \n %s" % out)
-          err = result.stderr.strip()
-          if len(err) > 0:
-             self.logf.write("--- errors ---  \n %s" % err)
-             self.logf.write("=== \n")
+          result.WriteOutput(self.logf)
+      self.logf.write("===\n")
     elif result.case.IsNegative():
        self.logf.write("%s failed in %s as expected \n" % (name, mode))
     else: