diff --git a/test/language/arguments-object/10.5-1-s.js b/test/language/arguments-object/10.5-1-s.js
index bd88ae9f32733325b955567a9f3d5eba882565a2..7123cdbed664fa31076d13dc489073851f789ec0 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 48da093b19c47132a94894cc2d289940d0f3905a..e02db4dd87fe28423e02233eb4a165c53005af55 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 b590b2b1ff1266eb7c433471ee78265a0f973391..efa479cf3f7223915e583e01df0ec271eefb7ba5 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 88c3187c629d99b1fadf3ad05ae4216c039f4159..aa4b245adba897ac581b17c6a8aa41e390501443 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 bc0da52882f10ce3b12e29de8d7dfa8625228955..2ac9023bb92feb046e59cfccab205ea8b3bfd47a 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 4d7c42220efb2d4c3698fe3dc7565ffb14af878b..fbd4b155013250c92ebb772489ebb97d04ad9b0f 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 85d0ea15e310d112ff5711a9f51841702a36e261..e726cd7f8137922ab7919c0be9b3d1be693463f4 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 ae39d87ccee57fed85a259bbd62ef35424d791f5..cd5b01f0a27fcf06ccdedde45797eb4578449209 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 c4c6a0c5bb05035beb59e645ed6dccc4361e9430..114a6beca9321661596dd8360592ba3844c8c313 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 1b9d7b87471492edcc7009a8e3ff04de6891b0b6..0512a03ad9e65d03f4b9634ddd78c78d182b4c91 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 7a9386884272a17b315ebc1faf964813856f7583..c3c33f5503a6a2c2822a81f91012af1e7c55dfb3 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 355293f23c45c4625b13ca25b93534469e9fe968..e0b1db3653465f5ab76f1b3e18af3fc0caf1e3c3 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 3052cda095898407a6258d804a6410d9ee7e2a20..c37c35c1a04526dc41f15e600cc9a25ce48f3ef5 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 290f8677897e270144184dd20c078459b88a80f9..0bca6b3f5d14fc65a65edde05449a5bdd3dbe07f 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 7514efbf5bb1457d6e7b43b564a360bf0ed9e43b..72ecb0c4817441417e7d79af64903126dde605b6 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 df90c3f272762e3d0d96c7b582b1bf4a225be4c5..d422e14b7baf8f01797eab0cdf630ed7bc3e7647 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 9003e3aec8eb8cb67eb2cf356ff28cb6f8047486..47efc0d07c811a3117433f1917df3309cb07eaad 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 d5018237d34049c58dc39d701adb4404f0e945e0..85f9b58b5d5d5478836ad3d3db5943ac0e4ee792 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 eacb04891c92fbf5c0f51c1488c789ab06f717fd..0c2ac187ac33b34b52fc0967ed61d84a65ce5127 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 eccde4173525f679bcd327adfc8da62f64b13e65..27c338641a1a37bd7a6391ef95cd30386546c018 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 4cd3556e8042753c112fa0aca46c44ffb6157d8a..b215af858ca40ce18f94fcea1719991b93e3f0e0 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 5e7b0eea946adb2e2506f4b464c4bc31343da6d8..aa2d106b465a73d955df992b30923c82eb08c6ce 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 ed8a7affa4a4e22a3a86a49ee60e0f52de7a5144..01c84246e010943679c76d75d66a40f69f2bae22 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 6b3c4b98174f7414d12c5b86bf512287c98ac3e5..f074d354207985cd958cf37ff38888a191fadffd 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 fdc92ecb683e6b1b67f23fee0fdb3b1d883a0b8f..6e08bd214ad4564e7393c3aa30e9b68d1d10ba7f 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 4fe80505bb20cdf91bd8ec909fe3a9dd40c4b1a1..0354bd57d82f1a093cff2af4ef8059067374945f 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 d70a321947bd5fa52588c91546f3fa6b6b8f6875..91ed519db9640d71f8928e9a8db361be7fff8aec 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 ff7bd8cb6a7262456b5207fa18100eb85268327f..1e176b858053cb2f9869e22bfe9e8bfc6bb69aa5 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 6450c77ad5786a57c8b45599cb6fd316b49edcbf..b882828e563b1b9ebaea0d90c9189bde4fa576f1 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 3a1a65a5900ec201a475c0fe8e27319598d53c6e..ceff108155299d2d033ed29c6b53f9bea12e6459 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 28ae25916be7c78da7a74e1c176fd6cb43041f13..2d1160e70fa19e799ad915fd50b1690a68fec346 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 49a55382c86271a0fefa17134aa7af8f300cb7b6..55645b1fe2bd98366a507476009756540a4898fc 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 78ed6df6848b2c1ce292de5c62559df42e335b3c..5e37755d8220adda91d65ebb250e5b5d3fb8137c 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 27ce14ca70e601888dd1d621443d30f03e916721..b28c833069dbbd0b28ff37c4a290133a883261fa 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 b794457f2af3a0339d172ab4a0d4e2781853c5f5..3017105e1f51a8ac8b2e21dbf7c0c4ea5fea984e 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 2d9b2762d40276fff67b1e919292e2c6529553c3..5951af19ae993076608e9e3ee3a429e645ab87a3 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 39bb3ad9e4ccc090c827c1cc8df03c16c64bad2e..f61136a835a3158ffa838313bb0ff14ac0bc2291 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 828c061ab47362ee95bd44ac383d33175d0bad4e..8b564b1bfaa9b0d4169782e8ef961550e7db057e 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 575d1f12d5b1bb48b92e960d5b63a2770013f579..5cc403611b2356f91bffc633d60d85f5ce9c0f43 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 129fb9d1b96d97289351541d29ae740747bb8b29..ed0bd5971bd101c62de14e8522e21d41318add3b 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 e83d7a05d087e49c15b121cbc4ea908b19c277f4..8f12c523353e620a1f5c565a08d773c929f10a19 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 9876a5d1ce93cdcdcf52e4374085e4cdb90cf2bd..6941de1e85562729d6b9b211ed40f68898a070b0 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 ebd8582cda3dde884de43f84bae366283ba4b639..274ab6874bfac3d5f35a0e2cf6bf2d3006ca28ee 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 afc2316c270723a3927271b3a62dbf1971d2a63b..d2ccf583603f742e6b0e7f7a8dc1dc1b24109d83 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 835ca46bd2a7f19c989316e4a742d73ee4326c54..6c20f946410f993713e6239b9598f3c51cd644ae 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 ad5ac5fe5602166375b891a2be901e2258f9868d..1294acb063dd07280af2e6b5bc63c1fc45127c23 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 8a69f30c5327570ecb1330ad5429a7cf7ff5a271..49ba276d90e1f4e99c2de82c7f7787dc3e353b46 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 de4bff9c53d1acf305cb5a42a434c740923f9eb6..4bba3fa449f237e3565ce40870249d5b457b63cb 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 c0833852034f3fdc074e1ce332b15df79e679bfa..56ede23c3ae77f3d2058194d286a0df1bdfc414d 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 adfd4d57445f20b7795baa16af47938f566a56b1..401c59d9dbf1989dc9ea965923d4af4ad9948d72 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 c8f398569ca0af83b86d6f37a513e5b74ec63767..c6bc83cffc3731de8a5912fff6bc6c6898f1c770 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 9299663fb6cdcede4fe33c77074e2038ffc87d9b..a350166d7a0886ab55f2a0b2208791a93d51ae9d 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 ff8ab93d8d3e4e5a1f687a4820f0813762fc1283..9a1c6ad828ecb58ef67e203288629b4476066b04 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 1a1175ece7c4e4a7f54d76ad6856e358d6193697..c0729ad57319f91f6180c746f4b9dc6a89cea631 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 1814443ef8cc09c585fded6826bc39d2e2285850..e0ef1906ac24d16288b70e63f815907d6deae5c8 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 0b8906e0ae4bffbc9180209d23587a25b7990521..7c37c0e242488b9d2978507148f4f87e2f3668e1 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 6c8069c3e5f66f798f5a41586b698f66d038b539..3d9c1debbaaac74881a359c341071b52d29a2e21 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 6dcd4a2917c8fe71abeb0abaa067f17a0a5ca7f6..f4c3a2fc238802f5ee4996d6064dac29488169b9 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 7835690bd5b485f96f982a98c675008803c3574b..763452a6409f07e3034a4557d418aaf67e46b554 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 d7c4ab29e1ffecba096a5caee8c1078efe90363b..dca45c76437662f98c6517a129c38fd89ffca69c 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 3286cdc609a68fa921a3d5d8add979fec421c285..f5e6a074d4d999af98fff1acdde3c42679d12428 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 5fe162f90b2ba49deba84a8a923263fa1cb1be2e..1461207647eedf112c895ee83faa747c6146063e 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 a0c59b147c93af549a104955e168b3b551595cfb..0aafa302b8f0e0d2191e7765403f8329d946f258 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 31367bb44c9ac8477aa021e0be9ebbc631f25e45..19ddade40364b43b989fdb7dce585bacf8bbc995 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 aee66238a53102cb2e254b5fb0494fea0e431881..c1b0ce4e1f70cfdb282eb07061e7615cb19c3db9 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 3697a5f4dee432806c8aa3334be85175973a1cd2..6c491d01165460af52f92706ff1985876966f57b 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 d9d2901081933a24caccb3ae26001951e6e1d5fb..702e61b1df496e2b6132210d1b57613463187aaf 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 c6471b43f15eb7664b5a5f8445aadca5c8aacf71..cee92c58b1749a92f226473794191d3833638a72 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 899dcbf3fadfe2a404d2a7ea68bae05a853e76d0..4a33f5543c3aada54e72254aa795486fbea199b2 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 f5dc14a5bf5280e900891777d7ce26efc74ae3a6..f7d41a4567b15d9b9b3b6b87feaa328aaf95e630 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);
+});