diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 880337704b0903da9e36502467d2458c8713d505..850b23b2c8d136da37d5f362f27ae857eede2715 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -113,7 +113,7 @@ This tag is used to identify the author of a test case.
 
 This tag is for boolean properties associated with the test.
 
-- **`onlyStrict`** - only run the test in strict mode (*not supported by the browser runner*)
+- **`onlyStrict`** - only run the test in strict mode
 - **`noStrict`** - only run the test in "sloppy" mode
 - **`module`** - interpret the source text as [module
   code](http://www.ecma-international.org/ecma-262/6.0/#sec-modules)
diff --git a/harness/sth.js b/harness/sth.js
index 3a6e9ca9dcf2c846dac00fdff106cb64118c1d98..2ac4245e84c0a7530c9a44d361eb87e5a0479f7b 100644
--- a/harness/sth.js
+++ b/harness/sth.js
@@ -235,11 +235,7 @@ function BrowserRunner() {
 
         //Run the code
         idoc.writeln("<script type='text/javascript'>");
-        if (! instance.supportsWindowOnerror) {
-            idoc.writeln("try {eval(\"" + this.convertForEval(code) + "\");} catch(e) {window.onerror(e.toString(), null, null);}");
-        } else {
-            idoc.writeln(code);
-        }
+        idoc.writeln(this.compileSource(test, code));
         idoc.writeln("</script>");
 		
         idoc.writeln("<script type='text/javascript'>");
@@ -269,6 +265,30 @@ function BrowserRunner() {
     };
 }
 
+/**
+ * Transform the test source code according to the test metadata and the
+ * capabilities of the current environment.
+ *
+ * @param {object} test - a test object as retrieved by TestLoader
+ * @param {string} code - unmodified test source code
+ *
+ * @returns {string} the transformed source code
+ */
+BrowserRunner.prototype.compileSource = function(test, code) {
+    var flags = test.flags;
+
+    if (flags && flags.indexOf("onlyStrict") > -1) {
+        code = "'use strict';\n" + code;
+    }
+
+    if (!this.supportsWindowOnerror) {
+        code = "try {eval(\"" + this.convertForEval(code) +
+            "\");} catch(e) {window.onerror(e.toString(), null, null);}";
+    }
+
+    return code;
+};
+
 /* Loads tests from the sections specified in testcases.json.
  * Public Methods:
  * * getNextTest() - Start loading the next test.
diff --git a/test/built-ins/Array/prototype/every/15.4.4.16-5-1-s.js b/test/built-ins/Array/prototype/every/15.4.4.16-5-1-s.js
index 3cf9a18549ba5320d7a0633d8abcc68b7166e012..6a4187605349004a56e1a7ff22482e1fb88efcd8 100644
--- a/test/built-ins/Array/prototype/every/15.4.4.16-5-1-s.js
+++ b/test/built-ins/Array/prototype/every/15.4.4.16-5-1-s.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 15.4.4.16-5-1-s
 description: Array.prototype.every - thisArg not passed to strict callbackfn
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Array/prototype/filter/15.4.4.20-5-1-s.js b/test/built-ins/Array/prototype/filter/15.4.4.20-5-1-s.js
index b0198c9d5c824f64ef54459cfba0ac3fba6d2055..96589b4591723e87a8dc7ea776e2c2e75e437f11 100644
--- a/test/built-ins/Array/prototype/filter/15.4.4.20-5-1-s.js
+++ b/test/built-ins/Array/prototype/filter/15.4.4.20-5-1-s.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 15.4.4.20-5-1-s
 description: Array.prototype.filter - thisArg not passed to strict callbackfn
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Array/prototype/findIndex/Array.prototype.findIndex_this-arg-receiver-coercion-strict.js b/test/built-ins/Array/prototype/findIndex/Array.prototype.findIndex_this-arg-receiver-coercion-strict.js
index efa90c32bf0aa7b2ef596f9cd8f01be2ec887e05..f343507f0b7997a9280d0be3b58770bd2413b2dc 100644
--- a/test/built-ins/Array/prototype/findIndex/Array.prototype.findIndex_this-arg-receiver-coercion-strict.js
+++ b/test/built-ins/Array/prototype/findIndex/Array.prototype.findIndex_this-arg-receiver-coercion-strict.js
@@ -8,6 +8,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 var a = [];
-[1, 2].findIndex(function() { "use strict"; a.push(this); }, "");
+[1, 2].findIndex(function() { a.push(this); }, "");
 assert.sameValue(a[0], "");
 assert.sameValue(a[1], a[0]);
diff --git a/test/built-ins/Array/prototype/forEach/15.4.4.18-5-1-s.js b/test/built-ins/Array/prototype/forEach/15.4.4.18-5-1-s.js
index 3efa1fb0c95c98b00895eac7530a7b20c609bbe8..c3b07b8d6fb4de3793f187f328b7625c7d8a32aa 100644
--- a/test/built-ins/Array/prototype/forEach/15.4.4.18-5-1-s.js
+++ b/test/built-ins/Array/prototype/forEach/15.4.4.18-5-1-s.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 15.4.4.18-5-1-s
 description: Array.prototype.forEach - thisArg not passed to strict callbackfn
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Array/prototype/map/15.4.4.19-5-1-s.js b/test/built-ins/Array/prototype/map/15.4.4.19-5-1-s.js
index ad5d7d1822e6bb8f1a3faa7065dfff5dd136535b..7274349bd02aeabd7bbd49d839270fc2481500f5 100644
--- a/test/built-ins/Array/prototype/map/15.4.4.19-5-1-s.js
+++ b/test/built-ins/Array/prototype/map/15.4.4.19-5-1-s.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 15.4.4.19-5-1-s
 description: Array.prototype.map - thisArg not passed to strict callbackfn
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-4-s.js b/test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-4-s.js
index 5c4341668dc0188392ea7847bcfa71d619e6a0fd..01c7b5d62ab56cd06f74beef08bfbd0d6feb7318 100644
--- a/test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-4-s.js
+++ b/test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-4-s.js
@@ -9,7 +9,7 @@ es5id: 15.4.4.21-9-c-ii-4-s
 description: >
     Array.prototype.reduce - undefined passed as thisValue to strict
     callbackfn
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-4-s.js b/test/built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-4-s.js
index 63896752cbe7b5e6a8f55accacfd31ca7d977e40..3167ed832d556e22b60ebece2a036abcc20b7282 100644
--- a/test/built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-4-s.js
+++ b/test/built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-4-s.js
@@ -9,7 +9,7 @@ es5id: 15.4.4.22-9-c-ii-4-s
 description: >
     Array.prototype.reduceRight - undefined passed as thisValue to
     strict callbackfn
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Array/prototype/some/15.4.4.17-5-1-s.js b/test/built-ins/Array/prototype/some/15.4.4.17-5-1-s.js
index c98340abf38b5c6b243c266141b6fd066c550f16..51467e449e3c41a026f86ffaf8e76a44488b318c 100644
--- a/test/built-ins/Array/prototype/some/15.4.4.17-5-1-s.js
+++ b/test/built-ins/Array/prototype/some/15.4.4.17-5-1-s.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 15.4.4.17-5-1-s
 description: Array.prototype.some - thisArg not passed to strict callbackfn
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Array/prototype/sort/S15.4.4.11_A8.js b/test/built-ins/Array/prototype/sort/S15.4.4.11_A8.js
index 067cba536d70646f46b7175ba8be9eedf386da81..41dc7b785fdcf3d193b4ccce6738deeee2d2573c 100644
--- a/test/built-ins/Array/prototype/sort/S15.4.4.11_A8.js
+++ b/test/built-ins/Array/prototype/sort/S15.4.4.11_A8.js
@@ -5,7 +5,7 @@
 info: Call the comparefn passing undefined as the this value (step 13b)
 es5id: 15.4.4.11_A8
 description: comparefn tests that its this value is undefined
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var global = this;
diff --git a/test/built-ins/Function/15.3.2.1-10-4gs.js b/test/built-ins/Function/15.3.2.1-10-4gs.js
deleted file mode 100644
index fcedd396c63aa1492d0a13904eadd982edc932c3..0000000000000000000000000000000000000000
--- a/test/built-ins/Function/15.3.2.1-10-4gs.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.3.2.1-10-4gs
-description: >
-    Strict Mode - SyntaxError is thrown if a function using the
-    Function constructor has two identical parameters in (global)
-    strict mode
-negative: Test262Error
-flags: [onlyStrict]
-includes: [Test262Error.js]
----*/
-
-"use strict";
-throw new Test262Error();
-var _15_3_2_1_10_4_fun = new Function('param_1', 'param_2', 'param_1', '"use strict"; return 0;');
diff --git a/test/built-ins/Function/15.3.2.1-10-6gs.js b/test/built-ins/Function/15.3.2.1-10-6gs.js
index 32bb9a0e9b0b41aeb9746567d670c6e5426f8580..676d5278ac8f7bfcecc6617b12ab8f8d094ea490 100644
--- a/test/built-ins/Function/15.3.2.1-10-6gs.js
+++ b/test/built-ins/Function/15.3.2.1-10-6gs.js
@@ -10,10 +10,9 @@ description: >
     Strict Mode - SyntaxError is thrown if a function using the
     Function constructor has two identical parameters in (local)
     strict mode
-negative: Test262Error
-flags: [onlyStrict]
-includes: [Test262Error.js]
+flags: [noStrict]
 ---*/
 
-throw new Test262Error();
-var _15_3_2_1_10_6_fun = new Function('param_1', 'param_2', 'param_1', '"use strict";return 0;');
+assert.throws(SyntaxError, function() {
+  new Function('param_1', 'param_2', 'param_1', '"use strict";return 0;');
+});
diff --git a/test/built-ins/Function/15.3.2.1-11-1-s.js b/test/built-ins/Function/15.3.2.1-11-1-s.js
index 7ae0b26a74c9afb4169a8b444e1784ec1ee5a39f..9fdfc7acd7764cdae9e54cef755ac5cd2576afa0 100644
--- a/test/built-ins/Function/15.3.2.1-11-1-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-1-s.js
@@ -9,7 +9,7 @@ es5id: 15.3.2.1-11-1-s
 description: >
     Duplicate seperate parameter name in Function constructor throws
     SyntaxError in strict mode
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Function/15.3.2.1-11-2-s.js b/test/built-ins/Function/15.3.2.1-11-2-s.js
index dd2a4c297d4ade6f8c2321221dbb6d42c1fa5906..dd796249cd04398b934dbd77976e4ded731ae42c 100644
--- a/test/built-ins/Function/15.3.2.1-11-2-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-2-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 
 function testcase()
 { 
-  "use strict"; 
   try {
     Function('a','a','return;');
     return true;
diff --git a/test/built-ins/Function/15.3.2.1-11-3-s.js b/test/built-ins/Function/15.3.2.1-11-3-s.js
index f732742f6302e807cb6b24e02160464ecc76c33c..16fb487b3aae0260bca69c74c9a6865659af1219 100644
--- a/test/built-ins/Function/15.3.2.1-11-3-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-3-s.js
@@ -9,7 +9,7 @@ es5id: 15.3.2.1-11-3-s
 description: >
     Function constructor having a formal parameter named 'eval' throws
     SyntaxError if function body is strict mode
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Function/15.3.2.1-11-4-s.js b/test/built-ins/Function/15.3.2.1-11-4-s.js
index 035e0e8eae7668f803ac13f392d8e6e97a9d98ef..a8c46afc466990b3f6b4e81d1aa20d4047cf96c5 100644
--- a/test/built-ins/Function/15.3.2.1-11-4-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-4-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-   "use strict";
    try { 
      Function('eval', 'return;');
 	 return true;
diff --git a/test/built-ins/Function/15.3.2.1-11-5-s.js b/test/built-ins/Function/15.3.2.1-11-5-s.js
index db2d975ef38f48f98e97fe6b6bede236106711f4..9b54a223785d10c240651f0b8346c8812c8f64aa 100644
--- a/test/built-ins/Function/15.3.2.1-11-5-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-5-s.js
@@ -9,7 +9,7 @@ es5id: 15.3.2.1-11-5-s
 description: >
     Duplicate combined parameter name in Function constructor throws
     SyntaxError in strict mode
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/built-ins/Function/15.3.2.1-11-6-s.js b/test/built-ins/Function/15.3.2.1-11-6-s.js
index 2b5280e7606f03a898773d7fecb906916096d29d..ab3c522bbde627625a1d103cce5f9d075f472e1d 100644
--- a/test/built-ins/Function/15.3.2.1-11-6-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-6-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 
 function testcase()
 { 
-  "use strict"; 
   try {
      Function('a,a','return a;');
 	 return true;
diff --git a/test/built-ins/Function/15.3.2.1-11-7-s.js b/test/built-ins/Function/15.3.2.1-11-7-s.js
index 799fac830b38a3ac80f2fa735d4bf85937a65217..c44c3e8a715b8850eefa0e8ed7d130e02020fc9b 100644
--- a/test/built-ins/Function/15.3.2.1-11-7-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-7-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-   "use strict";
    try {
      Function('arguments', 'return;');
      return true;
diff --git a/test/built-ins/Function/15.3.2.1-11-8-s.js b/test/built-ins/Function/15.3.2.1-11-8-s.js
index 3df412dfa43207f529a256ebf22d894462bbe7b1..acad1b1ab61aeccc3a16008a3607c7e74f3203b2 100644
--- a/test/built-ins/Function/15.3.2.1-11-8-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-8-s.js
@@ -16,7 +16,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
 
         var foo = new Function("baz", "qux", "baz", "return 0;");
         return true;
diff --git a/test/built-ins/Function/15.3.2.1-11-9-s.js b/test/built-ins/Function/15.3.2.1-11-9-s.js
index fab6667f0a7d590be1410d2dee5302b7b76cc34d..de661e1a0a3fe4ea1bb2f016400627685cc3596f 100644
--- a/test/built-ins/Function/15.3.2.1-11-9-s.js
+++ b/test/built-ins/Function/15.3.2.1-11-9-s.js
@@ -7,17 +7,14 @@
 /*---
 es5id: 15.3.2.1-11-9-s
 description: >
-    Strict Mode - SyntaxError is thrown if a function is created using
+    Strict Mode - No SyntaxError is thrown if a function is created using
     the Function constructor that has three identical parameters and
     there is no explicit 'use strict' in the function constructor's
     body
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var foo = new Function("baz", "baz", "baz", "return 0;");
         return true;
     }
diff --git a/test/built-ins/Function/15.3.5-1gs.js b/test/built-ins/Function/15.3.5-1gs.js
index 5cbf456d72b7c6557eaff20ed4434d264334f47a..b0b438852f3c698ac2ba2b3c8782a608f86fcf51 100644
--- a/test/built-ins/Function/15.3.5-1gs.js
+++ b/test/built-ins/Function/15.3.5-1gs.js
@@ -9,12 +9,12 @@ es5id: 15.3.5-1gs
 description: >
     StrictMode - error is thrown when reading the 'caller' property of
     a function object
-negative: Test262Error
 flags: [onlyStrict]
-includes: [Test262Error.js]
 ---*/
 
 "use strict";
 function _15_3_5_1_gs() {}
-throw new Test262Error();
-_15_3_5_1_gs.caller;
+
+assert.throws(TypeError, function() {
+  _15_3_5_1_gs.caller;
+});
diff --git a/test/built-ins/Function/15.3.5-2gs.js b/test/built-ins/Function/15.3.5-2gs.js
index 3bf8680c119ca4c0be386013fc9e6e375fbbef49..3aa842ed59fe5253801288962b681aef2fa88369 100644
--- a/test/built-ins/Function/15.3.5-2gs.js
+++ b/test/built-ins/Function/15.3.5-2gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function _15_3_5_1_gs() {}
 _15_3_5_1_gs.caller;
 throw NotEarlyError;
diff --git a/test/built-ins/Function/15.3.5.4_2-11gs.js b/test/built-ins/Function/15.3.5.4_2-11gs.js
index 93e0183efba687d195429c3b499d04121b372f0c..663188a3c26139364679f3659d04ac4d8c93e669 100644
--- a/test/built-ins/Function/15.3.5.4_2-11gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-11gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 eval("gNonStrict();");
 
 
diff --git a/test/built-ins/Function/15.3.5.4_2-13gs.js b/test/built-ins/Function/15.3.5.4_2-13gs.js
index 12de77758ecda2754efeb50b0120090c21c75dc2..5f012c04ea7b2c84ff8aa5f7a6b0b1a4c55accda 100644
--- a/test/built-ins/Function/15.3.5.4_2-13gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-13gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var my_eval = eval;
 my_eval("gNonStrict();");
 
diff --git a/test/built-ins/Function/15.3.5.4_2-15gs.js b/test/built-ins/Function/15.3.5.4_2-15gs.js
index f0c7033878998365f4582d064ddf00c37537f75f..168f054d6703ed76491167300949e194164e64f1 100644
--- a/test/built-ins/Function/15.3.5.4_2-15gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-15gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f() {
     return gNonStrict();
 }
diff --git a/test/built-ins/Function/15.3.5.4_2-17gs.js b/test/built-ins/Function/15.3.5.4_2-17gs.js
index 0f0bf72b070ed919f8a3b5027dab7a48879c2a3d..2b9c315cfc836ef0ae178545be5b156eecd4882c 100644
--- a/test/built-ins/Function/15.3.5.4_2-17gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-17gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f = function () {
     return gNonStrict();
 }
diff --git a/test/built-ins/Function/15.3.5.4_2-19gs.js b/test/built-ins/Function/15.3.5.4_2-19gs.js
index 5b596753de9477a3c278190859148553807aa154..a0debb3274ab20d57ebf129178c9b63e2f924b43 100644
--- a/test/built-ins/Function/15.3.5.4_2-19gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-19gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var obj = new (function () {
     return gNonStrict();
 });
diff --git a/test/built-ins/Function/15.3.5.4_2-1gs.js b/test/built-ins/Function/15.3.5.4_2-1gs.js
index d0e104c5d093e99fffb780f0a04ffef4ea455325..774c4108f3f2cfb36e02fd1107b38bab691664c2 100644
--- a/test/built-ins/Function/15.3.5.4_2-1gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-1gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f() {
     return gNonStrict();
 }
diff --git a/test/built-ins/Function/15.3.5.4_2-21gs.js b/test/built-ins/Function/15.3.5.4_2-21gs.js
index e2beb1edf19ad3caa443cdacdaec9728f7bf108d..d50f5f4891f30f311c6de42ec669563f84e449ab 100644
--- a/test/built-ins/Function/15.3.5.4_2-21gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-21gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f1() {
     function f() {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-22gs.js b/test/built-ins/Function/15.3.5.4_2-22gs.js
index f5b355d556f8429a1382cf9706b4734a7cfd7d9d..3277bc67121368d6df91ac39c6252963a5db1816 100644
--- a/test/built-ins/Function/15.3.5.4_2-22gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-22gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f1() {
     var f = function () {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-23gs.js b/test/built-ins/Function/15.3.5.4_2-23gs.js
index c363fa3cd747edc92b67ba58d99682d6cc685630..8f0d3b9ac2ddb9e2823783bb60f2abbaba63eeae 100644
--- a/test/built-ins/Function/15.3.5.4_2-23gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-23gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f1() {
     return (function () {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-24gs.js b/test/built-ins/Function/15.3.5.4_2-24gs.js
index bb45e393be98f3aa4ffe6f6ce63d651fc233b611..4ef8a3bc3b7ddb9cfee0f1777b7ecb28cc353959 100644
--- a/test/built-ins/Function/15.3.5.4_2-24gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-24gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f1 = function () {
     function f() {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-25gs.js b/test/built-ins/Function/15.3.5.4_2-25gs.js
index e6080020bbb78850bd361e6fed54a2e7057a997d..37709ee2b6298acf2309a10732580cf1de3d2f12 100644
--- a/test/built-ins/Function/15.3.5.4_2-25gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-25gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f1 = function () {
     var f = function () {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-26gs.js b/test/built-ins/Function/15.3.5.4_2-26gs.js
index 149f2a5573f4109bad3260130358a7e639f536be..8783862cb20d0efbcdf71e507fc90a75120c0045 100644
--- a/test/built-ins/Function/15.3.5.4_2-26gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-26gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f1 = function () {
     return (function () {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-27gs.js b/test/built-ins/Function/15.3.5.4_2-27gs.js
index 9483b22cb18dad3d6442e1f4d2a429b8191c7d3b..459334411b67d379c851efc56dad920f763f5925 100644
--- a/test/built-ins/Function/15.3.5.4_2-27gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-27gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 (function () {
     function f() {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-28gs.js b/test/built-ins/Function/15.3.5.4_2-28gs.js
index d27c2531a5be2aa0bce2b296a90fc013c4161f1c..1a64f6db1690ff97db2ebb5fa3ca8263ee863898 100644
--- a/test/built-ins/Function/15.3.5.4_2-28gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-28gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 (function () {
     var f = function () {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-29gs.js b/test/built-ins/Function/15.3.5.4_2-29gs.js
index 132364c4d243fdef02ebc33be5ee7d6f5d23b395..096551395da853543572ffb67f88e11eb41e93bd 100644
--- a/test/built-ins/Function/15.3.5.4_2-29gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-29gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 (function () {
     return (function () {
         return gNonStrict();
diff --git a/test/built-ins/Function/15.3.5.4_2-3gs.js b/test/built-ins/Function/15.3.5.4_2-3gs.js
index 3232163782f186d089fb4d80c4aa0af71e1e3cf3..97a70135f205b2c2846b404bccc0ffa92bd37109 100644
--- a/test/built-ins/Function/15.3.5.4_2-3gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-3gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f = function () {
     return gNonStrict();
 }
diff --git a/test/built-ins/Function/15.3.5.4_2-48gs.js b/test/built-ins/Function/15.3.5.4_2-48gs.js
index 276d1e4d471aa613d069c9703718fb4efebcfe6d..31cc8de3ddf9ed11bdb87bf3a02e947231e0970a 100644
--- a/test/built-ins/Function/15.3.5.4_2-48gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-48gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var o = { get foo() { return gNonStrict(); } }
 o.foo;
 
diff --git a/test/built-ins/Function/15.3.5.4_2-50gs.js b/test/built-ins/Function/15.3.5.4_2-50gs.js
index b594277f1c21b17a95ace06c5b342054f6abee94..f36f3502381f0203cb84bd4d376df27db69ddba6 100644
--- a/test/built-ins/Function/15.3.5.4_2-50gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-50gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var o = { set foo(stuff) { return gNonStrict(); } }
 o.foo = 7; 
 
diff --git a/test/built-ins/Function/15.3.5.4_2-52gs.js b/test/built-ins/Function/15.3.5.4_2-52gs.js
index 41239b805eb850bdfb4c32850f1897c1585562aa..cdee4535009fd0edec734b41d744c3adad3cd310 100644
--- a/test/built-ins/Function/15.3.5.4_2-52gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-52gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var o = {};
 Object.defineProperty(o, "foo",  { get: function() { return gNonStrict(); } });
 o.foo;
diff --git a/test/built-ins/Function/15.3.5.4_2-54gs.js b/test/built-ins/Function/15.3.5.4_2-54gs.js
index beee4bb36a501cd8fd7e5dbd3aea20824885d8d3..c6df0374b5f891fe6c4ef8e99b688254d9210d7d 100644
--- a/test/built-ins/Function/15.3.5.4_2-54gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-54gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var o = {};
 Object.defineProperty(o, "foo", { set: function(stuff) { return gNonStrict(); } });
 o.foo = 9; 
diff --git a/test/built-ins/Function/15.3.5.4_2-5gs.js b/test/built-ins/Function/15.3.5.4_2-5gs.js
index 54c3a5242e0b915a63e89364115da3f0b91fecb8..8d79c341d9a7ca8ad11881c46db9e96ff44c4c78 100644
--- a/test/built-ins/Function/15.3.5.4_2-5gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-5gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 (function () {
     return gNonStrict();
 })();
diff --git a/test/built-ins/Function/15.3.5.4_2-7gs.js b/test/built-ins/Function/15.3.5.4_2-7gs.js
index 90328fbedce14932b7d2f0fb750e5c48f332b17f..8cdef3f347d1357fac9e58d1cb306fc5d90b0ce0 100644
--- a/test/built-ins/Function/15.3.5.4_2-7gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-7gs.js
@@ -13,7 +13,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f = Function("return gNonStrict();");
 f();
 
diff --git a/test/built-ins/Function/15.3.5.4_2-9gs.js b/test/built-ins/Function/15.3.5.4_2-9gs.js
index c69efc3b8221b5b23bfffea28c7ae2993c54bbf7..72b86357f75c00cdc5f48a9925fefafbfb3eef5a 100644
--- a/test/built-ins/Function/15.3.5.4_2-9gs.js
+++ b/test/built-ins/Function/15.3.5.4_2-9gs.js
@@ -14,7 +14,6 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f = new Function("return gNonStrict();");
 f();
 
diff --git a/test/built-ins/Function/prototype/apply/15.3.4.3-1-s.js b/test/built-ins/Function/prototype/apply/15.3.4.3-1-s.js
index bafd844a8700aeab1da59197b21c6222b10acfc4..94ad20d0fae3cec082d5bbaded9b8d0c89142029 100644
--- a/test/built-ins/Function/prototype/apply/15.3.4.3-1-s.js
+++ b/test/built-ins/Function/prototype/apply/15.3.4.3-1-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         function fun() {
             return (this instanceof String);
         }
diff --git a/test/built-ins/Function/prototype/apply/15.3.4.3-2-s.js b/test/built-ins/Function/prototype/apply/15.3.4.3-2-s.js
index ac81a2ed69a9ef59bb5dc0fc1cf737433b7d3ff9..07c97def5f8ffa43d522ededc0bbf5d91fb338a8 100644
--- a/test/built-ins/Function/prototype/apply/15.3.4.3-2-s.js
+++ b/test/built-ins/Function/prototype/apply/15.3.4.3-2-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         function fun() {
             return (this instanceof Number);
         }
diff --git a/test/built-ins/Function/prototype/apply/15.3.4.3-3-s.js b/test/built-ins/Function/prototype/apply/15.3.4.3-3-s.js
index 5250c403dc6e0d7452afc9ef6bba60ff259c5a2c..ab98d4ccf44c10be8ab481932f7f0d0d1b3a7178 100644
--- a/test/built-ins/Function/prototype/apply/15.3.4.3-3-s.js
+++ b/test/built-ins/Function/prototype/apply/15.3.4.3-3-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         function fun() {
             return (this instanceof Boolean);
         }
diff --git a/test/built-ins/Function/prototype/call/15.3.4.4-1-s.js b/test/built-ins/Function/prototype/call/15.3.4.4-1-s.js
index f22631052129461ce11e2cc1ed4830ab3f3b9ab6..c0a5d0e5bc773304464d812a8529787068cb0a5c 100644
--- a/test/built-ins/Function/prototype/call/15.3.4.4-1-s.js
+++ b/test/built-ins/Function/prototype/call/15.3.4.4-1-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         function fun() {
             return (this instanceof String);
         }
diff --git a/test/built-ins/Function/prototype/call/15.3.4.4-2-s.js b/test/built-ins/Function/prototype/call/15.3.4.4-2-s.js
index 9d7f6b8b7034d1f3543133246b935d22eefb2ddc..c2bdd92453b8246bdc81d304f84885b1b25ce25f 100644
--- a/test/built-ins/Function/prototype/call/15.3.4.4-2-s.js
+++ b/test/built-ins/Function/prototype/call/15.3.4.4-2-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         function fun() {
             return (this instanceof Number);
         }
diff --git a/test/built-ins/Function/prototype/call/15.3.4.4-3-s.js b/test/built-ins/Function/prototype/call/15.3.4.4-3-s.js
index 96e810434da5b00b770206a2a4b5b217d09643ce..c3cf578b20dded2c44022ff40648dc7505e27928 100644
--- a/test/built-ins/Function/prototype/call/15.3.4.4-3-s.js
+++ b/test/built-ins/Function/prototype/call/15.3.4.4-3-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         function fun() {
             return (this instanceof Boolean);
         }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js
index 312f82a29fe7ec662462de9a3319328a37a65927..88cbd5f44ba28846472522c66e89181041a9f1ac 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js
@@ -17,8 +17,6 @@ flags: [onlyStrict]
 ---*/
 
 (function (a, b, c) {
-    "use strict";
-
     Object.defineProperty(arguments, "0", {
         value: 20,
         writable: false,
diff --git a/test/built-ins/Object/getOwnPropertyNames/S15.2.3.4_A1_T1.js b/test/built-ins/Object/getOwnPropertyNames/S15.2.3.4_A1_T1.js
index ce2045ff3dff8c6c4449b22629684c0dd6e05c1a..4cb5e4d1d94a8f2af860166a5725b3cf1e68a082 100644
--- a/test/built-ins/Object/getOwnPropertyNames/S15.2.3.4_A1_T1.js
+++ b/test/built-ins/Object/getOwnPropertyNames/S15.2.3.4_A1_T1.js
@@ -10,10 +10,8 @@ description: >
     Check that all the own property names reported by
     Object.getOwnPropertyNames on a strict function are names that
     hasOwnProperty agrees are own properties.
-flags: [onlyStrict]
 ---*/
 
-"use strict";
 function foo() {}
 
 var names = Object.getOwnPropertyNames(foo);
diff --git a/test/built-ins/String/prototype/replace/S15.5.4.11_A12.js b/test/built-ins/String/prototype/replace/S15.5.4.11_A12.js
index 5470a715ff00de7936d8c497da3ec1eaada5bfaf..66ba29f7f0d91f09591a38cba748a3298fe033dd 100644
--- a/test/built-ins/String/prototype/replace/S15.5.4.11_A12.js
+++ b/test/built-ins/String/prototype/replace/S15.5.4.11_A12.js
@@ -5,7 +5,7 @@
 info: Call replaceValue passing undefined as the this value
 es5id: 15.5.4.11_A12
 description: replaceValue tests that its this value is undefined
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var global = this;
diff --git a/test/built-ins/global/10.2.1.1.3-4-16-s.js b/test/built-ins/global/10.2.1.1.3-4-16-s.js
index 23fb89e4cb622287948577cd67b9a04128ea6fdd..e6076f5834ddeb1a4412c7dc415043063b30723c 100644
--- a/test/built-ins/global/10.2.1.1.3-4-16-s.js
+++ b/test/built-ins/global/10.2.1.1.3-4-16-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             NaN = 12;
             return false;
diff --git a/test/built-ins/global/10.2.1.1.3-4-18-s.js b/test/built-ins/global/10.2.1.1.3-4-18-s.js
index ad6e6bd87ee9115432f06884acf3d58f84576422..bfe77567650e4267e2f2c89f1c8c11376d89c064 100644
--- a/test/built-ins/global/10.2.1.1.3-4-18-s.js
+++ b/test/built-ins/global/10.2.1.1.3-4-18-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             undefined = 12;
             return false;
diff --git a/test/built-ins/global/10.2.1.1.3-4-22-s.js b/test/built-ins/global/10.2.1.1.3-4-22-s.js
index 8480ffeb09d73dd1533c6c30faa186cab6b12bb4..47933a50949c3deaf63aecd9c0790d54ac3154a5 100644
--- a/test/built-ins/global/10.2.1.1.3-4-22-s.js
+++ b/test/built-ins/global/10.2.1.1.3-4-22-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var objBak = Object;
 
         try {
diff --git a/test/built-ins/global/10.2.1.1.3-4-27-s.js b/test/built-ins/global/10.2.1.1.3-4-27-s.js
index d54c66c1563727e4d79af923ef7e5fe3223c8fc0..1668aee6bc3326143c8a7886596a6c7d2948ecc6 100644
--- a/test/built-ins/global/10.2.1.1.3-4-27-s.js
+++ b/test/built-ins/global/10.2.1.1.3-4-27-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var numBak = Number;
         try {
             Number = 12;
diff --git a/test/harness/propertyhelper-verifynotwritable-not-writable-strict.js b/test/harness/propertyhelper-verifynotwritable-not-writable-strict.js
index f30533116fa663dc25d991e96da016df1edf3058..6740d8d6c37de5fad226195a73c7223e12638dc6 100644
--- a/test/harness/propertyhelper-verifynotwritable-not-writable-strict.js
+++ b/test/harness/propertyhelper-verifynotwritable-not-writable-strict.js
@@ -6,7 +6,6 @@ description: >
     Objects whose specified property is not writable satisfy the assertion in
     strict mode.
 includes: [propertyHelper.js]
-flags: [onlyStrict]
 ---*/
 
 var obj = {};
diff --git a/test/harness/propertyhelper-verifywritable-not-writable-strict.js b/test/harness/propertyhelper-verifywritable-not-writable-strict.js
index 1ee497f782aac98fb82530330e3ccc0dd841fa33..85b3046c60fafffbaf03cbd7b60de66c0c6bae17 100644
--- a/test/harness/propertyhelper-verifywritable-not-writable-strict.js
+++ b/test/harness/propertyhelper-verifywritable-not-writable-strict.js
@@ -6,7 +6,6 @@ description: >
     Objects whose specified property is not writable do not satisfy the
     assertion in strict mode.
 includes: [propertyHelper.js]
-flags: [onlyStrict]
 ---*/
 
 var threw = false;
diff --git a/test/language/arguments-object/10.5-1-s.js b/test/language/arguments-object/10.5-1-s.js
index 8d4f6947c3e24f3537d69848593b8744b3a17a36..6147c262f218b1e3a7fa8fdd59b9897c64d98816 100644
--- a/test/language/arguments-object/10.5-1-s.js
+++ b/test/language/arguments-object/10.5-1-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             (function fun() {
                 eval("arguments = 10");
diff --git a/test/language/arguments-object/10.5-1gs.js b/test/language/arguments-object/10.5-1gs.js
index b7be54878e03b29ef22f6bc059f919d53197bc11..dc16e3d32299b3f755c39d3cf41444bdb26e08a1 100644
--- a/test/language/arguments-object/10.5-1gs.js
+++ b/test/language/arguments-object/10.5-1gs.js
@@ -11,7 +11,6 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 
 function f_10_5_1_gs(){
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 6c5c1b0ba9de44d7baba75493d9db5a3f5a85ad4..1b06aa056e9edf1fb754e5b9e4a3a807dca74b0c 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
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("(function _10_5_7_b_1_fun() { arguments = 10;} ());");
             return false;
diff --git a/test/language/arguments-object/10.5-7-b-2-s.js b/test/language/arguments-object/10.5-7-b-2-s.js
index b443416e3ffd3bd90839da70e7f535334720eaa4..ab4a3afcdd1971b0ab81931d0767456fa4f716b0 100644
--- a/test/language/arguments-object/10.5-7-b-2-s.js
+++ b/test/language/arguments-object/10.5-7-b-2-s.js
@@ -6,14 +6,11 @@
 
 /*---
 es5id: 10.5-7-b-2-s
-description: Strict Mode - arguments object index assignment is allowed
-flags: [onlyStrict]
+description: Arguments object index assignment is allowed
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         function _10_5_7_b_2_fun() {
             arguments[7] = 12;
             return arguments[7] === 12;
diff --git a/test/language/arguments-object/10.5-7-b-3-s.js b/test/language/arguments-object/10.5-7-b-3-s.js
index b9fc991e2a463a71527486c567839dea2e07de6f..3263bfdc0ee18e049f96e3266d38c082a5cf41e2 100644
--- a/test/language/arguments-object/10.5-7-b-3-s.js
+++ b/test/language/arguments-object/10.5-7-b-3-s.js
@@ -7,15 +7,11 @@
 /*---
 es5id: 10.5-7-b-3-s
 description: >
-    Strict Mode - Adding property to the arguments object successful
-    under strict mode
-flags: [onlyStrict]
+    Adding property to the arguments object successful under strict mode
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         function _10_5_7_b_3_fun() {
             arguments[1] = 12;
             return arguments[0] === 30 && arguments[1] === 12;
diff --git a/test/language/arguments-object/10.5-7-b-4-s.js b/test/language/arguments-object/10.5-7-b-4-s.js
index 3f9f1ec68ea8006711f33cae37147a393a392666..8455115c24d5e83b4f3d47f0de583db2ce76dbc3 100644
--- a/test/language/arguments-object/10.5-7-b-4-s.js
+++ b/test/language/arguments-object/10.5-7-b-4-s.js
@@ -7,15 +7,11 @@
 /*---
 es5id: 10.5-7-b-4-s
 description: >
-    Strict Mode - Deleting property of the arguments object successful
-    under strict mode
-flags: [onlyStrict]
+    Deleting property of the arguments object successful under strict mode
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         function _10_5_7_b_4_fun() {
             var _10_5_7_b_4_1 = arguments[0] === 30 && arguments[1] === 12;
             delete arguments[1];
diff --git a/test/language/arguments-object/10.6-10-c-ii-1-s.js b/test/language/arguments-object/10.6-10-c-ii-1-s.js
index 771355e5cbe197d07a1835e8bed964a7291a7d89..b21b1871792b556d9d912e586c12ec016f33ceab 100644
--- a/test/language/arguments-object/10.6-10-c-ii-1-s.js
+++ b/test/language/arguments-object/10.6-10-c-ii-1-s.js
@@ -16,7 +16,6 @@ includes: [runTestCase.js]
 function testcase() {
   function foo(a,b,c)
   {
-    'use strict';
     a = 1; b = 'str'; c = 2.1;
     return (arguments[0] === 10 && arguments[1] === 'sss' && arguments[2] === 1);
   }
diff --git a/test/language/arguments-object/10.6-10-c-ii-2-s.js b/test/language/arguments-object/10.6-10-c-ii-2-s.js
index b39ec15b2f2cb0040a30f3a17168ad1409ffc3fd..479123a9f152394ba4ca6e112e83589c3323b215 100644
--- a/test/language/arguments-object/10.6-10-c-ii-2-s.js
+++ b/test/language/arguments-object/10.6-10-c-ii-2-s.js
@@ -15,7 +15,6 @@ function testcase() {
   
   function foo(a,b,c)
   {
-    'use strict';    
     arguments[0] = 1; arguments[1] = 'str'; arguments[2] = 2.1;
     return 10 === a && 'sss' === b && 1 === c;
   }
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 c266619485d25d8091f3e89bd49dd80b513b4c23..b98a324006f2fdc15739881717b33c477f5c1e65 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
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
   try 
   {
     arguments.caller;
diff --git a/test/language/arguments-object/10.6-13-b-2-s.js b/test/language/arguments-object/10.6-13-b-2-s.js
index 8db28513b2d76bea44163c36196e49aa4d076395..4b939ef4ed9f71dbfe782bb82c951d2e0efb1d57 100644
--- a/test/language/arguments-object/10.6-13-b-2-s.js
+++ b/test/language/arguments-object/10.6-13-b-2-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  
-  'use strict';    
   var desc = Object.getOwnPropertyDescriptor(arguments,"caller");
   return desc!== undefined;
  }
diff --git a/test/language/arguments-object/10.6-13-b-3-s.js b/test/language/arguments-object/10.6-13-b-3-s.js
index c7b564137cd95e749826dd2bd6506a9fa7a23c23..b741e0b1efcde778f6acbe56dfcbd3067b0bf8a8 100644
--- a/test/language/arguments-object/10.6-13-b-3-s.js
+++ b/test/language/arguments-object/10.6-13-b-3-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-   
-  'use strict';    
   var desc = Object.getOwnPropertyDescriptor(arguments,"caller");
   
   return (desc.configurable === false && 
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 4f25f14a680719f6e50c486040af7ef71f450d1e..d46801b6bdc55b59a8deae1c430fba81f4a9bea7 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
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
   try 
   {
     arguments.callee;
diff --git a/test/language/arguments-object/10.6-13-c-2-s.js b/test/language/arguments-object/10.6-13-c-2-s.js
index 125852d3d60841fed3fcf088a1c0ba0fc64a6e47..a1adc185c3696bc54bddbc58ae5969b4da95cb3f 100644
--- a/test/language/arguments-object/10.6-13-c-2-s.js
+++ b/test/language/arguments-object/10.6-13-c-2-s.js
@@ -6,14 +6,11 @@
 
 /*---
 es5id: 10.6-13-c-2-s
-description: arguments.callee is exists in strict mode
-flags: [onlyStrict]
+description: arguments.callee is exists
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  
-  'use strict';    
   var desc = Object.getOwnPropertyDescriptor(arguments,"callee");
   return desc !== undefined;
  }
diff --git a/test/language/arguments-object/10.6-13-c-3-s.js b/test/language/arguments-object/10.6-13-c-3-s.js
index 6182ad0f52f4f8b2148732f8072103aa2140ffb5..8400492a0fae70ba7c44db4efeeafc385d8614dd 100644
--- a/test/language/arguments-object/10.6-13-c-3-s.js
+++ b/test/language/arguments-object/10.6-13-c-3-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  
-  'use strict';    
   var desc = Object.getOwnPropertyDescriptor(arguments,"callee");
   return (desc.configurable === false &&
      desc.enumerable === false &&
diff --git a/test/language/arguments-object/10.6-14-1-s.js b/test/language/arguments-object/10.6-14-1-s.js
index f7f76465c418565b3622af998c0589a49fe8ecb1..a5989cd4e6a4e8364074896c6a46d5c52d73322d 100644
--- a/test/language/arguments-object/10.6-14-1-s.js
+++ b/test/language/arguments-object/10.6-14-1-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var argObj = function () {
             return arguments;
         } ();
diff --git a/test/language/arguments-object/10.6-14-b-1-s.js b/test/language/arguments-object/10.6-14-b-1-s.js
index 488b443dacd9c00cef49490085a01dbbe43be93e..56ca2c1bcac6f8f28220565f67d9fcc2581e5499 100644
--- a/test/language/arguments-object/10.6-14-b-1-s.js
+++ b/test/language/arguments-object/10.6-14-b-1-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var argObj = function () {
             return arguments;
         } ();
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 8a8b54a7ff6933b304f282005b16d3ff32605a2c..c642a132c8ece283e63c851557f5631c9c125150 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var argObj = function () {
             return arguments;
         } ();
diff --git a/test/language/arguments-object/10.6-14-c-1-s.js b/test/language/arguments-object/10.6-14-c-1-s.js
index 215e95dbef1512416b6b6a630c684a27f7e462cb..5decd7a23e4afa7fb736d4c5e96b16fa9f1c8680 100644
--- a/test/language/arguments-object/10.6-14-c-1-s.js
+++ b/test/language/arguments-object/10.6-14-c-1-s.js
@@ -7,15 +7,11 @@
 /*---
 es5id: 10.6-14-c-1-s
 description: >
-    Strict Mode - [[Enumerable]] attribute value in 'callee' is false
-    under strict mode
-flags: [onlyStrict]
+    [[Enumerable]] attribute value in 'callee' is false
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var argObj = function () {
             return arguments;
         } ();
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 9f2baa39f0cbb7a1bbe0a408acba595b0f84aa6f..9b0df1174f23373b1c8aaafaecf200f15a276206 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var argObj = function () {
             return arguments;
         } ();
diff --git a/test/language/arguments-object/10.6-1gs.js b/test/language/arguments-object/10.6-1gs.js
index b4bf6b288247a7d775d777af94315c8e2c9bf34d..7486af74383bc64e55d5ca184a17dec355aab668 100644
--- a/test/language/arguments-object/10.6-1gs.js
+++ b/test/language/arguments-object/10.6-1gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f_10_6_1_gs(){
     return arguments.callee;
 }
diff --git a/test/language/arguments-object/10.6-2gs.js b/test/language/arguments-object/10.6-2gs.js
index d5782511ebd5e92f4071800a80b2dc3903821a81..2262ebdf7a8b971c14c3809dcd2b22b5bde2091e 100644
--- a/test/language/arguments-object/10.6-2gs.js
+++ b/test/language/arguments-object/10.6-2gs.js
@@ -13,7 +13,6 @@ negative: .
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f_10_6_1_gs(){
     return arguments.callee;
 }
diff --git a/test/language/arguments-object/10.6-6-3-s.js b/test/language/arguments-object/10.6-6-3-s.js
index 40a7e6fb6bcf7d85d51aff8d081519a121e362c2..374122aec933e949d70a2614d911d26837c1b725 100644
--- a/test/language/arguments-object/10.6-6-3-s.js
+++ b/test/language/arguments-object/10.6-6-3-s.js
@@ -9,12 +9,10 @@ es5id: 10.6-6-3
 description: >
     'length' property of arguments object for 0 argument function
     exists
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
 	return (function () {return arguments.length !== undefined})();
  }
 runTestCase(testcase);
diff --git a/test/language/arguments-object/10.6-6-4-s.js b/test/language/arguments-object/10.6-6-4-s.js
index ccf3d9c5bac824ec26ae37d83fb6bb78798d07eb..39f77e728c1026e9931a1d4eee5b33f8f25653a7 100644
--- a/test/language/arguments-object/10.6-6-4-s.js
+++ b/test/language/arguments-object/10.6-6-4-s.js
@@ -9,12 +9,10 @@ es5id: 10.6-6-4
 description: >
     'length' property of arguments object for 0 argument function call
     is 0 even with formal parameters
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
 	return (function (a,b,c) {return arguments.length === 0})();
  }
 runTestCase(testcase);
diff --git a/test/language/eval-code/10.4.2-2-s.js b/test/language/eval-code/10.4.2-2-s.js
index 0f46e9dff797d79e05977373e1e21a0dca0e6bef..f950114546abd554525581b2a02e8e7c28f89c0c 100644
--- a/test/language/eval-code/10.4.2-2-s.js
+++ b/test/language/eval-code/10.4.2-2-s.js
@@ -14,8 +14,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-        eval("(function fun(x){ return x })(10)");
+        eval("function fun(x){ return x }");
         return typeof (fun) === "undefined";
     }
 runTestCase(testcase);
diff --git a/test/language/eval-code/10.4.2-3-c-1-s.js b/test/language/eval-code/10.4.2-3-c-1-s.js
index 267ef99c067416d19962c7729a32ce7907316509..604a6f17a444831214c820321964de4500e44817 100644
--- a/test/language/eval-code/10.4.2-3-c-1-s.js
+++ b/test/language/eval-code/10.4.2-3-c-1-s.js
@@ -9,7 +9,6 @@ es5id: 10.4.2-3-c-1-s
 description: >
     Direct eval code in strict mode - cannot instantiate variable in
     the variable environment of the calling context
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/eval-code/10.4.2-3-c-2-s.js b/test/language/eval-code/10.4.2-3-c-2-s.js
index d97f75bc86b5c7317ba02dc3c3900da64463cb57..a80a24f06e7ec7d76a90afbaa5ad2446ada7fe88 100644
--- a/test/language/eval-code/10.4.2-3-c-2-s.js
+++ b/test/language/eval-code/10.4.2-3-c-2-s.js
@@ -16,7 +16,6 @@ includes: [runTestCase.js]
 function testcase() {
   var _10_4_2_3_c_2_s = 0;
   function _10_4_2_3_c_2_sFunc() {
-     'use strict';
      eval("var _10_4_2_3_c_2_s = 1");
      return _10_4_2_3_c_2_s===0;
   }
diff --git a/test/language/eval-code/10.4.2-3-c-3-s.js b/test/language/eval-code/10.4.2-3-c-3-s.js
index 666a7ed542988eaa91f96528aa5583714f88c442..00baee253ba3607560f26f64f7c6a90c29e9f8b1 100644
--- a/test/language/eval-code/10.4.2-3-c-3-s.js
+++ b/test/language/eval-code/10.4.2-3-c-3-s.js
@@ -16,7 +16,6 @@ includes: [runTestCase.js]
 var _10_4_2_3_c_3_s = 0;
 function testcase() {
   function _10_4_2_3_c_3_sFunc() {
-     'use strict';
      eval("var _10_4_2_3_c_3_s = 1");
      return _10_4_2_3_c_3_s===0;
   }
diff --git a/test/language/eval-code/10.4.2.1-1gs.js b/test/language/eval-code/10.4.2.1-1gs.js
index 75f49ccbb57049dc39ddff017fc7427b1e738e3f..de201f63b2bd7e9702833cf31e4d85e97d45bb94 100644
--- a/test/language/eval-code/10.4.2.1-1gs.js
+++ b/test/language/eval-code/10.4.2.1-1gs.js
@@ -14,7 +14,6 @@ negative: ReferenceError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 eval("var x = 7;");
 x = 9;
 throw NotEarlyError;
diff --git a/test/language/eval-code/10.4.2.1-2-s.js b/test/language/eval-code/10.4.2.1-2-s.js
index 6e824770e7dcc42c01a99502732d81e3d9ef750d..69518403b6c286a507011fca3f4b034fc10553b8 100644
--- a/test/language/eval-code/10.4.2.1-2-s.js
+++ b/test/language/eval-code/10.4.2.1-2-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         eval("function _10_4_2_1_2_fun(){}");
         return typeof _10_4_2_1_2_fun === "undefined";
     }
diff --git a/test/language/eval-code/10.4.2.1-4-s.js b/test/language/eval-code/10.4.2.1-4-s.js
index bc92701eef7cd9db5427f295cc0d2b0d3630e0ad..c9729ce04e9f5ac78049aea84f7c22123cc81c0d 100644
--- a/test/language/eval-code/10.4.2.1-4-s.js
+++ b/test/language/eval-code/10.4.2.1-4-s.js
@@ -8,14 +8,11 @@
 es5id: 10.4.2.1-4-s
 description: >
     Strict Mode - Strict mode eval code cannot instantiate functions
-    in the variable environment of the caller to eval which is
-    contained in strict mode code
-flags: [onlyStrict]
+    in the variable environment of the caller to eval.
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
         eval("'use strict'; function _10_4_2_1_4_fun(){}");
         return typeof _10_4_2_1_4_fun === "undefined";
     }
diff --git a/test/language/eval-code/S10.4.2.1_A1.js b/test/language/eval-code/S10.4.2.1_A1.js
index 175b5e954524070e01bbc2d0c534b12ffbfa0806..e9ace7bae401a4eaa20bfa85639c51b3ac1984f9 100644
--- a/test/language/eval-code/S10.4.2.1_A1.js
+++ b/test/language/eval-code/S10.4.2.1_A1.js
@@ -6,10 +6,8 @@ es5id: 10.4.2.1_A1
 description: >
     Strict indirect eval should not leak top level  declarations into
     the global scope
-flags: [onlyStrict]
 ---*/
 
-"use strict";
 if (!('foo' in this)) {
   (1,eval)('"use strict"; var foo = 88;');
   if ('foo' in this) {
diff --git a/test/language/expressions/assignment/11.13.1-1-6-s.js b/test/language/expressions/assignment/11.13.1-1-6-s.js
index 5d524eb629adcf61725059927eff8e0e24e47f57..702deac1db28a5714b7eed7770aac1bddcb00996 100644
--- a/test/language/expressions/assignment/11.13.1-1-6-s.js
+++ b/test/language/expressions/assignment/11.13.1-1-6-s.js
@@ -9,13 +9,11 @@ info: PutValue operates only on references (see step 3.a).
 es5id: 11.13.1-1-6-s
 description: >
     simple assignment throws ReferenceError if LeftHandSide is an
-    unresolvable reference in strict mode (base obj undefined)
-flags: [onlyStrict]
+    unresolvable reference (base obj undefined)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
   
   try {
     __ES3_1_test_suite_test_11_13_1_unique_id_0__.x = 42;
diff --git a/test/language/expressions/assignment/11.13.1-1-s.js b/test/language/expressions/assignment/11.13.1-1-s.js
index d41b7c67a27226ebd661c38abd10ed6ff32217a2..f16517accc55a7b49ada0afce17002daae9df0fa 100644
--- a/test/language/expressions/assignment/11.13.1-1-s.js
+++ b/test/language/expressions/assignment/11.13.1-1-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/assignment/11.13.1-2-s.js b/test/language/expressions/assignment/11.13.1-2-s.js
index a843b8216b3e4b20186a886746b89a3d2f4899ac..dbacc467b337acd8aab717f8706503b125edfb6e 100644
--- a/test/language/expressions/assignment/11.13.1-2-s.js
+++ b/test/language/expressions/assignment/11.13.1-2-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/assignment/11.13.1-3-s.js b/test/language/expressions/assignment/11.13.1-3-s.js
index 78607b9b20d50f8a1ae273dabd71d1f77caa3d09..c4e9b34da176f31d503b7e353e077040c8ec15a7 100644
--- a/test/language/expressions/assignment/11.13.1-3-s.js
+++ b/test/language/expressions/assignment/11.13.1-3-s.js
@@ -16,7 +16,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/assignment/11.13.1-4-14-s.js b/test/language/expressions/assignment/11.13.1-4-14-s.js
index 05c58579ba2148e64bf68b9b910a99748fee5136..3c777f32beef5f681eea3c6ca19b25ff9bb320be 100644
--- a/test/language/expressions/assignment/11.13.1-4-14-s.js
+++ b/test/language/expressions/assignment/11.13.1-4-14-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     Number.MAX_VALUE = 42;
     return false;
diff --git a/test/language/expressions/assignment/11.13.1-4-28-s.js b/test/language/expressions/assignment/11.13.1-4-28-s.js
index 33ccd378a71f4676e779a7129552ba05a60d969e..5c3ed55e6f6daf4d4b1a346699b762ccb42a0779 100644
--- a/test/language/expressions/assignment/11.13.1-4-28-s.js
+++ b/test/language/expressions/assignment/11.13.1-4-28-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("var eval = 20;");
diff --git a/test/language/expressions/assignment/11.13.1-4-28gs.js b/test/language/expressions/assignment/11.13.1-4-28gs.js
index 5f9873637a7ca1e87122a3b665c78ea63206403d..bb06297c16f6606feda074ee597a90b5651db133 100644
--- a/test/language/expressions/assignment/11.13.1-4-28gs.js
+++ b/test/language/expressions/assignment/11.13.1-4-28gs.js
@@ -13,5 +13,4 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 Math.PI = 20;
diff --git a/test/language/expressions/assignment/11.13.1-4-29-s.js b/test/language/expressions/assignment/11.13.1-4-29-s.js
index 0d2b938ef8d1bc7c771f4c324819797dd027d6e6..3a6e66ce0d6c70be329ed69e2120ccefa8562e94 100644
--- a/test/language/expressions/assignment/11.13.1-4-29-s.js
+++ b/test/language/expressions/assignment/11.13.1-4-29-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("var arguments = 20;");
diff --git a/test/language/expressions/assignment/11.13.1-4-29gs.js b/test/language/expressions/assignment/11.13.1-4-29gs.js
index 0a9cd8eeac9299f68827878d7054c96a8005222e..bd9dc61eff96c09d7ce6c9eb77a03a5ddd1d5ca9 100644
--- a/test/language/expressions/assignment/11.13.1-4-29gs.js
+++ b/test/language/expressions/assignment/11.13.1-4-29gs.js
@@ -13,5 +13,4 @@ negative: .
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 Math.PI = 20;
diff --git a/test/language/expressions/assignment/11.13.1-4-3-s.js b/test/language/expressions/assignment/11.13.1-4-3-s.js
index 71e538f106a6928604bb9821ef5e29425eeb85aa..9e32b29ef6080ec3a086d374975d03acc1fd0663 100644
--- a/test/language/expressions/assignment/11.13.1-4-3-s.js
+++ b/test/language/expressions/assignment/11.13.1-4-3-s.js
@@ -16,8 +16,6 @@ includes:
 ---*/
 
 function testcase() {
-    'use strict';
-
     try {
       fnGlobalObject().Infinity = 42;
       return false;
diff --git a/test/language/expressions/assignment/11.13.1-4-30-s.js b/test/language/expressions/assignment/11.13.1-4-30-s.js
index dd548c2362c91871c10e41a0335e47d009aa2be7..98832f6b9833943094234ebf098fa0eef38b72a4 100644
--- a/test/language/expressions/assignment/11.13.1-4-30-s.js
+++ b/test/language/expressions/assignment/11.13.1-4-30-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("(eval) = 20;");
diff --git a/test/language/expressions/assignment/11.13.1-4-31-s.js b/test/language/expressions/assignment/11.13.1-4-31-s.js
index c4aa4b5c255b6d01b0de09618cfc00a09717f66c..3c415dc019a77eaa8eaf917c0312eeff5a04c2dc 100644
--- a/test/language/expressions/assignment/11.13.1-4-31-s.js
+++ b/test/language/expressions/assignment/11.13.1-4-31-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("(arguments) = 20;");
diff --git a/test/language/expressions/assignment/11.13.1-4-6-s.js b/test/language/expressions/assignment/11.13.1-4-6-s.js
index bc540dafc75e5cfa03fffd4e22d048ef75bd53df..2d1b2ffded8005648e9ae1b07ca10f71d0ad3dcc 100644
--- a/test/language/expressions/assignment/11.13.1-4-6-s.js
+++ b/test/language/expressions/assignment/11.13.1-4-6-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-  
   try {
     Function.length = 42;
     return false;
diff --git a/test/language/expressions/assignment/8.14.4-8-b_2.js b/test/language/expressions/assignment/8.14.4-8-b_2.js
index 28c18d3bd373419a908bd21ab8f01b29844ec4c4..4088737b9f7f354d68b458a48371afd99e70851a 100644
--- a/test/language/expressions/assignment/8.14.4-8-b_2.js
+++ b/test/language/expressions/assignment/8.14.4-8-b_2.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-    "use strict";
-    
     function foo() {};
     Object.defineProperty(foo.prototype, "bar", {value: "unwritable"}); 
     
diff --git a/test/language/expressions/compound-assignment/11.13.2-1-s.js b/test/language/expressions/compound-assignment/11.13.2-1-s.js
index 960dfff09c27d876e8d7e4ca561276dea6371c60..d033a8817d8f7ef6d2135942339312c4e2da2b8f 100644
--- a/test/language/expressions/compound-assignment/11.13.2-1-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-1-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-1-s
 description: >
-    Strict Mode - ReferenceError is thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(*=)
-    evaluates to an unresolvable reference
-flags: [onlyStrict]
+    ReferenceError is thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(*=) evaluates to an unresolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_1 *= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-10-s.js b/test/language/expressions/compound-assignment/11.13.2-10-s.js
index 8be037e6e938ea24b951108e77fdaa9ec2d36cf6..dfe63f85b339021a71c681d521336366a7ccc3f9 100644
--- a/test/language/expressions/compound-assignment/11.13.2-10-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-10-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-10-s
 description: >
-    Strict Mode - ReferenceError is thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(^=)
-    evaluates to an unresolvable reference
-flags: [onlyStrict]
+    ReferenceError is thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(^=) evaluates to an unresolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_10 ^= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-11-s.js b/test/language/expressions/compound-assignment/11.13.2-11-s.js
index e31b1828ae67daa4c34f00cee873adadd91fd378..21ffc82150f85bbec1e10e7eae484184eb6c35e5 100644
--- a/test/language/expressions/compound-assignment/11.13.2-11-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-11-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-11-s
 description: >
-    Strict Mode - ReferenceError is thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(|=)
-    evaluates to an unresolvable reference
-flags: [onlyStrict]
+    ReferenceError is thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(|=) evaluates to an unresolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_11 |= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-12-s.js b/test/language/expressions/compound-assignment/11.13.2-12-s.js
index e031b755e097cd22158b397997bf739793b6bab2..62300cb9408e39bcd2f387e315c654c9f4fcb5be 100644
--- a/test/language/expressions/compound-assignment/11.13.2-12-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-12-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-12-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(*=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(*=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_12 = 5
         _11_13_2_12 *= 2;
         return _11_13_2_12 === 10;
diff --git a/test/language/expressions/compound-assignment/11.13.2-13-s.js b/test/language/expressions/compound-assignment/11.13.2-13-s.js
index 54ff550a9c0ef4575aaf5c89279b05540565444d..eac6487d33fbe35f05152e8bff5a79d718d2179f 100644
--- a/test/language/expressions/compound-assignment/11.13.2-13-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-13-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-13-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(/=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(/=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_13 = 6
         _11_13_2_13 /= 2;
         return _11_13_2_13 === 3;
diff --git a/test/language/expressions/compound-assignment/11.13.2-14-s.js b/test/language/expressions/compound-assignment/11.13.2-14-s.js
index 6d7253b814bde89db3d398a7e234ac8484b183c6..ae466bfc4d23967a7ceaf455f876f3399098f305 100644
--- a/test/language/expressions/compound-assignment/11.13.2-14-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-14-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-14-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(%=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(%=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_14 = 5
         _11_13_2_14 %= 2;
         return _11_13_2_14 === 1;
diff --git a/test/language/expressions/compound-assignment/11.13.2-15-s.js b/test/language/expressions/compound-assignment/11.13.2-15-s.js
index e50699d083e8b250ed1874a1f65c615e07b2e683..240ea6c5b146a37512d1d7ef96c9a8da6e26aede 100644
--- a/test/language/expressions/compound-assignment/11.13.2-15-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-15-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-15-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(>>>=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(>>>=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_15 = 8
         _11_13_2_15 >>>= 2;
         return _11_13_2_15 === 2;
diff --git a/test/language/expressions/compound-assignment/11.13.2-16-s.js b/test/language/expressions/compound-assignment/11.13.2-16-s.js
index 605b05d6db563e8653cff0bb5dd1bde3f229fab6..9efbf94693e71ad35f5317a909fc202bca90beb3 100644
--- a/test/language/expressions/compound-assignment/11.13.2-16-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-16-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-16-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(-=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(-=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_16 = 5
         _11_13_2_16 -= 2;
         return _11_13_2_16 === 3;
diff --git a/test/language/expressions/compound-assignment/11.13.2-17-s.js b/test/language/expressions/compound-assignment/11.13.2-17-s.js
index e2fdde3e932573f8fb4358e84fbc07fcd3d7e18c..cafc339bbd6958f6da8214f66b44712b51f4c647 100644
--- a/test/language/expressions/compound-assignment/11.13.2-17-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-17-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-17-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(<<=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(<<=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_17 = 1;
         _11_13_2_17 <<= 2;
         return _11_13_2_17 === 4;
diff --git a/test/language/expressions/compound-assignment/11.13.2-18-s.js b/test/language/expressions/compound-assignment/11.13.2-18-s.js
index 2bad66a8152bc8bd1938b284e0b48f824840fd59..c9ce6defab724ffd41823de9e2c7e0ae2db37b19 100644
--- a/test/language/expressions/compound-assignment/11.13.2-18-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-18-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-18-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(>>=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(>>=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_18 = 4
         _11_13_2_18 >>= 2;
         return _11_13_2_18 === 1;
diff --git a/test/language/expressions/compound-assignment/11.13.2-19-s.js b/test/language/expressions/compound-assignment/11.13.2-19-s.js
index 53298a61ea0debd2bf78075ec0ca72962c3ee4a0..3b2ed5e35e14d1cdbbfb6f6f00bf2845496f03d0 100644
--- a/test/language/expressions/compound-assignment/11.13.2-19-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-19-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-19-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(+=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(+=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_19 = -1
         _11_13_2_19 += 10;
         return _11_13_2_19 === 9;
diff --git a/test/language/expressions/compound-assignment/11.13.2-2-s.js b/test/language/expressions/compound-assignment/11.13.2-2-s.js
index e6bd72e9ddfbda6ca66442148bbf4aceea600aae..4ef23dbe6f49533ca839ac09411a44086a9f102f 100644
--- a/test/language/expressions/compound-assignment/11.13.2-2-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-2-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-2-s
 description: >
-    Strict Mode - ReferenceError is thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(/=)
-    evaluates to an unresolvable reference
-flags: [onlyStrict]
+    Strict Mode - ReferenceError is thrown if the LeftHandSideExpression of a
+    Compound Assignment operator(/=) evaluates to an unresolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_2 /= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-20-s.js b/test/language/expressions/compound-assignment/11.13.2-20-s.js
index 1a3eb985bce41f96a6ba6e3a0352a4d3559f39d7..6eedb3ff29678f5e7e686a6a222d0fd3a86aac37 100644
--- a/test/language/expressions/compound-assignment/11.13.2-20-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-20-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-20-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(&=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(&=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_20 = 5
         _11_13_2_20 &= 3;
         return _11_13_2_20 === 1;
diff --git a/test/language/expressions/compound-assignment/11.13.2-21-s.js b/test/language/expressions/compound-assignment/11.13.2-21-s.js
index 6fd89da5dac3bfa399ab94c3bdc24bed49776b63..3d758012caf63b605a638822bf1d7a826982da83 100644
--- a/test/language/expressions/compound-assignment/11.13.2-21-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-21-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-21-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(^=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(^=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_21 = 5
         _11_13_2_21 ^= 3;
         return _11_13_2_21 === 6;
diff --git a/test/language/expressions/compound-assignment/11.13.2-22-s.js b/test/language/expressions/compound-assignment/11.13.2-22-s.js
index 963280d8499871825ec847784142bd6f7a94c402..11033eb54cbe88987c4206892d03d38c912a5b88 100644
--- a/test/language/expressions/compound-assignment/11.13.2-22-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-22-s.js
@@ -7,15 +7,12 @@
 /*---
 es5id: 11.13.2-22-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if the
-    LeftHandSideExpression of a Compound Assignment operator(|=)
-    evaluates to a resolvable reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if the LeftHandSideExpression of a Compound
+    Assignment operator(|=) evaluates to a resolvable reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_13_2_22 = 5
         _11_13_2_22 |= 2;
         return _11_13_2_22 === 7;
diff --git a/test/language/expressions/compound-assignment/11.13.2-23-s.js b/test/language/expressions/compound-assignment/11.13.2-23-s.js
index a7d40233014d49b481e4c856e70834656c3e250f..f7d7c27d3b2ada8747e35ddf4f364a70194f96e9 100644
--- a/test/language/expressions/compound-assignment/11.13.2-23-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-23-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-24-s.js b/test/language/expressions/compound-assignment/11.13.2-24-s.js
index 9a9f077a694a89a36702ee0d798df84ff3262987..f214a1bc6b855ac99627a2a4b3dd8cdb8582b4a3 100644
--- a/test/language/expressions/compound-assignment/11.13.2-24-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-24-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-25-s.js b/test/language/expressions/compound-assignment/11.13.2-25-s.js
index 5a4565c24452644f8fafb213a4beb82adea0b8f5..b21fc293bbe89b1af57bfdb70bcbf0974126fc02 100644
--- a/test/language/expressions/compound-assignment/11.13.2-25-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-25-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-26-s.js b/test/language/expressions/compound-assignment/11.13.2-26-s.js
index e04021b23c7300f67c8f70785d060d78e0f2e0c0..a1cbb7e4b956285fd0b5c1ffa3bf0a002b3066c4 100644
--- a/test/language/expressions/compound-assignment/11.13.2-26-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-26-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-27-s.js b/test/language/expressions/compound-assignment/11.13.2-27-s.js
index 850529e296b74f0fcfe3f4f51464930d43682839..4367a57aacdcdac2d407c6ee1e9bdd3b3abd3cc1 100644
--- a/test/language/expressions/compound-assignment/11.13.2-27-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-27-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-28-s.js b/test/language/expressions/compound-assignment/11.13.2-28-s.js
index 094b62e2b7b6e284af1ae6cc21b78e1bc9dbe43e..09c15f7a3db808cf128ed9e7af1c77f5adc87fa2 100644
--- a/test/language/expressions/compound-assignment/11.13.2-28-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-28-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-29-s.js b/test/language/expressions/compound-assignment/11.13.2-29-s.js
index d03719c5bb19c26c21f2ecf51a545d7a46547396..d4da2143d7cf3e1a3ffd0ee7cbbb0e8e08ebae86 100644
--- a/test/language/expressions/compound-assignment/11.13.2-29-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-29-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-3-s.js b/test/language/expressions/compound-assignment/11.13.2-3-s.js
index b562a6ea4ae7eca55411659930c04dba92bff78f..3c15e56b0893abbb3642869e61be3ff23479743f 100644
--- a/test/language/expressions/compound-assignment/11.13.2-3-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-3-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_3 %= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-30-s.js b/test/language/expressions/compound-assignment/11.13.2-30-s.js
index cb8d7faf7be51218e32b5fd0de4d5ddf45e39708..a743f92bf2e29b793a9e906f2ad5effd42776f73 100644
--- a/test/language/expressions/compound-assignment/11.13.2-30-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-30-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-31-s.js b/test/language/expressions/compound-assignment/11.13.2-31-s.js
index 4d5dc1ac3f1e0f24a6114b88db10a6675fae97b3..56a44ea09d4e0b3ad798615578f129fa596d24e9 100644
--- a/test/language/expressions/compound-assignment/11.13.2-31-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-31-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-32-s.js b/test/language/expressions/compound-assignment/11.13.2-32-s.js
index f892297b4283a17c1659f8e696a5ec4f819b2b21..4f2f156db1b92cdbf1ebebf7c2aede98aab441b4 100644
--- a/test/language/expressions/compound-assignment/11.13.2-32-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-32-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-33-s.js b/test/language/expressions/compound-assignment/11.13.2-33-s.js
index b65dddb1d01292bc0f7e12c6325f75540422f290..733550e6e029792d26b09ba6572fe8dee93ec743 100644
--- a/test/language/expressions/compound-assignment/11.13.2-33-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-33-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: 10,
diff --git a/test/language/expressions/compound-assignment/11.13.2-34-s.js b/test/language/expressions/compound-assignment/11.13.2-34-s.js
index ada34ca4479c2078855a71533faee1754ff1350f..b30a1c1acdcb0447f945690ad66764a328674a21 100644
--- a/test/language/expressions/compound-assignment/11.13.2-34-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-34-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-35-s.js b/test/language/expressions/compound-assignment/11.13.2-35-s.js
index b7046e2b3b887b3cf921df17e4e804c9fe197380..d1563bd2729085478551a6deb7dcccf3bb25c3ac 100644
--- a/test/language/expressions/compound-assignment/11.13.2-35-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-35-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-36-s.js b/test/language/expressions/compound-assignment/11.13.2-36-s.js
index 3220b87c6f4b679e66ce37d674b841075bc760f6..d7a322d9dd8e40cbbd1b0b016e816b35a6f790e3 100644
--- a/test/language/expressions/compound-assignment/11.13.2-36-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-36-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-37-s.js b/test/language/expressions/compound-assignment/11.13.2-37-s.js
index 43362e8bd3cf5920b7a0ed4678ea70be254e37cd..2484365bb32540c889d1455f9650fbc376027b41 100644
--- a/test/language/expressions/compound-assignment/11.13.2-37-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-37-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-38-s.js b/test/language/expressions/compound-assignment/11.13.2-38-s.js
index 9337990aec6510f108213d4b8a2165ca58a37262..5daca5f4516289f030d868f21ba01087b1fe01c3 100644
--- a/test/language/expressions/compound-assignment/11.13.2-38-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-38-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-39-s.js b/test/language/expressions/compound-assignment/11.13.2-39-s.js
index 0694aea2664c7af8cf179ed4f7b45607ec364888..07853f3f722c68ac9a7eea438f3c0780b29c65c4 100644
--- a/test/language/expressions/compound-assignment/11.13.2-39-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-39-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-4-s.js b/test/language/expressions/compound-assignment/11.13.2-4-s.js
index 7987813692489572252ea785a6e6806efdc019cb..1c2d609e8e5e74a70bbe5eadf3d293a2e2fe5ea5 100644
--- a/test/language/expressions/compound-assignment/11.13.2-4-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-4-s.js
@@ -10,12 +10,10 @@ description: >
     Strict Mode - ReferenceError is thrown if the
     LeftHandSideExpression of a Compound Assignment operator(+=)
     evaluates to an unresolvable reference
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_4 += 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-40-s.js b/test/language/expressions/compound-assignment/11.13.2-40-s.js
index 6aa5c36da75b6829b20624b5b05db2c0e6501208..b70b95c035102cea22eb7835ccd3585251d940ea 100644
--- a/test/language/expressions/compound-assignment/11.13.2-40-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-40-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-41-s.js b/test/language/expressions/compound-assignment/11.13.2-41-s.js
index 1bc308a8decad3e31fe58ff49646aa5df85640c5..b3522e2ea283363bc890b455fa98cb990ee8ff89 100644
--- a/test/language/expressions/compound-assignment/11.13.2-41-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-41-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-42-s.js b/test/language/expressions/compound-assignment/11.13.2-42-s.js
index 1456647b89ea5e22244a904ed2f09a95e340645a..4d4e130466bd858195d1b81110c724f35e3e17ce 100644
--- a/test/language/expressions/compound-assignment/11.13.2-42-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-42-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-43-s.js b/test/language/expressions/compound-assignment/11.13.2-43-s.js
index fe23653df327fe3089fb92d102853c58d1b58440..de3f26aed3ad37a6649baaec289052ea50ac66bd 100644
--- a/test/language/expressions/compound-assignment/11.13.2-43-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-43-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-44-s.js b/test/language/expressions/compound-assignment/11.13.2-44-s.js
index 97b2fe981b9817d39e80287cd339abe49d8c0388..d9fc2f07261adf960af273f25ef0f8d5591ba2d5 100644
--- a/test/language/expressions/compound-assignment/11.13.2-44-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-44-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/compound-assignment/11.13.2-45-s.js b/test/language/expressions/compound-assignment/11.13.2-45-s.js
index 362b297ea654e0af8d756b8bf94e072f86fc76a7..f9a6e0040749c5b6f0af4c061f4a40791429007e 100644
--- a/test/language/expressions/compound-assignment/11.13.2-45-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-45-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-45-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(*=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-46-s.js b/test/language/expressions/compound-assignment/11.13.2-46-s.js
index 5723292fc6f8d802df1c857e9ba5d568a855c83a..bdc4af1575c4d89a482086c860201df95c74548a 100644
--- a/test/language/expressions/compound-assignment/11.13.2-46-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-46-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-46-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(/=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-47-s.js b/test/language/expressions/compound-assignment/11.13.2-47-s.js
index ed0e21d4421ce8219a1341f8dbe2dc4f5d9b1a33..fbb0beb0bee1d0eccc5cb1b4ba84a1d7ede40225 100644
--- a/test/language/expressions/compound-assignment/11.13.2-47-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-47-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-47-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(%=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-48-s.js b/test/language/expressions/compound-assignment/11.13.2-48-s.js
index 360fb67b925abab488d165ac1921228c8b5e7a9d..821fc906fd060f7e9d10659c4a83d0d9152a45ab 100644
--- a/test/language/expressions/compound-assignment/11.13.2-48-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-48-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-48-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(+=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-49-s.js b/test/language/expressions/compound-assignment/11.13.2-49-s.js
index 020a4066d4f24de1c8ac6732b88e5072a0a48882..4a452befdae02cdffb9d278c7ef23931065e5355 100644
--- a/test/language/expressions/compound-assignment/11.13.2-49-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-49-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-49-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(-=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-5-s.js b/test/language/expressions/compound-assignment/11.13.2-5-s.js
index 41557960f1cf2571cfa89e2302843678202ef8d8..90c818281a504175f9017c5d0f5e2cf9d91808ef 100644
--- a/test/language/expressions/compound-assignment/11.13.2-5-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-5-s.js
@@ -10,12 +10,10 @@ description: >
     Strict Mode - ReferenceError is thrown if the
     LeftHandSideExpression of a Compound Assignment operator(-=)
     evaluates to an unresolvable reference
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_5 -= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-50-s.js b/test/language/expressions/compound-assignment/11.13.2-50-s.js
index 1ab47ea9bb4acdcc74669bae79693b360ea8321e..9d1ac4e5b30ed9251e556609f72d2f7290552fac 100644
--- a/test/language/expressions/compound-assignment/11.13.2-50-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-50-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-50-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(<<=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-51-s.js b/test/language/expressions/compound-assignment/11.13.2-51-s.js
index 1a3d46b8aef32582fcbcced2fbc674992d4af3a6..975c6dc3daa8fa93ce7eab553493c91b84a3c1fb 100644
--- a/test/language/expressions/compound-assignment/11.13.2-51-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-51-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-51-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(>>=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-52-s.js b/test/language/expressions/compound-assignment/11.13.2-52-s.js
index e6dda5399e8d9d96e08d8883e891daa5fd629895..ad8c00972afe4f885cd2b77b29bd62745859e5d6 100644
--- a/test/language/expressions/compound-assignment/11.13.2-52-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-52-s.js
@@ -16,7 +16,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-53-s.js b/test/language/expressions/compound-assignment/11.13.2-53-s.js
index 913765e6c7ea3acd50154b9f3436ec42cdd8d08b..93b7fe5a59115735ccdb176549467c4fbd11c78f 100644
--- a/test/language/expressions/compound-assignment/11.13.2-53-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-53-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-53-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(&=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-54-s.js b/test/language/expressions/compound-assignment/11.13.2-54-s.js
index ef7609354840ae3134787b3efbc627e38da93e8c..6f9259d2b0ceb4e5816be2bd4257c63c14539f8b 100644
--- a/test/language/expressions/compound-assignment/11.13.2-54-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-54-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-54-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(^=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-55-s.js b/test/language/expressions/compound-assignment/11.13.2-55-s.js
index 410f217e88e248094aa10068511963ee038ace6a..85269cdb3301fd0eebb1bf19345c7f7a530df9f8 100644
--- a/test/language/expressions/compound-assignment/11.13.2-55-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-55-s.js
@@ -9,14 +9,13 @@ es5id: 11.13.2-55-s
 description: >
     Strict Mode - TypeError is thrown if The LeftHandSide of a
     Compound Assignment operator(|=) is a reference to a non-existent
-    property of an object whose [[Extensible]] internal property if
+    property of an object whose [[Extensible]] internal property is
     false
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.preventExtensions(obj);
 
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-1-s.js b/test/language/expressions/compound-assignment/11.13.2-6-1-s.js
index af3c9590149a7360291db0371e9a4740c227a9c6..c290462fd89183cbd351665672c33f8bdeec6b2e 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-1-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-1-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval *= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-10-s.js b/test/language/expressions/compound-assignment/11.13.2-6-10-s.js
index 898efaff4dc28f58993b53763f74b86b9ff8ef5e..84caf2582927c9fde0ed61f67645ba87f053e7c9 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-10-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-10-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval ^= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-11-s.js b/test/language/expressions/compound-assignment/11.13.2-6-11-s.js
index 0d820038f7c9ac88f965aa252cf7da491c512316..573028ca6d7dc83e92f1053013d5bc86e62bc861 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-11-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-11-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval |= 20;"); 
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-12-s.js b/test/language/expressions/compound-assignment/11.13.2-6-12-s.js
index ae0d6ee0382a8e7aeefc2f70e9cec92400e7f8fe..1391aef66e1f5d3030ddc731db36d8ba16232f10 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-12-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-12-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments *= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-13-s.js b/test/language/expressions/compound-assignment/11.13.2-6-13-s.js
index 29f196a1899e2b4023d25663911fd23b2f6ff5d5..7c9abed67cffbe271b870fbcbfbc41f168660165 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-13-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-13-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments /= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-14-s.js b/test/language/expressions/compound-assignment/11.13.2-6-14-s.js
index 172f1b6447fe5d6c7217b2fe96dd1cf9fa2bf067..b2af07b0798c7781d02deeceec626a1cd7007e73 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-14-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-14-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments %= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-15-s.js b/test/language/expressions/compound-assignment/11.13.2-6-15-s.js
index 72cfdc82eb00130a03d1d1e7f47ec30a2f5231cd..4f82ceef729d8101ba787aa6aa0d426644fa9f08 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-15-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-15-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments += 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-16-s.js b/test/language/expressions/compound-assignment/11.13.2-6-16-s.js
index 3f31497a7dd6f704daebacdc5f53aa23ee38a5c3..0d2effc5571f759989da10cf7f6eec0d20f91b30 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-16-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-16-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments -= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-17-s.js b/test/language/expressions/compound-assignment/11.13.2-6-17-s.js
index 642f665c50d7247200cb3368282c29e6a9b7d21c..aad8bcee02c8bd2f482b381f15ed4e2b69d50d1b 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-17-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-17-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments <<= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-18-s.js b/test/language/expressions/compound-assignment/11.13.2-6-18-s.js
index 565e8bd4310abcdc593d43e1959cd4a7d50c7d97..18f7121d85da40ac7e5099255b145a68b39aee84 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-18-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-18-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments >>= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-19-s.js b/test/language/expressions/compound-assignment/11.13.2-6-19-s.js
index dea576c5cc8fbbf24b27feed1b0998d50e459c15..1c37e1ba5f42996b0c97d80cc214e9fb5c6ed368 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-19-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-19-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments >>>= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-1gs.js b/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
index d6b746f8ac5d3d6dfeef98e8b46983784f29c61e..8e42ac9ccc86f5ae1646b0675c59f49c66c22f32 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-1gs.js
@@ -13,5 +13,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 eval *= 20;
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-2-s.js b/test/language/expressions/compound-assignment/11.13.2-6-2-s.js
index 16384ede0a1fa4a6ba6420998a2ed2b6a1e036e7..d8170d30ec1527b68e7db5cde5bb90f7f6342a09 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-2-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-2-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval /= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-20-s.js b/test/language/expressions/compound-assignment/11.13.2-6-20-s.js
index 383209323145ec99f517b62175bb628c0c8edfa5..4f24caaf10c3d2da0484cb001259cce624390859 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-20-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-20-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments &= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-21-s.js b/test/language/expressions/compound-assignment/11.13.2-6-21-s.js
index 7ac92d21d6f2555dddac03800d87b2c609ac0470..bdc10ebcf2be595edd42f0f8c99fa75fa50929c5 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-21-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-21-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments ^= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-22-s.js b/test/language/expressions/compound-assignment/11.13.2-6-22-s.js
index af37d0d09788f2dabf56b2a9aad0a2d793429b66..abc28a6a6adfcf29021211de5d8945d2900d8376 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-22-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-22-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments |= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-3-s.js b/test/language/expressions/compound-assignment/11.13.2-6-3-s.js
index 2f9f546e3806811d04d9664d8d1d3e043574c3ff..5f11fc4a958fcca1d0169496204ece1eb2f98f44 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-3-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-3-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval %= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-4-s.js b/test/language/expressions/compound-assignment/11.13.2-6-4-s.js
index d4a00796f09356ccd01b9636f96c99f1d81236ba..e6091ca4f172f73f7c18ae1c9d817560830f4146 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-4-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-4-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval += 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-5-s.js b/test/language/expressions/compound-assignment/11.13.2-6-5-s.js
index 32a22156cd91f1ccea33c3cb8fb3b18a48f3804c..ccb5192a0b4d03ab9bce98cf8d6ce49945ad7dfe 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-5-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-5-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval -= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-6-s.js b/test/language/expressions/compound-assignment/11.13.2-6-6-s.js
index 996fa0412b2037cc22482e25c899668b49488b8e..e71fb144b8a1d5fe2d7700c720b8bf2cd01a5f81 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-6-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-6-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval <<= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-7-s.js b/test/language/expressions/compound-assignment/11.13.2-6-7-s.js
index 2264272c232b44d3f6093e0ba85447dda3759656..ae0ac5e2606cfee78e372470e006523bcdc4db63 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-7-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-7-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval >>= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-8-s.js b/test/language/expressions/compound-assignment/11.13.2-6-8-s.js
index 206ec9e50fe95f2b93c5951af54a66013b99e8f5..1cdfbbbbbc9d31392339e4f3b50648a46c31257a 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-8-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-8-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval >>>= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-9-s.js b/test/language/expressions/compound-assignment/11.13.2-6-9-s.js
index 974d759b875402d72dfeaa641e21ed50c8c6cf7c..5a734605090d570ff21e7040aad6e344d877900b 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-9-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-9-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval &= 20;");
diff --git a/test/language/expressions/compound-assignment/11.13.2-6-s.js b/test/language/expressions/compound-assignment/11.13.2-6-s.js
index f7b27f9fccb8e4c2c0b0e3073367ddf5a1eb40b9..a3c20ba1b656ef3c6f7e2f4f41dde51a38c1c960 100644
--- a/test/language/expressions/compound-assignment/11.13.2-6-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-6-s.js
@@ -10,12 +10,10 @@ description: >
     Strict Mode - ReferenceError is thrown if the
     LeftHandSideExpression of a Compound Assignment operator(<<=)
     evaluates to an unresolvable reference
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_6 <<= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-7-s.js b/test/language/expressions/compound-assignment/11.13.2-7-s.js
index d13373f7f9df9eb489040f8cdb38dac88d1e4568..5f74936ffa4e5f61f3a256ba8f02189fa94870ec 100644
--- a/test/language/expressions/compound-assignment/11.13.2-7-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-7-s.js
@@ -15,7 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_7 >>= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-8-s.js b/test/language/expressions/compound-assignment/11.13.2-8-s.js
index 85688f0617b109a6c4eb4dcea08bc6d498a889a0..9ec7950b778146e6a3bbf417ce7f9ac4a28485ee 100644
--- a/test/language/expressions/compound-assignment/11.13.2-8-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-8-s.js
@@ -10,12 +10,10 @@ description: >
     Strict Mode - ReferenceError is thrown if the
     LeftHandSideExpression of a Compound Assignment operator(>>>=)
     evaluates to an unresolvable reference
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_8 >>>= 1;");
             return false;
diff --git a/test/language/expressions/compound-assignment/11.13.2-9-s.js b/test/language/expressions/compound-assignment/11.13.2-9-s.js
index 84f880b736dfef46c5df261476edb232e8c72e73..cdf20282c5c1a0c4ff93f374532a41e389a3e59b 100644
--- a/test/language/expressions/compound-assignment/11.13.2-9-s.js
+++ b/test/language/expressions/compound-assignment/11.13.2-9-s.js
@@ -10,12 +10,10 @@ description: >
     Strict Mode - ReferenceError is thrown if the
     LeftHandSideExpression of a Compound Assignment operator(&=)
     evaluates to an unresolvable reference
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_11_13_2_9 &= 1;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-3-a-1-s.js b/test/language/expressions/delete/11.4.1-3-a-1-s.js
index aed870888cc4924b44cb0a814ffc1236349fb7e8..38e1653f278f66f7030bd192cb6df781eeba963f 100644
--- a/test/language/expressions/delete/11.4.1-3-a-1-s.js
+++ b/test/language/expressions/delete/11.4.1-3-a-1-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
 
         try {
             eval("delete obj");
diff --git a/test/language/expressions/delete/11.4.1-4-a-1-s.js b/test/language/expressions/delete/11.4.1-4-a-1-s.js
index c81303756efdfb5bc46566c589adda6f850e382b..f4f801e9a507da164236c6073e27b040f1755dae 100644
--- a/test/language/expressions/delete/11.4.1-4-a-1-s.js
+++ b/test/language/expressions/delete/11.4.1-4-a-1-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: "abc",
diff --git a/test/language/expressions/delete/11.4.1-4-a-2-s.js b/test/language/expressions/delete/11.4.1-4-a-2-s.js
index a5bfbe929bc25bccb9ac7831856b0f25241eaab1..25dddedc9b6509cad3bcd02006353fefdc084978 100644
--- a/test/language/expressions/delete/11.4.1-4-a-2-s.js
+++ b/test/language/expressions/delete/11.4.1-4-a-2-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/delete/11.4.1-4-a-3-s.js b/test/language/expressions/delete/11.4.1-4-a-3-s.js
index 27b173005166bd97e24d9855b21792ad86548f8b..304729795695ff03c95e0237eb051b25bd4ab1c4 100644
--- a/test/language/expressions/delete/11.4.1-4-a-3-s.js
+++ b/test/language/expressions/delete/11.4.1-4-a-3-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 11.4.1-4-a-3-s
 description: >
-    Strict Mode - TypeError isn't thrown when deleting configurable
-    data property
-flags: [onlyStrict]
+    TypeError isn't thrown when deleting configurable data property
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             value: "abc",
diff --git a/test/language/expressions/delete/11.4.1-4-a-4-s.js b/test/language/expressions/delete/11.4.1-4-a-4-s.js
index 61a189320e380450b23f43a9aabf79278371c48d..b592b58f8720738bc824c567b25b05cdd8a02834 100644
--- a/test/language/expressions/delete/11.4.1-4-a-4-s.js
+++ b/test/language/expressions/delete/11.4.1-4-a-4-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 11.4.1-4-a-4-s
 description: >
-    Strict Mode - TypeError isn't thrown when deleting configurable
-    accessor property
-flags: [onlyStrict]
+    TypeError isn't thrown when deleting configurable accessor property
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = {};
         Object.defineProperty(obj, "prop", {
             get: function () {
diff --git a/test/language/expressions/delete/11.4.1-4.a-3-s.js b/test/language/expressions/delete/11.4.1-4.a-3-s.js
index 9d33ad326d74fc2049c1db4839f9faf5c0a719b1..e3cf8ed7b8cf8d14c7a2be5dae8b60b426d150cf 100644
--- a/test/language/expressions/delete/11.4.1-4.a-3-s.js
+++ b/test/language/expressions/delete/11.4.1-4.a-3-s.js
@@ -17,8 +17,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   var o = {};
   var desc = { value : 1 }; // all other attributes default to false
   Object.defineProperty(o, "foo", desc);
diff --git a/test/language/expressions/delete/11.4.1-4.a-8-s.js b/test/language/expressions/delete/11.4.1-4.a-8-s.js
index 85df8b19acbf8b5aee4cd2e4c97b0cf89cbc3ff0..bef9940fb1fb6c9e158abb1f2f7dabaa2ef8cb0d 100644
--- a/test/language/expressions/delete/11.4.1-4.a-8-s.js
+++ b/test/language/expressions/delete/11.4.1-4.a-8-s.js
@@ -19,8 +19,6 @@ includes:
 ---*/
 
 function testcase() {
-  'use strict';
-  
   // NaN (15.1.1.1) has [[Configurable]] set to false.
   try {
     delete fnGlobalObject().NaN;
diff --git a/test/language/expressions/delete/11.4.1-4.a-9-s.js b/test/language/expressions/delete/11.4.1-4.a-9-s.js
index 5fa558657e79586674ad28155e9a1ac38538ba14..61eefe890c78f6e640644aae7e6686bcfc3f72a3 100644
--- a/test/language/expressions/delete/11.4.1-4.a-9-s.js
+++ b/test/language/expressions/delete/11.4.1-4.a-9-s.js
@@ -17,8 +17,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-  
   try {
     delete Math.LN2;
     return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-1-s.js b/test/language/expressions/delete/11.4.1-5-a-1-s.js
index 8995f4c6dc77b7a60812b3325ffce45e7ddf2f28..189f85954b8ed1ce0a24668da30707db7ff9042a 100644
--- a/test/language/expressions/delete/11.4.1-5-a-1-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-1-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_4_1_5 = 5;
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-10-s.js b/test/language/expressions/delete/11.4.1-5-a-10-s.js
index a21488c7198c22c09ba54b6a5970bdcf00ca235e..0c63f4fa41e81d19e345c6cc74502e91192f3a99 100644
--- a/test/language/expressions/delete/11.4.1-5-a-10-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-10-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var arrObj = [1,2,3];
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-11-s.js b/test/language/expressions/delete/11.4.1-5-a-11-s.js
index 0ba3d1ce3641f0d6bb65b792fdcc1182f44cf28d..881eead38753de453b20b62fab35dd3490b60be6 100644
--- a/test/language/expressions/delete/11.4.1-5-a-11-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-11-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var strObj = new String("abc");
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-12-s.js b/test/language/expressions/delete/11.4.1-5-a-12-s.js
index a57ae7d355b4bed58994080bb73a34640dd9612a..e723ee02c4b2cc026a4abcaff248572574498bef 100644
--- a/test/language/expressions/delete/11.4.1-5-a-12-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-12-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var boolObj = new Boolean(false);
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-13-s.js b/test/language/expressions/delete/11.4.1-5-a-13-s.js
index a31c1d4cf295e8e8af8ca6d95f13802b71516a10..952948132870a50b99021bd7c55848c4781afc17 100644
--- a/test/language/expressions/delete/11.4.1-5-a-13-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-13-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var numObj = new Number(0);
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-14-s.js b/test/language/expressions/delete/11.4.1-5-a-14-s.js
index 8ab4e72f3d3ecaf3e14873bb5b08574c92600939..1695ce9f457625d4b894d1b77774e04eb4d12c9f 100644
--- a/test/language/expressions/delete/11.4.1-5-a-14-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-14-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var dateObj = new Date();
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-15-s.js b/test/language/expressions/delete/11.4.1-5-a-15-s.js
index 4cf6425d3584b8f9383bb1960459678a6e05e5c3..7a3280793df4318aa70011c395d665336236b7e9 100644
--- a/test/language/expressions/delete/11.4.1-5-a-15-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-15-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var regObj = new RegExp();
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-16-s.js b/test/language/expressions/delete/11.4.1-5-a-16-s.js
index 8d46e415e0802b896402603807a43b4bbe865475..e7ba555e31adb69eea2e4dbdb96034df1f6e51f7 100644
--- a/test/language/expressions/delete/11.4.1-5-a-16-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-16-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var errObj = new Error();
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-17-s.js b/test/language/expressions/delete/11.4.1-5-a-17-s.js
index 606480f93473ea159612aeee316b2952f23c4512..b602437f72b037dbed0003a81f45d794580e23be 100644
--- a/test/language/expressions/delete/11.4.1-5-a-17-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-17-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
        try {
             eval("var argObj = (function (a, b) { delete arguments; }(1, 2));");
 
diff --git a/test/language/expressions/delete/11.4.1-5-a-18-s.js b/test/language/expressions/delete/11.4.1-5-a-18-s.js
index d5f771ac468e8bfdd848fe77410fd57ee628e1ae..16113ba069c63ae8e4a6d00755582a485b87d892 100644
--- a/test/language/expressions/delete/11.4.1-5-a-18-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-18-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("delete Object;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-19-s.js b/test/language/expressions/delete/11.4.1-5-a-19-s.js
index d3be0f1f75df805f57a63647010ba9650fd5275b..7d11834e028c2395151e9b1a9eecf3b01b218ebb 100644
--- a/test/language/expressions/delete/11.4.1-5-a-19-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-19-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("delete Function;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-2-s.js b/test/language/expressions/delete/11.4.1-5-a-2-s.js
index 0fdae270457acab8580bf08f0c222aa2ce408409..b65177ff4a261687fd1565f802fb535539d65abe 100644
--- a/test/language/expressions/delete/11.4.1-5-a-2-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-2-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         function funObj(x) {
             eval("delete x;");
         }
diff --git a/test/language/expressions/delete/11.4.1-5-a-20-s.js b/test/language/expressions/delete/11.4.1-5-a-20-s.js
index 6268b9d7878eb5fb5e33acd8f7fa6e44e5197fce..2c035455f37c3aaebf3639a3f4ebe54de2162961 100644
--- a/test/language/expressions/delete/11.4.1-5-a-20-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-20-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("delete Array;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-21-s.js b/test/language/expressions/delete/11.4.1-5-a-21-s.js
index 866610eda9a0e008e6d60342cb07e4150322d8c3..5ab0dd04ca2133e613723e5288b9000bd195914e 100644
--- a/test/language/expressions/delete/11.4.1-5-a-21-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-21-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("delete String;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-22-s.js b/test/language/expressions/delete/11.4.1-5-a-22-s.js
index fed93f2e61f9abca3752dbad68ad37b99660cd77..85ec8dcb389a2df3f6378657d159ba5d5d7f55f0 100644
--- a/test/language/expressions/delete/11.4.1-5-a-22-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-22-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("delete Boolean;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-23-s.js b/test/language/expressions/delete/11.4.1-5-a-23-s.js
index 11a50206e81457b73ba89db547cd8ed622a7b430..135187b90ef354f516e77bb410011b77aa6bc49b 100644
--- a/test/language/expressions/delete/11.4.1-5-a-23-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-23-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("delete Number;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-24-s.js b/test/language/expressions/delete/11.4.1-5-a-24-s.js
index 815d39fbc57fbcf9be5075b699454d16716301f9..947b331ed481cd53ba1f879eba189835b5d8596f 100644
--- a/test/language/expressions/delete/11.4.1-5-a-24-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-24-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("delete Date;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-25-s.js b/test/language/expressions/delete/11.4.1-5-a-25-s.js
index ba9a1b3ad7d1da370c438b7f84a4782c09aca008..29d0115c4a608549c460f3403c868c993865f944 100644
--- a/test/language/expressions/delete/11.4.1-5-a-25-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-25-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("delete RegExp;");
             return false;
diff --git a/test/language/expressions/delete/11.4.1-5-a-26-s.js b/test/language/expressions/delete/11.4.1-5-a-26-s.js
index 42e0896bc6e3cd93f98e2f051db6be0d44f6f469..874211bef46ff06e2fe2d8f0cdd173e5740ef29c 100644
--- a/test/language/expressions/delete/11.4.1-5-a-26-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-26-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var errorBackup = Error;
         try {
             eval("delete Error;");
diff --git a/test/language/expressions/delete/11.4.1-5-a-27-s.js b/test/language/expressions/delete/11.4.1-5-a-27-s.js
index 50c12a58cddc86a26c4fae0508c08f365ab7050c..9537170b0e41d20dbc1ead46dd353908c949ab96 100644
--- a/test/language/expressions/delete/11.4.1-5-a-27-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-27-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var a = {x:0, get y() { return 0;}};
         delete a.x;
         Object.preventExtensions(a);
diff --git a/test/language/expressions/delete/11.4.1-5-a-28-s.js b/test/language/expressions/delete/11.4.1-5-a-28-s.js
index 60383f41149669b38ad6126a1fdd132def228784..3fc103bac4608ac5760fa0401549195d3dbcabcf 100644
--- a/test/language/expressions/delete/11.4.1-5-a-28-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-28-s.js
@@ -7,12 +7,10 @@
 /*---
 es5id: 11.4.1-5-a-28-s
 description: Strict Mode - TypeError is not thrown when deleting RegExp.length
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-    "use strict";
     var a = new RegExp();
     var b = delete RegExp.length;
     return true;
diff --git a/test/language/expressions/delete/11.4.1-5-a-3-s.js b/test/language/expressions/delete/11.4.1-5-a-3-s.js
index 1ce91e5d1fc4f3ef59f844138a53c799cda932dc..433c259f008dc411d955150ad3e488c530432c58 100644
--- a/test/language/expressions/delete/11.4.1-5-a-3-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-3-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         function funObj () { }
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-4-s.js b/test/language/expressions/delete/11.4.1-5-a-4-s.js
index f27a4e4f9256409c0cc9addb529d614d961bb1fd..2472d49a17b0350be49da2d712f89e6a6b574d5f 100644
--- a/test/language/expressions/delete/11.4.1-5-a-4-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-4-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         function funObj(x, y, z) {
             eval("delete y;");
         }
diff --git a/test/language/expressions/delete/11.4.1-5-a-5-s.js b/test/language/expressions/delete/11.4.1-5-a-5-s.js
index 3ead231648cbca066becea9b41ce9ed272d5707c..f7235efbed84e8805d581e9039a80228e4d7ac9d 100644
--- a/test/language/expressions/delete/11.4.1-5-a-5-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-5-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_4_1_5 = true;
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-5gs.js b/test/language/expressions/delete/11.4.1-5-a-5gs.js
index 9700cadc332cde0364eac6f28acae051542f199c..6f7cae17cdd7c2b886694e3ff457614d18158f8a 100644
--- a/test/language/expressions/delete/11.4.1-5-a-5gs.js
+++ b/test/language/expressions/delete/11.4.1-5-a-5gs.js
@@ -13,7 +13,6 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var _11_4_1_5 = 7;
 throw NotEarlyError;
 delete _11_4_1_5;
diff --git a/test/language/expressions/delete/11.4.1-5-a-6-s.js b/test/language/expressions/delete/11.4.1-5-a-6-s.js
index 80770eb5028a1c477c8d20dc003b092e581804d1..2e7e1472d0023be14ca8aef92163b00e6bc33adb 100644
--- a/test/language/expressions/delete/11.4.1-5-a-6-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-6-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _11_4_1_5 = "abc";
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-7-s.js b/test/language/expressions/delete/11.4.1-5-a-7-s.js
index 3754c694c90a4685f125e7215ec7f01c90765c3d..f47870a7e682165ef34589d20e61d3039b5e66fc 100644
--- a/test/language/expressions/delete/11.4.1-5-a-7-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-7-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var obj = new Object();
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-8-s.js b/test/language/expressions/delete/11.4.1-5-a-8-s.js
index ef1b5aebe4484e547a5151efd81691b2c18fdc67..065ac181e9b3bcbd69c2ff49ac04b936ef4900b5 100644
--- a/test/language/expressions/delete/11.4.1-5-a-8-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-8-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var funObj = function () { };
 
         try {
diff --git a/test/language/expressions/delete/11.4.1-5-a-9-s.js b/test/language/expressions/delete/11.4.1-5-a-9-s.js
index 92067ac02407acfe94fba419b4146a2039b91af3..d2b67c258978b1da1073c02d3360fb3ae2ebaba4 100644
--- a/test/language/expressions/delete/11.4.1-5-a-9-s.js
+++ b/test/language/expressions/delete/11.4.1-5-a-9-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         function funObj () { };
 
         try {
diff --git a/test/language/expressions/delete/11.4.4-4.a-3-s.js b/test/language/expressions/delete/11.4.4-4.a-3-s.js
index ec7b9c343e6c964cacba0e31e16ee38815561936..f934b08e46c9c66f5781bb2bc0dab1d62deb7aa5 100644
--- a/test/language/expressions/delete/11.4.4-4.a-3-s.js
+++ b/test/language/expressions/delete/11.4.4-4.a-3-s.js
@@ -17,8 +17,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   var o = {};
   var desc = { value : 1 }; // all other attributes default to false
   Object.defineProperty(o, "foo", desc);
diff --git a/test/language/expressions/delete/S11.4.1_A5.js b/test/language/expressions/delete/S11.4.1_A5.js
index 5f6a26b6bb7fa7412f22a0e8beaf40c993dde13a..f3254baac2cc8310a9886ada79376d17559166ce 100644
--- a/test/language/expressions/delete/S11.4.1_A5.js
+++ b/test/language/expressions/delete/S11.4.1_A5.js
@@ -13,8 +13,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
-
 var reNames = Object.getOwnPropertyNames(RegExp);
 for (var i = 0, len = reNames.length; i < len; i++) {
   var reName = reNames[i];
diff --git a/test/language/expressions/object/11.1.5-1-s.js b/test/language/expressions/object/11.1.5-1-s.js
index 3cf4a31f62c152ff6baa9d6bce214b93e897f09d..ce4806e24c2b74226b065e8e11c5e5680edcdec4 100644
--- a/test/language/expressions/object/11.1.5-1-s.js
+++ b/test/language/expressions/object/11.1.5-1-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var obj = {set _11_1_5_1_fun(eval) {}};");
             return false;
diff --git a/test/language/expressions/object/11.1.5-1gs.js b/test/language/expressions/object/11.1.5-1gs.js
index 8cb4d4762fc52249dea2d11e052136a51f54ac52..c664f8da045458aa3214a82a5f8b1001e7551520 100644
--- a/test/language/expressions/object/11.1.5-1gs.js
+++ b/test/language/expressions/object/11.1.5-1gs.js
@@ -14,6 +14,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 var obj = { set _11_1_5_1_fun(eval) {}};
diff --git a/test/language/expressions/object/11.1.5-2-s.js b/test/language/expressions/object/11.1.5-2-s.js
index bea5ab3aa5efdcf4f79a7c3e366218c7b94e2150..37066ecf6eacaffb5fddbcb52763167d75065e32 100644
--- a/test/language/expressions/object/11.1.5-2-s.js
+++ b/test/language/expressions/object/11.1.5-2-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-         "use strict";
-
         try {
             eval("var obj = {set _11_1_5_2_fun(arguments) {} };");
              return false;
diff --git a/test/language/expressions/object/11.1.5-3-s.js b/test/language/expressions/object/11.1.5-3-s.js
index 73604b6311174e6d56bb8847229460de4bdf9ea2..2f3d7ede026b0e55d032073d641435770d3cf135 100644
--- a/test/language/expressions/object/11.1.5-3-s.js
+++ b/test/language/expressions/object/11.1.5-3-s.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - SyntaxError is thrown when  'evals'  occurs as the
     Identifier in a PropertySetParameterList of a PropertyAssignment
     if its FunctionBody is strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/expressions/object/11.1.5-4-s.js b/test/language/expressions/object/11.1.5-4-s.js
index fc5289f66707e34c1580998b8ffa1f2f0594b2e1..d77267df762896f037b4401c4f88ae336f256095 100644
--- a/test/language/expressions/object/11.1.5-4-s.js
+++ b/test/language/expressions/object/11.1.5-4-s.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - SyntaxError is thrown when 'arguments'  occurs as
     the Identifier in a PropertySetParameterList of a
     PropertyAssignment  if its FunctionBody is strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/expressions/object/11.1.5_6-2-1-s.js b/test/language/expressions/object/11.1.5_6-2-1-s.js
index 246808fa9d8d60604ddf5181bab1f55cb8ce55e6..f8c086c90758ff1297c8f2ea62f38e2a5d38fa4d 100644
--- a/test/language/expressions/object/11.1.5_6-2-1-s.js
+++ b/test/language/expressions/object/11.1.5_6-2-1-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var obj = {\
                 get _11_1_5_6_2_1() {\
diff --git a/test/language/expressions/object/11.1.5_6-2-2-s.js b/test/language/expressions/object/11.1.5_6-2-2-s.js
index 62c2932ac0eb0b2b41f269efce9e4a9bf512f2d8..4e14b3f06f2e5bef973353d0d884ada6889127f3 100644
--- a/test/language/expressions/object/11.1.5_6-2-2-s.js
+++ b/test/language/expressions/object/11.1.5_6-2-2-s.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - SyntaxError is thrown when an assignment to a
     reserved word or a future reserved word is made inside a strict
     mode FunctionBody of a PropertyAssignment
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/expressions/object/11.1.5_7-2-1-s.js b/test/language/expressions/object/11.1.5_7-2-1-s.js
index ff4b810903fb95e99d90bc786a0016e5d5177558..5caedbe7953a0de7434180094b101a911b37f911 100644
--- a/test/language/expressions/object/11.1.5_7-2-1-s.js
+++ b/test/language/expressions/object/11.1.5_7-2-1-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var data = \"data\";\
             var obj = {\
diff --git a/test/language/expressions/object/11.1.5_7-2-2-s.js b/test/language/expressions/object/11.1.5_7-2-2-s.js
index de928be568f5cb0a9312be027725967c45bbcaf3..4d4a6cb1d16e81f9676ac6bb4a5602890ec72814 100644
--- a/test/language/expressions/object/11.1.5_7-2-2-s.js
+++ b/test/language/expressions/object/11.1.5_7-2-2-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var data = \"data\";\
             var obj = {\
diff --git a/test/language/expressions/postfix-decrement/11.3.2-2-1-s.js b/test/language/expressions/postfix-decrement/11.3.2-2-1-s.js
index 0e5d6a705da307e9484099b4831fd3a3ab815287..c49829b0f0a30392dcb6cdb2d65988aea55789c3 100644
--- a/test/language/expressions/postfix-decrement/11.3.2-2-1-s.js
+++ b/test/language/expressions/postfix-decrement/11.3.2-2-1-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments--;");
diff --git a/test/language/expressions/postfix-decrement/11.3.2-2-2-s.js b/test/language/expressions/postfix-decrement/11.3.2-2-2-s.js
index 27761e51b110b1b45cfa647bbaf99158d9e3bf7a..e57a2af75b992f168ec6399c2f15ce2d234735ab 100644
--- a/test/language/expressions/postfix-decrement/11.3.2-2-2-s.js
+++ b/test/language/expressions/postfix-decrement/11.3.2-2-2-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval--;");
diff --git a/test/language/expressions/postfix-decrement/11.3.2-2-3-s.js b/test/language/expressions/postfix-decrement/11.3.2-2-3-s.js
index c36d2ce9d2b3ba2e6e07b08561f190ae89517bd9..bce2c7c4be2a5516dbbcf777e34b3453f5e3e0a6 100644
--- a/test/language/expressions/postfix-decrement/11.3.2-2-3-s.js
+++ b/test/language/expressions/postfix-decrement/11.3.2-2-3-s.js
@@ -7,14 +7,12 @@
 /*---
 es5id: 11.3.2-2-3-s
 description: >
-    Strict Mode - SyntaxError is not thrown if the identifier
-    'arguments[...]' appears as a PostfixExpression(arguments--)
-flags: [onlyStrict]
+    SyntaxError is not thrown if the identifier 'arguments[...]' appears as a
+    PostfixExpression(arguments--)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         arguments[1] = 7;
         arguments[1]--;
         return arguments[1]===6;
diff --git a/test/language/expressions/postfix-increment/11.3.1-2-1-s.js b/test/language/expressions/postfix-increment/11.3.1-2-1-s.js
index 7752c8e005abd173612633c3ed4f33368924d257..818c2cf55b3643e0cb9de75566abaf5b830436a4 100644
--- a/test/language/expressions/postfix-increment/11.3.1-2-1-s.js
+++ b/test/language/expressions/postfix-increment/11.3.1-2-1-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("arguments++;");
diff --git a/test/language/expressions/postfix-increment/11.3.1-2-1gs.js b/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
index 5725fb92284a0006112cd2529151a1b918c75532..d2a12983b995ad689e4919c59a36fa61745cc2c8 100644
--- a/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
+++ b/test/language/expressions/postfix-increment/11.3.1-2-1gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 arguments++;
diff --git a/test/language/expressions/postfix-increment/11.3.1-2-2-s.js b/test/language/expressions/postfix-increment/11.3.1-2-2-s.js
index 1684c05dec5f2b30ba039e3778c8fd6e90d16739..a4c6d871b0d2a75afdecabd31c8a0cff0a8af9b8 100644
--- a/test/language/expressions/postfix-increment/11.3.1-2-2-s.js
+++ b/test/language/expressions/postfix-increment/11.3.1-2-2-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("eval++;");
diff --git a/test/language/expressions/postfix-increment/11.3.1-2-3-s.js b/test/language/expressions/postfix-increment/11.3.1-2-3-s.js
index 69560ad9723e49e491de78a0256ae5ffee6e6e8b..14b9dadb06c1131823440de29526fe2d2401f3c4 100644
--- a/test/language/expressions/postfix-increment/11.3.1-2-3-s.js
+++ b/test/language/expressions/postfix-increment/11.3.1-2-3-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         arguments[1] = 7;
         arguments[1]++;
         return arguments[1]===8;
diff --git a/test/language/expressions/prefix-decrement/11.4.5-2-1-s.js b/test/language/expressions/prefix-decrement/11.4.5-2-1-s.js
index e0aba2fb48ba3adc9c3ca8f15882b54136313354..a1b6b976e25a8f74be5db1d1b9bd32573cba41e5 100644
--- a/test/language/expressions/prefix-decrement/11.4.5-2-1-s.js
+++ b/test/language/expressions/prefix-decrement/11.4.5-2-1-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("--eval;");
diff --git a/test/language/expressions/prefix-decrement/11.4.5-2-2-s.js b/test/language/expressions/prefix-decrement/11.4.5-2-2-s.js
index 3f68d5b308cf071f7009a1022dbae6eb5137302f..3ef57ec83da2cb3b6c062af1490900e7339ec3e3 100644
--- a/test/language/expressions/prefix-decrement/11.4.5-2-2-s.js
+++ b/test/language/expressions/prefix-decrement/11.4.5-2-2-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("--arguments;");
diff --git a/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js b/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
index a2644888699b7ca185760e0499cedae79873cafe..daec1dc94528062cc2d6886fdd159b4589eb77f5 100644
--- a/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
+++ b/test/language/expressions/prefix-decrement/11.4.5-2-2gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 --arguments;
diff --git a/test/language/expressions/prefix-decrement/11.4.5-2-3-s.js b/test/language/expressions/prefix-decrement/11.4.5-2-3-s.js
index e37fd53acfea3391f56dadd32486c4d2fb612ff8..bac4d8b48f3225b7bd734e742737e96a5d600c25 100644
--- a/test/language/expressions/prefix-decrement/11.4.5-2-3-s.js
+++ b/test/language/expressions/prefix-decrement/11.4.5-2-3-s.js
@@ -6,13 +6,11 @@
 
 /*---
 es5id: 11.4.5-2-3-s
-description: Strict Mode - SyntaxError is not thrown for --arguments[...]
-flags: [onlyStrict]
+description: SyntaxError is not thrown for --arguments[...]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         arguments[1] = 7;
         --arguments[1];
         return arguments[1]===6;
diff --git a/test/language/expressions/prefix-increment/11.4.4-2-1-s.js b/test/language/expressions/prefix-increment/11.4.4-2-1-s.js
index 25eff96980b383fe299d4876c2c944026b064bbc..f3f1c66572cb5a6be6ed0eaa28fa07015754e35d 100644
--- a/test/language/expressions/prefix-increment/11.4.4-2-1-s.js
+++ b/test/language/expressions/prefix-increment/11.4.4-2-1-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = eval;
         try {
             eval("++eval;");
diff --git a/test/language/expressions/prefix-increment/11.4.4-2-2-s.js b/test/language/expressions/prefix-increment/11.4.4-2-2-s.js
index 3864594acac1e6b6f3c72dfa409646fe0c4a40db..83994f55ca1e72fe9fdcf374a2858b2f8de6ab8c 100644
--- a/test/language/expressions/prefix-increment/11.4.4-2-2-s.js
+++ b/test/language/expressions/prefix-increment/11.4.4-2-2-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var blah = arguments;
         try {
             eval("++arguments;");
diff --git a/test/language/expressions/prefix-increment/11.4.4-2-3-s.js b/test/language/expressions/prefix-increment/11.4.4-2-3-s.js
index 1030ae553d61c1e1215b45cbf988b209526aa6ae..42ba02ac29fa84302491549874a570ca5c28bbf7 100644
--- a/test/language/expressions/prefix-increment/11.4.4-2-3-s.js
+++ b/test/language/expressions/prefix-increment/11.4.4-2-3-s.js
@@ -6,13 +6,11 @@
 
 /*---
 es5id: 11.4.4-2-3-s
-description: Strict Mode - SyntaxError is not thrown for ++arguments[...]
-flags: [onlyStrict]
+description: SyntaxError is not thrown for ++arguments[...]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         arguments[1] = 7;
         ++arguments[1];
         return arguments[1]===8;
diff --git a/test/language/function-code/10.4.3-1-10-s.js b/test/language/function-code/10.4.3-1-10-s.js
index 5067e2ee96861b37d451eb68edd0c6ef3671600d..a9bd31406be1b76cf80588d077a95a6814f7ae86 100644
--- a/test/language/function-code/10.4.3-1-10-s.js
+++ b/test/language/function-code/10.4.3-1-10-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-10-s
 description: >
     Strict Mode - checking 'this' (FunctionExpression includes strict
     directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-100-s.js b/test/language/function-code/10.4.3-1-100-s.js
index e5dbb0047e6185eebdad95dc57d7a3e6284539c4..4c8775a2d65f1e19fb919db25a418524c001a394 100644
--- a/test/language/function-code/10.4.3-1-100-s.js
+++ b/test/language/function-code/10.4.3-1-100-s.js
@@ -8,8 +8,7 @@
 es5id: 10.4.3-1-100-s
 description: >
     Strict Mode - checking 'this' (strict function passed as arg to
-    String.prototype.replace from non-strict context)
-flags: [onlyStrict]
+    String.prototype.replace)
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-100gs.js b/test/language/function-code/10.4.3-1-100gs.js
index 5ddbc42a1fdbe916a7cf1b02958526e5000bed0b..b2ee512d8ca17e5d5c914052efe225caf6814393 100644
--- a/test/language/function-code/10.4.3-1-100gs.js
+++ b/test/language/function-code/10.4.3-1-100gs.js
@@ -8,8 +8,7 @@
 es5id: 10.4.3-1-100gs
 description: >
     Strict Mode - checking 'this' (strict function passed as arg to
-    String.prototype.replace from non-strict context)
-flags: [onlyStrict]
+    String.prototype.replace)
 ---*/
 
 var x = 3;
diff --git a/test/language/function-code/10.4.3-1-102-s.js b/test/language/function-code/10.4.3-1-102-s.js
index 683a9621a8bbffd88afe5f0c0c0e8480e0e34620..64f674370ba44f2458cc421411029fa5a3d6bab0 100644
--- a/test/language/function-code/10.4.3-1-102-s.js
+++ b/test/language/function-code/10.4.3-1-102-s.js
@@ -8,8 +8,7 @@
 es5id: 10.4.3-1-102-s
 description: >
     Strict Mode - checking 'this' (strict anonymous function passed as
-    arg to String.prototype.replace from non-strict context)
-flags: [onlyStrict]
+    arg to String.prototype.replace)
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-102gs.js b/test/language/function-code/10.4.3-1-102gs.js
index 6f8e27e255601309678ea10bab1cf62bfe98e2e5..471ec4afae58b5c15e3b926bc3bd41c0c3f1768e 100644
--- a/test/language/function-code/10.4.3-1-102gs.js
+++ b/test/language/function-code/10.4.3-1-102gs.js
@@ -8,8 +8,7 @@
 es5id: 10.4.3-1-102gs
 description: >
     Strict Mode - checking 'this' (strict anonymous function passed as
-    arg to String.prototype.replace from non-strict context)
-flags: [onlyStrict]
+    arg to String.prototype.replace)
 ---*/
 
 var x = 3;
diff --git a/test/language/function-code/10.4.3-1-104.js b/test/language/function-code/10.4.3-1-104.js
index db504bb449786567008947d9f32766d3680e1a1d..f0bbaa53ea7408809139830151d61f18dde15bac 100644
--- a/test/language/function-code/10.4.3-1-104.js
+++ b/test/language/function-code/10.4.3-1-104.js
@@ -14,7 +14,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase(){
-  Object.defineProperty(Object.prototype, "x", { get: function () { "use strict"; return this; } }); 
+  Object.defineProperty(Object.prototype, "x", { get: function () { return this; } }); 
   if(!((5).x === 5)) return false;
   return true;
 }
diff --git a/test/language/function-code/10.4.3-1-106.js b/test/language/function-code/10.4.3-1-106.js
index c5ea985e17d9b9c492d3fb9e87b210a3fdda6993..885bd47600324f39de68340eb03eebb4dd5703e7 100644
--- a/test/language/function-code/10.4.3-1-106.js
+++ b/test/language/function-code/10.4.3-1-106.js
@@ -17,7 +17,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase(){
-  Object.defineProperty(Object.prototype, "x", { get: function () { "use strict"; return this; } }); 
+  Object.defineProperty(Object.prototype, "x", { get: function () { return this; } }); 
   if(!(typeof (5).x === "number")) return false;
   return true;
 }
diff --git a/test/language/function-code/10.4.3-1-10gs.js b/test/language/function-code/10.4.3-1-10gs.js
index e66ac27d1db725c9b7c5698e6fbbb0ec8beeb2e2..2a14002b2b4b0605b93d066581316a488a01a317 100644
--- a/test/language/function-code/10.4.3-1-10gs.js
+++ b/test/language/function-code/10.4.3-1-10gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-10gs
 description: >
     Strict - checking 'this' from a global scope (FunctionExpression
     includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var f = function () {
diff --git a/test/language/function-code/10.4.3-1-11-s.js b/test/language/function-code/10.4.3-1-11-s.js
index 787ecaf9f80605550be72d932ae90a9e891b1928..0866c503bbd38cb0eb70aab6f518021027ff47cb 100644
--- a/test/language/function-code/10.4.3-1-11-s.js
+++ b/test/language/function-code/10.4.3-1-11-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 return (function () {
     return typeof this;
 })() === "undefined";
diff --git a/test/language/function-code/10.4.3-1-11gs.js b/test/language/function-code/10.4.3-1-11gs.js
index a340500e18d28f013d425c86c95e40faac79e479..fc5ebbba097ac6e3083668311e409975561c35ad 100644
--- a/test/language/function-code/10.4.3-1-11gs.js
+++ b/test/language/function-code/10.4.3-1-11gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 if ((function () {
     return typeof this;
 })() !== "undefined") {
diff --git a/test/language/function-code/10.4.3-1-12-s.js b/test/language/function-code/10.4.3-1-12-s.js
index 971fad946d26d7368e9c7cc9b572b1e018f6a1c6..404185f2b50e0c72ceec5968032a08d081e16322 100644
--- a/test/language/function-code/10.4.3-1-12-s.js
+++ b/test/language/function-code/10.4.3-1-12-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-12-s
 description: >
     Strict Mode - checking 'this' (Anonymous FunctionExpression
     includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-12gs.js b/test/language/function-code/10.4.3-1-12gs.js
index dafa25b3b318ba7614d74c774459819805cb70e8..0f4ecb38b960d81fe8ae29bb386dcb09b5d9e32d 100644
--- a/test/language/function-code/10.4.3-1-12gs.js
+++ b/test/language/function-code/10.4.3-1-12gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-12gs
 description: >
     Strict - checking 'this' from a global scope (Anonymous
     FunctionExpression includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 if ((function () {
diff --git a/test/language/function-code/10.4.3-1-13-s.js b/test/language/function-code/10.4.3-1-13-s.js
index 1f81da5aede02631794e20f9ee56ae786e152ab1..721df26b441a173ba69822331b0ad4bb2883e93f 100644
--- a/test/language/function-code/10.4.3-1-13-s.js
+++ b/test/language/function-code/10.4.3-1-13-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var f = Function("return typeof this;");
 return f() !== "undefined";
 }
diff --git a/test/language/function-code/10.4.3-1-13gs.js b/test/language/function-code/10.4.3-1-13gs.js
index 98c5d565c5dbd3e0011e0474fc6d8e8b037381b2..6abfe01adc6e0424e803e870554bf5ceb8139a6a 100644
--- a/test/language/function-code/10.4.3-1-13gs.js
+++ b/test/language/function-code/10.4.3-1-13gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f = Function("return typeof this;");
 if (f() === "undefined") {
     throw "'this' had incorrect value!";
diff --git a/test/language/function-code/10.4.3-1-14-s.js b/test/language/function-code/10.4.3-1-14-s.js
index 5012e6cfc8c85fda190b5122705bcc2d442e1351..515ff9c96423a673e76ad520c8cc8679b9f55730 100644
--- a/test/language/function-code/10.4.3-1-14-s.js
+++ b/test/language/function-code/10.4.3-1-14-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-14-s
 description: >
     Strict Mode - checking 'this' (Function constructor includes
     strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-14gs.js b/test/language/function-code/10.4.3-1-14gs.js
index dd374264b9ba3ae35197263abbc2e77cd70721db..cac68ec19f4599948ff04eab4b98c59ab7a945a6 100644
--- a/test/language/function-code/10.4.3-1-14gs.js
+++ b/test/language/function-code/10.4.3-1-14gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-14gs
 description: >
     Strict - checking 'this' from a global scope (Function constructor
     includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var f = Function("\"use strict\";\nreturn typeof this;");
diff --git a/test/language/function-code/10.4.3-1-15-s.js b/test/language/function-code/10.4.3-1-15-s.js
index 441e10b0390865b2c270bea8fc490dce5548b8fd..082314c4bb59f1620cd21c3a4358371dfd1a5f05 100644
--- a/test/language/function-code/10.4.3-1-15-s.js
+++ b/test/language/function-code/10.4.3-1-15-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var f = new Function("return typeof this;");
 return f() !== "undefined";
 }
diff --git a/test/language/function-code/10.4.3-1-15gs.js b/test/language/function-code/10.4.3-1-15gs.js
index 5a5d56f8b82daac16f911167684af8b634cd24ed..973c12da4ddf4b7173e65e27f7116f499f496154 100644
--- a/test/language/function-code/10.4.3-1-15gs.js
+++ b/test/language/function-code/10.4.3-1-15gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f = new Function("return typeof this;");
 if (f() === "undefined") {
     throw "'this' had incorrect value!";
diff --git a/test/language/function-code/10.4.3-1-16-s.js b/test/language/function-code/10.4.3-1-16-s.js
index b6677aceff5a876c333d2cb9d492a9f1b6cdb68f..2cb9cbbdac2cd405a4742af39efcfa6808e8cb5e 100644
--- a/test/language/function-code/10.4.3-1-16-s.js
+++ b/test/language/function-code/10.4.3-1-16-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-16-s
 description: >
     Strict Mode - checking 'this' (New'ed Function constructor
     includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-16gs.js b/test/language/function-code/10.4.3-1-16gs.js
index 379be40f9f525ab92969d18701ee3ea64fa2f4fe..01bbc7af20f04fa5a3a13d4702b1ce0363c6136f 100644
--- a/test/language/function-code/10.4.3-1-16gs.js
+++ b/test/language/function-code/10.4.3-1-16gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-16gs
 description: >
     Strict - checking 'this' from a global scope (New'ed Function
     constructor includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var f = new Function("\"use strict\";\nreturn typeof this;");
diff --git a/test/language/function-code/10.4.3-1-17-s.js b/test/language/function-code/10.4.3-1-17-s.js
index 890dff1ec3436d7eb52f9b8e1e827f1a2d67bf11..a1fca5660470587d077eb0f23d2fe72902e94c42 100644
--- a/test/language/function-code/10.4.3-1-17-s.js
+++ b/test/language/function-code/10.4.3-1-17-s.js
@@ -14,7 +14,6 @@ includes:
 ---*/
 
 function testcase() {
-"use strict";
 return (eval("typeof this") === "undefined") && (eval("this") !== fnGlobalObject());
 }
 runTestCase(testcase);
diff --git a/test/language/function-code/10.4.3-1-17gs.js b/test/language/function-code/10.4.3-1-17gs.js
index 3f4397f68c580b45bef288c12669fb6c4a9684f5..6c37c63e3e4cbb522ceb2c80a80b81d555479e02 100644
--- a/test/language/function-code/10.4.3-1-17gs.js
+++ b/test/language/function-code/10.4.3-1-17gs.js
@@ -13,7 +13,6 @@ flags: [onlyStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
-"use strict";
 if (eval("this") !== fnGlobalObject()) {
     throw "'this' had incorrect value!";
 }
diff --git a/test/language/function-code/10.4.3-1-18gs.js b/test/language/function-code/10.4.3-1-18gs.js
index cdd174920a700c7c0abfff7ba3bb391d9735a232..f32c7c1012b5938c98117ba77cf8e9063699bfbe 100644
--- a/test/language/function-code/10.4.3-1-18gs.js
+++ b/test/language/function-code/10.4.3-1-18gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-18gs
 description: >
     Strict - checking 'this' from a global scope (eval includes strict
     directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-19-s.js b/test/language/function-code/10.4.3-1-19-s.js
index 3eeb1111c8e7a0182ef3a1433df85576a85a39c1..618887f382971f8c254de9755141670f701e621d 100644
--- a/test/language/function-code/10.4.3-1-19-s.js
+++ b/test/language/function-code/10.4.3-1-19-s.js
@@ -16,7 +16,6 @@ includes:
 ---*/
 
 function testcase() {
-"use strict";
 var my_eval = eval;
 return my_eval("this") === fnGlobalObject();
 }
diff --git a/test/language/function-code/10.4.3-1-19gs.js b/test/language/function-code/10.4.3-1-19gs.js
index f590daf7dd96f271c98c95decb20bf86246ebd8e..0c866a51f4a6db3360be7e8e8ac191fa21b37bbf 100644
--- a/test/language/function-code/10.4.3-1-19gs.js
+++ b/test/language/function-code/10.4.3-1-19gs.js
@@ -13,7 +13,6 @@ flags: [onlyStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
-"use strict";
 var my_eval = eval;
 if (my_eval("this") !== fnGlobalObject()) {
     throw "'this' had incorrect value!";
diff --git a/test/language/function-code/10.4.3-1-20-s.js b/test/language/function-code/10.4.3-1-20-s.js
index 1ad0818128bee68eb22ddec74ea43eadc6749ab2..106a6d12e8d855232ad61d9ba3f09dfa7e90b97e 100644
--- a/test/language/function-code/10.4.3-1-20-s.js
+++ b/test/language/function-code/10.4.3-1-20-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-20-s
 description: >
     Strict Mode - checking 'this' (indirect eval includes strict
     directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-20gs.js b/test/language/function-code/10.4.3-1-20gs.js
index a8fcd836713c2d9fa54ab53af23cd1118be66d89..c10770398f1be8b7e316fe82c4d9e260c2107f2d 100644
--- a/test/language/function-code/10.4.3-1-20gs.js
+++ b/test/language/function-code/10.4.3-1-20gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-20gs
 description: >
     Strict - checking 'this' from a global scope (indirect eval
     includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-21-s.js b/test/language/function-code/10.4.3-1-21-s.js
index 228a9e963ceee1816bdaec5e2e70bfd3422719e0..4446cc6c7d016355712ae898c263268b354bd6dc 100644
--- a/test/language/function-code/10.4.3-1-21-s.js
+++ b/test/language/function-code/10.4.3-1-21-s.js
@@ -16,7 +16,6 @@ includes:
 ---*/
 
 function testcase() {
-"use strict";
 function f() {
     return this;
 }
diff --git a/test/language/function-code/10.4.3-1-21gs.js b/test/language/function-code/10.4.3-1-21gs.js
index d5adf0316622260eef5943579d0a78702f52d020..74f33f22ca046e27a927d5f49334daebeb98120e 100644
--- a/test/language/function-code/10.4.3-1-21gs.js
+++ b/test/language/function-code/10.4.3-1-21gs.js
@@ -13,7 +13,6 @@ flags: [onlyStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
-"use strict";
 function f() {
     return this;
 }
diff --git a/test/language/function-code/10.4.3-1-22-s.js b/test/language/function-code/10.4.3-1-22-s.js
index 170c680daf740b7c08f14d847e2fe2194133f4b0..7f3a974d748a1a987694df2f511fa739f45495d6 100644
--- a/test/language/function-code/10.4.3-1-22-s.js
+++ b/test/language/function-code/10.4.3-1-22-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-22-s
 description: >
     Strict Mode - checking 'this' (New'ed object from
     FunctionDeclaration includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-22gs.js b/test/language/function-code/10.4.3-1-22gs.js
index 92eacaf004bbc3fbf496f79c423c7a8c78f8a2e7..71c2b813737a2ba530a7458d146ba1a77a65874e 100644
--- a/test/language/function-code/10.4.3-1-22gs.js
+++ b/test/language/function-code/10.4.3-1-22gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-22gs
 description: >
     Strict - checking 'this' from a global scope (New'ed object from
     FunctionDeclaration includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-23-s.js b/test/language/function-code/10.4.3-1-23-s.js
index 9ac3fa3f490493b82258e27e93e5ece422b8f490..a8d0753d908e8f7651f6d23a428c3b825abcdd9d 100644
--- a/test/language/function-code/10.4.3-1-23-s.js
+++ b/test/language/function-code/10.4.3-1-23-s.js
@@ -16,7 +16,6 @@ includes:
 ---*/
 
 function testcase() {
-"use strict";
 var f = function () {
     return this;
 }
diff --git a/test/language/function-code/10.4.3-1-23gs.js b/test/language/function-code/10.4.3-1-23gs.js
index c3831a6be75ae47de56bba4ffd2d512e92cf6e42..83be79857208be5e75c99fb6e39149890e79ec2b 100644
--- a/test/language/function-code/10.4.3-1-23gs.js
+++ b/test/language/function-code/10.4.3-1-23gs.js
@@ -13,7 +13,6 @@ flags: [onlyStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
-"use strict";
 var f = function () {
     return this;
 }
diff --git a/test/language/function-code/10.4.3-1-24-s.js b/test/language/function-code/10.4.3-1-24-s.js
index 7f25e9960b2d79cd4eb3293a69928724b92a889c..a9d26f1809858ae9276da0506666fd07bd32d638 100644
--- a/test/language/function-code/10.4.3-1-24-s.js
+++ b/test/language/function-code/10.4.3-1-24-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-24-s
 description: >
     Strict Mode - checking 'this' (New'ed object from
     FunctionExpression includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-24gs.js b/test/language/function-code/10.4.3-1-24gs.js
index af9dbfbf938956fa91ac70560ad9c8fa707cbcac..238ad408404874c8e2ca4090251f793873c522f8 100644
--- a/test/language/function-code/10.4.3-1-24gs.js
+++ b/test/language/function-code/10.4.3-1-24gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-24gs
 description: >
     Strict - checking 'this' from a global scope (New'ed object from
     FunctionExpression includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-25-s.js b/test/language/function-code/10.4.3-1-25-s.js
index ad6d42e8362352d8ed7f201d03acdee490979dfc..39aff6f56b85724bac6ad32421fdb8424390c90f 100644
--- a/test/language/function-code/10.4.3-1-25-s.js
+++ b/test/language/function-code/10.4.3-1-25-s.js
@@ -16,7 +16,6 @@ includes:
 ---*/
 
 function testcase() {
-"use strict";
 var obj = new (function () {
     return this;
 });
diff --git a/test/language/function-code/10.4.3-1-25gs.js b/test/language/function-code/10.4.3-1-25gs.js
index 2425d30b6243c762f71ec69204a3ecbe485b411b..a75b004c8cfb00ad126f47cc6e6209a61688d96f 100644
--- a/test/language/function-code/10.4.3-1-25gs.js
+++ b/test/language/function-code/10.4.3-1-25gs.js
@@ -13,7 +13,6 @@ flags: [onlyStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
-"use strict";
 var obj = new (function () {
     return this;
 });
diff --git a/test/language/function-code/10.4.3-1-26-s.js b/test/language/function-code/10.4.3-1-26-s.js
index 0872b447015f253f74f39cf12ccaf6bf91811a08..49e984b1a680d0070309bdaf0a665cd0899285a0 100644
--- a/test/language/function-code/10.4.3-1-26-s.js
+++ b/test/language/function-code/10.4.3-1-26-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-26-s
 description: >
     Strict Mode - checking 'this' (New'ed object from Anonymous
     FunctionExpression includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-26gs.js b/test/language/function-code/10.4.3-1-26gs.js
index 4f1357c721bcd5288a9d72495e6b01dbff7fef3f..070ad118ceaf9a47a95df42ae57eb3b313c8ccab 100644
--- a/test/language/function-code/10.4.3-1-26gs.js
+++ b/test/language/function-code/10.4.3-1-26gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-26gs
 description: >
     Strict - checking 'this' from a global scope (New'ed object from
     Anonymous FunctionExpression includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-27-s.js b/test/language/function-code/10.4.3-1-27-s.js
index dd5709a115ac847d5eb02ce8617a461a968eb8eb..7680a77abdcddcdaec05aabb1e78bec23eee6360 100644
--- a/test/language/function-code/10.4.3-1-27-s.js
+++ b/test/language/function-code/10.4.3-1-27-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 function f1() {
     function f() {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-27gs.js b/test/language/function-code/10.4.3-1-27gs.js
index 102880e9fb2ac78d75752b93c44f1cce2bd62fe7..5535ce0af6bbd8499c89c139b2f828e0f624cbbb 100644
--- a/test/language/function-code/10.4.3-1-27gs.js
+++ b/test/language/function-code/10.4.3-1-27gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f1() {
     function f() {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-28-s.js b/test/language/function-code/10.4.3-1-28-s.js
index c4dc405e1ef2af623eebe921795c8db1112aa055..45451f71f05413d11849141bb07bae347651db55 100644
--- a/test/language/function-code/10.4.3-1-28-s.js
+++ b/test/language/function-code/10.4.3-1-28-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 function f1() {
     var f = function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-28gs.js b/test/language/function-code/10.4.3-1-28gs.js
index dc5014ef24e72c3d29c7d684568a0431dd0e28f1..eda4d411dda5b6213776a9c3e90bc740c3b0a2df 100644
--- a/test/language/function-code/10.4.3-1-28gs.js
+++ b/test/language/function-code/10.4.3-1-28gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f1() {
     var f = function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-29-s.js b/test/language/function-code/10.4.3-1-29-s.js
index 25e62e418d079ed3a9ef80999b6a004503e11f6f..e5fd11ef912d1764183d1711708893d80cf232ca 100644
--- a/test/language/function-code/10.4.3-1-29-s.js
+++ b/test/language/function-code/10.4.3-1-29-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 function f1() {
     return ((function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-29gs.js b/test/language/function-code/10.4.3-1-29gs.js
index a148602bbec2df8703b9d1d206305370f9f1ba5f..7d578a7042230968bdaada2991e4de188b8b6248 100644
--- a/test/language/function-code/10.4.3-1-29gs.js
+++ b/test/language/function-code/10.4.3-1-29gs.js
@@ -13,7 +13,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f1() {
     return ((function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-30-s.js b/test/language/function-code/10.4.3-1-30-s.js
index 54e527dd114081901d852467cc2bef4a65d66831..a3c3b88265475c4fdcf6879fdc0329178825ca15 100644
--- a/test/language/function-code/10.4.3-1-30-s.js
+++ b/test/language/function-code/10.4.3-1-30-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var f1 = function () {
     function f() {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-30gs.js b/test/language/function-code/10.4.3-1-30gs.js
index 5fedb073370ca449824b81f185ec158db61e5d54..f2fa92053b515c79c269163883bbc27d489cea26 100644
--- a/test/language/function-code/10.4.3-1-30gs.js
+++ b/test/language/function-code/10.4.3-1-30gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f1 = function () {
     function f() {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-31-s.js b/test/language/function-code/10.4.3-1-31-s.js
index ca989d4b3339878d6d11f729885aaba45e2b398a..9f40662a4f74c23cd0510ef777aabab478df7180 100644
--- a/test/language/function-code/10.4.3-1-31-s.js
+++ b/test/language/function-code/10.4.3-1-31-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var f1 = function () {
     var f = function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-31gs.js b/test/language/function-code/10.4.3-1-31gs.js
index aa5284c2e80e2d1d118e8e2582145697a2e1b43b..b0125594e592365a6592b6e15511e0dd7e470756 100644
--- a/test/language/function-code/10.4.3-1-31gs.js
+++ b/test/language/function-code/10.4.3-1-31gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f1 = function () {
     var f = function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-32-s.js b/test/language/function-code/10.4.3-1-32-s.js
index 6a4801c14274f4d4558d3e125831f0556cb0dd5d..ffa1018d81f3e4260da6d3945d57999e66cdf19f 100644
--- a/test/language/function-code/10.4.3-1-32-s.js
+++ b/test/language/function-code/10.4.3-1-32-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var f1 = function () {
     return ((function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-32gs.js b/test/language/function-code/10.4.3-1-32gs.js
index b0c542a45b9e3d5e9b6dc7ab5a93a15f9223dae4..e4ef88779fadd1ef50ed3db4ea9bffad875797fa 100644
--- a/test/language/function-code/10.4.3-1-32gs.js
+++ b/test/language/function-code/10.4.3-1-32gs.js
@@ -13,7 +13,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f1 = function () {
     return ((function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-33-s.js b/test/language/function-code/10.4.3-1-33-s.js
index a6104e8ea27cdf3f55e7735fe713c459e581b4a6..2aae61cc19e679686e9b5506df9a3f4411cbb49f 100644
--- a/test/language/function-code/10.4.3-1-33-s.js
+++ b/test/language/function-code/10.4.3-1-33-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 return (function () {
     function f() {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-33gs.js b/test/language/function-code/10.4.3-1-33gs.js
index 83f073aefb38c76346c63af7416f4b8108cf309c..dc4adc50fb3b65030b9b341480ac8a49fe85d5c1 100644
--- a/test/language/function-code/10.4.3-1-33gs.js
+++ b/test/language/function-code/10.4.3-1-33gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 if (! ((function () {
     function f() {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-34-s.js b/test/language/function-code/10.4.3-1-34-s.js
index 94744f6b786e71cadbd7602261643e891975490b..0d119eaa04a12f5d136498c1c50b626940cf2cc4 100644
--- a/test/language/function-code/10.4.3-1-34-s.js
+++ b/test/language/function-code/10.4.3-1-34-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 return (function () {
     var f = function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-34gs.js b/test/language/function-code/10.4.3-1-34gs.js
index 0e94df525188793eb0000c6427ad55ed5c415abb..2254ef578c21129938941feafb1cf4dd5fe0f9d6 100644
--- a/test/language/function-code/10.4.3-1-34gs.js
+++ b/test/language/function-code/10.4.3-1-34gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 if (! ((function () {
     var f = function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-35-s.js b/test/language/function-code/10.4.3-1-35-s.js
index 3d7a2fbd59d3ebd3a37c691d96d8ef99b4d22965..f03887bf08c34ae5f2ede9f2df07f90543f984dd 100644
--- a/test/language/function-code/10.4.3-1-35-s.js
+++ b/test/language/function-code/10.4.3-1-35-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 return (function () {
     return ((function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-35gs.js b/test/language/function-code/10.4.3-1-35gs.js
index 7c67755e1faf5163cf863a960ff704072795aa3c..013022619d6fe54cb9112216e64a006ed1a18622 100644
--- a/test/language/function-code/10.4.3-1-35gs.js
+++ b/test/language/function-code/10.4.3-1-35gs.js
@@ -13,7 +13,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 if (! ((function () {
     return ((function () {
         return typeof this;
diff --git a/test/language/function-code/10.4.3-1-36-s.js b/test/language/function-code/10.4.3-1-36-s.js
index 9c88cbe47bf8b49238a4f0d79982072ff809d3eb..6833878d45bdda0da7f7d60d5ce34fdd35342b73 100644
--- a/test/language/function-code/10.4.3-1-36-s.js
+++ b/test/language/function-code/10.4.3-1-36-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-36-s
 description: >
     Strict Mode - checking 'this' (FunctionDeclaration defined within
     a FunctionDeclaration with a strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-36gs.js b/test/language/function-code/10.4.3-1-36gs.js
index 71a7f9c2fa4e622748031b5877ebd1dcb6bc8e1f..529bb36b685fe5466e95caf877d4bcd1598fcbfc 100644
--- a/test/language/function-code/10.4.3-1-36gs.js
+++ b/test/language/function-code/10.4.3-1-36gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (FunctionDeclaration
     defined within a FunctionDeclaration with a strict directive
     prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 function f1() {
diff --git a/test/language/function-code/10.4.3-1-37-s.js b/test/language/function-code/10.4.3-1-37-s.js
index 4330593ff19e2f49b68e488578ac947367582c9a..69d3e754e7e8ed7f568450154359d0cd8c9f3103 100644
--- a/test/language/function-code/10.4.3-1-37-s.js
+++ b/test/language/function-code/10.4.3-1-37-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-37-s
 description: >
     Strict Mode - checking 'this' (FunctionExpression defined within a
     FunctionDeclaration with a strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-37gs.js b/test/language/function-code/10.4.3-1-37gs.js
index 4ce9b7cf7e3cc53d146aedb0b9710aa116f7af9a..b0c1c130e9789668342d61681a38bafab409f8b2 100644
--- a/test/language/function-code/10.4.3-1-37gs.js
+++ b/test/language/function-code/10.4.3-1-37gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (FunctionExpression
     defined within a FunctionDeclaration with a strict directive
     prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 function f1() {
diff --git a/test/language/function-code/10.4.3-1-38-s.js b/test/language/function-code/10.4.3-1-38-s.js
index 773a07108b383c4b7a6596a97dc2318a949f60bd..754fc362e6a1bd3a41eb6c07eb4f63bc2c9b2cf1 100644
--- a/test/language/function-code/10.4.3-1-38-s.js
+++ b/test/language/function-code/10.4.3-1-38-s.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - checking 'this' (Anonymous FunctionExpression
     defined within a FunctionDeclaration with a strict directive
     prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-38gs.js b/test/language/function-code/10.4.3-1-38gs.js
index 34bd493217849ff1b761bac54e664a199c551f71..fa2deb8f6c763937a3b2eb44e92734d524b32d1a 100644
--- a/test/language/function-code/10.4.3-1-38gs.js
+++ b/test/language/function-code/10.4.3-1-38gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (Anonymous
     FunctionExpression defined within a FunctionDeclaration with a
     strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 function f1() {
diff --git a/test/language/function-code/10.4.3-1-39-s.js b/test/language/function-code/10.4.3-1-39-s.js
index 20ae974c77a60671011f19e068465604ef34718e..5d8694fa7feb5c310de8db121a6c6d847caf03ac 100644
--- a/test/language/function-code/10.4.3-1-39-s.js
+++ b/test/language/function-code/10.4.3-1-39-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-39-s
 description: >
     Strict Mode - checking 'this' (FunctionDeclaration defined within
     a FunctionExpression with a strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-39gs.js b/test/language/function-code/10.4.3-1-39gs.js
index 6ffca51995c9cec0ea1b1b9b96f2977f97a16632..7a9732dd45f3d07179db4e8a408c9a94f0babc6a 100644
--- a/test/language/function-code/10.4.3-1-39gs.js
+++ b/test/language/function-code/10.4.3-1-39gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (FunctionDeclaration
     defined within a FunctionExpression with a strict directive
     prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var f1 = function () {
diff --git a/test/language/function-code/10.4.3-1-40-s.js b/test/language/function-code/10.4.3-1-40-s.js
index 3acd6ed16c331b6cb927e82af4460d3390a579c4..daeff64a94d712363c158b4d3f56e82fe744b629 100644
--- a/test/language/function-code/10.4.3-1-40-s.js
+++ b/test/language/function-code/10.4.3-1-40-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-40-s
 description: >
     Strict Mode - checking 'this' (FunctionExpression defined within a
     FunctionExpression with a strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-40gs.js b/test/language/function-code/10.4.3-1-40gs.js
index c0ad89dc73eb3ba3b3f4fc8be4927411b66cfdca..db2511083fe994d1d77192cf4c9bb1b9e26aa3db 100644
--- a/test/language/function-code/10.4.3-1-40gs.js
+++ b/test/language/function-code/10.4.3-1-40gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (FunctionExpression
     defined within a FunctionExpression with a strict directive
     prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var f1 = function () {
diff --git a/test/language/function-code/10.4.3-1-41-s.js b/test/language/function-code/10.4.3-1-41-s.js
index 90acc8f61795e6bc7af7887da3976f9556e56dd3..1fdfe6e13b4cff87a53ef9ea4b557ea06f68c377 100644
--- a/test/language/function-code/10.4.3-1-41-s.js
+++ b/test/language/function-code/10.4.3-1-41-s.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - checking 'this' (Anonymous FunctionExpression
     defined within a FunctionExpression with a strict directive
     prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-41gs.js b/test/language/function-code/10.4.3-1-41gs.js
index 64d3111cf7ca517287273f24700f3992ae3bf323..842eb31f3d09729662911c5c339dc274f4c161ca 100644
--- a/test/language/function-code/10.4.3-1-41gs.js
+++ b/test/language/function-code/10.4.3-1-41gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (Anonymous
     FunctionExpression defined within a FunctionExpression with a
     strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var f1 = function () {
diff --git a/test/language/function-code/10.4.3-1-42-s.js b/test/language/function-code/10.4.3-1-42-s.js
index 65bd712a09cdfe3b22c87d805cc14c628ce7fd5c..cb5dbc26bb4b283a1a06de5c6a44601bdc2d1ab0 100644
--- a/test/language/function-code/10.4.3-1-42-s.js
+++ b/test/language/function-code/10.4.3-1-42-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-42-s
 description: >
     Strict Mode - checking 'this' (FunctionDeclaration defined within
     an Anonymous FunctionExpression with a strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-42gs.js b/test/language/function-code/10.4.3-1-42gs.js
index da586a8dbac8206401c69b60848f498f94971b26..8703668b9b0835d08dbbfef32f3dcb6445974bba 100644
--- a/test/language/function-code/10.4.3-1-42gs.js
+++ b/test/language/function-code/10.4.3-1-42gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (FunctionDeclaration
     defined within an Anonymous FunctionExpression with a strict
     directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 if (! ((function () {
diff --git a/test/language/function-code/10.4.3-1-43-s.js b/test/language/function-code/10.4.3-1-43-s.js
index 80481f7a75ecf89d1a07e197699993a55973fb62..1c6fa8fbfea6682c08b82758eeb6bfd30aa0ea78 100644
--- a/test/language/function-code/10.4.3-1-43-s.js
+++ b/test/language/function-code/10.4.3-1-43-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-43-s
 description: >
     Strict Mode - checking 'this' (FunctionExpression defined within
     an Anonymous FunctionExpression with a strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-43gs.js b/test/language/function-code/10.4.3-1-43gs.js
index ca6df34cd65b0c9e31991c2d9c8ecd2c4d115150..2e57f92078d8064e7d0b18dd3eb71ae8026ac2dc 100644
--- a/test/language/function-code/10.4.3-1-43gs.js
+++ b/test/language/function-code/10.4.3-1-43gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (FunctionExpression
     defined within an Anonymous FunctionExpression with a strict
     directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 if (! ((function () {
diff --git a/test/language/function-code/10.4.3-1-44-s.js b/test/language/function-code/10.4.3-1-44-s.js
index 660e2bce15358bd113021b4857bed6facb383692..4e8d34230a2563ebf1a98ea28644a83240c29838 100644
--- a/test/language/function-code/10.4.3-1-44-s.js
+++ b/test/language/function-code/10.4.3-1-44-s.js
@@ -10,7 +10,7 @@ description: >
     Strict Mode - checking 'this' (Anonymous FunctionExpression
     defined within an Anonymous FunctionExpression with a strict
     directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-44gs.js b/test/language/function-code/10.4.3-1-44gs.js
index 0cea61d533c7030b8c51959ff4878c2e5f130540..56e8a68dd40097f721004439b23b8fad0c19d219 100644
--- a/test/language/function-code/10.4.3-1-44gs.js
+++ b/test/language/function-code/10.4.3-1-44gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (Anonymous
     FunctionExpression defined within an Anonymous FunctionExpression
     with a strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 if (! ((function () {
diff --git a/test/language/function-code/10.4.3-1-5-s.js b/test/language/function-code/10.4.3-1-5-s.js
index d8daeb83d1211a44d97e334f32275afa5d4d97f6..e47e8954bebc9cb0b178238be808eebb5b355334 100644
--- a/test/language/function-code/10.4.3-1-5-s.js
+++ b/test/language/function-code/10.4.3-1-5-s.js
@@ -6,8 +6,7 @@
 
 /*---
 es5id: 10.4.3-1-5-s
-description: this is not coerced to an object in strict mode (function)
-flags: [onlyStrict]
+description: this is not coerced to an object (function)
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-54-s.js b/test/language/function-code/10.4.3-1-54-s.js
index 9f8a6f2167605fd4af8dae767ad7593c72edab01..3e6d6932462ce15dff8f5d8013d02027ff994a22 100644
--- a/test/language/function-code/10.4.3-1-54-s.js
+++ b/test/language/function-code/10.4.3-1-54-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 10.4.3-1-54-s
 description: >
-    Strict Mode - checking 'this' (Literal getter defined within
-    strict mode)
-flags: [onlyStrict]
+    checking 'this' (Literal getter)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var o = { get foo() { return this; } }
 return o.foo===o;
 }
diff --git a/test/language/function-code/10.4.3-1-54gs.js b/test/language/function-code/10.4.3-1-54gs.js
index ee92de2484960838baeb092e24d241685016378e..3e0511976060f79b0cdfa94a03913e274e105e0a 100644
--- a/test/language/function-code/10.4.3-1-54gs.js
+++ b/test/language/function-code/10.4.3-1-54gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-54gs
 description: >
     Strict - checking 'this' from a global scope (Literal getter
     defined within strict mode)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 "use strict";
diff --git a/test/language/function-code/10.4.3-1-55-s.js b/test/language/function-code/10.4.3-1-55-s.js
index 222e89cc192c9ed6eeec1a3ef01f74c8274ebad7..6bad9e1686af265a9b786eb48a115b3e05ed5045 100644
--- a/test/language/function-code/10.4.3-1-55-s.js
+++ b/test/language/function-code/10.4.3-1-55-s.js
@@ -9,7 +9,6 @@ es5id: 10.4.3-1-55-s
 description: >
     Strict Mode - checking 'this' (Literal getter includes strict
     directive prologue)
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-55gs.js b/test/language/function-code/10.4.3-1-55gs.js
index 5b3e03cdf0484c5b51d61fd0ca0277c8a42ae86c..5ede845974b50ce99688597a8ad6c97e019fafeb 100644
--- a/test/language/function-code/10.4.3-1-55gs.js
+++ b/test/language/function-code/10.4.3-1-55gs.js
@@ -9,7 +9,6 @@ es5id: 10.4.3-1-55gs
 description: >
     Strict - checking 'this' from a global scope (Literal getter
     includes strict directive prologue)
-flags: [onlyStrict]
 ---*/
 
 var o = { get foo() { "use strict"; return this; } }
diff --git a/test/language/function-code/10.4.3-1-56-s.js b/test/language/function-code/10.4.3-1-56-s.js
index 700670aad1f0da42e619129e4ad057b342e9761c..62eecd8ff68b060864921047091a0d434d46151d 100644
--- a/test/language/function-code/10.4.3-1-56-s.js
+++ b/test/language/function-code/10.4.3-1-56-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 10.4.3-1-56-s
 description: >
-    Strict Mode - checking 'this' (Literal setter defined within
-    strict mode)
-flags: [onlyStrict]
+    checking 'this' (Literal setter)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var x = 2;
 var o = { set foo(stuff) { x=this; } }
 o.foo = 3;
diff --git a/test/language/function-code/10.4.3-1-56gs.js b/test/language/function-code/10.4.3-1-56gs.js
index 421c0960fa0c5d62af4de8b817c0acf412795d11..3af86b5ce7ead45633f937d5f7fafd47a5a39b29 100644
--- a/test/language/function-code/10.4.3-1-56gs.js
+++ b/test/language/function-code/10.4.3-1-56gs.js
@@ -7,12 +7,9 @@
 /*---
 es5id: 10.4.3-1-56gs
 description: >
-    Strict - checking 'this' from a global scope (Literal setter
-    defined within strict mode)
-flags: [onlyStrict]
+    checking 'this' from a global scope (Literal setter)
 ---*/
 
-"use strict";
 var x = 2;
 var o = { set foo(stuff) { x=this; } }
 o.foo = 3;
diff --git a/test/language/function-code/10.4.3-1-57-s.js b/test/language/function-code/10.4.3-1-57-s.js
index ef95dc9635fb0da55724a0f892b814863eb108e7..507b8afdd373a709bb61bcdad031c03df51eac62 100644
--- a/test/language/function-code/10.4.3-1-57-s.js
+++ b/test/language/function-code/10.4.3-1-57-s.js
@@ -7,9 +7,7 @@
 /*---
 es5id: 10.4.3-1-57-s
 description: >
-    Strict Mode - checking 'this' (Literal setter includes strict
-    directive prologue)
-flags: [onlyStrict]
+    checking 'this' (Literal setter includes strict directive prologue)
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-57gs.js b/test/language/function-code/10.4.3-1-57gs.js
index abffec5fc1ba487c64340d8b880fc61a3094bae0..6f9409b65a530133028ae3fd92092a726e9947f1 100644
--- a/test/language/function-code/10.4.3-1-57gs.js
+++ b/test/language/function-code/10.4.3-1-57gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-57gs
 description: >
-    Strict - checking 'this' from a global scope (Literal setter
+    Checking 'this' from a global scope (Literal setter
     includes strict directive prologue)
-flags: [onlyStrict]
 ---*/
 
 var x = 2;
diff --git a/test/language/function-code/10.4.3-1-58-s.js b/test/language/function-code/10.4.3-1-58-s.js
index e442dc2ccb174989c32511d8cffd4c916023a991..02fe74dcb891dca6cf64339955b5bc5c8c3bcaa8 100644
--- a/test/language/function-code/10.4.3-1-58-s.js
+++ b/test/language/function-code/10.4.3-1-58-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 10.4.3-1-58-s
 description: >
-    Strict Mode - checking 'this' (Injected getter defined within
-    strict mode)
-flags: [onlyStrict]
+    checking 'this' (Injected getter)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var o = {};
 Object.defineProperty(o, "foo",  { get: function() { return this; } });
 return o.foo===o;
diff --git a/test/language/function-code/10.4.3-1-58gs.js b/test/language/function-code/10.4.3-1-58gs.js
index 5288ad37b169ed35ce9208c444fc425eae54d7e8..0107e28c609e62bc49e360c8340887e39d3497c3 100644
--- a/test/language/function-code/10.4.3-1-58gs.js
+++ b/test/language/function-code/10.4.3-1-58gs.js
@@ -7,12 +7,9 @@
 /*---
 es5id: 10.4.3-1-58gs
 description: >
-    Strict - checking 'this' from a global scope (Injected getter
-    defined within strict mode)
-flags: [onlyStrict]
+    checking 'this' from a global scope (Injected getter defined)
 ---*/
 
-"use strict";
 var o = {};
 Object.defineProperty(o, "foo",  { get : function() { return this; } });
 if (o.foo!==o) {
diff --git a/test/language/function-code/10.4.3-1-59-s.js b/test/language/function-code/10.4.3-1-59-s.js
index 1e3aa9e36d4d514d5754ee580db91a6112c5ebe4..d320a07c4744b570bbdf303673bda88dec1e9509 100644
--- a/test/language/function-code/10.4.3-1-59-s.js
+++ b/test/language/function-code/10.4.3-1-59-s.js
@@ -7,9 +7,7 @@
 /*---
 es5id: 10.4.3-1-59-s
 description: >
-    Strict Mode - checking 'this' (Injected getter includes strict
-    directive prologue)
-flags: [onlyStrict]
+    checking 'this' (Injected getter includes strict directive prologue)
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-59gs.js b/test/language/function-code/10.4.3-1-59gs.js
index e1b367a7878bbe217d80ae52a1fac3dddfcd8c9d..c3a6298c35c0d17446582b14e7041102ae19cd38 100644
--- a/test/language/function-code/10.4.3-1-59gs.js
+++ b/test/language/function-code/10.4.3-1-59gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-59gs
 description: >
-    Strict - checking 'this' from a global scope (Injected getter
-    includes strict directive prologue)
-flags: [onlyStrict]
+    checking 'this' from a global scope (Injected getter includes strict
+    directive prologue)
 ---*/
 
 var o = {};
diff --git a/test/language/function-code/10.4.3-1-60-s.js b/test/language/function-code/10.4.3-1-60-s.js
index 9f7ef7bc90898bf0f1ec827b0fafad9ebd84ea14..adf1946cdb5c742582dd160324746622878a3704 100644
--- a/test/language/function-code/10.4.3-1-60-s.js
+++ b/test/language/function-code/10.4.3-1-60-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 10.4.3-1-60-s
 description: >
-    Strict Mode - checking 'this' (Injected setter defined within
-    strict mode)
-flags: [onlyStrict]
+    checking 'this' (Injected setter)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var o = {};
 var x = 2;
 Object.defineProperty(o, "foo", { set: function(stuff) { x=this; } });
diff --git a/test/language/function-code/10.4.3-1-60gs.js b/test/language/function-code/10.4.3-1-60gs.js
index da480d381d5083d79cfd9517f9ee2c1fb1743b20..3c3dc73fb6f8e2dece38e2e66a3298803d4f7791 100644
--- a/test/language/function-code/10.4.3-1-60gs.js
+++ b/test/language/function-code/10.4.3-1-60gs.js
@@ -7,12 +7,9 @@
 /*---
 es5id: 10.4.3-1-60gs
 description: >
-    Strict - checking 'this' from a global scope (Injected setter
-    defined within strict mode)
-flags: [onlyStrict]
+    checking 'this' from a global scope (Injected setter)
 ---*/
 
-"use strict";
 var o = {};
 var x = 2;
 Object.defineProperty(o, "foo", { set: function(stuff) { x=this; } });
diff --git a/test/language/function-code/10.4.3-1-61-s.js b/test/language/function-code/10.4.3-1-61-s.js
index cdeed960079bcb6ee17e9c545b66f07fdfbee324..1ed436a4139213c1207d44aac2bcba8abc5df01d 100644
--- a/test/language/function-code/10.4.3-1-61-s.js
+++ b/test/language/function-code/10.4.3-1-61-s.js
@@ -7,9 +7,7 @@
 /*---
 es5id: 10.4.3-1-61-s
 description: >
-    Strict Mode - checking 'this' (Injected setter includes strict
-    directive prologue)
-flags: [onlyStrict]
+    checking 'this' (Injected setter includes strict directive prologue)
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-61gs.js b/test/language/function-code/10.4.3-1-61gs.js
index ee4b3641c3d2b27a7534e61365267518c88c558e..e588255b8a3e1e39ec1275b0fd002fb24b8b9598 100644
--- a/test/language/function-code/10.4.3-1-61gs.js
+++ b/test/language/function-code/10.4.3-1-61gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-61gs
 description: >
-    Strict - checking 'this' from a global scope (Injected setter
-    includes strict directive prologue)
-flags: [onlyStrict]
+    checking 'this' from a global scope (Injected setter includes strict
+    directive prologue)
 ---*/
 
 var o = {};
diff --git a/test/language/function-code/10.4.3-1-62-s.js b/test/language/function-code/10.4.3-1-62-s.js
index c8c42d2b93c58defacb07c66b93faca8bfd2bbac..9f48331fd95592475f791a63049a000c9ec2106c 100644
--- a/test/language/function-code/10.4.3-1-62-s.js
+++ b/test/language/function-code/10.4.3-1-62-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-62-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by non-strict function declaration)
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by non-strict function
+    declaration)
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-62gs.js b/test/language/function-code/10.4.3-1-62gs.js
index 4e859faee3a1f45d17893693f53b8db7799fd0d3..5f0d5e9c8f6999f093beeecb6f55ec4a56f2151d 100644
--- a/test/language/function-code/10.4.3-1-62gs.js
+++ b/test/language/function-code/10.4.3-1-62gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-62gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by non-strict function declaration)
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    non-strict function declaration)
 ---*/
 
 function f() { "use strict"; return this;};
diff --git a/test/language/function-code/10.4.3-1-63-s.js b/test/language/function-code/10.4.3-1-63-s.js
index 69de47905c8a0570a771c60c14bd7b72719ae82d..a4cd80635f01438f08772e52d99f18228815b960 100644
--- a/test/language/function-code/10.4.3-1-63-s.js
+++ b/test/language/function-code/10.4.3-1-63-s.js
@@ -7,9 +7,7 @@
 /*---
 es5id: 10.4.3-1-63-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by non-strict eval)
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by non-strict eval)
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-63gs.js b/test/language/function-code/10.4.3-1-63gs.js
index 5e6bb27f21827ceb2e1705b1db6dd83f22498cd1..e27e234086e284a88b62679c2bebbf784e4b10c6 100644
--- a/test/language/function-code/10.4.3-1-63gs.js
+++ b/test/language/function-code/10.4.3-1-63gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-63gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by non-strict eval)
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    non-strict eval)
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-64-s.js b/test/language/function-code/10.4.3-1-64-s.js
index d37732fcc1808409c4fa61438dad5e6a65e2c564..d27a64d1055c99a39255ea1c01dcf267a492c1ef 100644
--- a/test/language/function-code/10.4.3-1-64-s.js
+++ b/test/language/function-code/10.4.3-1-64-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-64-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by non-strict Function constructor)
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by non-strict Function
+    constructor)
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-64gs.js b/test/language/function-code/10.4.3-1-64gs.js
index e2e5f1c45b608265a1b7d0bfea0cf32f3edf60df..dc0feaf5204a20e0d9422131bd9d0256b83e8d67 100644
--- a/test/language/function-code/10.4.3-1-64gs.js
+++ b/test/language/function-code/10.4.3-1-64gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-64gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by non-strict Function constructor)
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    non-strict Function constructor)
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-65-s.js b/test/language/function-code/10.4.3-1-65-s.js
index 97eeb9d86ea1173bad35ddd76fa05fab70c2a245..999fa42528fecd0e5141ae3f76044a91f97ac378 100644
--- a/test/language/function-code/10.4.3-1-65-s.js
+++ b/test/language/function-code/10.4.3-1-65-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-65-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by non-strict new'ed Function constructor)
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by non-strict new'ed
+    Function constructor)
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-65gs.js b/test/language/function-code/10.4.3-1-65gs.js
index c3ee2c53cb1bb3a5027ff79f45aabe17d9fb71c6..975cff70e3d80f870b52a2413fc1919b63ebfb0c 100644
--- a/test/language/function-code/10.4.3-1-65gs.js
+++ b/test/language/function-code/10.4.3-1-65gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-65gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by non-strict new'ed Function constructor)
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    non-strict new'ed Function constructor)
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-66-s.js b/test/language/function-code/10.4.3-1-66-s.js
index 7296d2e0fafba3eb8a3419894ae9d6d60a2d2b22..dcbbc5ef9aea9980ffb4b51c2febbb1b1c2589b4 100644
--- a/test/language/function-code/10.4.3-1-66-s.js
+++ b/test/language/function-code/10.4.3-1-66-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-66-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.apply())
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.apply())
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-66gs.js b/test/language/function-code/10.4.3-1-66gs.js
index 3509879da7e9396b355c57bc722b7bbe4fbe8f2b..7ee33adadea13472fdbbcc385484308c43d61ffc 100644
--- a/test/language/function-code/10.4.3-1-66gs.js
+++ b/test/language/function-code/10.4.3-1-66gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-66gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.apply())
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.apply())
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-67-s.js b/test/language/function-code/10.4.3-1-67-s.js
index 62e0ca57c1f02e1aa91451d972b7cb12ce3fb81f..b582ae77c5cdac28fe884d3fff5fc240454b727d 100644
--- a/test/language/function-code/10.4.3-1-67-s.js
+++ b/test/language/function-code/10.4.3-1-67-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-67-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.apply(null))
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.apply(null))
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-67gs.js b/test/language/function-code/10.4.3-1-67gs.js
index 01ca6dcc00c34aeee4455a9ef3c91fb25d38b142..58f6857978ee77c649bb829c75f673c1ef9499a7 100644
--- a/test/language/function-code/10.4.3-1-67gs.js
+++ b/test/language/function-code/10.4.3-1-67gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-67gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.apply(null))
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.apply(null))
 ---*/
 
 function f() { "use strict"; return this===null;};
diff --git a/test/language/function-code/10.4.3-1-68-s.js b/test/language/function-code/10.4.3-1-68-s.js
index 8ca7afcd8eae313385921df13d7b66ea465e36f1..cec941a0a7ff71daa7202bbfc0c2349621a48369 100644
--- a/test/language/function-code/10.4.3-1-68-s.js
+++ b/test/language/function-code/10.4.3-1-68-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-68-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.apply(undefined))
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.apply(undefined))
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-68gs.js b/test/language/function-code/10.4.3-1-68gs.js
index cf4b35f66aedc99340212d925949182f714a27a4..30c3726052065312bfe20e1339c84a607628a558 100644
--- a/test/language/function-code/10.4.3-1-68gs.js
+++ b/test/language/function-code/10.4.3-1-68gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-68gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.apply(undefined))
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.apply(undefined))
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-69-s.js b/test/language/function-code/10.4.3-1-69-s.js
index abeab46c1aa7f6c9281d52a11601ad1d3a7361a9..caec77b0713284d57ca689414b47904e24fe4ab2 100644
--- a/test/language/function-code/10.4.3-1-69-s.js
+++ b/test/language/function-code/10.4.3-1-69-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-69-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.apply(someObject))
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.apply(someObject))
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-69gs.js b/test/language/function-code/10.4.3-1-69gs.js
index a16e0ba4abaa71c0868706d492ceaae409de8eec..294afea875db9456a129a3952035679a8afcb87d 100644
--- a/test/language/function-code/10.4.3-1-69gs.js
+++ b/test/language/function-code/10.4.3-1-69gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-69gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.apply(someObject))
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.apply(someObject))
 ---*/
 
 var o = {};
diff --git a/test/language/function-code/10.4.3-1-7-s.js b/test/language/function-code/10.4.3-1-7-s.js
index 7570eaacfcf7c4d7e1c2aebcbb99d18c81494548..e3b691fed9a3b555827fe1ab27b1f0f8704fd4be 100644
--- a/test/language/function-code/10.4.3-1-7-s.js
+++ b/test/language/function-code/10.4.3-1-7-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 function f() {
     return typeof this;
 }
diff --git a/test/language/function-code/10.4.3-1-70-s.js b/test/language/function-code/10.4.3-1-70-s.js
index 717e2d48417ca83ed39e9b68dec9f70c3153583a..efdd80fa3356851a55ef747f7c01ef6ad75b3cb5 100644
--- a/test/language/function-code/10.4.3-1-70-s.js
+++ b/test/language/function-code/10.4.3-1-70-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-70-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.apply(globalObject))
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.apply(globalObject))
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-70gs.js b/test/language/function-code/10.4.3-1-70gs.js
index c72d8146a46852b7841c0e0a11ddd240690d2a4b..7fe9702b3de13a08d440bc40b81249e6ae968b69 100644
--- a/test/language/function-code/10.4.3-1-70gs.js
+++ b/test/language/function-code/10.4.3-1-70gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-70gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.apply(globalObject))
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.apply(globalObject))
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-71-s.js b/test/language/function-code/10.4.3-1-71-s.js
index 2bc18a157ad4dba5df632998fdb37628a02309ad..7457b326cb736572815570d6522eab24c67bf13a 100644
--- a/test/language/function-code/10.4.3-1-71-s.js
+++ b/test/language/function-code/10.4.3-1-71-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-71-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.call())
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.call())
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-71gs.js b/test/language/function-code/10.4.3-1-71gs.js
index 0e9f4e3239caaf98e8cffb5c648fad4ad1136e0e..675e261bdb742d811d148d39feee1c8d0abc9375 100644
--- a/test/language/function-code/10.4.3-1-71gs.js
+++ b/test/language/function-code/10.4.3-1-71gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-71gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.call())
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.call())
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-72-s.js b/test/language/function-code/10.4.3-1-72-s.js
index 18d97c980c8f2d146b446a503b964b84007e499f..2dd14af40b26de1b37d95c97bf4c46ebdffb8fd0 100644
--- a/test/language/function-code/10.4.3-1-72-s.js
+++ b/test/language/function-code/10.4.3-1-72-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-72-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.call(null))
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.call(null))
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-72gs.js b/test/language/function-code/10.4.3-1-72gs.js
index 02970c77a9ae66fc463167d85a8936a38e1193b3..7aee0a80992b124b8dda4895ef19bed1dcdac8ea 100644
--- a/test/language/function-code/10.4.3-1-72gs.js
+++ b/test/language/function-code/10.4.3-1-72gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-72gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.call(null))
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.call(null))
 ---*/
 
 function f() { "use strict"; return this===null;};
diff --git a/test/language/function-code/10.4.3-1-73-s.js b/test/language/function-code/10.4.3-1-73-s.js
index 79e1842cf9edabec9edccbf6663b81fc7af93647..ed758da70fedfea37dfc72379dcad223f21e67d3 100644
--- a/test/language/function-code/10.4.3-1-73-s.js
+++ b/test/language/function-code/10.4.3-1-73-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-73-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.call(undefined))
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.call(undefined))
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-73gs.js b/test/language/function-code/10.4.3-1-73gs.js
index 57470bf823d4a0961f5b674762bf6fa568c59d91..3e9fc23f2e239cbd6669077c237c95b7f829761c 100644
--- a/test/language/function-code/10.4.3-1-73gs.js
+++ b/test/language/function-code/10.4.3-1-73gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-73gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.call(undefined))
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.call(undefined))
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-74-s.js b/test/language/function-code/10.4.3-1-74-s.js
index 5dafb56c37a1ecc123006569f3d1ed15cb3904ed..75bf51b47702765f5c212a9109b82773dcb27a26 100644
--- a/test/language/function-code/10.4.3-1-74-s.js
+++ b/test/language/function-code/10.4.3-1-74-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-74-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.call(someObject))
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.call(someObject))
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-74gs.js b/test/language/function-code/10.4.3-1-74gs.js
index 74fa57089388c90ffc3df7d463f763f1689d528a..e2f122ab98982e7d59c385e66dedb0c824151cc5 100644
--- a/test/language/function-code/10.4.3-1-74gs.js
+++ b/test/language/function-code/10.4.3-1-74gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-74gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.call(someObject))
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.call(someObject))
 ---*/
 
 var o = {};
diff --git a/test/language/function-code/10.4.3-1-75-s.js b/test/language/function-code/10.4.3-1-75-s.js
index f86c4860fda06688ac4a3116d2c760a86be03a24..a7918303cbc0fff0e792a1ef90b9fb3a6b5f3491 100644
--- a/test/language/function-code/10.4.3-1-75-s.js
+++ b/test/language/function-code/10.4.3-1-75-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-75-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.call(globalObject))
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.call(globalObject))
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-75gs.js b/test/language/function-code/10.4.3-1-75gs.js
index a5b7b3b5de958b644156f7137fe97696fa7633ac..e62c9f88eec85f0fdf9c68d3c6778ae1bb8ca534 100644
--- a/test/language/function-code/10.4.3-1-75gs.js
+++ b/test/language/function-code/10.4.3-1-75gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-75gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.call(globalObject))
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.call(globalObject))
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-76-s.js b/test/language/function-code/10.4.3-1-76-s.js
index b2232543c4753d94a20ead0dc16225e2ab5fe84d..b72ba423751a74f91948b322f556ed54e768ee14 100644
--- a/test/language/function-code/10.4.3-1-76-s.js
+++ b/test/language/function-code/10.4.3-1-76-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-76-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.bind()())
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.bind()())
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-76gs.js b/test/language/function-code/10.4.3-1-76gs.js
index 8473b15a75b0cab6a92eac5f426cda30e34fc9c5..15a7d2eb09ca10dc7e7fe49866a6ce055192cf00 100644
--- a/test/language/function-code/10.4.3-1-76gs.js
+++ b/test/language/function-code/10.4.3-1-76gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-76gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.bind()())
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.bind()())
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-77-s.js b/test/language/function-code/10.4.3-1-77-s.js
index d9ee6394c7c3a58f8d45971018e3cf1952a1eaac..ee18a940ecc3c7e3f49fda0417baf240c5951d50 100644
--- a/test/language/function-code/10.4.3-1-77-s.js
+++ b/test/language/function-code/10.4.3-1-77-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-77-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.bind(null)())
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.bind(null)())
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-77gs.js b/test/language/function-code/10.4.3-1-77gs.js
index 5cce027e024468837dce2a690c70037ec45ea373..1df28b6c222b4a5feefcecbe4f4fc22cafa94c57 100644
--- a/test/language/function-code/10.4.3-1-77gs.js
+++ b/test/language/function-code/10.4.3-1-77gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-77gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.bind(null)())
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.bind(null)())
 ---*/
 
 function f() { "use strict"; return this===null;};
diff --git a/test/language/function-code/10.4.3-1-78-s.js b/test/language/function-code/10.4.3-1-78-s.js
index 1f5fe727bbdb496d0b7f89e81403d2888bac1c1a..674736af045368795b0a8a9bf6813228d141cbc3 100644
--- a/test/language/function-code/10.4.3-1-78-s.js
+++ b/test/language/function-code/10.4.3-1-78-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-78-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.bind(undefined)())
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.bind(undefined)())
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-78gs.js b/test/language/function-code/10.4.3-1-78gs.js
index c2e54acbcba503e3abad3640908e117e12e065c1..b3fd1a5fdbbee6cfb88191b5ce849fd3b1f4c0bb 100644
--- a/test/language/function-code/10.4.3-1-78gs.js
+++ b/test/language/function-code/10.4.3-1-78gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-78gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.bind(undefined)())
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.bind(undefined)())
 ---*/
 
 function f() { "use strict"; return this===undefined;};
diff --git a/test/language/function-code/10.4.3-1-79-s.js b/test/language/function-code/10.4.3-1-79-s.js
index 520db0f9a5e5997e3fd1049ce9fa9f6e37081100..d23bdadc529a3231479ef9b3501019544ee8c10c 100644
--- a/test/language/function-code/10.4.3-1-79-s.js
+++ b/test/language/function-code/10.4.3-1-79-s.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-79-s
 description: >
-    Strict Mode - checking 'this' (strict function declaration called
-    by Function.prototype.bind(someObject)())
-flags: [onlyStrict]
+    checking 'this' (strict function declaration called by
+    Function.prototype.bind(someObject)())
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-79gs.js b/test/language/function-code/10.4.3-1-79gs.js
index 0a5c6c0b86b6d2427bacf4e57390fd7a19b4f2b0..5f6b6db79930ded28fded898b90ef8fd180f0809 100644
--- a/test/language/function-code/10.4.3-1-79gs.js
+++ b/test/language/function-code/10.4.3-1-79gs.js
@@ -7,9 +7,8 @@
 /*---
 es5id: 10.4.3-1-79gs
 description: >
-    Strict - checking 'this' from a global scope (strict function
-    declaration called by Function.prototype.bind(someObject)())
-flags: [onlyStrict]
+    checking 'this' from a global scope (strict function declaration called by
+    Function.prototype.bind(someObject)())
 ---*/
 
 var o = {};
diff --git a/test/language/function-code/10.4.3-1-7gs.js b/test/language/function-code/10.4.3-1-7gs.js
index 40707ae2be8c68cd17a2f8e25bbfff99288ad465..868a8a8981d78b0cd877e3ec09b9f656e96ec93d 100644
--- a/test/language/function-code/10.4.3-1-7gs.js
+++ b/test/language/function-code/10.4.3-1-7gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function f() {
     return typeof this;
 }
diff --git a/test/language/function-code/10.4.3-1-8-s.js b/test/language/function-code/10.4.3-1-8-s.js
index 5734cbb02d397661c0d8cb3c9f25e442a25b6a33..8bf9914188f69774387fdad2921de9aa9f215871 100644
--- a/test/language/function-code/10.4.3-1-8-s.js
+++ b/test/language/function-code/10.4.3-1-8-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-8-s
 description: >
     Strict Mode - checking 'this' (FunctionDeclaration includes strict
     directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-80-s.js b/test/language/function-code/10.4.3-1-80-s.js
index 81587d586265b4d8cc31d4562a89a4ea3cbc8dd4..c3e4e228526281e0953a0889f9951d433a727e5b 100644
--- a/test/language/function-code/10.4.3-1-80-s.js
+++ b/test/language/function-code/10.4.3-1-80-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-80-s
 description: >
     Strict Mode - checking 'this' (strict function declaration called
     by Function.prototype.bind(globalObject)())
-flags: [onlyStrict]
+flags: [noStrict]
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-80gs.js b/test/language/function-code/10.4.3-1-80gs.js
index 6e98c030d3fbd8396673de9077ea5b59afeb0d2a..46228175bd7f0c066c3f9c7dd45c75ddd831ff96 100644
--- a/test/language/function-code/10.4.3-1-80gs.js
+++ b/test/language/function-code/10.4.3-1-80gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-80gs
 description: >
     Strict - checking 'this' from a global scope (strict function
     declaration called by Function.prototype.bind(globalObject)())
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-88-s.js b/test/language/function-code/10.4.3-1-88-s.js
index b8a408f5b0fc263454048902d98b672702d9e007..cd457fbbef7ba5ff1f5604df350955153fbc4beb 100644
--- a/test/language/function-code/10.4.3-1-88-s.js
+++ b/test/language/function-code/10.4.3-1-88-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-88-s
 description: >
     Strict Mode - checking 'this' (non-strict function declaration
     called by strict Function.prototype.apply(someObject))
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-88gs.js b/test/language/function-code/10.4.3-1-88gs.js
index b2f0c6278801d96ba3344c258c4f705966a50a15..a8b15826b0a93f981e7691017a821a4621fd92d1 100644
--- a/test/language/function-code/10.4.3-1-88gs.js
+++ b/test/language/function-code/10.4.3-1-88gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-88gs
 description: >
     Strict - checking 'this' from a global scope (non-strict function
     declaration called by strict Function.prototype.apply(someObject))
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var o = {};
diff --git a/test/language/function-code/10.4.3-1-89-s.js b/test/language/function-code/10.4.3-1-89-s.js
index 8bf1f4e944a4c519f723ee9a07eafba85cedf768..0afc3e581ca34761007140bdd02dce420a5458ca 100644
--- a/test/language/function-code/10.4.3-1-89-s.js
+++ b/test/language/function-code/10.4.3-1-89-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-89-s
 description: >
     Strict Mode - checking 'this' (non-strict function declaration
     called by strict Function.prototype.apply(globalObject))
-flags: [onlyStrict]
+flags: [noStrict]
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-89gs.js b/test/language/function-code/10.4.3-1-89gs.js
index 0169f6b1591bc6927bb73a3593b227c2c7c29697..4bc937abc883c853cb48be5cea26898a78e156f0 100644
--- a/test/language/function-code/10.4.3-1-89gs.js
+++ b/test/language/function-code/10.4.3-1-89gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (non-strict function
     declaration called by strict
     Function.prototype.apply(globalObject))
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-8gs.js b/test/language/function-code/10.4.3-1-8gs.js
index aa1c852974fb795cf77ae70e8c62155285cb63b0..60e677498799d66ef355c5112731961f52ce4d0c 100644
--- a/test/language/function-code/10.4.3-1-8gs.js
+++ b/test/language/function-code/10.4.3-1-8gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-8gs
 description: >
     Strict - checking 'this' from a global scope (FunctionDeclaration
     includes strict directive prologue)
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 function f() {
diff --git a/test/language/function-code/10.4.3-1-9-s.js b/test/language/function-code/10.4.3-1-9-s.js
index 9a27cdfdfe1fe1fcb5196273ee375d7ea3fd8131..a0fd6baa8ad33f4c210ab00ca47e728678f20119 100644
--- a/test/language/function-code/10.4.3-1-9-s.js
+++ b/test/language/function-code/10.4.3-1-9-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-"use strict";
 var f = function () {
     return typeof this;
 }
diff --git a/test/language/function-code/10.4.3-1-93-s.js b/test/language/function-code/10.4.3-1-93-s.js
index 840a130ad795998a68fd1d1127ae332393b45c2e..6cab14e87741c027dcc3bb80d761449f8d4cad62 100644
--- a/test/language/function-code/10.4.3-1-93-s.js
+++ b/test/language/function-code/10.4.3-1-93-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-93-s
 description: >
     Strict Mode - checking 'this' (non-strict function declaration
     called by strict Function.prototype.call(someObject))
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-93gs.js b/test/language/function-code/10.4.3-1-93gs.js
index 0342a02fbdd42f1683de50300acac6904f33c963..2ac795d51178800c655af23ca74bf466724e543d 100644
--- a/test/language/function-code/10.4.3-1-93gs.js
+++ b/test/language/function-code/10.4.3-1-93gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-93gs
 description: >
     Strict - checking 'this' from a global scope (non-strict function
     declaration called by strict Function.prototype.call(someObject))
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var o = {};
diff --git a/test/language/function-code/10.4.3-1-94-s.js b/test/language/function-code/10.4.3-1-94-s.js
index 8402303723c1b730704a0d1ddd148a20be5a175a..999896209b20fc3be26fc08eaecb0acbd73f7085 100644
--- a/test/language/function-code/10.4.3-1-94-s.js
+++ b/test/language/function-code/10.4.3-1-94-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-94-s
 description: >
     Strict Mode - checking 'this' (non-strict function declaration
     called by strict Function.prototype.call(globalObject))
-flags: [onlyStrict]
+flags: [noStrict]
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-94gs.js b/test/language/function-code/10.4.3-1-94gs.js
index bfa23d5772c426432d415e09f9759037457c2094..7ac578987bedf51ba25cfecb2fe1436a29fe3e02 100644
--- a/test/language/function-code/10.4.3-1-94gs.js
+++ b/test/language/function-code/10.4.3-1-94gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-94gs
 description: >
     Strict - checking 'this' from a global scope (non-strict function
     declaration called by strict Function.prototype.call(globalObject))
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-98-s.js b/test/language/function-code/10.4.3-1-98-s.js
index d7338692b13b3f98e5380056498737837aed1153..618b4d21bc66a61d6f3ac85a87df6dfbdc6c9f1f 100644
--- a/test/language/function-code/10.4.3-1-98-s.js
+++ b/test/language/function-code/10.4.3-1-98-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-98-s
 description: >
     Strict Mode - checking 'this' (non-strict function declaration
     called by strict Function.prototype.bind(someObject)())
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-98gs.js b/test/language/function-code/10.4.3-1-98gs.js
index fe85d50020d66a065ff2f5a13668907f87d7946d..27968a7062f918d32fe788866c58e526aa4f032d 100644
--- a/test/language/function-code/10.4.3-1-98gs.js
+++ b/test/language/function-code/10.4.3-1-98gs.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-98gs
 description: >
     Strict - checking 'this' from a global scope (non-strict function
     declaration called by strict Function.prototype.bind(someObject)())
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 var o = {};
diff --git a/test/language/function-code/10.4.3-1-99-s.js b/test/language/function-code/10.4.3-1-99-s.js
index 5381391a534b5545c972d72728510dc1a1142349..d9b3f5ee870165523c26be3f36395e3a0d16e505 100644
--- a/test/language/function-code/10.4.3-1-99-s.js
+++ b/test/language/function-code/10.4.3-1-99-s.js
@@ -9,7 +9,7 @@ es5id: 10.4.3-1-99-s
 description: >
     Strict Mode - checking 'this' (non-strict function declaration
     called by strict Function.prototype.bind(globalObject)())
-flags: [onlyStrict]
+flags: [noStrict]
 includes:
     - runTestCase.js
     - fnGlobalObject.js
diff --git a/test/language/function-code/10.4.3-1-99gs.js b/test/language/function-code/10.4.3-1-99gs.js
index 20e1d7c459957cea597b118b3a0cbb992aa06049..7482a34c6a65c2f79c184a67abfee3b46fdea64f 100644
--- a/test/language/function-code/10.4.3-1-99gs.js
+++ b/test/language/function-code/10.4.3-1-99gs.js
@@ -10,7 +10,7 @@ description: >
     Strict - checking 'this' from a global scope (non-strict function
     declaration called by strict
     Function.prototype.bind(globalObject)())
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [fnGlobalObject.js]
 ---*/
 
diff --git a/test/language/function-code/10.4.3-1-9gs.js b/test/language/function-code/10.4.3-1-9gs.js
index d701b00c169adc9ce1e628d88d32efc88d84eccc..0cf49d9b627c404bc688f4e596501bdf8fa1d4ce 100644
--- a/test/language/function-code/10.4.3-1-9gs.js
+++ b/test/language/function-code/10.4.3-1-9gs.js
@@ -12,7 +12,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var f = function () {
     return typeof this;
 }
diff --git a/test/language/function-code/S10.4.3_A1.js b/test/language/function-code/S10.4.3_A1.js
index 447ab46d5e902f45149df31b968481c808f8d58e..383d2cad98252de3546f536d3fb9f7c6036d07f1 100644
--- a/test/language/function-code/S10.4.3_A1.js
+++ b/test/language/function-code/S10.4.3_A1.js
@@ -9,7 +9,6 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var that = (function() { return this; })();
 if (that !== undefined) {
   $ERROR('#1: "this" leaked as: ' + that);
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 2a9b1626a9c8abcde22a5f44f23f86ce123f6a98..e792c3ed992a63476183212022bc165bf9fa27d2 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
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
 
         try {
             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 45496dfb04fc6297dc4aafdb27cadc2d1ff9e4c3..2763a363ed6b5a3efb9d502739da7e035fcca22c 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {        
-        "use strict";
-
         try {
             eval("var l\u0065t = 123;");
             return false;
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 924b9c2ac4feaeaf3c97d9f4e41bc9718426df99..cdad850ddef8307e558d0565b549341efcb5c742 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var privat\u0065 = 123;");
             return false;
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 175837fb73cfe884e254df05657ac6d5fcc213d5..90ffb2047bbdab5fe4afc079d54dbc5a55c4adbb 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var \u0070\u0075\u0062\u006c\u0069\u0063 = 123;");
             return false;
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 0617e786b77dd3fc898db074376fadf5531b0a19..0d77a3c74ab8df9db49f3bb1cdcab63c09596617 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var \u0079ield = 123;");
             return false;
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 7106e6a8790bfba6f347520107f8b600f57dd2e8..3e62ffd56a7cac4460ecc4e413737c7b79589978 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var inte\u0072face = 123;");
             return false;
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 20b51647d00a6ac5c44333d74a9d9d981b6df919..348c735d8d00e3887726f67e8354bf349a704699 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var packag\u0065 = 123;");
             return false;
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 da966b50a055616f6dc6a2ac6c171b7cf97cab63..286b8cd0673fa6b01eaf68332f63c413eb4c5f2f 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
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 = 123;");
             return false;
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 65547327e4cafa8748d022281d4e4b552906eb68..a64db4ac0cff1457aad5bdc6ae933331aa5dd67b 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var \u0073\u0074\u0061\u0074\u0069\u0063 = 123;");
             return false;
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 535fa84680c5cef1d2a1a0da303fb426ad5457fc..fff9f71f4d488230537a02face5a32bc13cbcfcd 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var implements = 1;");
             return false;
diff --git a/test/language/future-reserved-words/7.6.1.2-10-s.js b/test/language/future-reserved-words/7.6.1.2-10-s.js
index bd297e6ea5d813e0d20bc09d9298b20e46d03c43..3d89de7a8075f6d964bae4a2cbee12308ee8ae57 100644
--- a/test/language/future-reserved-words/7.6.1.2-10-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-10-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 7.6.1.2-10-s
 description: >
-    Strict Mode - SyntaxError isn't thrown when 'IMPLEMENTS' occurs in
-    strict mode code
-flags: [onlyStrict]
+    SyntaxError isn't thrown when 'IMPLEMENTS' occurs
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var IMPLEMENTS = 1;
         return IMPLEMENTS === 1;
     }
diff --git a/test/language/future-reserved-words/7.6.1.2-11-s.js b/test/language/future-reserved-words/7.6.1.2-11-s.js
index 0ca15ca1186c81ebea561044a31c337d853a63ba..47ede121b2597a84dc978a015b726946a7dbb98e 100644
--- a/test/language/future-reserved-words/7.6.1.2-11-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-11-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 7.6.1.2-11-s
 description: >
-    Strict Mode - SyntaxError isn't thrown when 'Implements' occurs in
-    strict mode code
-flags: [onlyStrict]
+    SyntaxError isn't thrown when 'Implements' occurs
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var Implements = 1;
         return Implements === 1;
     }
diff --git a/test/language/future-reserved-words/7.6.1.2-12-s.js b/test/language/future-reserved-words/7.6.1.2-12-s.js
index 05a4b9ee9e6f1519c113e176c46c7b48c91a155c..c85b7962c79b5b2e4332f9dc3568b1eefdac3342 100644
--- a/test/language/future-reserved-words/7.6.1.2-12-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-12-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 7.6.1.2-12-s
 description: >
-    Strict Mode - SyntaxError isn't thrown when 'implement' occurs in
-    strict mode code
-flags: [onlyStrict]
+    SyntaxError isn't thrown when 'implement' occurs
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var implement = 1;
         return implement === 1;
     }
diff --git a/test/language/future-reserved-words/7.6.1.2-13-s.js b/test/language/future-reserved-words/7.6.1.2-13-s.js
index f8b40c539b572eed82dee5fab4dba3080f19324a..896820f9aaed20ec75050981c2c3b0ab1610907f 100644
--- a/test/language/future-reserved-words/7.6.1.2-13-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-13-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 7.6.1.2-13-s
 description: >
-    Strict Mode - SyntaxError isn't thrown when 'implementss' occurs
-    in strict mode code
-flags: [onlyStrict]
+    SyntaxError isn't thrown when 'implementss' occurs
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var implementss = 1;
         return implementss === 1;
     }
diff --git a/test/language/future-reserved-words/7.6.1.2-14-s.js b/test/language/future-reserved-words/7.6.1.2-14-s.js
index 6d7d483c9cd87a18e3b94b215344f4709fb16565..464960f753cd9f8cdacc4df770c2f86cf0ae5469 100644
--- a/test/language/future-reserved-words/7.6.1.2-14-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-14-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 7.6.1.2-14-s
 description: >
-    Strict Mode - SyntaxError isn't thrown when 'implements0' occurs
-    in strict mode code
-flags: [onlyStrict]
+    SyntaxError isn't thrown when 'implements0' occurs
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var implements0 = 1;
         return implements0 === 1;
     }
diff --git a/test/language/future-reserved-words/7.6.1.2-16-s.js b/test/language/future-reserved-words/7.6.1.2-16-s.js
index ea53e9172a213bb2e52327857fe4d5c7b5838ae6..0d4fc87b9ddad4ab8a6bae828baf22ad95ff4248 100644
--- a/test/language/future-reserved-words/7.6.1.2-16-s.js
+++ b/test/language/future-reserved-words/7.6.1.2-16-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 7.6.1.2-16-s
 description: >
-    Strict Mode - SyntaxError isn't thrown when '_implements' occurs
-    in strict mode code
-flags: [onlyStrict]
+    SyntaxError isn't thrown when '_implements' occurs
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _implements = 1;
         return _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 eabb5de7272a77812d7acf3f970b72de4f796203..352111702a1dcf9e9e40f102ef0f51519c070cf4 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var let = 1;");
             return false;
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 f760630518c4b86bfe86e134b7e1d9aa97afc1bd..a77740bd8779997dbb95d5ecd3904047ff3dc33a 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var private = 1;");
             return false;
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 e9fca1dc09bc96afe1e61cf487c71f35a741c91b..076601e2a4be253ba504383771f6dd1de304e51c 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var public = 1;");
             return false;
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 89c843b65e602048ef6e8afecc2b48288f633ccd..cb6157470b2f8ecb116e6b0c282ecb6f82464575 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var yield = 1;")
             return false;
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 f4bb2215c18912724bf1d9628d8f4c310685ddfb..4c2737651fb5262db9dccfbd60690bf0f7f5e363 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var interface = 1;")
             return false;
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 5564542e8ff8be184d6c9eab5d96f622d73de907..201fdbd71a9210b661b8bcb4717e7b9fdc5a6a33 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var package = 1;");
             return false;
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 49e7685fadb2b3c7c37d7eb81628235da8f150b0..adf90d5f15bdd77d5c021d2c35576153ed1fee5b 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var protected = 1;");
             return false;
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 df3b46afbab3805adbe84fd43dd243096d1a7ad8..a12a4f5eb209f0e85c3e40645a522986bc3f5d4e 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
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var static = 1;");
             return false;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.15.js b/test/language/future-reserved-words/S7.6.1.2_A1.15.js
index abe941d4ef0d92989e51290c36c394994ceb899e..582896c26e5646b778215957e641859b6d41829d 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.15.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.15.js
@@ -9,6 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
-
 var implements = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.18.js b/test/language/future-reserved-words/S7.6.1.2_A1.18.js
index abe69cfc8bcd43ceea04e250179aaa163f58abb8..5d99af8bebe5a8a6610b3ab05cafcc5933ebd7b4 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.18.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.18.js
@@ -9,5 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var interface = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.21.js b/test/language/future-reserved-words/S7.6.1.2_A1.21.js
index 2462ba6e352ee18da0d7563c08aa00a86fbd27b3..9567f9675c5fdbded9a65513907195cffc0486a3 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.21.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.21.js
@@ -9,5 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var package = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.22.js b/test/language/future-reserved-words/S7.6.1.2_A1.22.js
index ef7e7b3350ad04dab97908e7b67e12f19ca21b03..6a416da84741da146dfc8048cdad8829bbdab071 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.22.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.22.js
@@ -9,5 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var private = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.23.js b/test/language/future-reserved-words/S7.6.1.2_A1.23.js
index 8b527aabcf8d7d5baca481544e1f5b966285fbcc..1ad73c51d188e53da99957aabd25167b1e7c7b77 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.23.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.23.js
@@ -9,5 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var protected = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.24.js b/test/language/future-reserved-words/S7.6.1.2_A1.24.js
index 7382f31aa5ccbbaf4a4eecb829304ed736525881..7d9e14cdefc2ff867907819f2e132d5e2f3cbf83 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.24.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.24.js
@@ -9,5 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var public = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.26.js b/test/language/future-reserved-words/S7.6.1.2_A1.26.js
index b5b9e431c9ee787e241eb6ba17d575b50c271322..40153c83b0d5120ba3dedeb19999a2e01c441f00 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.26.js
+++ b/test/language/future-reserved-words/S7.6.1.2_A1.26.js
@@ -9,5 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var static = 1;
diff --git a/test/language/literals/numeric/7.8.3-1-s.js b/test/language/literals/numeric/7.8.3-1-s.js
index d979d2a3ebfc316b5851a5de0750b916ac1ed50a..13f5e16343132291264dbe068ce7c8ef5d8857cc 100644
--- a/test/language/literals/numeric/7.8.3-1-s.js
+++ b/test/language/literals/numeric/7.8.3-1-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {           
             eval("var _7_8_3_1 = 010;");
             return false;
diff --git a/test/language/literals/numeric/7.8.3-1gs.js b/test/language/literals/numeric/7.8.3-1gs.js
index 9c080b8d9db50069fed0914ad3b917f0b7785110..d324dce4f01d06f326d7ad2e8c1160080b77b059 100644
--- a/test/language/literals/numeric/7.8.3-1gs.js
+++ b/test/language/literals/numeric/7.8.3-1gs.js
@@ -11,6 +11,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 var y = 010;
diff --git a/test/language/literals/numeric/7.8.3-2-s.js b/test/language/literals/numeric/7.8.3-2-s.js
index 669cf64ca1ec5f2c2d6815d31695d9c8ce3e690e..be860a064961554b4041cb9e950f839f1d67a56c 100644
--- a/test/language/literals/numeric/7.8.3-2-s.js
+++ b/test/language/literals/numeric/7.8.3-2-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("var _7_8_3_2 = 00;");
             return false;
diff --git a/test/language/literals/numeric/7.8.3-2gs.js b/test/language/literals/numeric/7.8.3-2gs.js
index 3c64a0c192b2cdd348d97a584f484e3896c91532..e6045213e5ff5833981170de676657933b2df036 100644
--- a/test/language/literals/numeric/7.8.3-2gs.js
+++ b/test/language/literals/numeric/7.8.3-2gs.js
@@ -13,7 +13,6 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 var a;
 a = 0x1;
diff --git a/test/language/literals/numeric/7.8.3-3-s.js b/test/language/literals/numeric/7.8.3-3-s.js
index 78e480960ea4794b2270aeaeb678e1a552b48791..e61e6481a902811fd9c3c18cac98ead2cfb24497 100644
--- a/test/language/literals/numeric/7.8.3-3-s.js
+++ b/test/language/literals/numeric/7.8.3-3-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("var _7_8_3_3 = 01;");
             return false;
diff --git a/test/language/literals/numeric/7.8.3-3gs.js b/test/language/literals/numeric/7.8.3-3gs.js
index c06dc4e198668cb2887e33f4524e7ce2d4247300..7457d1e0039273911cbe19d02492f5cc41aed359 100644
--- a/test/language/literals/numeric/7.8.3-3gs.js
+++ b/test/language/literals/numeric/7.8.3-3gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var a;
 eval("a = 0x1;a = 01;");
diff --git a/test/language/literals/numeric/7.8.3-4-s.js b/test/language/literals/numeric/7.8.3-4-s.js
index 9f1c88db97320a1bbb98b179a4e0a84e2a444d91..ce6df225ca39e19e81f3fd4bd1bbaa04729a8b4d 100644
--- a/test/language/literals/numeric/7.8.3-4-s.js
+++ b/test/language/literals/numeric/7.8.3-4-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("var _7_8_3_4 = 06;");
             return false;
diff --git a/test/language/literals/numeric/7.8.3-5-s.js b/test/language/literals/numeric/7.8.3-5-s.js
index fa44b1e8a2f92f4b2ec00af717db077187448d8e..fe01bcd7daad77c8d71f75d784fe495af6e8770f 100644
--- a/test/language/literals/numeric/7.8.3-5-s.js
+++ b/test/language/literals/numeric/7.8.3-5-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("var _7_8_3_5 = 07;");
             return false;
diff --git a/test/language/literals/numeric/7.8.3-6-s.js b/test/language/literals/numeric/7.8.3-6-s.js
index 11a8191084e5bf5ee4f31250615c9ab4f32ad85b..6ac9c0e3fc6acf88265b34c938a556094894a01e 100644
--- a/test/language/literals/numeric/7.8.3-6-s.js
+++ b/test/language/literals/numeric/7.8.3-6-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("var _7_8_3_6 = 000;");
             return false;
diff --git a/test/language/literals/numeric/7.8.3-7-s.js b/test/language/literals/numeric/7.8.3-7-s.js
index 83fbb11095c7c7edb5e80bfabf6d1287e5f36401..6b947907ca6b71224e804a2b5b5ce3366e6a8903 100644
--- a/test/language/literals/numeric/7.8.3-7-s.js
+++ b/test/language/literals/numeric/7.8.3-7-s.js
@@ -12,7 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("var _7_8_3_7 = 005;");
             return false;
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 27ce5ba69a4f217a3ccb14f21d0a304126a20dec..9a89d0d85ad261770fcd76ee383a8facf34ef5d0 100644
--- a/test/language/literals/string/7.8.4-1-s.js
+++ b/test/language/literals/string/7.8.4-1-s.js
@@ -9,7 +9,6 @@ es5id: 7.8.4-1-s
 description: >
     A directive preceeding an 'use strict' directive may not contain
     an OctalEscapeSequence
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
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 37f467c118e76a61b60f402537641dc90d67aceb..c6affe433c3aec86c09304354ae1f8c70bd4b3cf 100644
--- a/test/language/literals/string/7.8.4-10-s.js
+++ b/test/language/literals/string/7.8.4-10-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = " \\10 ";');
+    eval('var x = " \\10 ";');
     return false;
   }
   catch (e) {
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 8d6956b9a173f0ba5f9fc78fc0a7e83bb7335562..c4b5676dc366fe12420247481116b81ddae0e8a0 100644
--- a/test/language/literals/string/7.8.4-11-s.js
+++ b/test/language/literals/string/7.8.4-11-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\16";');
+    eval('var x = "\\16";');
     return false;
   }
   catch (e) {
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 bf1c50dbd5abdf65f804693c81ceb8532b7bcc1d..4ad68f4735202f25176bed723b0f7291e2aa027f 100644
--- a/test/language/literals/string/7.8.4-12-s.js
+++ b/test/language/literals/string/7.8.4-12-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\17";');
+    eval('var x = "\\17";');
     return false;
   }
   catch (e) {
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 141042526d25fee785713facabe55528fba3323d..0387124c7a63d38c0102ecfc07c39e19b87b182d 100644
--- a/test/language/literals/string/7.8.4-13-s.js
+++ b/test/language/literals/string/7.8.4-13-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\30";');
+    eval('var x = "\\30";');
     return false;
   }
   catch (e) {
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 7fe0971c656345a2303ebfeb184087f4dc275fe1..f6c343e5e53dc92d9b37f91a53bb4680d818f1e6 100644
--- a/test/language/literals/string/7.8.4-14-s.js
+++ b/test/language/literals/string/7.8.4-14-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\31";');
+    eval('var x = "\\31";');
     return false;
   }
   catch (e) {
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 47bdbad8bc0c1534c42000dafc5c9b02870d80ba..1d4436b4a61f69c1ba0006f8f32b74ab7181f988 100644
--- a/test/language/literals/string/7.8.4-15-s.js
+++ b/test/language/literals/string/7.8.4-15-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\37";');
+    eval('var x = "\\37";');
     return false;
   }
   catch (e) {
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 260c999f7fd57b9bf7cbb9513d3c323bad2540fa..358e4ada6a1f1fdfacf046446dd34f63fe068c47 100644
--- a/test/language/literals/string/7.8.4-16-s.js
+++ b/test/language/literals/string/7.8.4-16-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\400";');
+    eval('var x = "\\400";');
     return false;
   }
   catch (e) {
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 15d97d7791b55bde3b68eb008354025be8f89c50..dfeac357d7bf9fcc0748787fca2c58a697589b46 100644
--- a/test/language/literals/string/7.8.4-17-s.js
+++ b/test/language/literals/string/7.8.4-17-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\411";');
+    eval('var x = "\\411";');
     return false;
   }
   catch (e) {
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 742b9d33f8d824cdd608f717df736661e835ac95..9c96c71e49280877d0a3a11417d9459fa5a49cdc 100644
--- a/test/language/literals/string/7.8.4-18-s.js
+++ b/test/language/literals/string/7.8.4-18-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\43a";');
+    eval('var x = "\\43a";');
     return false;
   }
   catch (e) {
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 f5814425432481c1f5716847f98242cd77098b63..20cf50d37b339274bfe65a39f5fce18c6264e97a 100644
--- a/test/language/literals/string/7.8.4-19-s.js
+++ b/test/language/literals/string/7.8.4-19-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\463";');
+    eval('var x = "\\463";');
     return false;
   }
   catch (e) {
diff --git a/test/language/literals/string/7.8.4-1gs.js b/test/language/literals/string/7.8.4-1gs.js
index 976e77bd8b8171082e6a00ef8fd9d77d3fd32447..e485320a18a4c5d8763a2b3648d2baee938cb19b 100644
--- a/test/language/literals/string/7.8.4-1gs.js
+++ b/test/language/literals/string/7.8.4-1gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 var _7_8_4_2 = '100abc\0110def';
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 262d29db678b21cd12d6700c70e50ce8a137472c..385a8ec53354685a2a47ac3ddaa0ea8a3afda3db 100644
--- a/test/language/literals/string/7.8.4-2-s.js
+++ b/test/language/literals/string/7.8.4-2-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\1";');
+    eval('var x = "\\1";');
     return false;
   }
   catch (e) {
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 7a6cb4aab54dfe26eeda03c86783d70746f37ac9..7497427c57cbfa7f5adfa0279722c2af3c135a8f 100644
--- a/test/language/literals/string/7.8.4-20-s.js
+++ b/test/language/literals/string/7.8.4-20-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\474";');
+    eval('var x = "\\474";');
     return false;
   }
   catch (e) {
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 3f8f6366a6a5bd491c619ee44364975270a8768e..28a5ea5b7ba6905c68a27b9c5a0f3b19bc47d377 100644
--- a/test/language/literals/string/7.8.4-21-s.js
+++ b/test/language/literals/string/7.8.4-21-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\77";');
+    eval('var x = "\\77";');
     return false;
   }
   catch (e) {
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 d6c00a4463e292f328f9be88927c6d1b97d0e647..f6116d969ab9afa4dfb46d13b22b23469df044dd 100644
--- a/test/language/literals/string/7.8.4-22-s.js
+++ b/test/language/literals/string/7.8.4-22-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\777";');
+    eval('var x = "\\777";');
     return false;
   }
   catch (e) {
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 549bc3ee9933d7f6d11b2c4f16a46f482e949287..799f26e7d1b68834f354cd50ae54742c668cb4a7 100644
--- a/test/language/literals/string/7.8.4-23-s.js
+++ b/test/language/literals/string/7.8.4-23-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\000";');
+    eval('var x = "\\000";');
     return false;
   }
   catch (e) {
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 aa8b0b201923d15b39f59d9130ee01ade4717c25..2a557696808215c02b37f98cf04ef99cc405dd09 100644
--- a/test/language/literals/string/7.8.4-24-s.js
+++ b/test/language/literals/string/7.8.4-24-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\001";');
+    eval('var x = "\\001";');
     return false;
   }
   catch (e) {
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 e372d8078367c3e0e4cbc9292bc503dfdf39b056..11222c9ccd76ddee87daaa5a9b4d716c62c938b8 100644
--- a/test/language/literals/string/7.8.4-25-s.js
+++ b/test/language/literals/string/7.8.4-25-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\106";');
+    eval('var x = "\\106";');
     return false;
   }
   catch (e) {
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 e5394f8a5020b6bc3736ad56bec99fd8a18adb25..a535e0fb948f9e5e622ebd691824a7e659541b4a 100644
--- a/test/language/literals/string/7.8.4-26-s.js
+++ b/test/language/literals/string/7.8.4-26-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\207";');
+    eval('var x = "\\207";');
     return false;
   }
   catch (e) {
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 fe43a5b371cc89b0019856b23807aa456d52533f..b176357c23cb4dbaac8e1fd642b707d42eae8f54 100644
--- a/test/language/literals/string/7.8.4-27-s.js
+++ b/test/language/literals/string/7.8.4-27-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\377";');
+    eval('var x = "\\377";');
     return false;
   }
   catch (e) {
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 5bb97101084354c9279540e7cc1686e94372604a..e556a20dc5d729a0bc12bdd81011aedfa6c441f1 100644
--- a/test/language/literals/string/7.8.4-28-s.js
+++ b/test/language/literals/string/7.8.4-28-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\376";');
+    eval('var x = "\\376";');
     return false;
   }
   catch (e) {
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 c22ed6410ff00d29de3cbcd52d985d953249e8f2..0be3b8e6a47e405fc709587a630ca20e1fb10898 100644
--- a/test/language/literals/string/7.8.4-29-s.js
+++ b/test/language/literals/string/7.8.4-29-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\3760";');
+    eval('var x = "\\3760";');
     return false;
   }
   catch (e) {
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 9354680722cae3ea3218bd424bf20b7bd65cc67b..802cd832a9ef0a99a9f00337bf748ed85dfde21e 100644
--- a/test/language/literals/string/7.8.4-3-s.js
+++ b/test/language/literals/string/7.8.4-3-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "a\\4";');
+    eval('var x = "a\\4";');
     return false;
   }
   catch (e) {
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 a74774b790a9eaead51de36e4b1ef0933716101c..aed5b15e671b30ec44821dbb9d6435d683722cb7 100644
--- a/test/language/literals/string/7.8.4-30-s.js
+++ b/test/language/literals/string/7.8.4-30-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\' + '1";');
+    eval('var x = "\\' + '1";');
     return false;
   }
   catch (e) {
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 96265d8eddfe8eec4b7c94c6dbb8d4abe8003ad0..cb786b7ff6ec6cd2bd97fd1df88d45276ef78d3a 100644
--- a/test/language/literals/string/7.8.4-31-s.js
+++ b/test/language/literals/string/7.8.4-31-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\" + "1";');
+    eval('var x = "\\" + "1";');
     return false;
   }
   catch (e) {
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 82d2ff934cbc6facd5a1a5fc5be17db316e2c78f..843f744087a528ad6e2aac405d5a26847b1382f5 100644
--- a/test/language/literals/string/7.8.4-32-s.js
+++ b/test/language/literals/string/7.8.4-32-s.js
@@ -17,7 +17,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\1\\1";');
+    eval('var x = "\\1\\1";');
     return false;
   }
   catch (e) {
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 5f42d25fe406d9bbd6ce51e577f95564880df5be..c2fe9f8d0615c5bd0a31736a1b6498d1d27b5cc2 100644
--- a/test/language/literals/string/7.8.4-33-s.js
+++ b/test/language/literals/string/7.8.4-33-s.js
@@ -17,7 +17,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\1\\2\\7";');
+    eval('var x = "\\1\\2\\7";');
     return false;
   }
   catch (e) {
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 fb1c366accff60726debb29491fcb9d615d32bb4..94ab11bebc855877d1f444cef23d38c9daa8a5ae 100644
--- a/test/language/literals/string/7.8.4-4-s.js
+++ b/test/language/literals/string/7.8.4-4-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "z\\7";');
+    eval('var x = "z\\7";');
     return false;
   }
   catch (e) {
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 04d8e7418e8d2b3530d5197ea747c87863c6e81f..99d63ca0a6a37dc82a793b5f65c66f61f845b57e 100644
--- a/test/language/literals/string/7.8.4-5-s.js
+++ b/test/language/literals/string/7.8.4-5-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\00a";');
+    eval('var x = "\\00a";');
     return false;
   }
   catch (e) {
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 13b171900af2aa4f2826b7941e65f2960a656f02..e96f96a630e6c4734dc37a252d6b5c24a1da72b0 100644
--- a/test/language/literals/string/7.8.4-6-s.js
+++ b/test/language/literals/string/7.8.4-6-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\01z";');
+    eval('var x = "\\01z";');
     return false;
   }
   catch (e) {
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 a2cf6f8af5ed7e764f4ded3082839d2e15be2f34..d451cd59b1ee75a5e37c2a878cec1a1e03678314 100644
--- a/test/language/literals/string/7.8.4-7-s.js
+++ b/test/language/literals/string/7.8.4-7-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "a\\03z";');
+    eval('var x = "a\\03z";');
     return false;
   }
   catch (e) {
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 486f2ee0616af01995a89a3202ebe055539dfd8a..936fc77e0ac77419be0e0717f342019da24c8d6e 100644
--- a/test/language/literals/string/7.8.4-8-s.js
+++ b/test/language/literals/string/7.8.4-8-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = " \\06";');
+    eval('var x = " \\06";');
     return false;
   }
   catch (e) {
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 afcd1cc668c66a64f6777d3c1b48dc1fc411ca00..aecc55b13295ab3ce8230e917b512e41d36aa52d 100644
--- a/test/language/literals/string/7.8.4-9-s.js
+++ b/test/language/literals/string/7.8.4-9-s.js
@@ -15,7 +15,7 @@ function testcase()
 {
   try 
   {
-    eval('"use strict"; var x = "\\07 ";');
+    eval('var x = "\\07 ";');
     return false;
   }
   catch (e) {
diff --git a/test/language/literals/string/S7.8.4_A4.3_T1.js b/test/language/literals/string/S7.8.4_A4.3_T1.js
index 5d2e6065289bce5486d9003594837e9963ff9dc4..d8ccc3b0da3bade714d95d956173e46502ae01ed 100644
--- a/test/language/literals/string/S7.8.4_A4.3_T1.js
+++ b/test/language/literals/string/S7.8.4_A4.3_T1.js
@@ -9,7 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
-
-//CHECK#1
 "\1"
diff --git a/test/language/literals/string/S7.8.4_A4.3_T2.js b/test/language/literals/string/S7.8.4_A4.3_T2.js
index 5b55f54770dce2d5cd86e6532e2a4957faec89a0..daa88f3e7ab5ee533dc1d8a77ba04ea8d738ffc0 100644
--- a/test/language/literals/string/S7.8.4_A4.3_T2.js
+++ b/test/language/literals/string/S7.8.4_A4.3_T2.js
@@ -9,7 +9,4 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
-
-//CHECK#1
 "\7"
diff --git a/test/language/reserved-words/7.6.1.2-1gs.js b/test/language/reserved-words/7.6.1.2-1gs.js
index 63c34a88118b7f8d371d6a04e5c5c9c173662be8..6e0d15e63d6993e4980241edef740abd78d19f46 100644
--- a/test/language/reserved-words/7.6.1.2-1gs.js
+++ b/test/language/reserved-words/7.6.1.2-1gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 var implements = 1;
diff --git a/test/language/statements/function/13.0-10-s.js b/test/language/statements/function/13.0-10-s.js
index 8176c8cb7fea628b2fb8521b6053efd135d73476..9eb04d7a27cb26f49a185dfe42ff39b1a289df42 100644
--- a/test/language/statements/function/13.0-10-s.js
+++ b/test/language/statements/function/13.0-10-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     the code of this FunctionBody with an inner function contains a
     Use Strict Directive
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-11-s.js b/test/language/statements/function/13.0-11-s.js
index 440138f881d17067e1d5b608837e0c41e196168e..8a77204248f257c2a4c0af5d6938c632b8893ccc 100644
--- a/test/language/statements/function/13.0-11-s.js
+++ b/test/language/statements/function/13.0-11-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     the code of this FunctionBody with an inner function which is in
     strict mode
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-12-s.js b/test/language/statements/function/13.0-12-s.js
index d05941b797f93e99aadff2259766abce11eaee6c..34ed7fe9d00b6c80c4553cdda54350ce511d335b 100644
--- a/test/language/statements/function/13.0-12-s.js
+++ b/test/language/statements/function/13.0-12-s.js
@@ -18,8 +18,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var _13_0_12_fun = new Function(" ","eval = 42;");
         _13_0_12_fun();
         return true;
diff --git a/test/language/statements/function/13.0-13-s.js b/test/language/statements/function/13.0-13-s.js
index 6e22edfe59aa671bbbdbbf86d104ba72ff6f4eb4..bad8b3d1f1028311fc7c0ab2953b1f887f04de47 100644
--- a/test/language/statements/function/13.0-13-s.js
+++ b/test/language/statements/function/13.0-13-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     the function body of a Function constructor begins with a Strict
     Directive
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-14-s.js b/test/language/statements/function/13.0-14-s.js
index dd0ae3b9ac9c26894795374c6e9141cdf76e14b2..126df5b7102ed0424da0478bada4fb280b76ce6e 100644
--- a/test/language/statements/function/13.0-14-s.js
+++ b/test/language/statements/function/13.0-14-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     the function body of a Function constructor contains a Strict
     Directive
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-15-s.js b/test/language/statements/function/13.0-15-s.js
index 0ef01a80b22ae7f0b797baa12f73edb50f9299d5..5459af59cef3f76a449875a9e53579d95d7dbddd 100644
--- a/test/language/statements/function/13.0-15-s.js
+++ b/test/language/statements/function/13.0-15-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     a FunctionDeclaration is contained in strict mode code within eval
     code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-16-s.js b/test/language/statements/function/13.0-16-s.js
index 08837aef2cf0eaf3fe842ab4821316e579088a99..4ee45b4f38121734ff3b658265fd5c4b12313110 100644
--- a/test/language/statements/function/13.0-16-s.js
+++ b/test/language/statements/function/13.0-16-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     a FunctionExpression is contained in strict mode code within eval
     code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-17-s.js b/test/language/statements/function/13.0-17-s.js
index d595bcf6bceee7c78191bf0981644127417b8b94..75385f93733b888edd653cfd7d431a676630be0c 100644
--- a/test/language/statements/function/13.0-17-s.js
+++ b/test/language/statements/function/13.0-17-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is not evaluated as strict mode code
     when a Function constructor is contained in strict mode code
     within eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-7-s.js b/test/language/statements/function/13.0-7-s.js
index 4bdfa42b947df1db8593c8e1118cf46a1c959f52..fd62128cf7a71929d5dcbb2ca57ed8c3dbfa4304 100644
--- a/test/language/statements/function/13.0-7-s.js
+++ b/test/language/statements/function/13.0-7-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     the code of this FunctionDeclaration is contained in non-strict
     mode but the call to eval is a direct call in strict mode code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-8-s.js b/test/language/statements/function/13.0-8-s.js
index 6e9ca1ddda9cdfad0814b8758f5f02e6858751f2..d7c9ecfbbf793b4c5a6ac16083da0faf10be80c1 100644
--- a/test/language/statements/function/13.0-8-s.js
+++ b/test/language/statements/function/13.0-8-s.js
@@ -13,7 +13,7 @@ description: >
     Strict Mode - SourceElements is evaluated as strict mode code when
     the code of this FunctionExpression is contained in non-strict
     mode but the call to eval is a direct call in strict mode code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.0-9-s.js b/test/language/statements/function/13.0-9-s.js
index 679efd9f6f460ba4a038c3ca5948a339bb2d97ad..ad548564007c228b3b9bfcdd0575064480787427 100644
--- a/test/language/statements/function/13.0-9-s.js
+++ b/test/language/statements/function/13.0-9-s.js
@@ -18,8 +18,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var _13_0_9_fun = function () {
             function _13_0_9_inner() { eval("eval = 42;"); }
             _13_0_9_inner();
diff --git a/test/language/statements/function/13.0_4-17gs.js b/test/language/statements/function/13.0_4-17gs.js
index 6cfee358d9243c0d3c61a8b2c6601027d7bdda9b..6f7d4395f8cd49d2d46503bc11bea9dff9793de7 100644
--- a/test/language/statements/function/13.0_4-17gs.js
+++ b/test/language/statements/function/13.0_4-17gs.js
@@ -12,5 +12,4 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 var _13_0_4_17_fun = new Function('eval = 42;');
diff --git a/test/language/statements/function/13.0_4-5gs.js b/test/language/statements/function/13.0_4-5gs.js
index 49e32cfd7af6dabd2707799d78de67514cb9265c..2a26b8f4f00de106591cfa1b5a189c598d708668 100644
--- a/test/language/statements/function/13.0_4-5gs.js
+++ b/test/language/statements/function/13.0_4-5gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 function _13_0_4_5_fun() { eval = 42; };
diff --git a/test/language/statements/function/13.1-1-s.js b/test/language/statements/function/13.1-1-s.js
index 9c6282ea1de9e8d549ef07e7944dad671e3bd346..3e19f0069abbfb5315bcd00a85fc970046ad35cd 100644
--- a/test/language/statements/function/13.1-1-s.js
+++ b/test/language/statements/function/13.1-1-s.js
@@ -19,8 +19,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("function _13_1_1_fun(eval) { }");
             return false;
diff --git a/test/language/statements/function/13.1-10-s.js b/test/language/statements/function/13.1-10-s.js
index e3cb2d0cc614e8144b7d2bd6a5d760863557def6..457180173d6d876dba1790dee8fa7b469af33207 100644
--- a/test/language/statements/function/13.1-10-s.js
+++ b/test/language/statements/function/13.1-10-s.js
@@ -19,8 +19,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var _13_1_10_fun = function (param, param, param) { };")
             return false;
diff --git a/test/language/statements/function/13.1-11-s.js b/test/language/statements/function/13.1-11-s.js
index 6bf3d29bd6d52d4c4b357baf53c5c99eb469ccb5..c0e1158a7e2892ec9f6691491bf55981b13e6372 100644
--- a/test/language/statements/function/13.1-11-s.js
+++ b/test/language/statements/function/13.1-11-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("function eval() { };")
             return false;
diff --git a/test/language/statements/function/13.1-12-s.js b/test/language/statements/function/13.1-12-s.js
index b792d17e2c501f0d36902c9bfc5751c6977db445..3d99e05695e27f163a83f63e7eaa58ec50ee05da 100644
--- a/test/language/statements/function/13.1-12-s.js
+++ b/test/language/statements/function/13.1-12-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _13_1_12_s = {};
 
         try {
diff --git a/test/language/statements/function/13.1-13-s.js b/test/language/statements/function/13.1-13-s.js
index 3a088a4348bdfeda1d983b1cef46d3a3c945154f..f5f7033b334e68169aacf9e6d5b15b9ee07b95e2 100644
--- a/test/language/statements/function/13.1-13-s.js
+++ b/test/language/statements/function/13.1-13-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("function arguments() { };")
             return false;
diff --git a/test/language/statements/function/13.1-13gs.js b/test/language/statements/function/13.1-13gs.js
index 6d31f5266ede8c51c8b34153a8d8ab4ce68c9ec3..cc36f7defc7b875f478e9bbab53d33b892e7fb1c 100644
--- a/test/language/statements/function/13.1-13gs.js
+++ b/test/language/statements/function/13.1-13gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 function arguments() { };
diff --git a/test/language/statements/function/13.1-14-s.js b/test/language/statements/function/13.1-14-s.js
index fa03f343b4e2b9d30af07937aeec4f7c9bf96845..98ca06b2e022ca4660350c791d179c74b984b18e 100644
--- a/test/language/statements/function/13.1-14-s.js
+++ b/test/language/statements/function/13.1-14-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _13_1_14_s = {};
 
         try {
diff --git a/test/language/statements/function/13.1-15-s.js b/test/language/statements/function/13.1-15-s.js
index 67bd1fdf00da07ed1e2d3ada938ee366cf6e5f4b..f79193594a035251d0220aad694da6dc14e20700 100644
--- a/test/language/statements/function/13.1-15-s.js
+++ b/test/language/statements/function/13.1-15-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if the identifier 'eval'
     appears within a FormalParameterList of a strict mode
     FunctionDeclaration in strict eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-16-s.js b/test/language/statements/function/13.1-16-s.js
index 4e699d198a38b1f172320d3e2a983c68c780bc9d..99317ea51cba85d5a2d623df7bbf74c00f887aa0 100644
--- a/test/language/statements/function/13.1-16-s.js
+++ b/test/language/statements/function/13.1-16-s.js
@@ -14,7 +14,7 @@ description: >
     StrictMode - SyntaxError is thrown if the identifier 'eval'
     appears within a FormalParameterList of a strict mode
     FunctionDeclaration when FuctionBody is strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-17-s.js b/test/language/statements/function/13.1-17-s.js
index c30d0ba5e009fd431052d017e0896cae7a941091..dba1ac83d9a405cf721027deb0c6f4f815fb275e 100644
--- a/test/language/statements/function/13.1-17-s.js
+++ b/test/language/statements/function/13.1-17-s.js
@@ -14,7 +14,7 @@ description: >
     StrictMode - SyntaxError is thrown if the identifier 'eval'
     appears within a FormalParameterList of a strict mode
     FunctionExpression in strict eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-18-s.js b/test/language/statements/function/13.1-18-s.js
index e85294977416840113619b41b3c1887cdf87bb97..fb473826070322b181ab248c36893b9d1c467e4b 100644
--- a/test/language/statements/function/13.1-18-s.js
+++ b/test/language/statements/function/13.1-18-s.js
@@ -14,7 +14,7 @@ description: >
     StrictMode - SyntaxError is thrown if the identifier 'eval'
     appears within a FormalParameterList of a strict mode
     FunctionExpression when FuctionBody is strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-19-s.js b/test/language/statements/function/13.1-19-s.js
index 1d6c6e45948dd147231f00c33e07fa8b79045e31..f14946a15543fe580714214e33f842c574608a5a 100644
--- a/test/language/statements/function/13.1-19-s.js
+++ b/test/language/statements/function/13.1-19-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if the identifier 'arguments'
     appears within a FormalParameterList of a strict mode
     FunctionDeclaration in strict eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-1gs.js b/test/language/statements/function/13.1-1gs.js
index 17d9148cde16ea2635e12c948f859846a0983593..3ef75491bf04fa0439fda69114b814cda537f4f6 100644
--- a/test/language/statements/function/13.1-1gs.js
+++ b/test/language/statements/function/13.1-1gs.js
@@ -14,6 +14,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 function _13_1_1_fun(eval) { }
diff --git a/test/language/statements/function/13.1-2-s.js b/test/language/statements/function/13.1-2-s.js
index 9514ede9018a6c4d8165ac70fde998226cf2343d..b6a125a84573009a0d10ae185b1e461384ff6150 100644
--- a/test/language/statements/function/13.1-2-s.js
+++ b/test/language/statements/function/13.1-2-s.js
@@ -19,8 +19,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var _13_1_2_fun = function (eval) { }");
             return false;
diff --git a/test/language/statements/function/13.1-20-s.js b/test/language/statements/function/13.1-20-s.js
index 1108b1573bc2f12c444fddf6a26c735d57890627..5c58972e040ded58049d0b4b5a0f0b9565791f4c 100644
--- a/test/language/statements/function/13.1-20-s.js
+++ b/test/language/statements/function/13.1-20-s.js
@@ -14,7 +14,7 @@ description: >
     StrictMode - SyntaxError is thrown if the identifier 'arguments'
     appears within a FormalParameterList of a strict mode
     FunctionDeclaration when FuctionBody is strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-21-s.js b/test/language/statements/function/13.1-21-s.js
index 0ab8935177927db34a111b6bf24dabae88aa82c5..fc1a476ed52640a4cd9bbf2336d4afbe3336ebaf 100644
--- a/test/language/statements/function/13.1-21-s.js
+++ b/test/language/statements/function/13.1-21-s.js
@@ -14,7 +14,7 @@ description: >
     StrictMode - SyntaxError is thrown if the identifier 'arguments'
     appears within a FormalParameterList of a strict mode
     FunctionExpression in strict eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-22-s.js b/test/language/statements/function/13.1-22-s.js
index 7359b8fc78737112163d0ef614501f4e1bce2ded..91b189e46f58c1e65a8fb28be31ecd69934d43ea 100644
--- a/test/language/statements/function/13.1-22-s.js
+++ b/test/language/statements/function/13.1-22-s.js
@@ -14,7 +14,7 @@ description: >
     StrictMode - SyntaxError is thrown if the identifier 'arguments'
     appears within a FormalParameterList of a strict mode
     FunctionExpression when FuctionBody is strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-23-s.js b/test/language/statements/function/13.1-23-s.js
index d7606ed582f073378cd4f21082bc5b82779b55c5..f91d62c87d6adaa36d77c13f01991ebc5e2a7516 100644
--- a/test/language/statements/function/13.1-23-s.js
+++ b/test/language/statements/function/13.1-23-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if a function is created using
     a FunctionDeclaration that is contained in eval strict code and
     the function has two identical parameters
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-24-s.js b/test/language/statements/function/13.1-24-s.js
index 7da4126fff7db85c84dcde729bed2e54fad37668..9452b404fc3e24c2f30caf44df69a3c22b8adae1 100644
--- a/test/language/statements/function/13.1-24-s.js
+++ b/test/language/statements/function/13.1-24-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if a function is created using
     a FunctionDeclaration whose FunctionBody is contained in strict
     code and the function has two identical parameters
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-25-s.js b/test/language/statements/function/13.1-25-s.js
index 1b3eb485c0ccd2690416fa46f609d4ec93e4ac9d..4e9421c9d3bdf110c69d87622344cd3d58f0e0fe 100644
--- a/test/language/statements/function/13.1-25-s.js
+++ b/test/language/statements/function/13.1-25-s.js
@@ -15,7 +15,7 @@ description: >
     a FunctionDeclaration that is contained in eval strict code and
     the function has two identical parameters which are separated by a
     unique parameter name
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-26-s.js b/test/language/statements/function/13.1-26-s.js
index 213c2481f5426c5ebf5a345d43aae9284448d1f6..c093ff7f2e5e0b1913e3882a67a02f67413e1452 100644
--- a/test/language/statements/function/13.1-26-s.js
+++ b/test/language/statements/function/13.1-26-s.js
@@ -15,7 +15,7 @@ description: >
     a FunctionDeclaration whose FunctionBody is contained in strict
     code and the function has two identical parameters which are
     separated by a unique parameter name
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-27-s.js b/test/language/statements/function/13.1-27-s.js
index d39a883dd8d35326ef88a45417e97e8aea2cc9bb..1a67135ec4535d5fac341c553f75cf9d590275b2 100644
--- a/test/language/statements/function/13.1-27-s.js
+++ b/test/language/statements/function/13.1-27-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if a function is created using
     a FunctionDeclaration that is contained in eval strict code and
     the function has three identical parameters
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-28-s.js b/test/language/statements/function/13.1-28-s.js
index 522239054d1825936672f2e526cda034ed06b8cb..20c882c978ac479b184787ae0eb74fe58d3f3615 100644
--- a/test/language/statements/function/13.1-28-s.js
+++ b/test/language/statements/function/13.1-28-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if a function is created using
     a FunctionDeclaration whose FunctionBody is contained in strict
     code and the function has three identical parameters
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-29-s.js b/test/language/statements/function/13.1-29-s.js
index 667efb867e690075b129f8353473ef7dddc504f4..20e104ff14672d22ae572fcd60086c6be8589a78 100644
--- a/test/language/statements/function/13.1-29-s.js
+++ b/test/language/statements/function/13.1-29-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if a function is created using
     a FunctionExpression that is contained in eval strict code and the
     function has two identical parameters
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-3-s.js b/test/language/statements/function/13.1-3-s.js
index c161f4321e98f984db0cc7460ed8fa2f3a9da285..4657cca356c64e75fe1c68837faf0552f37631ea 100644
--- a/test/language/statements/function/13.1-3-s.js
+++ b/test/language/statements/function/13.1-3-s.js
@@ -19,8 +19,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("function _13_1_3_fun(arguments) { }");
             return false;
diff --git a/test/language/statements/function/13.1-30-s.js b/test/language/statements/function/13.1-30-s.js
index b15a96e6dcb82d9c4be55064835781d1e0111889..7bb3e6ee6fb310272177113827d695de5c0d86ad 100644
--- a/test/language/statements/function/13.1-30-s.js
+++ b/test/language/statements/function/13.1-30-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if a function is created using
     a FunctionExpression whose FunctionBody is contained in strict
     code and the function has two identical parameters
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-31-s.js b/test/language/statements/function/13.1-31-s.js
index 0bb2d09c729e1aaf2efe2a100639cf34c04b6f71..11cc3631a4e8e19516f18c160f350641655d52a9 100644
--- a/test/language/statements/function/13.1-31-s.js
+++ b/test/language/statements/function/13.1-31-s.js
@@ -15,7 +15,7 @@ description: >
     a FunctionExpression that is contained in eval strict code and the
     function has two identical parameters, which are separated by a
     unique parameter name
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-32-s.js b/test/language/statements/function/13.1-32-s.js
index 89f56c568c64eca33fcbc5df22fc7bd6bd3c05ca..3abffc21788c0f49d839e23c6f9bdccd5bf1dd78 100644
--- a/test/language/statements/function/13.1-32-s.js
+++ b/test/language/statements/function/13.1-32-s.js
@@ -15,7 +15,7 @@ description: >
     a FunctionExpression whose FunctionBody is strict and the function
     has two identical parameters, which are separated by a unique
     parameter name
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-33-s.js b/test/language/statements/function/13.1-33-s.js
index 597f37fa9334bc95ca1037cf99e60ce597b2c5d5..9ac11d1cc7fe85edb3c8d73244722599b09c5f50 100644
--- a/test/language/statements/function/13.1-33-s.js
+++ b/test/language/statements/function/13.1-33-s.js
@@ -14,7 +14,7 @@ description: >
     Strict Mode - SyntaxError is thrown if function is created using a
     FunctionExpression that is contained in eval strict code and the
     function has three identical parameters
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-34-s.js b/test/language/statements/function/13.1-34-s.js
index 2deee03de6486fc8133f44a7ad85573735034173..3d667fd904cebd69a4a27819d2983ba0e523e070 100644
--- a/test/language/statements/function/13.1-34-s.js
+++ b/test/language/statements/function/13.1-34-s.js
@@ -13,7 +13,7 @@ es5id: 13.1-34-s
 description: >
     Strict Mode - SyntaxError is thrown if a function declaration has
     three identical parameters with a strict mode body
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-35-s.js b/test/language/statements/function/13.1-35-s.js
index 44d33e07228a631216838050934cd8547f9af466..bc7a9c653e8a08cfc783097052d63061c816b5ce 100644
--- a/test/language/statements/function/13.1-35-s.js
+++ b/test/language/statements/function/13.1-35-s.js
@@ -9,7 +9,7 @@ es5id: 13.1-35-s
 description: >
     StrictMode - SyntaxError is thrown if 'eval' occurs as the
     function name of a FunctionDeclaration in strict eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-36-s.js b/test/language/statements/function/13.1-36-s.js
index 7d09f629e65b2f2ca54cb240440b7bb26a6c9225..c7834aa4cc7a56791bce0414da3da546a388a63e 100644
--- a/test/language/statements/function/13.1-36-s.js
+++ b/test/language/statements/function/13.1-36-s.js
@@ -10,7 +10,7 @@ description: >
     StrictMode - SyntaxError is thrown if 'eval' occurs as the
     function name of a FunctionDeclaration whose FunctionBody is in
     strict mode
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-37-s.js b/test/language/statements/function/13.1-37-s.js
index e46c8c545b8198779f4e498f291ffb04e851d337..2cdd43c42547eec6c326c01e75b89f895cd22079 100644
--- a/test/language/statements/function/13.1-37-s.js
+++ b/test/language/statements/function/13.1-37-s.js
@@ -9,7 +9,7 @@ es5id: 13.1-37-s
 description: >
     StrictMode - SyntaxError is thrown if 'eval' occurs as the
     Identifier of a FunctionExpression in strict eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-38-s.js b/test/language/statements/function/13.1-38-s.js
index 0fa9123db1082a539ca4f41e595273f66eb89a62..45d6a39b97fc2a99818d1f6c098a6adab3aa98b7 100644
--- a/test/language/statements/function/13.1-38-s.js
+++ b/test/language/statements/function/13.1-38-s.js
@@ -10,7 +10,7 @@ description: >
     StrictMode - SyntaxError is thrown if 'eval' occurs as the
     Identifier of a FunctionExpression whose FunctionBody is contained
     in strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-39-s.js b/test/language/statements/function/13.1-39-s.js
index c6c02f74003ddd06b3d0114cb34af747980a90df..ff4c6d87c73139b9232389f68026ae5b82d3d04b 100644
--- a/test/language/statements/function/13.1-39-s.js
+++ b/test/language/statements/function/13.1-39-s.js
@@ -9,7 +9,7 @@ es5id: 13.1-39-s
 description: >
     StrictMode - SyntaxError is thrown if 'arguments' occurs as the
     function name of a FunctionDeclaration in strict eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-4-s.js b/test/language/statements/function/13.1-4-s.js
index 4f1542e6073b02adc782157a01151b5d9afbb54c..0f8adfbe104689ad536d3b739d059564bf4bdd51 100644
--- a/test/language/statements/function/13.1-4-s.js
+++ b/test/language/statements/function/13.1-4-s.js
@@ -19,8 +19,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var _13_1_4_fun = function (arguments) { };");
             return false;
diff --git a/test/language/statements/function/13.1-40-s.js b/test/language/statements/function/13.1-40-s.js
index a7643915aa5f36fa52a784eba63c08c293d58b55..36e7f7159aa30b945fc36e7bb69dc29dad3a5c72 100644
--- a/test/language/statements/function/13.1-40-s.js
+++ b/test/language/statements/function/13.1-40-s.js
@@ -10,7 +10,7 @@ description: >
     StrictMode - SyntaxError is thrown if 'arguments' occurs as the
     Identifier of a FunctionDeclaration whose FunctionBody is
     contained in strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-41-s.js b/test/language/statements/function/13.1-41-s.js
index a4c0ca0d695ece33f45a6a8569ea78fa26ab4c13..0e5cab9308a8c09b9a3de30d3678ea5f72d669ec 100644
--- a/test/language/statements/function/13.1-41-s.js
+++ b/test/language/statements/function/13.1-41-s.js
@@ -9,7 +9,7 @@ es5id: 13.1-41-s
 description: >
     StrictMode - SyntaxError is thrown if 'arguments' occurs as the
     Identifier of a FunctionExpression in strict eval code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-42-s.js b/test/language/statements/function/13.1-42-s.js
index 355a7ee802816bbd15d454b33c1ee2227f21dcdb..5d2e06e7b5d0401514bdaceb0ba4118dddab15e6 100644
--- a/test/language/statements/function/13.1-42-s.js
+++ b/test/language/statements/function/13.1-42-s.js
@@ -10,7 +10,7 @@ description: >
     StrictMode - SyntaxError is thrown if 'arguments' occurs as the
     Identifier of a FunctionExpression whose FunctionBody is contained
     in strict code
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.1-4gs.js b/test/language/statements/function/13.1-4gs.js
index e47d37f510325c7d51670aee1d09f358b79ca933..ac1b206d0cd96a48f2957ce4d825e7ab5a2f2fa9 100644
--- a/test/language/statements/function/13.1-4gs.js
+++ b/test/language/statements/function/13.1-4gs.js
@@ -14,6 +14,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 var _13_1_4_fun = function (arguments) { };
diff --git a/test/language/statements/function/13.1-5-s.js b/test/language/statements/function/13.1-5-s.js
index ff2ece54c5f29bebc1d5cfdbdc5e8ca1b01335fe..119e8a43d7bb27da22c56df48964b24e19008686 100644
--- a/test/language/statements/function/13.1-5-s.js
+++ b/test/language/statements/function/13.1-5-s.js
@@ -19,8 +19,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("function _13_1_5_fun(param, param) { }");
             return false;
diff --git a/test/language/statements/function/13.1-5gs.js b/test/language/statements/function/13.1-5gs.js
index d150dd37e5c668a1b49902b4c4c41b611b04e097..6ab3112118a8a29dfd1da2dce2a9875f0d232e1e 100644
--- a/test/language/statements/function/13.1-5gs.js
+++ b/test/language/statements/function/13.1-5gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 function _13_1_5_fun(param, param) { }
diff --git a/test/language/statements/function/13.1-6-s.js b/test/language/statements/function/13.1-6-s.js
index 1b6a8ecce0520d2830b0435587416f0e93f9d083..bb780c253eea63e35689571f252609e1013a38ea 100644
--- a/test/language/statements/function/13.1-6-s.js
+++ b/test/language/statements/function/13.1-6-s.js
@@ -20,8 +20,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("function _13_1_6_fun(param1, param2, param1) { }");
             return false;
diff --git a/test/language/statements/function/13.1-7-s.js b/test/language/statements/function/13.1-7-s.js
index fcc1bf934788c5ade4f057aeaa0a87dc93f94de0..ebb17ce2a9a84e7b22de6cc38a7634e8b2538dd3 100644
--- a/test/language/statements/function/13.1-7-s.js
+++ b/test/language/statements/function/13.1-7-s.js
@@ -19,8 +19,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("function _13_1_7_fun(param, param, param) { }");
             return false;
diff --git a/test/language/statements/function/13.1-8-s.js b/test/language/statements/function/13.1-8-s.js
index 47e031199d2d624e3055e9926c0993d2684578fc..47c863055629e17993f9b83a7c08d7023ae007fc 100644
--- a/test/language/statements/function/13.1-8-s.js
+++ b/test/language/statements/function/13.1-8-s.js
@@ -19,8 +19,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var _13_1_8_fun = function (param, param) { };");
             return false;
diff --git a/test/language/statements/function/13.1-8gs.js b/test/language/statements/function/13.1-8gs.js
index 2572d649c80c6b57f92cd359ad815c06471a9206..3d88d33a9393cea3a13a00abb68d9c941d642ab0 100644
--- a/test/language/statements/function/13.1-8gs.js
+++ b/test/language/statements/function/13.1-8gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 var _13_1_8_fun = function (param, param) { };
diff --git a/test/language/statements/function/13.1-9-s.js b/test/language/statements/function/13.1-9-s.js
index 3ce7acb1622017d8d62ee2050eb6dfc07f963416..96aa4eb16f612549630847527b8944c4e891d90c 100644
--- a/test/language/statements/function/13.1-9-s.js
+++ b/test/language/statements/function/13.1-9-s.js
@@ -20,8 +20,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var _13_1_9_fun = function (param1, param2, param1) { };");
             return false;
diff --git a/test/language/statements/function/13.2-1-s.js b/test/language/statements/function/13.2-1-s.js
index 3380c4f9b2bbc2ffde589db35059e9ede7e4e9b4..10ccf61eb3ea123febf3f994e6f5f575d8e04673 100644
--- a/test/language/statements/function/13.2-1-s.js
+++ b/test/language/statements/function/13.2-1-s.js
@@ -9,13 +9,10 @@ es5id: 13.2-1-s
 description: >
     StrictMode -  Writing or reading from a property named 'caller' of
     function objects is allowed under both strict and normal modes.
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var foo = function () {
             this.caller = 12;
         }
diff --git a/test/language/statements/function/13.2-10-s.js b/test/language/statements/function/13.2-10-s.js
index 67b8b36ad139cb12eb16b96d79ecadc52986414f..7ead335f2b9d795cbf2888776d78c49b9222dc56 100644
--- a/test/language/statements/function/13.2-10-s.js
+++ b/test/language/statements/function/13.2-10-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-10-s
 description: >
     StrictMode - writing a property named 'caller' of function objects
     is not allowed outside the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-11-s.js b/test/language/statements/function/13.2-11-s.js
index 0c498f0d7f93441fd0171e4f204b776eb417c089..d808514afa8d1ddb0aa51f88c60d5723b673416f 100644
--- a/test/language/statements/function/13.2-11-s.js
+++ b/test/language/statements/function/13.2-11-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-11-s
 description: >
     StrictMode - enumerating over a function object looking for
     'caller' fails outside of the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-12-s.js b/test/language/statements/function/13.2-12-s.js
index 81cfbeff569e638b9a540cbf52cc5c67ed31f5b7..24e682723d11469bdf445cbf8350274b2c344807 100644
--- a/test/language/statements/function/13.2-12-s.js
+++ b/test/language/statements/function/13.2-12-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-12-s
 description: >
     StrictMode - enumerating over a function object looking for
     'caller' fails inside the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-13-s.js b/test/language/statements/function/13.2-13-s.js
index 394f1c9729110678ef04ef53ce818691f8505bca..93616eb3310b307375630c188d2caf6359058d2a 100644
--- a/test/language/statements/function/13.2-13-s.js
+++ b/test/language/statements/function/13.2-13-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-13-s
 description: >
     StrictMode - reading a property named 'arguments' of function
     objects is not allowed outside the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-14-s.js b/test/language/statements/function/13.2-14-s.js
index acfd0961a455edfb56df11108b60b47c7fd5ab60..cad2888ee66f9054b4e2f75c997cac8925ab0dd0 100644
--- a/test/language/statements/function/13.2-14-s.js
+++ b/test/language/statements/function/13.2-14-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-14-s
 description: >
     StrictMode - writing a property named 'arguments' of function
     objects is not allowed outside the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-15-s.js b/test/language/statements/function/13.2-15-s.js
index 5288ebfccdfa44a3a1fd70385271fd317499a248..a1e5d62eae461149ed50821ee2ae04aa2cc3c8fd 100644
--- a/test/language/statements/function/13.2-15-s.js
+++ b/test/language/statements/function/13.2-15-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-15-s
 description: >
     StrictMode - enumerating over a function object looking for
     'arguments' fails outside of the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-16-s.js b/test/language/statements/function/13.2-16-s.js
index c5d38c247fc3d9ea623bde7604d2f7f8ee97cd19..b4841d1186993b8410ad1931f018b6eba7cf3b18 100644
--- a/test/language/statements/function/13.2-16-s.js
+++ b/test/language/statements/function/13.2-16-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-16-s
 description: >
     StrictMode - enumerating over a function object looking for
     'arguments' fails inside the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-17-s.js b/test/language/statements/function/13.2-17-s.js
index d94a55047dc235e47889a687b27cf2267ca09b1f..ddd9696e0c63a8d177d3fac0a885d41adb7b1500 100644
--- a/test/language/statements/function/13.2-17-s.js
+++ b/test/language/statements/function/13.2-17-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-17-s
 description: >
     StrictMode - reading a property named 'arguments' of function
     objects is not allowed outside the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-18-s.js b/test/language/statements/function/13.2-18-s.js
index 65b164edacc2580fac47997e78248b2a6e865b95..5c0c8716de7c6fa1776ab70782c949ee77ac6c90 100644
--- a/test/language/statements/function/13.2-18-s.js
+++ b/test/language/statements/function/13.2-18-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-18-s
 description: >
     StrictMode - writing a property named 'arguments' of function
     objects is not allowed outside the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-19-b-3gs.js b/test/language/statements/function/13.2-19-b-3gs.js
index 156c150c80c62dfbb538e844eca9ba0100a85599..b72f27e53156001b7b402a12c62f1bbf27220c4f 100644
--- a/test/language/statements/function/13.2-19-b-3gs.js
+++ b/test/language/statements/function/13.2-19-b-3gs.js
@@ -13,6 +13,5 @@ negative: TypeError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 function _13_2_19_b_3_gs() {}
 _13_2_19_b_3_gs.caller = 1;
diff --git a/test/language/statements/function/13.2-19-s.js b/test/language/statements/function/13.2-19-s.js
index 36e610a8cab7d5692e69ead07f00228bf93a8290..48fcc7fb960b30c036022e2b280ea41b4befcac2 100644
--- a/test/language/statements/function/13.2-19-s.js
+++ b/test/language/statements/function/13.2-19-s.js
@@ -9,7 +9,6 @@ es5id: 13.2-19-s
 description: >
     StrictMode - enumerating over a function object looking for
     'arguments' fails outside of the function
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-2-s.js b/test/language/statements/function/13.2-2-s.js
index f67635a798ef80f1bcb388cf5f56fe5616389e77..70eeaa85b1027dfed2af4d0c64295c35ff914dbd 100644
--- a/test/language/statements/function/13.2-2-s.js
+++ b/test/language/statements/function/13.2-2-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             var foo = function () {
             }
diff --git a/test/language/statements/function/13.2-20-s.js b/test/language/statements/function/13.2-20-s.js
index ce3f3e07d5443622135862d696ac38bf4e5c922c..8a4a6493c8ebaaee8675da3f6b0d1bb317075ada 100644
--- a/test/language/statements/function/13.2-20-s.js
+++ b/test/language/statements/function/13.2-20-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-20-s
 description: >
     StrictMode - enumerating over a function object looking for
     'arguments' fails inside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-21-s.js b/test/language/statements/function/13.2-21-s.js
index 3efd76210a78ada8b547efbb1b8aa7f992c8c2f9..c1b5ff2c99c32bc8782c012a4fef84c081e74ea0 100644
--- a/test/language/statements/function/13.2-21-s.js
+++ b/test/language/statements/function/13.2-21-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-21-s
 description: >
     StrictMode - reading a property named 'caller' of function objects
     is not allowed outside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-22-s.js b/test/language/statements/function/13.2-22-s.js
index a92d7a0ed4c4ba5d98f7fe798b58bbadc3bf57fe..98ad5eb1d48ecd9b9b4a62ab5e350bee82df07b6 100644
--- a/test/language/statements/function/13.2-22-s.js
+++ b/test/language/statements/function/13.2-22-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-22-s
 description: >
     StrictMode - writing a property named 'caller' of function objects
     is not allowed outside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-23-s.js b/test/language/statements/function/13.2-23-s.js
index 2a72651c2114b4f0612e0cf23e8bb951e6884e90..86a46ac446b15fc8236caa734ea50e93b33c22a9 100644
--- a/test/language/statements/function/13.2-23-s.js
+++ b/test/language/statements/function/13.2-23-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-23-s
 description: >
     StrictMode - enumerating over a function object looking for
     'caller' fails outside of the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-24-s.js b/test/language/statements/function/13.2-24-s.js
index d11f2992460ed318ab058988bcfd9bc8abeaf2be..e0145225101ca88fac5e7fa90cfe91fe7b05daa1 100644
--- a/test/language/statements/function/13.2-24-s.js
+++ b/test/language/statements/function/13.2-24-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-24-s
 description: >
     StrictMode - enumerating over a function object looking for
     'caller' fails inside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-25-s.js b/test/language/statements/function/13.2-25-s.js
index 067552b1c40b2e5da61cf5354bd44bc25039a7cf..f24b530e4fab664fc330fa754b3a7b0b4507c68a 100644
--- a/test/language/statements/function/13.2-25-s.js
+++ b/test/language/statements/function/13.2-25-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-25-s
 description: >
     StrictMode - reading a property named 'arguments' of function
     objects is not allowed outside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-26-s.js b/test/language/statements/function/13.2-26-s.js
index f602278f7ff39b837d3f2e9956ab1d54c7363d10..1493a7bcc851abe47243e38ab39a09fd21d0482d 100644
--- a/test/language/statements/function/13.2-26-s.js
+++ b/test/language/statements/function/13.2-26-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-26-s
 description: >
     StrictMode - writing a property named 'arguments' of function
     objects is not allowed outside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-27-s.js b/test/language/statements/function/13.2-27-s.js
index 3526e4ad7f6fe10dcb44a751b283401636743600..49f376f99379e81a6adaf15f7716b4b1c4b50de9 100644
--- a/test/language/statements/function/13.2-27-s.js
+++ b/test/language/statements/function/13.2-27-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-27-s
 description: >
     StrictMode - enumerating over a function object looking for
     'arguments' fails outside of the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-28-s.js b/test/language/statements/function/13.2-28-s.js
index ac4f95061bc58a1eb448d7a1ac573a8393ddce58..35ab68f34d603bf18e77d8683c68a0b37c61fe1c 100644
--- a/test/language/statements/function/13.2-28-s.js
+++ b/test/language/statements/function/13.2-28-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-28-s
 description: >
     StrictMode - enumerating over a function object looking for
     'arguments' fails inside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-3-s.js b/test/language/statements/function/13.2-3-s.js
index dfe4ab330b94610a11ddb1d9cc4d869b598ffb6a..da6cbb57434ae2e94f8eebc243f7ee725cbe89d9 100644
--- a/test/language/statements/function/13.2-3-s.js
+++ b/test/language/statements/function/13.2-3-s.js
@@ -9,13 +9,10 @@ es5id: 13.2-3-s
 description: >
     StrictMode - Writing or reading from a property named 'arguments'
     of function objects is allowed under both strict and normal modes.
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         var foo = function () {
             this.arguments = 12;
         } 
diff --git a/test/language/statements/function/13.2-4-s.js b/test/language/statements/function/13.2-4-s.js
index 3ac7c510c1498f532afc52b42eb588cd23b53575..ba164db9fd3ba8c0b0e7dbad3e82794273059453 100644
--- a/test/language/statements/function/13.2-4-s.js
+++ b/test/language/statements/function/13.2-4-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             var foo = function () {
             }
diff --git a/test/language/statements/function/13.2-5-s.js b/test/language/statements/function/13.2-5-s.js
index 3697a826f2e7ff07b94d493e711edb046dc2a498..c31ce82f2907622a011791dbed0af4f2c8ebeeaf 100644
--- a/test/language/statements/function/13.2-5-s.js
+++ b/test/language/statements/function/13.2-5-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-5-s
 description: >
     StrictMode - reading a property named 'caller' of function objects
     is not allowed outside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-6-s.js b/test/language/statements/function/13.2-6-s.js
index dac7276774b5e19636a08d3a528022a31a3b308c..ab543e0814c941d6a1fea4ee23936be79609c2e0 100644
--- a/test/language/statements/function/13.2-6-s.js
+++ b/test/language/statements/function/13.2-6-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-6-s
 description: >
     StrictMode - writing a property named 'caller' of function objects
     is not allowed outside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-7-s.js b/test/language/statements/function/13.2-7-s.js
index c22b067169e2c1ee4df3c381b48b8952258eded4..687c83f2e155ecd9f34e9145ed9338b15304d452 100644
--- a/test/language/statements/function/13.2-7-s.js
+++ b/test/language/statements/function/13.2-7-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-7-s
 description: >
     StrictMode - enumerating over a function object looking for
     'caller' fails outside of the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-8-s.js b/test/language/statements/function/13.2-8-s.js
index 3c90e499d3bd66ef7e1cd78f45d759bd7bce7e7a..506ec9a8728f771bd42f805a69c346f42680b04e 100644
--- a/test/language/statements/function/13.2-8-s.js
+++ b/test/language/statements/function/13.2-8-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-8-s
 description: >
     StrictMode - enumerating over a function object looking for
     'caller' fails inside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/13.2-9-s.js b/test/language/statements/function/13.2-9-s.js
index e53169be6a5f7963bf2c8af8f114a89712a393a1..5d307cf39e9d3967af98fa95a2ad20b046b5fb9a 100644
--- a/test/language/statements/function/13.2-9-s.js
+++ b/test/language/statements/function/13.2-9-s.js
@@ -9,7 +9,7 @@ es5id: 13.2-9-s
 description: >
     StrictMode - reading a property named 'caller' of function objects
     is not allowed outside the function
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/function/S13.2_A6_T1.js b/test/language/statements/function/S13.2_A6_T1.js
index 64e9339f5889f2a449170de832a776ab8ec328d3..4ac08badf2ebdfe0bbb885c31fd0e1c1d8016192 100644
--- a/test/language/statements/function/S13.2_A6_T1.js
+++ b/test/language/statements/function/S13.2_A6_T1.js
@@ -7,5 +7,4 @@ description: check if "caller" poisoning poisons  getOwnPropertyDescriptor too
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 Object.getOwnPropertyDescriptor(function(){}, 'caller');
diff --git a/test/language/statements/function/S13.2_A6_T2.js b/test/language/statements/function/S13.2_A6_T2.js
index b8ba86d729094eca7e0ec0076596eb0dfa024fcb..b18dd3c9812a27553ce814eb1726bcabfb413153 100644
--- a/test/language/statements/function/S13.2_A6_T2.js
+++ b/test/language/statements/function/S13.2_A6_T2.js
@@ -9,5 +9,4 @@ description: >
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 Object.getOwnPropertyDescriptor(function(){}, 'arguments');
diff --git a/test/language/statements/function/S13.2_A7_T1.js b/test/language/statements/function/S13.2_A7_T1.js
index 2bb78b7bc8dcd56c56d52213104bfe5efe34de73..b98f9ef28bac4a07085e547910a08ed3c415596a 100644
--- a/test/language/statements/function/S13.2_A7_T1.js
+++ b/test/language/statements/function/S13.2_A7_T1.js
@@ -7,5 +7,4 @@ description: check if "caller" poisoning poisons  hasOwnProperty too
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 (function(){}).hasOwnProperty('caller');
diff --git a/test/language/statements/function/S13.2_A7_T2.js b/test/language/statements/function/S13.2_A7_T2.js
index c015755c7c11b06361cf93a95892de1bf96b9784..e442543b7845facc24e8d6e81ffb248fbdc67eb0 100644
--- a/test/language/statements/function/S13.2_A7_T2.js
+++ b/test/language/statements/function/S13.2_A7_T2.js
@@ -7,5 +7,4 @@ description: check if "arguments" poisoning poisons  hasOwnProperty too
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 (function(){}).hasOwnProperty('arguments');
diff --git a/test/language/statements/function/S13.2_A8_T1.js b/test/language/statements/function/S13.2_A8_T1.js
index 9209332612d26c0e276c8add6749f21609d80892..47ef7bd981d9a2a12767b80020eae1852916fcaf 100644
--- a/test/language/statements/function/S13.2_A8_T1.js
+++ b/test/language/statements/function/S13.2_A8_T1.js
@@ -7,5 +7,4 @@ description: check if "caller" poisoning poisons  "in" too
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 'caller' in function() {};
diff --git a/test/language/statements/function/S13.2_A8_T2.js b/test/language/statements/function/S13.2_A8_T2.js
index c9584a9ff71eb377cfc0a917cc263080cf85ce24..d2d21d50bf4a5985f6154bb5d1f5649da7e6cc9c 100644
--- a/test/language/statements/function/S13.2_A8_T2.js
+++ b/test/language/statements/function/S13.2_A8_T2.js
@@ -7,5 +7,4 @@ description: check if "arguments" poisoning poisons  "in" too
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 'arguments' in function() {};
diff --git a/test/language/statements/try/12.14.1-1-s.js b/test/language/statements/try/12.14.1-1-s.js
index 16dc6275acdb96dd7a7748799e47542da6a099b9..1b6e125faab62b15cc580b59f4362e1b2c57b22c 100644
--- a/test/language/statements/try/12.14.1-1-s.js
+++ b/test/language/statements/try/12.14.1-1-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("\
                    try {} catch (eval) { }\
diff --git a/test/language/statements/try/12.14.1-1gs.js b/test/language/statements/try/12.14.1-1gs.js
index 4574705f9d9cd0fa39bf370a339b78c0d94fd533..15ad7efc998e0c78ae3117623b199bf7b80ce091 100644
--- a/test/language/statements/try/12.14.1-1gs.js
+++ b/test/language/statements/try/12.14.1-1gs.js
@@ -14,6 +14,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 try { } catch (eval) { }
diff --git a/test/language/statements/try/12.14.1-2-s.js b/test/language/statements/try/12.14.1-2-s.js
index b33b29950c15234c49e1702524771fdc11fd6b37..1a4a1bcf5765aa0c50357b1b0975f7c8751a17bf 100644
--- a/test/language/statements/try/12.14.1-2-s.js
+++ b/test/language/statements/try/12.14.1-2-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("\
                    try {} catch (arguments) { }\
diff --git a/test/language/statements/try/12.14.1-3-s.js b/test/language/statements/try/12.14.1-3-s.js
index 2ffc2c2a4947624a232d8e5bb9277600d7308ce2..55811d8ee2639dde02a94a2314091327e7c5dc8c 100644
--- a/test/language/statements/try/12.14.1-3-s.js
+++ b/test/language/statements/try/12.14.1-3-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
        try{ eval(" try { \
              throw new Error(\"...\");\
              return false;\
diff --git a/test/language/statements/try/12.14.1-4-s.js b/test/language/statements/try/12.14.1-4-s.js
index 4b4c34790bea655178f85eecaa7f18e6bf818e31..e60acb2ffaf8741dbbe5406598ec381d440694fb 100644
--- a/test/language/statements/try/12.14.1-4-s.js
+++ b/test/language/statements/try/12.14.1-4-s.js
@@ -10,13 +10,10 @@ description: >
     Strict Mode - SyntaxError isn't thrown if a TryStatement with a
     Catch occurs within strict code and the Identifier of the Catch
     production is EVAL
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             throw new Error("...");
             return false;
diff --git a/test/language/statements/try/12.14.1-5-s.js b/test/language/statements/try/12.14.1-5-s.js
index dc2462a555d635791edab58afaf5e021ad5b0353..a8c77901bf5470aba5350ccdcb4c0bc2b7ef4d9c 100644
--- a/test/language/statements/try/12.14.1-5-s.js
+++ b/test/language/statements/try/12.14.1-5-s.js
@@ -10,13 +10,10 @@ description: >
     Strict Mode - SyntaxError isn't thrown if a TryStatement with a
     Catch occurs within strict code and the Identifier of the Catch
     production is Arguments
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             throw new Error("...");
             return false;
diff --git a/test/language/statements/try/12.14.1-6-s.js b/test/language/statements/try/12.14.1-6-s.js
index aa46246964f659bd5f8a71e333ac8ad10b02f572..bf5ad70b9b56a3b97940cea996adb9b8e6296c7e 100644
--- a/test/language/statements/try/12.14.1-6-s.js
+++ b/test/language/statements/try/12.14.1-6-s.js
@@ -10,13 +10,10 @@ description: >
     Strict Mode - SyntaxError isn't thrown if a TryStatement with a
     Catch occurs within strict code and the Identifier of the Catch
     production is ARGUMENTS
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             throw new Error("...");
             return false;
diff --git a/test/language/statements/variable/12.2.1-1-s.js b/test/language/statements/variable/12.2.1-1-s.js
index 4d8619500a410ea4dee32d5f86ee3f092ee3a05e..626ee99072d62ff95784be0238aec3f4555221d4 100644
--- a/test/language/statements/variable/12.2.1-1-s.js
+++ b/test/language/statements/variable/12.2.1-1-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var eval; }');
     return false;
diff --git a/test/language/statements/variable/12.2.1-10-s.js b/test/language/statements/variable/12.2.1-10-s.js
index c3c65be193eea88d57a1b07f8543f45a8aae1f64..884199cdf5df3027f66ef24678948f60858c676f 100644
--- a/test/language/statements/variable/12.2.1-10-s.js
+++ b/test/language/statements/variable/12.2.1-10-s.js
@@ -7,12 +7,10 @@
 /*---
 es5id: 12.2.1-10-s
 description: "Strict Mode: an indirect eval assigning into 'eval' does not throw"
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
   var s = eval;
   s('eval = 42;');
   return true;
diff --git a/test/language/statements/variable/12.2.1-12-s.js b/test/language/statements/variable/12.2.1-12-s.js
index 3877dc971e69182ee5c56a37389fb515f6c612ea..0b03ff14889822161e1f02dee45bbf0330a4ae1c 100644
--- a/test/language/statements/variable/12.2.1-12-s.js
+++ b/test/language/statements/variable/12.2.1-12-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var arguments;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-13-s.js b/test/language/statements/variable/12.2.1-13-s.js
index a42e1e92f479ed3178315ce9545dcf9ba3edbf9d..6b6c102e6e8361a3c0385382dd041ce54b8825d1 100644
--- a/test/language/statements/variable/12.2.1-13-s.js
+++ b/test/language/statements/variable/12.2.1-13-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { arguments = 42; }; foo()');
     return false;
diff --git a/test/language/statements/variable/12.2.1-14-s.js b/test/language/statements/variable/12.2.1-14-s.js
index 1b19b2dd51922801f3ef6033529d244b586b5b70..3b40372ff6d3e57711aa26a9ddcb0b50112540cd 100644
--- a/test/language/statements/variable/12.2.1-14-s.js
+++ b/test/language/statements/variable/12.2.1-14-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('(function (){var arguments;});');
     return false;
diff --git a/test/language/statements/variable/12.2.1-15-s.js b/test/language/statements/variable/12.2.1-15-s.js
index 6738ed8ecaae2bc1a1e18882ba5f146c02eaa084..0756ac66a505260c8845f79db8d75e2756d5895e 100644
--- a/test/language/statements/variable/12.2.1-15-s.js
+++ b/test/language/statements/variable/12.2.1-15-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('(function () {arguments = 42;})()');
     return false;
diff --git a/test/language/statements/variable/12.2.1-16-s.js b/test/language/statements/variable/12.2.1-16-s.js
index f8586153c40b8bc3a8ad0922a853f6cb190a5994..cf306094fd1fd8463a73bf277ad99643b7bbc2c1 100644
--- a/test/language/statements/variable/12.2.1-16-s.js
+++ b/test/language/statements/variable/12.2.1-16-s.js
@@ -8,13 +8,11 @@
 es5id: 12.2.1-16-s
 description: >
     A Function constructor (called as a function) declaring a var
-    named 'arguments' does not throw a SyntaxError in strict mode
-flags: [onlyStrict]
+    named 'arguments' does not throw a SyntaxError
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        'use strict';
         Function('var arguments;');
         return true;
 }
diff --git a/test/language/statements/variable/12.2.1-17-s.js b/test/language/statements/variable/12.2.1-17-s.js
index 2b3ecc9550f0f4a67968cbe70f8df58bcd5d8318..801a972d2f4536d9a1a8ed0509f8620efb781d97 100644
--- a/test/language/statements/variable/12.2.1-17-s.js
+++ b/test/language/statements/variable/12.2.1-17-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-  
     var f = Function('arguments = 42;');
     f();
     return true;
diff --git a/test/language/statements/variable/12.2.1-18-s.js b/test/language/statements/variable/12.2.1-18-s.js
index a59905198bb88e2b4c5091c35c12ecbe5e1d2765..a1d62d5c92da26a6e97d71292f4c5bac0bb929c1 100644
--- a/test/language/statements/variable/12.2.1-18-s.js
+++ b/test/language/statements/variable/12.2.1-18-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('var arguments;');
     return false;
diff --git a/test/language/statements/variable/12.2.1-19-s.js b/test/language/statements/variable/12.2.1-19-s.js
index b308a337f8b8d5f32add736947c56c9b58ed1af8..c65b76af921433f9835e00eb489fc6fac24a4e15 100644
--- a/test/language/statements/variable/12.2.1-19-s.js
+++ b/test/language/statements/variable/12.2.1-19-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('arguments = 42;');
     return false;
diff --git a/test/language/statements/variable/12.2.1-1gs.js b/test/language/statements/variable/12.2.1-1gs.js
index bed6f5a605e2b5ff2e7ced8b0ba54175999d26f5..3a4947af085b10a056d24b0caa6ec133d54548b5 100644
--- a/test/language/statements/variable/12.2.1-1gs.js
+++ b/test/language/statements/variable/12.2.1-1gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 for (var eval in arrObj) { }
diff --git a/test/language/statements/variable/12.2.1-2-s.js b/test/language/statements/variable/12.2.1-2-s.js
index 80b6086596397bcaffae46ac4e193dacf6b41eb4..e9fc66c99e82c5c2bcbb983d6016eecb6a0e574d 100644
--- a/test/language/statements/variable/12.2.1-2-s.js
+++ b/test/language/statements/variable/12.2.1-2-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { eval = 42; }; foo()');
     return false;
diff --git a/test/language/statements/variable/12.2.1-20-s.js b/test/language/statements/variable/12.2.1-20-s.js
index 023d0492a2992b64ef3f2af7405904dc2cdc73f6..c30219054864b2d00942847caf483c110d1f42da 100644
--- a/test/language/statements/variable/12.2.1-20-s.js
+++ b/test/language/statements/variable/12.2.1-20-s.js
@@ -9,12 +9,10 @@ es5id: 12.2.1-20-s
 description: >
     Strict Mode: an indirect eval declaring a var named 'arguments'
     does not throw
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
   var s = eval;
   s('var arguments;');
   return true;
diff --git a/test/language/statements/variable/12.2.1-21-s.js b/test/language/statements/variable/12.2.1-21-s.js
index 80ba4d5d2a40b1f74afdcacada37a04996122669..592aebf0617a183c8fc995a21ef630bd08113a27 100644
--- a/test/language/statements/variable/12.2.1-21-s.js
+++ b/test/language/statements/variable/12.2.1-21-s.js
@@ -9,12 +9,10 @@ es5id: 12.2.1-21-s
 description: >
     Strict Mode: an indirect eval assigning into 'arguments' does not
     throw
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
   var s = eval;
   s('arguments = 42;');
   return true;
diff --git a/test/language/statements/variable/12.2.1-22-s.js b/test/language/statements/variable/12.2.1-22-s.js
index b0b7854c0ca95d6e690c2d3a65b22db9d5bcf59c..23128b641d19bf8a7aa17dccc76c21f45dd85b40 100644
--- a/test/language/statements/variable/12.2.1-22-s.js
+++ b/test/language/statements/variable/12.2.1-22-s.js
@@ -9,7 +9,6 @@ es5id: 12.2.1-22-s
 description: >
     arguments as global var identifier throws SyntaxError in strict
     mode
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/variable/12.2.1-23-s.js b/test/language/statements/variable/12.2.1-23-s.js
index 470c058feaafe49524c333d61d86bf2a10cb592b..a671dbe5fe5e2a22dc7434fe4cdd1add37a64f10 100644
--- a/test/language/statements/variable/12.2.1-23-s.js
+++ b/test/language/statements/variable/12.2.1-23-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var arguments = 42;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-24-s.js b/test/language/statements/variable/12.2.1-24-s.js
index ed33bf3706fb8c7268a11e54b3b8523624befeda..be05fce869721739241679859acc2ba8e4cd850d 100644
--- a/test/language/statements/variable/12.2.1-24-s.js
+++ b/test/language/statements/variable/12.2.1-24-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var eval = 42;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-25-s.js b/test/language/statements/variable/12.2.1-25-s.js
index 82a806167187ab605193088a131e457f52b3ce40..1b9e87a5cb68e7278481dbae25615ddd94694684 100644
--- a/test/language/statements/variable/12.2.1-25-s.js
+++ b/test/language/statements/variable/12.2.1-25-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var arguments, a;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-26-s.js b/test/language/statements/variable/12.2.1-26-s.js
index 4eee1bec991e14abef57dac8a56f01c3b55ad235..c05aa297e4d47e466df69b9d7b26cad56a030310 100644
--- a/test/language/statements/variable/12.2.1-26-s.js
+++ b/test/language/statements/variable/12.2.1-26-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var a, eval;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-27-s.js b/test/language/statements/variable/12.2.1-27-s.js
index 6b9d0c4332a1903d73e59ae724b88f1eaadd7b25..fb8657a4b2541bd8cbf9485270063e43b7be0b88 100644
--- a/test/language/statements/variable/12.2.1-27-s.js
+++ b/test/language/statements/variable/12.2.1-27-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var eval = 42, a;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-28-s.js b/test/language/statements/variable/12.2.1-28-s.js
index 902310f3c0e4abe3996467abf733493e4a41e658..cf8c8a2d01e2a1c0b6592bbc27ef0be963c92ea5 100644
--- a/test/language/statements/variable/12.2.1-28-s.js
+++ b/test/language/statements/variable/12.2.1-28-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var a, arguments = 42;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-29-s.js b/test/language/statements/variable/12.2.1-29-s.js
index a07ce81498a7e90c6536c77a90ade7c0b5fe816b..d1d3e17750316bd88a0c4483a218bb51ddbd2924 100644
--- a/test/language/statements/variable/12.2.1-29-s.js
+++ b/test/language/statements/variable/12.2.1-29-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var eval, a = 42;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-3-s.js b/test/language/statements/variable/12.2.1-3-s.js
index b64e13fbbe5683adc6039dffbc8d3dee23e68d8d..57bc32238d3197e5a891c046a631634156fefad1 100644
--- a/test/language/statements/variable/12.2.1-3-s.js
+++ b/test/language/statements/variable/12.2.1-3-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('(function () { var eval; })');
     return false;
diff --git a/test/language/statements/variable/12.2.1-30-s.js b/test/language/statements/variable/12.2.1-30-s.js
index be76be316f7a6b8a499654a9e56c89033e13656c..f3479d64481ffe41545e60b31da84ebc1489d785 100644
--- a/test/language/statements/variable/12.2.1-30-s.js
+++ b/test/language/statements/variable/12.2.1-30-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var a = 42, arguments;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-31-s.js b/test/language/statements/variable/12.2.1-31-s.js
index 92396574e314875b4b0dc2603ca50c355d2575eb..42861f8bdf1c95a06d925be262fb283cb3adb193 100644
--- a/test/language/statements/variable/12.2.1-31-s.js
+++ b/test/language/statements/variable/12.2.1-31-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var eval, eval;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-32-s.js b/test/language/statements/variable/12.2.1-32-s.js
index bbc47963c3dcd14ae82dd8865acad8eaadf573c6..ebffd31307e99f47c3fd861f328152f729335d78 100644
--- a/test/language/statements/variable/12.2.1-32-s.js
+++ b/test/language/statements/variable/12.2.1-32-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var arguments, arguments = 42;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-33-s.js b/test/language/statements/variable/12.2.1-33-s.js
index eac0cd292f96defabb4ea75dc7fa298a05d1354a..ab84a2e3c24abf854137250363d56f150a6cbca3 100644
--- a/test/language/statements/variable/12.2.1-33-s.js
+++ b/test/language/statements/variable/12.2.1-33-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('function foo() { var a, arguments, b;}');
     return false;
diff --git a/test/language/statements/variable/12.2.1-34-s.js b/test/language/statements/variable/12.2.1-34-s.js
index e88e3e33f5deb778bee10f3eb95100d3bac07d5c..a8a935c5fcb3e43f970ed874ede365bdee2d5d63 100644
--- a/test/language/statements/variable/12.2.1-34-s.js
+++ b/test/language/statements/variable/12.2.1-34-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('for (var eval in null) {};');
     return false;
diff --git a/test/language/statements/variable/12.2.1-35-s.js b/test/language/statements/variable/12.2.1-35-s.js
index 4316503ba6948273817aaedd17d9be3b53cc623e..75382f81d4831f84c4cba0611cff046cb18b0e25 100644
--- a/test/language/statements/variable/12.2.1-35-s.js
+++ b/test/language/statements/variable/12.2.1-35-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('for (var eval = 42 in null) {};');
     return false;
diff --git a/test/language/statements/variable/12.2.1-36-s.js b/test/language/statements/variable/12.2.1-36-s.js
index 0aa0b4c2388133a7036c63f14dc6214330322cb7..10da65e3177b63e24bb65a6c2b611b88440b62cd 100644
--- a/test/language/statements/variable/12.2.1-36-s.js
+++ b/test/language/statements/variable/12.2.1-36-s.js
@@ -12,8 +12,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('for (var arguments in null) {};');
     return false;
diff --git a/test/language/statements/variable/12.2.1-37-s.js b/test/language/statements/variable/12.2.1-37-s.js
index 903f0043a71719d0a853b215bbae4cb76c3e04b7..d5cf5d1c1f09611e8359ae1d933ee3bc0e95fab2 100644
--- a/test/language/statements/variable/12.2.1-37-s.js
+++ b/test/language/statements/variable/12.2.1-37-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('for (var arguments = 42 in null) {};');
     return false;
diff --git a/test/language/statements/variable/12.2.1-4-s.js b/test/language/statements/variable/12.2.1-4-s.js
index 375d5965bb361ced999a4fe134abeb89f8c84773..810ea4a00e3f1ac4102f402d0b28c75363099773 100644
--- a/test/language/statements/variable/12.2.1-4-s.js
+++ b/test/language/statements/variable/12.2.1-4-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('(function () { eval = 42; })()');
     return false;
diff --git a/test/language/statements/variable/12.2.1-4gs.js b/test/language/statements/variable/12.2.1-4gs.js
index 538089d10f35c7a132e9e38b7775a00563a60545..c9da28acc6688f7ef4ca675dfa8d6ac8e9b070dd 100644
--- a/test/language/statements/variable/12.2.1-4gs.js
+++ b/test/language/statements/variable/12.2.1-4gs.js
@@ -13,6 +13,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 var arguments;
diff --git a/test/language/statements/variable/12.2.1-5-s.js b/test/language/statements/variable/12.2.1-5-s.js
index f328da59f23d2326064c6164e93997d9e624d47e..dab6842bbeb3856e40d6a034a7d2b57f6783163b 100644
--- a/test/language/statements/variable/12.2.1-5-s.js
+++ b/test/language/statements/variable/12.2.1-5-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 12.2.1-5-s
 description: >
-    Strict Mode - a Function declaring var named 'eval' does not throw
-    SyntaxError
-flags: [onlyStrict]
+    a Function declaring var named 'eval' does not throw SyntaxError
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        'use strict';
         Function('var eval;');
         return true;
     }
diff --git a/test/language/statements/variable/12.2.1-6-s.js b/test/language/statements/variable/12.2.1-6-s.js
index a04b1e9007fbef6d0516d78cd0db7d213048c475..9d89d15c013345fe585666fd5a927b3061389180 100644
--- a/test/language/statements/variable/12.2.1-6-s.js
+++ b/test/language/statements/variable/12.2.1-6-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-  
     var f = Function('eval = 42;');
     f();
     return true;
diff --git a/test/language/statements/variable/12.2.1-7-s.js b/test/language/statements/variable/12.2.1-7-s.js
index 17681cf97b5c524ec09ccd0c330227f04058a698..3590ab1add29a711cda6a211ac7a4b7b406c37e0 100644
--- a/test/language/statements/variable/12.2.1-7-s.js
+++ b/test/language/statements/variable/12.2.1-7-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('var eval;');
     return false;
diff --git a/test/language/statements/variable/12.2.1-8-s.js b/test/language/statements/variable/12.2.1-8-s.js
index ff2fe6b778bf57311094ea3a3c8a296b0cf82f0a..40b9727c781fc8efa0fac30c57ce02c4c149b3c8 100644
--- a/test/language/statements/variable/12.2.1-8-s.js
+++ b/test/language/statements/variable/12.2.1-8-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval('eval = 42;');
     return false;
diff --git a/test/language/statements/variable/12.2.1-9-s.js b/test/language/statements/variable/12.2.1-9-s.js
index a43f3b6029f25e14ff421cef5f3fd2b75f9423a3..21533d0c07af910642460d9ff0f5b17ed8bae8f9 100644
--- a/test/language/statements/variable/12.2.1-9-s.js
+++ b/test/language/statements/variable/12.2.1-9-s.js
@@ -7,14 +7,11 @@
 /*---
 es5id: 12.2.1-9-s
 description: >
-    Strict Mode: an indirect eval declaring a var named 'eval' does
-    not throw
-flags: [onlyStrict]
+    an indirect eval declaring a var named 'eval' does not throw
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
   var s = eval;
   s('var eval;');
   return true;
diff --git a/test/language/statements/with/12.10.1-1-s.js b/test/language/statements/with/12.10.1-1-s.js
index e4c2b31945b0ef2e46619900d0940f8d8890d8da..d1075c0e3acd5d1107eaef04c37c6811bab72a9e 100644
--- a/test/language/statements/with/12.10.1-1-s.js
+++ b/test/language/statements/with/12.10.1-1-s.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 12.10.1-1-s
 description: with statement in strict mode throws SyntaxError (strict function)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/with/12.10.1-10-s.js b/test/language/statements/with/12.10.1-10-s.js
index e88d1eff0a5911fe7e11084a770acced3fbb430d..d07ea96d645cfb4310a9a280489ff74ecd2467c9 100644
--- a/test/language/statements/with/12.10.1-10-s.js
+++ b/test/language/statements/with/12.10.1-10-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-  
   // wrapping it in eval since this needs to be a syntax error. The
   // exception thrown must be a SyntaxError exception. Note that eval
   // inherits the strictness of its calling context.  
diff --git a/test/language/statements/with/12.10.1-11-s.js b/test/language/statements/with/12.10.1-11-s.js
index 6e5bf2a8bda71f09e827cabc9c846a47d983dd69..e045dc318a364af6bd43d41f2823cc64d521335e 100644
--- a/test/language/statements/with/12.10.1-11-s.js
+++ b/test/language/statements/with/12.10.1-11-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("with ({}) { throw new Error();}");
 
diff --git a/test/language/statements/with/12.10.1-11gs.js b/test/language/statements/with/12.10.1-11gs.js
index d96c43dbff297ce94c974b659221ea792a650f29..e4e6c72e16b39f51afb7c844fe5675653535a0c6 100644
--- a/test/language/statements/with/12.10.1-11gs.js
+++ b/test/language/statements/with/12.10.1-11gs.js
@@ -11,6 +11,5 @@ negative: SyntaxError
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 throw NotEarlyError;
 with ({}) { }
diff --git a/test/language/statements/with/12.10.1-12-s.js b/test/language/statements/with/12.10.1-12-s.js
index e45485ed0aa62279dd861e6942f7c002f08a4709..c262aad18d812725dd6f927a73681ddebbfc0e6b 100644
--- a/test/language/statements/with/12.10.1-12-s.js
+++ b/test/language/statements/with/12.10.1-12-s.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 12.10.1-12-s
 description: with statement in strict mode throws SyntaxError (strict eval)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/with/12.10.1-14-s.js b/test/language/statements/with/12.10.1-14-s.js
index 89f3d68790fbf9ec2bf97592a1159d4647a444f5..c6e6b724901f5bbf74950a4f25036d78998e2faa 100644
--- a/test/language/statements/with/12.10.1-14-s.js
+++ b/test/language/statements/with/12.10.1-14-s.js
@@ -14,10 +14,8 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
-            eval("var obj = { get: function (a) { with(a){} } }; ");
+            eval("var obj = { get(a) { with(a){} } }; ");
 
             return false;
         } catch (e) {
diff --git a/test/language/statements/with/12.10.1-15-s.js b/test/language/statements/with/12.10.1-15-s.js
index c9e3c81da65a62e6fb9373930f3325fa7d041043..ab29d383f497e36311a5581dece3bfe4c1fb33b7 100644
--- a/test/language/statements/with/12.10.1-15-s.js
+++ b/test/language/statements/with/12.10.1-15-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var obj = {}; obj.get = function (a) { with(a){} }; ");
             return false;
diff --git a/test/language/statements/with/12.10.1-16-s.js b/test/language/statements/with/12.10.1-16-s.js
index 2dcdd737aa25d0cde312fc0dbec968ab0ca88a4a..be3f8ded7bf08c57e85ca1dca554f126c4d44324 100644
--- a/test/language/statements/with/12.10.1-16-s.js
+++ b/test/language/statements/with/12.10.1-16-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var obj = {}; obj['get'] = function (a) { with(a){} };  ");
             return false;
diff --git a/test/language/statements/with/12.10.1-2-s.js b/test/language/statements/with/12.10.1-2-s.js
index 80de16529e08891308c7b3a1dd40b4af4f8d3f56..a5ff977a4804ed9c2bab8e00861ee7e6b5bd6b1d 100644
--- a/test/language/statements/with/12.10.1-2-s.js
+++ b/test/language/statements/with/12.10.1-2-s.js
@@ -9,7 +9,7 @@ es5id: 12.10.1-2-s
 description: >
     with statement in strict mode throws SyntaxError (nested function
     where container is strict)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/with/12.10.1-3-s.js b/test/language/statements/with/12.10.1-3-s.js
index b6d26121893d5d7e10370b2ceb522030eef5aa82..64cbbc9c485088bc2f624d2d4d9eeb2d1ac25ef0 100644
--- a/test/language/statements/with/12.10.1-3-s.js
+++ b/test/language/statements/with/12.10.1-3-s.js
@@ -9,7 +9,7 @@ es5id: 12.10.1-3-s
 description: >
     with statement in strict mode throws SyntaxError (nested strict
     function)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/with/12.10.1-4-s.js b/test/language/statements/with/12.10.1-4-s.js
index cf7e1b6922a27f65eb9111bc3671616e2dd60b3d..4f3cbc814de7aeeca6d6f600f96f74155dd8da3c 100644
--- a/test/language/statements/with/12.10.1-4-s.js
+++ b/test/language/statements/with/12.10.1-4-s.js
@@ -7,7 +7,7 @@
 /*---
 es5id: 12.10.1-4-s
 description: with statement in strict mode throws SyntaxError (strict Function)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/with/12.10.1-7-s.js b/test/language/statements/with/12.10.1-7-s.js
index 15a631d465b0acd0c6e806c376fc71dcb9e7be91..3d6c293ba1a25d57d4a11671cf2e193d7d34de9f 100644
--- a/test/language/statements/with/12.10.1-7-s.js
+++ b/test/language/statements/with/12.10.1-7-s.js
@@ -15,8 +15,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   try {
     eval("var f = function () {\
                 var o = {}; \
diff --git a/test/language/statements/with/12.10.1-8-s.js b/test/language/statements/with/12.10.1-8-s.js
index 5eba834357838bface8df9bbb0acd58a903a0187..00d19090e912ece20e106cb14afda99b5eb52f20 100644
--- a/test/language/statements/with/12.10.1-8-s.js
+++ b/test/language/statements/with/12.10.1-8-s.js
@@ -9,7 +9,7 @@ es5id: 12.10.1-8-s
 description: >
     with statement in strict mode throws SyntaxError (function
     expression, where the container Function is strict)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
diff --git a/test/language/statements/with/12.10.1-9-s.js b/test/language/statements/with/12.10.1-9-s.js
index ae083fd876c248f73d367d91a9b842038ea44b3e..41908c4e6b6468a97f9097af6fb81687550843dd 100644
--- a/test/language/statements/with/12.10.1-9-s.js
+++ b/test/language/statements/with/12.10.1-9-s.js
@@ -9,7 +9,7 @@ es5id: 12.10.1-9-s
 description: >
     with statement in strict mode throws SyntaxError (strict function
     expression)
-flags: [onlyStrict]
+flags: [noStrict]
 includes: [runTestCase.js]
 ---*/
 
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 fc2653e35c1b0e110b13a2e87e96b7558632fc97..642d624e0651078375b87458c469a38b94fb12b2 100644
--- a/test/language/types/reference/8.7.2-1-s.js
+++ b/test/language/types/reference/8.7.2-1-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         try {
             eval("_8_7_2_1 = 11;");
             return false;
diff --git a/test/language/types/reference/8.7.2-2-s.js b/test/language/types/reference/8.7.2-2-s.js
index b5dd449f509d60a8fd4b9902f6e6f0cf9cf92c64..1bdff1b84dbff052430761fd8bb188900dad494e 100644
--- a/test/language/types/reference/8.7.2-2-s.js
+++ b/test/language/types/reference/8.7.2-2-s.js
@@ -7,14 +7,12 @@
 /*---
 es5id: 8.7.2-2-s
 description: >
-    Strict Mode - ReferenceError isn't thrown if LeftHandSide
-    evaluates to a resolvable Reference
-flags: [onlyStrict]
+    ReferenceError isn't thrown if LeftHandSide evaluates to a resolvable
+    Reference
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var b = 11;
         return b === 11;
     }
diff --git a/test/language/types/reference/8.7.2-3-1-s.js b/test/language/types/reference/8.7.2-3-1-s.js
index 4005975cb6d19890550165525d1e39a16ef105cd..cd1a084eb2e922257879ec929e589852a2d24949 100644
--- a/test/language/types/reference/8.7.2-3-1-s.js
+++ b/test/language/types/reference/8.7.2-3-1-s.js
@@ -7,13 +7,10 @@
 /*---
 es5id: 8.7.2-3-1-s
 description: eval - a property named 'eval' is permitted
-flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  'use strict';
-
   var o = { eval: 42};
   return true;
  }
diff --git a/test/language/types/reference/8.7.2-3-a-1gs.js b/test/language/types/reference/8.7.2-3-a-1gs.js
index 15e4bb11912fbab08996055ad829d405ab6da944..59c14445c45f7821920fdce446c617d23f48dc06 100644
--- a/test/language/types/reference/8.7.2-3-a-1gs.js
+++ b/test/language/types/reference/8.7.2-3-a-1gs.js
@@ -13,5 +13,4 @@ negative: .
 flags: [onlyStrict]
 ---*/
 
-"use strict";
 b = 11;
diff --git a/test/language/types/reference/8.7.2-3-a-2gs.js b/test/language/types/reference/8.7.2-3-a-2gs.js
index 38c32f3d2b7ac1e672587bfc54484c5d31822bea..a869694302e624eb746e5b4d573077e38438adfc 100644
--- a/test/language/types/reference/8.7.2-3-a-2gs.js
+++ b/test/language/types/reference/8.7.2-3-a-2gs.js
@@ -14,6 +14,5 @@ flags: [onlyStrict]
 includes: [Test262Error.js]
 ---*/
 
-"use strict";
 throw new Test262Error();
 b = 11;
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 8408012282bdd37982d6397b5f8a238321978cd2..147072476a2ee09820aa6bfc5cd5d9616faaaba6 100644
--- a/test/language/types/reference/8.7.2-3-s.js
+++ b/test/language/types/reference/8.7.2-3-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _8_7_2_3 = {};
         Object.defineProperty(_8_7_2_3, "b", {
             writable: false
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 40073797956e613dc083c1aa796934cdf3a2a16a..8a297bee0ca477b864c6e0f63ec8bc7a86e16b24 100644
--- a/test/language/types/reference/8.7.2-4-s.js
+++ b/test/language/types/reference/8.7.2-4-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _8_7_2_4 = {};
         var _8_7_2_4_bValue = 1;
         Object.defineProperty(_8_7_2_4, "b", {
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 b822a0f9f1d82287ea6d7b4ea0b5efb7c13bea41..85bc6d82380496474c17bfab0ff9bcf4ec1423f8 100644
--- a/test/language/types/reference/8.7.2-5-s.js
+++ b/test/language/types/reference/8.7.2-5-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _8_7_2_5 = {};
         Object.preventExtensions(_8_7_2_5);
 
diff --git a/test/language/types/reference/8.7.2-6-s.js b/test/language/types/reference/8.7.2-6-s.js
index 6dde2a5444305f5180f8bb0ab85127c4faef0390..b787d319a345007322d451fbb9601fd6c8a599fc 100644
--- a/test/language/types/reference/8.7.2-6-s.js
+++ b/test/language/types/reference/8.7.2-6-s.js
@@ -7,14 +7,12 @@
 /*---
 es5id: 8.7.2-6-s
 description: >
-    Strict Mode - TypeError isn't thrown if LeftHandSide is a
-    reference to a writable data property
-flags: [onlyStrict]
+    TypeError isn't thrown if LeftHandSide is a reference to a writable data
+    property
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _8_7_2_6 = {};
         Object.defineProperty(_8_7_2_6, "b", {
             writable: true
diff --git a/test/language/types/reference/8.7.2-7-s.js b/test/language/types/reference/8.7.2-7-s.js
index ad8bfa2d1eec757aa25da69c82aa05851c4c0d02..b0d1714865a622baad3f940b4147ec36f36f6409 100644
--- a/test/language/types/reference/8.7.2-7-s.js
+++ b/test/language/types/reference/8.7.2-7-s.js
@@ -7,14 +7,12 @@
 /*---
 es5id: 8.7.2-7-s
 description: >
-    Strict Mode - TypeError isn't thrown if LeftHandSide is a
-    reference to an accessor property with setter
-flags: [onlyStrict]
+    TypeError isn't thrown if LeftHandSide is a reference to an accessor
+    property with setter
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _8_7_2_7 = {};
         var _8_7_2_7_bValue = 1;
         Object.defineProperty(_8_7_2_7, "b", {
diff --git a/test/language/types/reference/8.7.2-8-s.js b/test/language/types/reference/8.7.2-8-s.js
index 0843a8dbf1b2282460729749fec6e0a93f0759ef..69b776a94f2ea8902b5f0b6b61b8934a183fc08e 100644
--- a/test/language/types/reference/8.7.2-8-s.js
+++ b/test/language/types/reference/8.7.2-8-s.js
@@ -7,14 +7,12 @@
 /*---
 es5id: 8.7.2-8-s
 description: >
-    Strict Mode - TypeError isn't thrown if LeftHandSide is a
-    reference to a property of an extensible object
-flags: [onlyStrict]
+    TypeError isn't thrown if LeftHandSide is a reference to a property of an
+    extensible object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         var _8_7_2_8 = {};
 
         _8_7_2_8.b = 11;