From 1f97345668236508d8148f28fece4f4a190a6543 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bargull?= <andre.bargull@gmail.com>
Date: Tue, 11 Aug 2015 17:43:21 +0200
Subject: [PATCH] Replace runTestCase with assert.throws [test/language/]

---
 test/language/arguments-object/10.5-1-s.js      | 12 +++---------
 test/language/arguments-object/10.5-7-b-1-s.js  | 12 +++---------
 test/language/arguments-object/10.6-13-b-1-s.js | 14 +++-----------
 test/language/arguments-object/10.6-13-c-1-s.js | 14 +++-----------
 test/language/arguments-object/10.6-14-b-4-s.js | 12 ++----------
 test/language/arguments-object/10.6-14-c-4-s.js | 12 ++----------
 test/language/directive-prologue/10.1.1-25-s.js | 12 +++---------
 test/language/directive-prologue/10.1.1-30-s.js | 12 +++---------
 .../future-reserved-words/7.6.1-17-s.js         | 13 +++----------
 .../future-reserved-words/7.6.1-18-s.js         | 14 ++++----------
 .../future-reserved-words/7.6.1-19-s.js         | 14 ++++----------
 .../future-reserved-words/7.6.1-20-s.js         | 14 ++++----------
 .../future-reserved-words/7.6.1-21-s.js         | 14 ++++----------
 .../future-reserved-words/7.6.1-22-s.js         | 14 ++++----------
 .../future-reserved-words/7.6.1-23-s.js         | 14 ++++----------
 .../future-reserved-words/7.6.1-24-s.js         | 14 ++++----------
 .../future-reserved-words/7.6.1-25-s.js         | 14 ++++----------
 .../future-reserved-words/7.6.1.2-1-s.js        | 14 ++++----------
 .../future-reserved-words/7.6.1.2-2-s.js        | 14 ++++----------
 .../future-reserved-words/7.6.1.2-3-s.js        | 14 ++++----------
 .../future-reserved-words/7.6.1.2-4-s.js        | 14 ++++----------
 .../future-reserved-words/7.6.1.2-5-s.js        | 14 ++++----------
 .../future-reserved-words/7.6.1.2-6-s.js        | 14 ++++----------
 .../future-reserved-words/7.6.1.2-7-s.js        | 14 ++++----------
 .../future-reserved-words/7.6.1.2-8-s.js        | 14 ++++----------
 .../future-reserved-words/7.6.1.2-9-s.js        | 14 ++++----------
 test/language/line-terminators/7.3-10.js        | 14 ++++----------
 test/language/line-terminators/7.3-3.js         | 14 ++++----------
 test/language/line-terminators/7.3-4.js         | 14 ++++----------
 test/language/line-terminators/7.3-7.js         | 14 ++++----------
 test/language/line-terminators/7.3-8.js         | 14 ++++----------
 test/language/line-terminators/7.3-9.js         | 14 ++++----------
 test/language/literals/regexp/7.8.5-1.js        | 14 ++++----------
 test/language/literals/string/7.8.4-1-s.js      | 17 ++++-------------
 test/language/literals/string/7.8.4-10-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-11-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-12-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-13-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-14-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-15-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-16-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-17-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-18-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-19-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-2-s.js      | 17 ++++-------------
 test/language/literals/string/7.8.4-20-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-21-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-22-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-23-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-24-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-25-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-26-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-27-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-28-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-29-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-3-s.js      | 17 ++++-------------
 test/language/literals/string/7.8.4-30-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-31-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-32-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-33-s.js     | 17 ++++-------------
 test/language/literals/string/7.8.4-4-s.js      | 17 ++++-------------
 test/language/literals/string/7.8.4-5-s.js      | 17 ++++-------------
 test/language/literals/string/7.8.4-6-s.js      | 17 ++++-------------
 test/language/literals/string/7.8.4-7-s.js      | 17 ++++-------------
 test/language/literals/string/7.8.4-8-s.js      | 17 ++++-------------
 test/language/literals/string/7.8.4-9-s.js      | 17 ++++-------------
 test/language/types/reference/8.7.2-1-s.js      | 12 +++---------
 test/language/types/reference/8.7.2-3-s.js      | 12 ++----------
 test/language/types/reference/8.7.2-4-s.js      | 12 ++----------
 test/language/types/reference/8.7.2-5-s.js      | 12 ++----------
 70 files changed, 262 insertions(+), 796 deletions(-)

diff --git a/test/language/arguments-object/10.5-1-s.js b/test/language/arguments-object/10.5-1-s.js
index bd88ae9f32..7123cdbed6 100644
--- a/test/language/arguments-object/10.5-1-s.js
+++ b/test/language/arguments-object/10.5-1-s.js
@@ -5,17 +5,11 @@
 es5id: 10.5-1-s
 description: Strict Mode - arguments object is immutable
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
+
+assert.throws(SyntaxError, function() {
             (function fun() {
                 eval("arguments = 10");
             })(30);
-            return false;
-        } catch (e) {
-            return (e instanceof SyntaxError);
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/arguments-object/10.5-7-b-1-s.js b/test/language/arguments-object/10.5-7-b-1-s.js
index 48da093b19..e02db4dd87 100644
--- a/test/language/arguments-object/10.5-7-b-1-s.js
+++ b/test/language/arguments-object/10.5-7-b-1-s.js
@@ -5,15 +5,9 @@
 es5id: 10.5-7-b-1-s
 description: Strict Mode - arguments object is immutable in eval'ed functions
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
+
+assert.throws(SyntaxError, function() {
             eval("(function _10_5_7_b_1_fun() { arguments = 10;} ());");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/arguments-object/10.6-13-b-1-s.js b/test/language/arguments-object/10.6-13-b-1-s.js
index b590b2b1ff..efa479cf3f 100644
--- a/test/language/arguments-object/10.6-13-b-1-s.js
+++ b/test/language/arguments-object/10.6-13-b-1-s.js
@@ -7,17 +7,9 @@ description: >
     Accessing caller property of Arguments object throws TypeError in
     strict mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-  try 
-  {
+
+assert.throws(TypeError, function() {
     arguments.caller;
-  }
-  catch (e) {
-    if(e instanceof TypeError)
-      return true;
-  }
- }
-runTestCase(testcase);
+});
diff --git a/test/language/arguments-object/10.6-13-c-1-s.js b/test/language/arguments-object/10.6-13-c-1-s.js
index 88c3187c62..aa4b245adb 100644
--- a/test/language/arguments-object/10.6-13-c-1-s.js
+++ b/test/language/arguments-object/10.6-13-c-1-s.js
@@ -7,17 +7,9 @@ description: >
     Accessing callee property of Arguments object throws TypeError in
     strict mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-  try 
-  {
+
+assert.throws(TypeError, function() {
     arguments.callee;
-    return false;
-  }
-  catch (e) {
-    return (e instanceof TypeError);
-  }
- }
-runTestCase(testcase);
+});
diff --git a/test/language/arguments-object/10.6-14-b-4-s.js b/test/language/arguments-object/10.6-14-b-4-s.js
index bc0da52882..2ac9023bb9 100644
--- a/test/language/arguments-object/10.6-14-b-4-s.js
+++ b/test/language/arguments-object/10.6-14-b-4-s.js
@@ -7,19 +7,11 @@ description: >
     Strict Mode - TypeError is thrown when accessing the [[Set]]
     attribute in 'caller' under strict mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var argObj = function () {
             return arguments;
         } ();
-
-        try {
+assert.throws(TypeError, function() {
             argObj.caller = {};
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/arguments-object/10.6-14-c-4-s.js b/test/language/arguments-object/10.6-14-c-4-s.js
index 4d7c42220e..fbd4b15501 100644
--- a/test/language/arguments-object/10.6-14-c-4-s.js
+++ b/test/language/arguments-object/10.6-14-c-4-s.js
@@ -7,19 +7,11 @@ description: >
     Strict Mode - TypeError is thrown when accessing the [[Set]]
     attribute in 'callee' under strict mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var argObj = function () {
             return arguments;
         } ();
-
-        try {
+assert.throws(TypeError, function() {
             argObj.callee = {};
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/directive-prologue/10.1.1-25-s.js b/test/language/directive-prologue/10.1.1-25-s.js
index 85d0ea15e3..e726cd7f81 100644
--- a/test/language/directive-prologue/10.1.1-25-s.js
+++ b/test/language/directive-prologue/10.1.1-25-s.js
@@ -8,11 +8,10 @@ description: >
     contains Use Strict Directive which appears at the start of the
     block(getter)
 flags: [noStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
+
+assert.throws(SyntaxError, function() {
             var obj = {};
             Object.defineProperty(obj, "accProperty", {
                 get: function () {
@@ -22,9 +21,4 @@ function testcase() {
                 }
             });
             var temp = obj.accProperty === 11;
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/directive-prologue/10.1.1-30-s.js b/test/language/directive-prologue/10.1.1-30-s.js
index ae39d87cce..cd5b01f0a2 100644
--- a/test/language/directive-prologue/10.1.1-30-s.js
+++ b/test/language/directive-prologue/10.1.1-30-s.js
@@ -8,16 +8,10 @@ description: >
     contains Use Strict Directive which appears at the start of the
     block
 flags: [noStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
+
+assert.throws(SyntaxError, function() {
             var funObj = new Function("a", "'use strict'; eval('public = 1;');");
             funObj();
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/future-reserved-words/7.6.1-17-s.js b/test/language/future-reserved-words/7.6.1-17-s.js
index c4c6a0c5bb..114a6beca9 100644
--- a/test/language/future-reserved-words/7.6.1-17-s.js
+++ b/test/language/future-reserved-words/7.6.1-17-s.js
@@ -7,16 +7,9 @@ description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: implements (implements)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
 
-        try {
-            eval("var \u0069mplements = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+assert.throws(SyntaxError, function() {
+            eval("var \u0069mplements = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1-18-s.js b/test/language/future-reserved-words/7.6.1-18-s.js
index 1b9d7b8747..0512a03ad9 100644
--- a/test/language/future-reserved-words/7.6.1-18-s.js
+++ b/test/language/future-reserved-words/7.6.1-18-s.js
@@ -7,15 +7,9 @@ description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: l\u0065t (let)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {        
-        try {
-            eval("var l\u0065t = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+        
+assert.throws(SyntaxError, function() {
+            eval("var l\u0065t = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1-19-s.js b/test/language/future-reserved-words/7.6.1-19-s.js
index 7a93868842..c3c33f5503 100644
--- a/test/language/future-reserved-words/7.6.1-19-s.js
+++ b/test/language/future-reserved-words/7.6.1-19-s.js
@@ -7,15 +7,9 @@ description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: privat\u0065 (private)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var privat\u0065 = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var privat\u0065 = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1-20-s.js b/test/language/future-reserved-words/7.6.1-20-s.js
index 355293f23c..e0b1db3653 100644
--- a/test/language/future-reserved-words/7.6.1-20-s.js
+++ b/test/language/future-reserved-words/7.6.1-20-s.js
@@ -7,15 +7,9 @@ description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: \u0070\u0075\u0062\u006c\u0069\u0063 (public)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var \u0070\u0075\u0062\u006c\u0069\u0063 = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var \u0070\u0075\u0062\u006c\u0069\u0063 = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1-21-s.js b/test/language/future-reserved-words/7.6.1-21-s.js
index 3052cda095..c37c35c1a0 100644
--- a/test/language/future-reserved-words/7.6.1-21-s.js
+++ b/test/language/future-reserved-words/7.6.1-21-s.js
@@ -7,15 +7,9 @@ description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: \u0079ield (yield)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var \u0079ield = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var \u0079ield = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1-22-s.js b/test/language/future-reserved-words/7.6.1-22-s.js
index 290f867789..0bca6b3f5d 100644
--- a/test/language/future-reserved-words/7.6.1-22-s.js
+++ b/test/language/future-reserved-words/7.6.1-22-s.js
@@ -7,15 +7,9 @@ description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: inte\u0072face (interface)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var inte\u0072face = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var inte\u0072face = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1-23-s.js b/test/language/future-reserved-words/7.6.1-23-s.js
index 7514efbf5b..72ecb0c481 100644
--- a/test/language/future-reserved-words/7.6.1-23-s.js
+++ b/test/language/future-reserved-words/7.6.1-23-s.js
@@ -7,15 +7,9 @@ description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: packag\u0065 (package)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var packag\u0065 = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var packag\u0065 = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1-24-s.js b/test/language/future-reserved-words/7.6.1-24-s.js
index df90c3f272..d422e14b7b 100644
--- a/test/language/future-reserved-words/7.6.1-24-s.js
+++ b/test/language/future-reserved-words/7.6.1-24-s.js
@@ -8,15 +8,9 @@ description: >
     Names in UTF8:
     \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 (protected)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1-25-s.js b/test/language/future-reserved-words/7.6.1-25-s.js
index 9003e3aec8..47efc0d07c 100644
--- a/test/language/future-reserved-words/7.6.1-25-s.js
+++ b/test/language/future-reserved-words/7.6.1-25-s.js
@@ -7,15 +7,9 @@ description: >
     7.6 - SyntaxError expected: reserved words used as Identifier
     Names in UTF8: \u0073\u0074\u0061\u0074\u0069\u0063 (static)
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var \u0073\u0074\u0061\u0074\u0069\u0063 = 123;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var \u0073\u0074\u0061\u0074\u0069\u0063 = 123;");
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-1-s.js b/test/language/future-reserved-words/7.6.1.2-1-s.js
index d5018237d3..85f9b58b5d 100644
--- a/test/language/future-reserved-words/7.6.1.2-1-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-1-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'implements' occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var implements = 1;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var implements = 1;");
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-2-s.js b/test/language/future-reserved-words/7.6.1.2-2-s.js
index eacb04891c..0c2ac187ac 100644
--- a/test/language/future-reserved-words/7.6.1.2-2-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-2-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord 'let'
     occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var let = 1;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var let = 1;");
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-3-s.js b/test/language/future-reserved-words/7.6.1.2-3-s.js
index eccde41735..27c338641a 100644
--- a/test/language/future-reserved-words/7.6.1.2-3-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-3-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'private' occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var private = 1;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var private = 1;");
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-4-s.js b/test/language/future-reserved-words/7.6.1.2-4-s.js
index 4cd3556e80..b215af858c 100644
--- a/test/language/future-reserved-words/7.6.1.2-4-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-4-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'public' occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var public = 1;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var public = 1;");
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-5-s.js b/test/language/future-reserved-words/7.6.1.2-5-s.js
index 5e7b0eea94..aa2d106b46 100644
--- a/test/language/future-reserved-words/7.6.1.2-5-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-5-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'yield' occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var yield = 1;")
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var yield = 1;")
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-6-s.js b/test/language/future-reserved-words/7.6.1.2-6-s.js
index ed8a7affa4..01c84246e0 100644
--- a/test/language/future-reserved-words/7.6.1.2-6-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-6-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'interface' occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var interface = 1;")
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var interface = 1;")
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-7-s.js b/test/language/future-reserved-words/7.6.1.2-7-s.js
index 6b3c4b9817..f074d35420 100644
--- a/test/language/future-reserved-words/7.6.1.2-7-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-7-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'package' occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var package = 1;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var package = 1;");
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-8-s.js b/test/language/future-reserved-words/7.6.1.2-8-s.js
index fdc92ecb68..6e08bd214a 100644
--- a/test/language/future-reserved-words/7.6.1.2-8-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-8-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'protected' occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var protected = 1;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var protected = 1;");
+});
diff --git a/test/language/future-reserved-words/7.6.1.2-9-s.js b/test/language/future-reserved-words/7.6.1.2-9-s.js
index 4fe80505bb..0354bd57d8 100644
--- a/test/language/future-reserved-words/7.6.1.2-9-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-9-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - SyntaxError is thrown when FutureReservedWord
     'static' occurs in strict mode code
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var static = 1;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var static = 1;");
+});
diff --git a/test/language/line-terminators/7.3-10.js b/test/language/line-terminators/7.3-10.js
index d70a321947..91ed519db9 100644
--- a/test/language/line-terminators/7.3-10.js
+++ b/test/language/line-terminators/7.3-10.js
@@ -6,15 +6,9 @@ es5id: 7.3-10
 description: >
     7.3 - ES5 recognizes the character <PS> (\u2029) as a
     NonEscapeCharacter
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var prop = \\u2029;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var prop = \\u2029;");
+});
diff --git a/test/language/line-terminators/7.3-3.js b/test/language/line-terminators/7.3-3.js
index ff7bd8cb6a..1e176b8580 100644
--- a/test/language/line-terminators/7.3-3.js
+++ b/test/language/line-terminators/7.3-3.js
@@ -6,15 +6,9 @@ es5id: 7.3-3
 description: >
     7.3 - ES5 recognizes the character <LS> (\u2028) as terminating
     SingleLineComments
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("//Single Line Comments\u2028 var =;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("//Single Line Comments\u2028 var =;");
+});
diff --git a/test/language/line-terminators/7.3-4.js b/test/language/line-terminators/7.3-4.js
index 6450c77ad5..b882828e56 100644
--- a/test/language/line-terminators/7.3-4.js
+++ b/test/language/line-terminators/7.3-4.js
@@ -6,15 +6,9 @@ es5id: 7.3-4
 description: >
     7.3 - ES5 recognizes the character <PS> (\u2029) as terminating
     SingleLineComments
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("//Single Line Comments\u2029 var =;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("//Single Line Comments\u2029 var =;");
+});
diff --git a/test/language/line-terminators/7.3-7.js b/test/language/line-terminators/7.3-7.js
index 3a1a65a590..ceff108155 100644
--- a/test/language/line-terminators/7.3-7.js
+++ b/test/language/line-terminators/7.3-7.js
@@ -6,15 +6,9 @@ es5id: 7.3-7
 description: >
     7.3 - ES5 recognizes the character <LS> (\u2028) as terminating
     regular expression literals
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var regExp =  /[\u2028]/");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var regExp =  /[\u2028]/");
+});
diff --git a/test/language/line-terminators/7.3-8.js b/test/language/line-terminators/7.3-8.js
index 28ae25916b..2d1160e70f 100644
--- a/test/language/line-terminators/7.3-8.js
+++ b/test/language/line-terminators/7.3-8.js
@@ -6,15 +6,9 @@ es5id: 7.3-8
 description: >
     7.3 - ES5 recognizes the character <PS> (\u2029) as terminating
     regular expression literals
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var regExp =  /[\u2029]/");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var regExp =  /[\u2029]/");
+});
diff --git a/test/language/line-terminators/7.3-9.js b/test/language/line-terminators/7.3-9.js
index 49a55382c8..55645b1fe2 100644
--- a/test/language/line-terminators/7.3-9.js
+++ b/test/language/line-terminators/7.3-9.js
@@ -6,15 +6,9 @@ es5id: 7.3-9
 description: >
     7.3 - ES5 recognizes the character <LS> (\u2028) as a
     NonEscapeCharacter
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var prop = \\u2028;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var prop = \\u2028;");
+});
diff --git a/test/language/literals/regexp/7.8.5-1.js b/test/language/literals/regexp/7.8.5-1.js
index 78ed6df684..5e37755d82 100644
--- a/test/language/literals/regexp/7.8.5-1.js
+++ b/test/language/literals/regexp/7.8.5-1.js
@@ -7,15 +7,9 @@ description: >
     Literal RegExp Objects - SyntaxError exception is thrown if the
     RegularExpressionNonTerminator position of a
     RegularExpressionBackslashSequence is a LineTerminator.
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
-            eval("var regExp = /\\\rn/;");
-            return false;
-        } catch (e) {
-            return e instanceof SyntaxError;
-        }
-    }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+            eval("var regExp = /\\\rn/;");
+});
diff --git a/test/language/literals/string/7.8.4-1-s.js b/test/language/literals/string/7.8.4-1-s.js
index 27ce14ca70..b28c833069 100644
--- a/test/language/literals/string/7.8.4-1-s.js
+++ b/test/language/literals/string/7.8.4-1-s.js
@@ -6,18 +6,9 @@ es5id: 7.8.4-1-s
 description: >
     A directive preceeding an 'use strict' directive may not contain
     an OctalEscapeSequence
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval(' "asterisk: \\052" /* octal escape sequences forbidden in strict mode*/ ; "use strict";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval(' "asterisk: \\052" /* octal escape sequences forbidden in strict mode*/ ; "use strict";');
+});
diff --git a/test/language/literals/string/7.8.4-10-s.js b/test/language/literals/string/7.8.4-10-s.js
index b794457f2a..3017105e1f 100644
--- a/test/language/literals/string/7.8.4-10-s.js
+++ b/test/language/literals/string/7.8.4-10-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-10-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = " \\10 ";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = " \\10 ";');
+});
diff --git a/test/language/literals/string/7.8.4-11-s.js b/test/language/literals/string/7.8.4-11-s.js
index 2d9b2762d4..5951af19ae 100644
--- a/test/language/literals/string/7.8.4-11-s.js
+++ b/test/language/literals/string/7.8.4-11-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-11-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\16";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\16";');
+});
diff --git a/test/language/literals/string/7.8.4-12-s.js b/test/language/literals/string/7.8.4-12-s.js
index 39bb3ad9e4..f61136a835 100644
--- a/test/language/literals/string/7.8.4-12-s.js
+++ b/test/language/literals/string/7.8.4-12-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-12-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\17";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\17";');
+});
diff --git a/test/language/literals/string/7.8.4-13-s.js b/test/language/literals/string/7.8.4-13-s.js
index 828c061ab4..8b564b1bfa 100644
--- a/test/language/literals/string/7.8.4-13-s.js
+++ b/test/language/literals/string/7.8.4-13-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-13-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\30";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\30";');
+});
diff --git a/test/language/literals/string/7.8.4-14-s.js b/test/language/literals/string/7.8.4-14-s.js
index 575d1f12d5..5cc403611b 100644
--- a/test/language/literals/string/7.8.4-14-s.js
+++ b/test/language/literals/string/7.8.4-14-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-14-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\31";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\31";');
+});
diff --git a/test/language/literals/string/7.8.4-15-s.js b/test/language/literals/string/7.8.4-15-s.js
index 129fb9d1b9..ed0bd5971b 100644
--- a/test/language/literals/string/7.8.4-15-s.js
+++ b/test/language/literals/string/7.8.4-15-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-15-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\37";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\37";');
+});
diff --git a/test/language/literals/string/7.8.4-16-s.js b/test/language/literals/string/7.8.4-16-s.js
index e83d7a05d0..8f12c52335 100644
--- a/test/language/literals/string/7.8.4-16-s.js
+++ b/test/language/literals/string/7.8.4-16-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-16-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\400";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\400";');
+});
diff --git a/test/language/literals/string/7.8.4-17-s.js b/test/language/literals/string/7.8.4-17-s.js
index 9876a5d1ce..6941de1e85 100644
--- a/test/language/literals/string/7.8.4-17-s.js
+++ b/test/language/literals/string/7.8.4-17-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-17-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\411";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\411";');
+});
diff --git a/test/language/literals/string/7.8.4-18-s.js b/test/language/literals/string/7.8.4-18-s.js
index ebd8582cda..274ab6874b 100644
--- a/test/language/literals/string/7.8.4-18-s.js
+++ b/test/language/literals/string/7.8.4-18-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-18-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\43a";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\43a";');
+});
diff --git a/test/language/literals/string/7.8.4-19-s.js b/test/language/literals/string/7.8.4-19-s.js
index afc2316c27..d2ccf58360 100644
--- a/test/language/literals/string/7.8.4-19-s.js
+++ b/test/language/literals/string/7.8.4-19-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-19-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\463";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\463";');
+});
diff --git a/test/language/literals/string/7.8.4-2-s.js b/test/language/literals/string/7.8.4-2-s.js
index 835ca46bd2..6c20f94641 100644
--- a/test/language/literals/string/7.8.4-2-s.js
+++ b/test/language/literals/string/7.8.4-2-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-2-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\1";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\1";');
+});
diff --git a/test/language/literals/string/7.8.4-20-s.js b/test/language/literals/string/7.8.4-20-s.js
index ad5ac5fe56..1294acb063 100644
--- a/test/language/literals/string/7.8.4-20-s.js
+++ b/test/language/literals/string/7.8.4-20-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-20-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\474";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\474";');
+});
diff --git a/test/language/literals/string/7.8.4-21-s.js b/test/language/literals/string/7.8.4-21-s.js
index 8a69f30c53..49ba276d90 100644
--- a/test/language/literals/string/7.8.4-21-s.js
+++ b/test/language/literals/string/7.8.4-21-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-21-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\77";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\77";');
+});
diff --git a/test/language/literals/string/7.8.4-22-s.js b/test/language/literals/string/7.8.4-22-s.js
index de4bff9c53..4bba3fa449 100644
--- a/test/language/literals/string/7.8.4-22-s.js
+++ b/test/language/literals/string/7.8.4-22-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-22-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\777";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\777";');
+});
diff --git a/test/language/literals/string/7.8.4-23-s.js b/test/language/literals/string/7.8.4-23-s.js
index c083385203..56ede23c3a 100644
--- a/test/language/literals/string/7.8.4-23-s.js
+++ b/test/language/literals/string/7.8.4-23-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-23-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\000";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\000";');
+});
diff --git a/test/language/literals/string/7.8.4-24-s.js b/test/language/literals/string/7.8.4-24-s.js
index adfd4d5744..401c59d9db 100644
--- a/test/language/literals/string/7.8.4-24-s.js
+++ b/test/language/literals/string/7.8.4-24-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-24-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\001";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\001";');
+});
diff --git a/test/language/literals/string/7.8.4-25-s.js b/test/language/literals/string/7.8.4-25-s.js
index c8f398569c..c6bc83cffc 100644
--- a/test/language/literals/string/7.8.4-25-s.js
+++ b/test/language/literals/string/7.8.4-25-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-25-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\106";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\106";');
+});
diff --git a/test/language/literals/string/7.8.4-26-s.js b/test/language/literals/string/7.8.4-26-s.js
index 9299663fb6..a350166d7a 100644
--- a/test/language/literals/string/7.8.4-26-s.js
+++ b/test/language/literals/string/7.8.4-26-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-26-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\207";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\207";');
+});
diff --git a/test/language/literals/string/7.8.4-27-s.js b/test/language/literals/string/7.8.4-27-s.js
index ff8ab93d8d..9a1c6ad828 100644
--- a/test/language/literals/string/7.8.4-27-s.js
+++ b/test/language/literals/string/7.8.4-27-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-27-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\377";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\377";');
+});
diff --git a/test/language/literals/string/7.8.4-28-s.js b/test/language/literals/string/7.8.4-28-s.js
index 1a1175ece7..c0729ad573 100644
--- a/test/language/literals/string/7.8.4-28-s.js
+++ b/test/language/literals/string/7.8.4-28-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-28-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\376";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\376";');
+});
diff --git a/test/language/literals/string/7.8.4-29-s.js b/test/language/literals/string/7.8.4-29-s.js
index 1814443ef8..e0ef1906ac 100644
--- a/test/language/literals/string/7.8.4-29-s.js
+++ b/test/language/literals/string/7.8.4-29-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-29-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\3760";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
-}
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\3760";');
+});
diff --git a/test/language/literals/string/7.8.4-3-s.js b/test/language/literals/string/7.8.4-3-s.js
index 0b8906e0ae..7c37c0e242 100644
--- a/test/language/literals/string/7.8.4-3-s.js
+++ b/test/language/literals/string/7.8.4-3-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-3-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "a\\4";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "a\\4";');
+});
diff --git a/test/language/literals/string/7.8.4-30-s.js b/test/language/literals/string/7.8.4-30-s.js
index 6c8069c3e5..3d9c1debba 100644
--- a/test/language/literals/string/7.8.4-30-s.js
+++ b/test/language/literals/string/7.8.4-30-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-30-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\' + '1";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\' + '1";');
+});
diff --git a/test/language/literals/string/7.8.4-31-s.js b/test/language/literals/string/7.8.4-31-s.js
index 6dcd4a2917..f4c3a2fc23 100644
--- a/test/language/literals/string/7.8.4-31-s.js
+++ b/test/language/literals/string/7.8.4-31-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-31-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\" + "1";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\" + "1";');
+});
diff --git a/test/language/literals/string/7.8.4-32-s.js b/test/language/literals/string/7.8.4-32-s.js
index 7835690bd5..763452a640 100644
--- a/test/language/literals/string/7.8.4-32-s.js
+++ b/test/language/literals/string/7.8.4-32-s.js
@@ -7,18 +7,9 @@ description: >
     Two OctalEscapeSequences in a String are not allowed in a String
     under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\1\\1";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\1\\1";');
+});
diff --git a/test/language/literals/string/7.8.4-33-s.js b/test/language/literals/string/7.8.4-33-s.js
index d7c4ab29e1..dca45c7643 100644
--- a/test/language/literals/string/7.8.4-33-s.js
+++ b/test/language/literals/string/7.8.4-33-s.js
@@ -7,18 +7,9 @@ description: >
     Three OctalEscapeSequences in a String are not allowed in a String
     under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\1\\2\\7";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\1\\2\\7";');
+});
diff --git a/test/language/literals/string/7.8.4-4-s.js b/test/language/literals/string/7.8.4-4-s.js
index 3286cdc609..f5e6a074d4 100644
--- a/test/language/literals/string/7.8.4-4-s.js
+++ b/test/language/literals/string/7.8.4-4-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-4-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "z\\7";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "z\\7";');
+});
diff --git a/test/language/literals/string/7.8.4-5-s.js b/test/language/literals/string/7.8.4-5-s.js
index 5fe162f90b..1461207647 100644
--- a/test/language/literals/string/7.8.4-5-s.js
+++ b/test/language/literals/string/7.8.4-5-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-5-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\00a";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\00a";');
+});
diff --git a/test/language/literals/string/7.8.4-6-s.js b/test/language/literals/string/7.8.4-6-s.js
index a0c59b147c..0aafa302b8 100644
--- a/test/language/literals/string/7.8.4-6-s.js
+++ b/test/language/literals/string/7.8.4-6-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-6-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\01z";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\01z";');
+});
diff --git a/test/language/literals/string/7.8.4-7-s.js b/test/language/literals/string/7.8.4-7-s.js
index 31367bb44c..19ddade403 100644
--- a/test/language/literals/string/7.8.4-7-s.js
+++ b/test/language/literals/string/7.8.4-7-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-7-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "a\\03z";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "a\\03z";');
+});
diff --git a/test/language/literals/string/7.8.4-8-s.js b/test/language/literals/string/7.8.4-8-s.js
index aee66238a5..c1b0ce4e1f 100644
--- a/test/language/literals/string/7.8.4-8-s.js
+++ b/test/language/literals/string/7.8.4-8-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-8-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = " \\06";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = " \\06";');
+});
diff --git a/test/language/literals/string/7.8.4-9-s.js b/test/language/literals/string/7.8.4-9-s.js
index 3697a5f4de..6c491d0116 100644
--- a/test/language/literals/string/7.8.4-9-s.js
+++ b/test/language/literals/string/7.8.4-9-s.js
@@ -5,18 +5,9 @@
 es5id: 7.8.4-9-s
 description: An OctalEscapeSequence is not allowed in a String under Strict Mode
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase()
-{
-  try 
-  {
-    eval('var x = "\\07 ";');
-    return false;
-  }
-  catch (e) {
-    return (e instanceof SyntaxError);
-  }
- }
-runTestCase(testcase);
+
+assert.throws(SyntaxError, function() {
+    eval('var x = "\\07 ";');
+});
diff --git a/test/language/types/reference/8.7.2-1-s.js b/test/language/types/reference/8.7.2-1-s.js
index d9d2901081..702e61b1df 100644
--- a/test/language/types/reference/8.7.2-1-s.js
+++ b/test/language/types/reference/8.7.2-1-s.js
@@ -7,15 +7,9 @@ description: >
     Strict Mode - ReferenceError is thrown if LeftHandSide evaluates
     to an unresolvable Reference
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-        try {
+
+assert.throws(ReferenceError, function() {
             eval("_8_7_2_1 = 11;");
-            return false;
-        } catch (e) {
-            return e instanceof ReferenceError;
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/types/reference/8.7.2-3-s.js b/test/language/types/reference/8.7.2-3-s.js
index c6471b43f1..cee92c58b1 100644
--- a/test/language/types/reference/8.7.2-3-s.js
+++ b/test/language/types/reference/8.7.2-3-s.js
@@ -7,20 +7,12 @@ description: >
     Strict Mode - TypeError is thrown if LeftHandSide is a reference
     to a non-writable data property
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var _8_7_2_3 = {};
         Object.defineProperty(_8_7_2_3, "b", {
             writable: false
         });
-
-        try {
+assert.throws(TypeError, function() {
             _8_7_2_3.b = 11;
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/types/reference/8.7.2-4-s.js b/test/language/types/reference/8.7.2-4-s.js
index 899dcbf3fa..4a33f5543c 100644
--- a/test/language/types/reference/8.7.2-4-s.js
+++ b/test/language/types/reference/8.7.2-4-s.js
@@ -7,21 +7,13 @@ description: >
     Strict Mode - TypeError is thrown if LeftHandSide is a reference
     to an accessor property with no setter
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var _8_7_2_4 = {};
         var _8_7_2_4_bValue = 1;
         Object.defineProperty(_8_7_2_4, "b", {
             get: function () { return _8_7_2_4_bValue; }
         });
-
-        try {
+assert.throws(TypeError, function() {
             _8_7_2_4.b = 11;
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
-runTestCase(testcase);
+});
diff --git a/test/language/types/reference/8.7.2-5-s.js b/test/language/types/reference/8.7.2-5-s.js
index f5dc14a5bf..f7d41a4567 100644
--- a/test/language/types/reference/8.7.2-5-s.js
+++ b/test/language/types/reference/8.7.2-5-s.js
@@ -7,18 +7,10 @@ description: >
     Strict Mode - TypeError is thrown if LeftHandSide is a reference
     to a non-existent property of an non-extensible object
 flags: [onlyStrict]
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var _8_7_2_5 = {};
         Object.preventExtensions(_8_7_2_5);
-
-        try {
+assert.throws(TypeError, function() {
             _8_7_2_5.b = 11;
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
-runTestCase(testcase);
+});
-- 
GitLab