From 29ecced632e5021932a3ced8cfec56d79c089cad Mon Sep 17 00:00:00 2001
From: Mike Pennisi <mike@mikepennisi.com>
Date: Mon, 8 Jun 2015 17:35:11 -0400
Subject: [PATCH] Update handling of directive prologues

Some tests specifically concern the application of the `use strict`
directive as it appears in JavaScript source code. These tests should
*not* be run with the `onlyStrict` flag because relying on the test
runner to enable strict mode makes the semantics of the source code
irrelevant. Update these tests to use the `noStrict` flag.

Other tests concern language semantics that are only valid in strict
mode, but the mechanism for enabling strictness is inconseqential.
Update these tests to use the `onlyStrict` flag and remove any redundant
`use strict` directive prologues contained within.

Still other tests are valid both within and outside of strict mode.
In keeping with the majority of other tests, do not specify any
restrictions on the environments in which these tests may be run.
---
 test/built-ins/Array/prototype/every/15.4.4.16-5-1-s.js    | 2 +-
 test/built-ins/Array/prototype/filter/15.4.4.20-5-1-s.js   | 2 +-
 ...rototype.findIndex_this-arg-receiver-coercion-strict.js | 2 +-
 test/built-ins/Array/prototype/forEach/15.4.4.18-5-1-s.js  | 2 +-
 test/built-ins/Array/prototype/map/15.4.4.19-5-1-s.js      | 2 +-
 .../Array/prototype/reduce/15.4.4.21-9-c-ii-4-s.js         | 2 +-
 .../Array/prototype/reduceRight/15.4.4.22-9-c-ii-4-s.js    | 2 +-
 test/built-ins/Array/prototype/some/15.4.4.17-5-1-s.js     | 2 +-
 test/built-ins/Array/prototype/sort/S15.4.4.11_A8.js       | 2 +-
 test/built-ins/Function/15.3.2.1-10-6gs.js                 | 2 +-
 test/built-ins/Function/15.3.2.1-11-1-s.js                 | 2 +-
 test/built-ins/Function/15.3.2.1-11-2-s.js                 | 1 -
 test/built-ins/Function/15.3.2.1-11-3-s.js                 | 2 +-
 test/built-ins/Function/15.3.2.1-11-4-s.js                 | 1 -
 test/built-ins/Function/15.3.2.1-11-5-s.js                 | 2 +-
 test/built-ins/Function/15.3.2.1-11-6-s.js                 | 1 -
 test/built-ins/Function/15.3.2.1-11-7-s.js                 | 1 -
 test/built-ins/Function/15.3.2.1-11-8-s.js                 | 1 -
 test/built-ins/Function/15.3.2.1-11-9-s.js                 | 3 ---
 test/built-ins/Function/15.3.5-1gs.js                      | 1 +
 test/built-ins/Function/15.3.5-2gs.js                      | 1 -
 test/built-ins/Function/15.3.5.4_2-11gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-13gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-15gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-17gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-19gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-1gs.js                  | 1 -
 test/built-ins/Function/15.3.5.4_2-21gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-22gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-23gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-24gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-25gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-26gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-27gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-28gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-29gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-3gs.js                  | 1 -
 test/built-ins/Function/15.3.5.4_2-48gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-50gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-52gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-54gs.js                 | 1 -
 test/built-ins/Function/15.3.5.4_2-5gs.js                  | 1 -
 test/built-ins/Function/15.3.5.4_2-7gs.js                  | 1 -
 test/built-ins/Function/15.3.5.4_2-9gs.js                  | 1 -
 test/built-ins/Function/prototype/apply/15.3.4.3-1-s.js    | 2 --
 test/built-ins/Function/prototype/apply/15.3.4.3-2-s.js    | 1 -
 test/built-ins/Function/prototype/apply/15.3.4.3-3-s.js    | 2 --
 test/built-ins/Function/prototype/call/15.3.4.4-1-s.js     | 1 -
 test/built-ins/Function/prototype/call/15.3.4.4-2-s.js     | 1 -
 test/built-ins/Function/prototype/call/15.3.4.4-3-s.js     | 1 -
 test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js   | 2 --
 .../Object/getOwnPropertyNames/S15.2.3.4_A1_T1.js          | 2 --
 test/built-ins/String/prototype/replace/S15.5.4.11_A12.js  | 2 +-
 test/built-ins/global/10.2.1.1.3-4-16-s.js                 | 2 --
 test/built-ins/global/10.2.1.1.3-4-18-s.js                 | 1 -
 test/built-ins/global/10.2.1.1.3-4-22-s.js                 | 1 -
 test/built-ins/global/10.2.1.1.3-4-27-s.js                 | 2 --
 ...propertyhelper-verifynotwritable-not-writable-strict.js | 1 -
 .../propertyhelper-verifywritable-not-writable-strict.js   | 1 -
 test/language/arguments-object/10.5-1-s.js                 | 1 -
 test/language/arguments-object/10.5-1gs.js                 | 1 -
 test/language/arguments-object/10.5-7-b-1-s.js             | 2 --
 test/language/arguments-object/10.5-7-b-2-s.js             | 5 +----
 test/language/arguments-object/10.5-7-b-3-s.js             | 6 +-----
 test/language/arguments-object/10.5-7-b-4-s.js             | 6 +-----
 test/language/arguments-object/10.6-10-c-ii-1-s.js         | 1 -
 test/language/arguments-object/10.6-10-c-ii-2-s.js         | 1 -
 test/language/arguments-object/10.6-13-b-1-s.js            | 1 -
 test/language/arguments-object/10.6-13-b-2-s.js            | 2 --
 test/language/arguments-object/10.6-13-b-3-s.js            | 2 --
 test/language/arguments-object/10.6-13-c-1-s.js            | 1 -
 test/language/arguments-object/10.6-13-c-2-s.js            | 5 +----
 test/language/arguments-object/10.6-13-c-3-s.js            | 2 --
 test/language/arguments-object/10.6-14-1-s.js              | 1 -
 test/language/arguments-object/10.6-14-b-1-s.js            | 2 --
 test/language/arguments-object/10.6-14-b-4-s.js            | 2 --
 test/language/arguments-object/10.6-14-c-1-s.js            | 6 +-----
 test/language/arguments-object/10.6-14-c-4-s.js            | 2 --
 test/language/arguments-object/10.6-1gs.js                 | 1 -
 test/language/arguments-object/10.6-2gs.js                 | 1 -
 test/language/arguments-object/10.6-6-3-s.js               | 2 --
 test/language/arguments-object/10.6-6-4-s.js               | 2 --
 test/language/eval-code/10.4.2-2-s.js                      | 1 -
 test/language/eval-code/10.4.2-3-c-1-s.js                  | 1 -
 test/language/eval-code/10.4.2-3-c-2-s.js                  | 1 -
 test/language/eval-code/10.4.2-3-c-3-s.js                  | 1 -
 test/language/eval-code/10.4.2.1-1gs.js                    | 1 -
 test/language/eval-code/10.4.2.1-2-s.js                    | 2 --
 test/language/eval-code/10.4.2.1-4-s.js                    | 5 +----
 test/language/eval-code/S10.4.2.1_A1.js                    | 2 --
 test/language/expressions/assignment/11.13.1-1-6-s.js      | 4 +---
 test/language/expressions/assignment/11.13.1-1-s.js        | 1 -
 test/language/expressions/assignment/11.13.1-2-s.js        | 1 -
 test/language/expressions/assignment/11.13.1-3-s.js        | 1 -
 test/language/expressions/assignment/11.13.1-4-14-s.js     | 2 --
 test/language/expressions/assignment/11.13.1-4-28-s.js     | 1 -
 test/language/expressions/assignment/11.13.1-4-28gs.js     | 1 -
 test/language/expressions/assignment/11.13.1-4-29-s.js     | 1 -
 test/language/expressions/assignment/11.13.1-4-29gs.js     | 1 -
 test/language/expressions/assignment/11.13.1-4-3-s.js      | 2 --
 test/language/expressions/assignment/11.13.1-4-30-s.js     | 1 -
 test/language/expressions/assignment/11.13.1-4-31-s.js     | 1 -
 test/language/expressions/assignment/11.13.1-4-6-s.js      | 2 --
 test/language/expressions/assignment/8.14.4-8-b_2.js       | 2 --
 .../expressions/compound-assignment/11.13.2-1-s.js         | 7 ++-----
 .../expressions/compound-assignment/11.13.2-10-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-11-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-12-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-13-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-14-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-15-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-16-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-17-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-18-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-19-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-2-s.js         | 7 ++-----
 .../expressions/compound-assignment/11.13.2-20-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-21-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-22-s.js        | 7 ++-----
 .../expressions/compound-assignment/11.13.2-23-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-24-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-25-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-26-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-27-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-28-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-29-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-3-s.js         | 1 -
 .../expressions/compound-assignment/11.13.2-30-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-31-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-32-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-33-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-34-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-35-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-36-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-37-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-38-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-39-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-4-s.js         | 2 --
 .../expressions/compound-assignment/11.13.2-40-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-41-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-42-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-43-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-44-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-45-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-46-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-47-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-48-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-49-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-5-s.js         | 2 --
 .../expressions/compound-assignment/11.13.2-50-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-51-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-52-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-53-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-54-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-55-s.js        | 1 -
 .../expressions/compound-assignment/11.13.2-6-1-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-10-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-11-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-12-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-13-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-14-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-15-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-16-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-17-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-18-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-19-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-1gs.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-2-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-20-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-21-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-22-s.js      | 1 -
 .../expressions/compound-assignment/11.13.2-6-3-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-4-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-5-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-6-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-7-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-8-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-9-s.js       | 1 -
 .../expressions/compound-assignment/11.13.2-6-s.js         | 2 --
 .../expressions/compound-assignment/11.13.2-7-s.js         | 1 -
 .../expressions/compound-assignment/11.13.2-8-s.js         | 2 --
 .../expressions/compound-assignment/11.13.2-9-s.js         | 2 --
 test/language/expressions/delete/11.4.1-3-a-1-s.js         | 1 -
 test/language/expressions/delete/11.4.1-4-a-1-s.js         | 1 -
 test/language/expressions/delete/11.4.1-4-a-2-s.js         | 1 -
 test/language/expressions/delete/11.4.1-4-a-3-s.js         | 5 +----
 test/language/expressions/delete/11.4.1-4-a-4-s.js         | 5 +----
 test/language/expressions/delete/11.4.1-4.a-3-s.js         | 2 --
 test/language/expressions/delete/11.4.1-4.a-8-s.js         | 2 --
 test/language/expressions/delete/11.4.1-4.a-9-s.js         | 2 --
 test/language/expressions/delete/11.4.1-5-a-1-s.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-10-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-11-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-12-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-13-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-14-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-15-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-16-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-17-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-18-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-19-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-2-s.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-20-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-21-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-22-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-23-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-24-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-25-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-26-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-27-s.js        | 1 -
 test/language/expressions/delete/11.4.1-5-a-28-s.js        | 2 --
 test/language/expressions/delete/11.4.1-5-a-3-s.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-4-s.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-5-s.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-5gs.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-6-s.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-7-s.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-8-s.js         | 1 -
 test/language/expressions/delete/11.4.1-5-a-9-s.js         | 1 -
 test/language/expressions/delete/11.4.4-4.a-3-s.js         | 2 --
 test/language/expressions/delete/S11.4.1_A5.js             | 2 --
 test/language/expressions/object/11.1.5-1-s.js             | 2 --
 test/language/expressions/object/11.1.5-1gs.js             | 1 -
 test/language/expressions/object/11.1.5-2-s.js             | 2 --
 test/language/expressions/object/11.1.5-3-s.js             | 2 +-
 test/language/expressions/object/11.1.5-4-s.js             | 2 +-
 test/language/expressions/object/11.1.5_6-2-1-s.js         | 2 --
 test/language/expressions/object/11.1.5_6-2-2-s.js         | 2 +-
 test/language/expressions/object/11.1.5_7-2-1-s.js         | 2 --
 test/language/expressions/object/11.1.5_7-2-2-s.js         | 2 --
 .../language/expressions/postfix-decrement/11.3.2-2-1-s.js | 1 -
 .../language/expressions/postfix-decrement/11.3.2-2-2-s.js | 1 -
 .../language/expressions/postfix-decrement/11.3.2-2-3-s.js | 6 ++----
 .../language/expressions/postfix-increment/11.3.1-2-1-s.js | 1 -
 .../language/expressions/postfix-increment/11.3.1-2-1gs.js | 1 -
 .../language/expressions/postfix-increment/11.3.1-2-2-s.js | 1 -
 .../language/expressions/postfix-increment/11.3.1-2-3-s.js | 1 -
 test/language/expressions/prefix-decrement/11.4.5-2-1-s.js | 1 -
 test/language/expressions/prefix-decrement/11.4.5-2-2-s.js | 1 -
 test/language/expressions/prefix-decrement/11.4.5-2-2gs.js | 1 -
 test/language/expressions/prefix-decrement/11.4.5-2-3-s.js | 4 +---
 test/language/expressions/prefix-increment/11.4.4-2-1-s.js | 1 -
 test/language/expressions/prefix-increment/11.4.4-2-2-s.js | 1 -
 test/language/expressions/prefix-increment/11.4.4-2-3-s.js | 4 +---
 test/language/function-code/10.4.3-1-10-s.js               | 2 +-
 test/language/function-code/10.4.3-1-100-s.js              | 3 +--
 test/language/function-code/10.4.3-1-100gs.js              | 3 +--
 test/language/function-code/10.4.3-1-102-s.js              | 3 +--
 test/language/function-code/10.4.3-1-102gs.js              | 3 +--
 test/language/function-code/10.4.3-1-104.js                | 2 +-
 test/language/function-code/10.4.3-1-106.js                | 2 +-
 test/language/function-code/10.4.3-1-10gs.js               | 2 +-
 test/language/function-code/10.4.3-1-11-s.js               | 1 -
 test/language/function-code/10.4.3-1-11gs.js               | 1 -
 test/language/function-code/10.4.3-1-12-s.js               | 2 +-
 test/language/function-code/10.4.3-1-12gs.js               | 2 +-
 test/language/function-code/10.4.3-1-13-s.js               | 1 -
 test/language/function-code/10.4.3-1-13gs.js               | 1 -
 test/language/function-code/10.4.3-1-14-s.js               | 2 +-
 test/language/function-code/10.4.3-1-14gs.js               | 2 +-
 test/language/function-code/10.4.3-1-15-s.js               | 1 -
 test/language/function-code/10.4.3-1-15gs.js               | 1 -
 test/language/function-code/10.4.3-1-16-s.js               | 2 +-
 test/language/function-code/10.4.3-1-16gs.js               | 2 +-
 test/language/function-code/10.4.3-1-17-s.js               | 1 -
 test/language/function-code/10.4.3-1-17gs.js               | 1 -
 test/language/function-code/10.4.3-1-18gs.js               | 2 +-
 test/language/function-code/10.4.3-1-19-s.js               | 1 -
 test/language/function-code/10.4.3-1-19gs.js               | 1 -
 test/language/function-code/10.4.3-1-20-s.js               | 2 +-
 test/language/function-code/10.4.3-1-20gs.js               | 2 +-
 test/language/function-code/10.4.3-1-21-s.js               | 1 -
 test/language/function-code/10.4.3-1-21gs.js               | 1 -
 test/language/function-code/10.4.3-1-22-s.js               | 2 +-
 test/language/function-code/10.4.3-1-22gs.js               | 2 +-
 test/language/function-code/10.4.3-1-23-s.js               | 1 -
 test/language/function-code/10.4.3-1-23gs.js               | 1 -
 test/language/function-code/10.4.3-1-24-s.js               | 2 +-
 test/language/function-code/10.4.3-1-24gs.js               | 2 +-
 test/language/function-code/10.4.3-1-25-s.js               | 1 -
 test/language/function-code/10.4.3-1-25gs.js               | 1 -
 test/language/function-code/10.4.3-1-26-s.js               | 2 +-
 test/language/function-code/10.4.3-1-26gs.js               | 2 +-
 test/language/function-code/10.4.3-1-27-s.js               | 1 -
 test/language/function-code/10.4.3-1-27gs.js               | 1 -
 test/language/function-code/10.4.3-1-28-s.js               | 1 -
 test/language/function-code/10.4.3-1-28gs.js               | 1 -
 test/language/function-code/10.4.3-1-29-s.js               | 1 -
 test/language/function-code/10.4.3-1-29gs.js               | 1 -
 test/language/function-code/10.4.3-1-30-s.js               | 1 -
 test/language/function-code/10.4.3-1-30gs.js               | 1 -
 test/language/function-code/10.4.3-1-31-s.js               | 1 -
 test/language/function-code/10.4.3-1-31gs.js               | 1 -
 test/language/function-code/10.4.3-1-32-s.js               | 1 -
 test/language/function-code/10.4.3-1-32gs.js               | 1 -
 test/language/function-code/10.4.3-1-33-s.js               | 1 -
 test/language/function-code/10.4.3-1-33gs.js               | 1 -
 test/language/function-code/10.4.3-1-34-s.js               | 1 -
 test/language/function-code/10.4.3-1-34gs.js               | 1 -
 test/language/function-code/10.4.3-1-35-s.js               | 1 -
 test/language/function-code/10.4.3-1-35gs.js               | 1 -
 test/language/function-code/10.4.3-1-36-s.js               | 2 +-
 test/language/function-code/10.4.3-1-36gs.js               | 2 +-
 test/language/function-code/10.4.3-1-37-s.js               | 2 +-
 test/language/function-code/10.4.3-1-37gs.js               | 2 +-
 test/language/function-code/10.4.3-1-38-s.js               | 2 +-
 test/language/function-code/10.4.3-1-38gs.js               | 2 +-
 test/language/function-code/10.4.3-1-39-s.js               | 2 +-
 test/language/function-code/10.4.3-1-39gs.js               | 2 +-
 test/language/function-code/10.4.3-1-40-s.js               | 2 +-
 test/language/function-code/10.4.3-1-40gs.js               | 2 +-
 test/language/function-code/10.4.3-1-41-s.js               | 2 +-
 test/language/function-code/10.4.3-1-41gs.js               | 2 +-
 test/language/function-code/10.4.3-1-42-s.js               | 2 +-
 test/language/function-code/10.4.3-1-42gs.js               | 2 +-
 test/language/function-code/10.4.3-1-43-s.js               | 2 +-
 test/language/function-code/10.4.3-1-43gs.js               | 2 +-
 test/language/function-code/10.4.3-1-44-s.js               | 2 +-
 test/language/function-code/10.4.3-1-44gs.js               | 2 +-
 test/language/function-code/10.4.3-1-5-s.js                | 3 +--
 test/language/function-code/10.4.3-1-54-s.js               | 5 +----
 test/language/function-code/10.4.3-1-54gs.js               | 2 +-
 test/language/function-code/10.4.3-1-55-s.js               | 1 -
 test/language/function-code/10.4.3-1-55gs.js               | 1 -
 test/language/function-code/10.4.3-1-56-s.js               | 5 +----
 test/language/function-code/10.4.3-1-56gs.js               | 5 +----
 test/language/function-code/10.4.3-1-57-s.js               | 4 +---
 test/language/function-code/10.4.3-1-57gs.js               | 3 +--
 test/language/function-code/10.4.3-1-58-s.js               | 5 +----
 test/language/function-code/10.4.3-1-58gs.js               | 5 +----
 test/language/function-code/10.4.3-1-59-s.js               | 4 +---
 test/language/function-code/10.4.3-1-59gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-60-s.js               | 5 +----
 test/language/function-code/10.4.3-1-60gs.js               | 5 +----
 test/language/function-code/10.4.3-1-61-s.js               | 4 +---
 test/language/function-code/10.4.3-1-61gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-62-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-62gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-63-s.js               | 4 +---
 test/language/function-code/10.4.3-1-63gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-64-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-64gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-65-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-65gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-66-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-66gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-67-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-67gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-68-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-68gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-69-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-69gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-7-s.js                | 1 -
 test/language/function-code/10.4.3-1-70-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-70gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-71-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-71gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-72-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-72gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-73-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-73gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-74-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-74gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-75-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-75gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-76-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-76gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-77-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-77gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-78-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-78gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-79-s.js               | 5 ++---
 test/language/function-code/10.4.3-1-79gs.js               | 5 ++---
 test/language/function-code/10.4.3-1-7gs.js                | 1 -
 test/language/function-code/10.4.3-1-8-s.js                | 2 +-
 test/language/function-code/10.4.3-1-80-s.js               | 2 +-
 test/language/function-code/10.4.3-1-80gs.js               | 2 +-
 test/language/function-code/10.4.3-1-88-s.js               | 2 +-
 test/language/function-code/10.4.3-1-88gs.js               | 2 +-
 test/language/function-code/10.4.3-1-89-s.js               | 2 +-
 test/language/function-code/10.4.3-1-89gs.js               | 2 +-
 test/language/function-code/10.4.3-1-8gs.js                | 2 +-
 test/language/function-code/10.4.3-1-9-s.js                | 1 -
 test/language/function-code/10.4.3-1-93-s.js               | 2 +-
 test/language/function-code/10.4.3-1-93gs.js               | 2 +-
 test/language/function-code/10.4.3-1-94-s.js               | 2 +-
 test/language/function-code/10.4.3-1-94gs.js               | 2 +-
 test/language/function-code/10.4.3-1-98-s.js               | 2 +-
 test/language/function-code/10.4.3-1-98gs.js               | 2 +-
 test/language/function-code/10.4.3-1-99-s.js               | 2 +-
 test/language/function-code/10.4.3-1-99gs.js               | 2 +-
 test/language/function-code/10.4.3-1-9gs.js                | 1 -
 test/language/function-code/S10.4.3_A1.js                  | 1 -
 test/language/future-reserved-words/7.6.1-17-s.js          | 1 -
 test/language/future-reserved-words/7.6.1-18-s.js          | 2 --
 test/language/future-reserved-words/7.6.1-19-s.js          | 2 --
 test/language/future-reserved-words/7.6.1-20-s.js          | 2 --
 test/language/future-reserved-words/7.6.1-21-s.js          | 2 --
 test/language/future-reserved-words/7.6.1-22-s.js          | 2 --
 test/language/future-reserved-words/7.6.1-23-s.js          | 2 --
 test/language/future-reserved-words/7.6.1-24-s.js          | 2 --
 test/language/future-reserved-words/7.6.1-25-s.js          | 2 --
 test/language/future-reserved-words/7.6.1.2-1-s.js         | 2 --
 test/language/future-reserved-words/7.6.1.2-10-s.js        | 5 +----
 test/language/future-reserved-words/7.6.1.2-11-s.js        | 5 +----
 test/language/future-reserved-words/7.6.1.2-12-s.js        | 5 +----
 test/language/future-reserved-words/7.6.1.2-13-s.js        | 5 +----
 test/language/future-reserved-words/7.6.1.2-14-s.js        | 5 +----
 test/language/future-reserved-words/7.6.1.2-16-s.js        | 5 +----
 test/language/future-reserved-words/7.6.1.2-2-s.js         | 2 --
 test/language/future-reserved-words/7.6.1.2-3-s.js         | 2 --
 test/language/future-reserved-words/7.6.1.2-4-s.js         | 2 --
 test/language/future-reserved-words/7.6.1.2-5-s.js         | 2 --
 test/language/future-reserved-words/7.6.1.2-6-s.js         | 2 --
 test/language/future-reserved-words/7.6.1.2-7-s.js         | 2 --
 test/language/future-reserved-words/7.6.1.2-8-s.js         | 2 --
 test/language/future-reserved-words/7.6.1.2-9-s.js         | 2 --
 test/language/future-reserved-words/S7.6.1.2_A1.15.js      | 2 --
 test/language/future-reserved-words/S7.6.1.2_A1.18.js      | 1 -
 test/language/future-reserved-words/S7.6.1.2_A1.21.js      | 1 -
 test/language/future-reserved-words/S7.6.1.2_A1.22.js      | 1 -
 test/language/future-reserved-words/S7.6.1.2_A1.23.js      | 1 -
 test/language/future-reserved-words/S7.6.1.2_A1.24.js      | 1 -
 test/language/future-reserved-words/S7.6.1.2_A1.26.js      | 1 -
 test/language/literals/numeric/7.8.3-1-s.js                | 1 -
 test/language/literals/numeric/7.8.3-1gs.js                | 1 -
 test/language/literals/numeric/7.8.3-2-s.js                | 1 -
 test/language/literals/numeric/7.8.3-2gs.js                | 1 -
 test/language/literals/numeric/7.8.3-3-s.js                | 1 -
 test/language/literals/numeric/7.8.3-3gs.js                | 1 -
 test/language/literals/numeric/7.8.3-4-s.js                | 1 -
 test/language/literals/numeric/7.8.3-5-s.js                | 1 -
 test/language/literals/numeric/7.8.3-6-s.js                | 1 -
 test/language/literals/numeric/7.8.3-7-s.js                | 1 -
 test/language/literals/string/7.8.4-1-s.js                 | 1 -
 test/language/literals/string/7.8.4-10-s.js                | 2 +-
 test/language/literals/string/7.8.4-11-s.js                | 2 +-
 test/language/literals/string/7.8.4-12-s.js                | 2 +-
 test/language/literals/string/7.8.4-13-s.js                | 2 +-
 test/language/literals/string/7.8.4-14-s.js                | 2 +-
 test/language/literals/string/7.8.4-15-s.js                | 2 +-
 test/language/literals/string/7.8.4-16-s.js                | 2 +-
 test/language/literals/string/7.8.4-17-s.js                | 2 +-
 test/language/literals/string/7.8.4-18-s.js                | 2 +-
 test/language/literals/string/7.8.4-19-s.js                | 2 +-
 test/language/literals/string/7.8.4-1gs.js                 | 1 -
 test/language/literals/string/7.8.4-2-s.js                 | 2 +-
 test/language/literals/string/7.8.4-20-s.js                | 2 +-
 test/language/literals/string/7.8.4-21-s.js                | 2 +-
 test/language/literals/string/7.8.4-22-s.js                | 2 +-
 test/language/literals/string/7.8.4-23-s.js                | 2 +-
 test/language/literals/string/7.8.4-24-s.js                | 2 +-
 test/language/literals/string/7.8.4-25-s.js                | 2 +-
 test/language/literals/string/7.8.4-26-s.js                | 2 +-
 test/language/literals/string/7.8.4-27-s.js                | 2 +-
 test/language/literals/string/7.8.4-28-s.js                | 2 +-
 test/language/literals/string/7.8.4-29-s.js                | 2 +-
 test/language/literals/string/7.8.4-3-s.js                 | 2 +-
 test/language/literals/string/7.8.4-30-s.js                | 2 +-
 test/language/literals/string/7.8.4-31-s.js                | 2 +-
 test/language/literals/string/7.8.4-32-s.js                | 2 +-
 test/language/literals/string/7.8.4-33-s.js                | 2 +-
 test/language/literals/string/7.8.4-4-s.js                 | 2 +-
 test/language/literals/string/7.8.4-5-s.js                 | 2 +-
 test/language/literals/string/7.8.4-6-s.js                 | 2 +-
 test/language/literals/string/7.8.4-7-s.js                 | 2 +-
 test/language/literals/string/7.8.4-8-s.js                 | 2 +-
 test/language/literals/string/7.8.4-9-s.js                 | 2 +-
 test/language/literals/string/S7.8.4_A4.3_T1.js            | 3 ---
 test/language/literals/string/S7.8.4_A4.3_T2.js            | 3 ---
 test/language/reserved-words/7.6.1.2-1gs.js                | 1 -
 test/language/statements/function/13.0-10-s.js             | 2 +-
 test/language/statements/function/13.0-11-s.js             | 2 +-
 test/language/statements/function/13.0-12-s.js             | 2 --
 test/language/statements/function/13.0-13-s.js             | 2 +-
 test/language/statements/function/13.0-14-s.js             | 2 +-
 test/language/statements/function/13.0-15-s.js             | 2 +-
 test/language/statements/function/13.0-16-s.js             | 2 +-
 test/language/statements/function/13.0-17-s.js             | 2 +-
 test/language/statements/function/13.0-7-s.js              | 2 +-
 test/language/statements/function/13.0-8-s.js              | 2 +-
 test/language/statements/function/13.0-9-s.js              | 2 --
 test/language/statements/function/13.0_4-17gs.js           | 1 -
 test/language/statements/function/13.0_4-5gs.js            | 1 -
 test/language/statements/function/13.1-1-s.js              | 2 --
 test/language/statements/function/13.1-10-s.js             | 2 --
 test/language/statements/function/13.1-11-s.js             | 1 -
 test/language/statements/function/13.1-12-s.js             | 1 -
 test/language/statements/function/13.1-13-s.js             | 2 --
 test/language/statements/function/13.1-13gs.js             | 1 -
 test/language/statements/function/13.1-14-s.js             | 1 -
 test/language/statements/function/13.1-15-s.js             | 2 +-
 test/language/statements/function/13.1-16-s.js             | 2 +-
 test/language/statements/function/13.1-17-s.js             | 2 +-
 test/language/statements/function/13.1-18-s.js             | 2 +-
 test/language/statements/function/13.1-19-s.js             | 2 +-
 test/language/statements/function/13.1-1gs.js              | 1 -
 test/language/statements/function/13.1-2-s.js              | 2 --
 test/language/statements/function/13.1-20-s.js             | 2 +-
 test/language/statements/function/13.1-21-s.js             | 2 +-
 test/language/statements/function/13.1-22-s.js             | 2 +-
 test/language/statements/function/13.1-23-s.js             | 2 +-
 test/language/statements/function/13.1-24-s.js             | 2 +-
 test/language/statements/function/13.1-25-s.js             | 2 +-
 test/language/statements/function/13.1-26-s.js             | 2 +-
 test/language/statements/function/13.1-27-s.js             | 2 +-
 test/language/statements/function/13.1-28-s.js             | 2 +-
 test/language/statements/function/13.1-29-s.js             | 2 +-
 test/language/statements/function/13.1-3-s.js              | 2 --
 test/language/statements/function/13.1-30-s.js             | 2 +-
 test/language/statements/function/13.1-31-s.js             | 2 +-
 test/language/statements/function/13.1-32-s.js             | 2 +-
 test/language/statements/function/13.1-33-s.js             | 2 +-
 test/language/statements/function/13.1-34-s.js             | 2 +-
 test/language/statements/function/13.1-35-s.js             | 2 +-
 test/language/statements/function/13.1-36-s.js             | 2 +-
 test/language/statements/function/13.1-37-s.js             | 2 +-
 test/language/statements/function/13.1-38-s.js             | 2 +-
 test/language/statements/function/13.1-39-s.js             | 2 +-
 test/language/statements/function/13.1-4-s.js              | 2 --
 test/language/statements/function/13.1-40-s.js             | 2 +-
 test/language/statements/function/13.1-41-s.js             | 2 +-
 test/language/statements/function/13.1-42-s.js             | 2 +-
 test/language/statements/function/13.1-4gs.js              | 1 -
 test/language/statements/function/13.1-5-s.js              | 2 --
 test/language/statements/function/13.1-5gs.js              | 1 -
 test/language/statements/function/13.1-6-s.js              | 2 --
 test/language/statements/function/13.1-7-s.js              | 2 --
 test/language/statements/function/13.1-8-s.js              | 2 --
 test/language/statements/function/13.1-8gs.js              | 1 -
 test/language/statements/function/13.1-9-s.js              | 2 --
 test/language/statements/function/13.2-1-s.js              | 3 ---
 test/language/statements/function/13.2-10-s.js             | 1 -
 test/language/statements/function/13.2-11-s.js             | 1 -
 test/language/statements/function/13.2-12-s.js             | 1 -
 test/language/statements/function/13.2-13-s.js             | 1 -
 test/language/statements/function/13.2-14-s.js             | 1 -
 test/language/statements/function/13.2-15-s.js             | 1 -
 test/language/statements/function/13.2-16-s.js             | 1 -
 test/language/statements/function/13.2-17-s.js             | 1 -
 test/language/statements/function/13.2-18-s.js             | 1 -
 test/language/statements/function/13.2-19-b-3gs.js         | 1 -
 test/language/statements/function/13.2-19-s.js             | 1 -
 test/language/statements/function/13.2-2-s.js              | 1 -
 test/language/statements/function/13.2-20-s.js             | 2 +-
 test/language/statements/function/13.2-21-s.js             | 2 +-
 test/language/statements/function/13.2-22-s.js             | 2 +-
 test/language/statements/function/13.2-23-s.js             | 2 +-
 test/language/statements/function/13.2-24-s.js             | 2 +-
 test/language/statements/function/13.2-25-s.js             | 2 +-
 test/language/statements/function/13.2-26-s.js             | 2 +-
 test/language/statements/function/13.2-27-s.js             | 2 +-
 test/language/statements/function/13.2-28-s.js             | 2 +-
 test/language/statements/function/13.2-3-s.js              | 3 ---
 test/language/statements/function/13.2-4-s.js              | 1 -
 test/language/statements/function/13.2-5-s.js              | 2 +-
 test/language/statements/function/13.2-6-s.js              | 2 +-
 test/language/statements/function/13.2-7-s.js              | 2 +-
 test/language/statements/function/13.2-8-s.js              | 2 +-
 test/language/statements/function/13.2-9-s.js              | 2 +-
 test/language/statements/function/S13.2_A6_T1.js           | 1 -
 test/language/statements/function/S13.2_A6_T2.js           | 1 -
 test/language/statements/function/S13.2_A7_T1.js           | 1 -
 test/language/statements/function/S13.2_A7_T2.js           | 1 -
 test/language/statements/function/S13.2_A8_T1.js           | 1 -
 test/language/statements/function/S13.2_A8_T2.js           | 1 -
 test/language/statements/try/12.14.1-1-s.js                | 2 --
 test/language/statements/try/12.14.1-1gs.js                | 1 -
 test/language/statements/try/12.14.1-2-s.js                | 2 --
 test/language/statements/try/12.14.1-3-s.js                | 2 --
 test/language/statements/try/12.14.1-4-s.js                | 3 ---
 test/language/statements/try/12.14.1-5-s.js                | 3 ---
 test/language/statements/try/12.14.1-6-s.js                | 3 ---
 test/language/statements/variable/12.2.1-1-s.js            | 2 --
 test/language/statements/variable/12.2.1-10-s.js           | 2 --
 test/language/statements/variable/12.2.1-12-s.js           | 2 --
 test/language/statements/variable/12.2.1-13-s.js           | 2 --
 test/language/statements/variable/12.2.1-14-s.js           | 2 --
 test/language/statements/variable/12.2.1-15-s.js           | 2 --
 test/language/statements/variable/12.2.1-16-s.js           | 4 +---
 test/language/statements/variable/12.2.1-17-s.js           | 2 --
 test/language/statements/variable/12.2.1-18-s.js           | 2 --
 test/language/statements/variable/12.2.1-19-s.js           | 2 --
 test/language/statements/variable/12.2.1-1gs.js            | 1 -
 test/language/statements/variable/12.2.1-2-s.js            | 2 --
 test/language/statements/variable/12.2.1-20-s.js           | 2 --
 test/language/statements/variable/12.2.1-21-s.js           | 2 --
 test/language/statements/variable/12.2.1-22-s.js           | 1 -
 test/language/statements/variable/12.2.1-23-s.js           | 2 --
 test/language/statements/variable/12.2.1-24-s.js           | 2 --
 test/language/statements/variable/12.2.1-25-s.js           | 2 --
 test/language/statements/variable/12.2.1-26-s.js           | 2 --
 test/language/statements/variable/12.2.1-27-s.js           | 2 --
 test/language/statements/variable/12.2.1-28-s.js           | 2 --
 test/language/statements/variable/12.2.1-29-s.js           | 2 --
 test/language/statements/variable/12.2.1-3-s.js            | 2 --
 test/language/statements/variable/12.2.1-30-s.js           | 2 --
 test/language/statements/variable/12.2.1-31-s.js           | 2 --
 test/language/statements/variable/12.2.1-32-s.js           | 2 --
 test/language/statements/variable/12.2.1-33-s.js           | 2 --
 test/language/statements/variable/12.2.1-34-s.js           | 2 --
 test/language/statements/variable/12.2.1-35-s.js           | 2 --
 test/language/statements/variable/12.2.1-36-s.js           | 2 --
 test/language/statements/variable/12.2.1-37-s.js           | 2 --
 test/language/statements/variable/12.2.1-4-s.js            | 2 --
 test/language/statements/variable/12.2.1-4gs.js            | 1 -
 test/language/statements/variable/12.2.1-5-s.js            | 5 +----
 test/language/statements/variable/12.2.1-6-s.js            | 2 --
 test/language/statements/variable/12.2.1-7-s.js            | 2 --
 test/language/statements/variable/12.2.1-8-s.js            | 2 --
 test/language/statements/variable/12.2.1-9-s.js            | 5 +----
 test/language/statements/with/12.10.1-1-s.js               | 2 +-
 test/language/statements/with/12.10.1-10-s.js              | 2 --
 test/language/statements/with/12.10.1-11-s.js              | 1 -
 test/language/statements/with/12.10.1-11gs.js              | 1 -
 test/language/statements/with/12.10.1-12-s.js              | 2 +-
 test/language/statements/with/12.10.1-14-s.js              | 2 --
 test/language/statements/with/12.10.1-15-s.js              | 2 --
 test/language/statements/with/12.10.1-16-s.js              | 2 --
 test/language/statements/with/12.10.1-2-s.js               | 2 +-
 test/language/statements/with/12.10.1-3-s.js               | 2 +-
 test/language/statements/with/12.10.1-4-s.js               | 2 +-
 test/language/statements/with/12.10.1-7-s.js               | 2 --
 test/language/statements/with/12.10.1-8-s.js               | 2 +-
 test/language/statements/with/12.10.1-9-s.js               | 2 +-
 test/language/types/reference/8.7.2-1-s.js                 | 1 -
 test/language/types/reference/8.7.2-2-s.js                 | 6 ++----
 test/language/types/reference/8.7.2-3-1-s.js               | 3 ---
 test/language/types/reference/8.7.2-3-a-1gs.js             | 1 -
 test/language/types/reference/8.7.2-3-a-2gs.js             | 1 -
 test/language/types/reference/8.7.2-3-s.js                 | 1 -
 test/language/types/reference/8.7.2-4-s.js                 | 1 -
 test/language/types/reference/8.7.2-5-s.js                 | 1 -
 test/language/types/reference/8.7.2-6-s.js                 | 6 ++----
 test/language/types/reference/8.7.2-7-s.js                 | 6 ++----
 test/language/types/reference/8.7.2-8-s.js                 | 6 ++----
 636 files changed, 313 insertions(+), 1012 deletions(-)

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 3cf9a18549..6a41876053 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 b0198c9d5c..96589b4591 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 efa90c32bf..f343507f0b 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 3efa1fb0c9..c3b07b8d6f 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 ad5d7d1822..7274349bd0 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 5c4341668d..01c7b5d62a 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 63896752cb..3167ed832d 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 c98340abf3..51467e449e 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 067cba536d..41dc7b785f 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-6gs.js b/test/built-ins/Function/15.3.2.1-10-6gs.js
index 9159b21deb..676d5278ac 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,7 +10,7 @@ description: >
     Strict Mode - SyntaxError is thrown if a function using the
     Function constructor has two identical parameters in (local)
     strict mode
-flags: [onlyStrict]
+flags: [noStrict]
 ---*/
 
 assert.throws(SyntaxError, function() {
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 7ae0b26a74..9fdfc7acd7 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 dd2a4c297d..dd796249cd 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 f732742f63..16fb487b3a 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 035e0e8eae..a8c46afc46 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 db2d975ef3..9b54a22378 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 2b5280e760..ab3c522bbd 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 799fac830b..c44c3e8a71 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 3df412dfa4..acad1b1ab6 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 8d0cca87b5..de661e1a0a 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
@@ -11,13 +11,10 @@ description: >
     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 8d4d291040..b0b438852f 100644
--- a/test/built-ins/Function/15.3.5-1gs.js
+++ b/test/built-ins/Function/15.3.5-1gs.js
@@ -12,6 +12,7 @@ description: >
 flags: [onlyStrict]
 ---*/
 
+"use strict";
 function _15_3_5_1_gs() {}
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Function/15.3.5-2gs.js b/test/built-ins/Function/15.3.5-2gs.js
index 3bf8680c11..3aa842ed59 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 93e0183efb..663188a3c2 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 12de77758e..5f012c04ea 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 f0c7033878..168f054d67 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 0f0bf72b07..2b9c315cfc 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 5b596753de..a0debb3274 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 d0e104c5d0..774c4108f3 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 e2beb1edf1..d50f5f4891 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 f5b355d556..3277bc6712 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 c363fa3cd7..8f0d3b9ac2 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 bb45e393be..4ef8a3bc3b 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 e6080020bb..37709ee2b6 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 149f2a5573..8783862cb2 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 9483b22cb1..459334411b 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 d27c2531a5..1a64f6db16 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 132364c4d2..096551395d 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 3232163782..97a70135f2 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 276d1e4d47..31cc8de3dd 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 b594277f1c..f36f350238 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 41239b805e..cdee453500 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 beee4bb36a..c6df0374b5 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 54c3a5242e..8d79c341d9 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 90328fbedc..8cdef3f347 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 c69efc3b82..72b86357f7 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 bafd844a87..94ad20d0fa 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 ac81a2ed69..07c97def5f 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 5250c403dc..ab98d4ccf4 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 f226310521..c0a5d0e5bc 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 9d7f6b8b70..c2bdd92453 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 96e810434d..c3cf578b20 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 312f82a29f..88cbd5f44b 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 ce2045ff3d..4cb5e4d1d9 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 5470a715ff..66ba29f7f0 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 23fb89e4cb..e6076f5834 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 ad6e6bd87e..bfe7756765 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 8480ffeb09..47933a5094 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 d54c66c156..1668aee6bc 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 f30533116f..6740d8d6c3 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 1ee497f782..85b3046c60 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 8d4f6947c3..6147c262f2 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 b7be54878e..dc16e3d322 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 6c5c1b0ba9..1b06aa056e 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 b443416e3f..ab4a3afcdd 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 b9fc991e2a..3263bfdc0e 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 3f9f1ec68e..8455115c24 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 771355e5cb..b21b187179 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 b39ec15b2f..479123a9f1 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 c266619485..b98a324006 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 8db28513b2..4b939ef4ed 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 c7b564137c..b741e0b1ef 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 4f25f14a68..d46801b6bd 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 125852d3d6..a1adc185c3 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 6182ad0f52..8400492a0f 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 f7f76465c4..a5989cd4e6 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 488b443dac..56ca2c1bca 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 8a8b54a7ff..c642a132c8 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 215e95dbef..5decd7a23e 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 9f2baa39f0..9b0df1174f 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 b4bf6b2882..7486af7438 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 d5782511eb..2262ebdf7a 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 40a7e6fb6b..374122aec9 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 ccf3d9c5ba..39f77e728c 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 7780ef546f..f950114546 100644
--- a/test/language/eval-code/10.4.2-2-s.js
+++ b/test/language/eval-code/10.4.2-2-s.js
@@ -14,7 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
         eval("function fun(x){ return x }");
         return typeof (fun) === "undefined";
     }
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 267ef99c06..604a6f17a4 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 d97f75bc86..a80a24f06e 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 666a7ed542..00baee253b 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 75f49ccbb5..de201f63b2 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 6e824770e7..69518403b6 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 bc92701eef..c9729ce04e 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 175b5e9545..e9ace7bae4 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 5d524eb629..702deac1db 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 d41b7c67a2..f16517accc 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 a843b8216b..dbacc467b3 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 78607b9b20..c4e9b34da1 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 05c58579ba..3c777f32be 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 33ccd378a7..5c3ed55e6f 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 5f9873637a..bb06297c16 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 0d2b938ef8..3a6e66ce0d 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 0a9cd8eeac..bd9dc61eff 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 71e538f106..9e32b29ef6 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 dd548c2362..98832f6b98 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 c4aa4b5c25..3c415dc019 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 bc540dafc7..2d1b2ffded 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 28c18d3bd3..4088737b9f 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 960dfff09c..d033a8817d 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 8be037e6e9..dfe63f85b3 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 e31b1828ae..21ffc82150 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 e031b755e0..62300cb940 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 54ff550a9c..eac6487d33 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 6d7253b814..ae466bfc4d 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 e50699d083..240ea6c5b1 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 605b05d6db..9efbf94693 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 e2fdde3e93..cafc339bbd 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 2bad66a815..c9ce6defab 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 53298a61ea..3b2ed5e35e 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 e6bd72e9dd..4ef23dbe6f 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 1a3eb985bc..6eedb3ff29 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 6fd89da5da..3d758012ca 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 963280d849..11033eb54c 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 a7d4023301..f7d7c27d3b 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 9a9f077a69..f214a1bc6b 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 5a4565c244..b21fc293bb 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 e04021b23c..a1cbb7e4b9 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 850529e296..4367a57aac 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 094b62e2b7..09c15f7a3d 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 d03719c5bb..d4da2143d7 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 b562a6ea4a..3c15e56b08 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 cb8d7faf7b..a743f92bf2 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 4d5dc1ac3f..56a44ea09d 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 f892297b42..4f2f156db1 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 b65dddb1d0..733550e6e0 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 ada34ca447..b30a1c1acd 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 b7046e2b3b..d1563bd272 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 3220b87c6f..d7a322d9dd 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 43362e8bd3..2484365bb3 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 9337990aec..5daca5f451 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 0694aea266..07853f3f72 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 7987813692..1c2d609e8e 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 6aa5c36da7..b70b95c035 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 1bc308a8de..b3522e2ea2 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 1456647b89..4d4e130466 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 fe23653df3..de3f26aed3 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 97b2fe981b..d9fc2f0726 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 562d03dbe6..f9a6e00407 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
@@ -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-46-s.js b/test/language/expressions/compound-assignment/11.13.2-46-s.js
index a6e10839e7..bdc4af1575 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
@@ -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-47-s.js b/test/language/expressions/compound-assignment/11.13.2-47-s.js
index f2593a40fd..fbb0beb0be 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
@@ -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-48-s.js b/test/language/expressions/compound-assignment/11.13.2-48-s.js
index 196d5d8c9a..821fc906fd 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
@@ -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-49-s.js b/test/language/expressions/compound-assignment/11.13.2-49-s.js
index 59e49a8ce6..4a452befda 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
@@ -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-5-s.js b/test/language/expressions/compound-assignment/11.13.2-5-s.js
index 41557960f1..90c818281a 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 21d71a75bf..9d1ac4e5b3 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
@@ -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-51-s.js b/test/language/expressions/compound-assignment/11.13.2-51-s.js
index ff95775f29..975c6dc3da 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
@@ -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-52-s.js b/test/language/expressions/compound-assignment/11.13.2-52-s.js
index e6dda5399e..ad8c00972a 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 3dd93966a4..93b7fe5a59 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
@@ -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-54-s.js b/test/language/expressions/compound-assignment/11.13.2-54-s.js
index 501dd672bf..6f9259d2b0 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
@@ -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-55-s.js b/test/language/expressions/compound-assignment/11.13.2-55-s.js
index 6427fa23ca..85269cdb33 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
@@ -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-6-1-s.js b/test/language/expressions/compound-assignment/11.13.2-6-1-s.js
index af3c959014..c290462fd8 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 898efaff4d..84caf25829 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 0d820038f7..573028ca6d 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 ae0d6ee038..1391aef66e 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 29f196a189..7c9abed67c 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 172f1b6447..b2af07b079 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 72cfdc82eb..4f82ceef72 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 3f31497a7d..0d2effc557 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 642f665c50..aad8bcee02 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 565e8bd431..18f7121d85 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 dea576c5cc..1c37e1ba5f 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 d6b746f8ac..8e42ac9ccc 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 16384ede0a..d8170d30ec 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 3832093231..4f24caaf10 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 7ac92d21d6..bdc10ebcf2 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 af37d0d097..abc28a6a6a 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 2f9f546e38..5f11fc4a95 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 d4a00796f0..e6091ca4f1 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 32a22156cd..ccb5192a0b 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 996fa0412b..e71fb144b8 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 2264272c23..ae0ac5e260 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 206ec9e50f..1cdfbbbbbc 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 974d759b87..5a73460509 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 f7b27f9fcc..a3c20ba1b6 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 d13373f7f9..5f74936ffa 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 85688f0617..9ec7950b77 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 84f880b736..cdf20282c5 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 aed870888c..38e1653f27 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 c81303756e..f4f801e9a5 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 a5bfbe929b..25dddedc9b 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 27b1730051..3047297956 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 61a189320e..b592b58f87 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 9d33ad326d..e3cf8ed7b8 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 85df8b19ac..bef9940fb1 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 5fa558657e..61eefe890c 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 8995f4c6dc..189f85954b 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 a21488c719..0c63f4fa41 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 0ba3d1ce36..881eead387 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 a57ae7d355..e723ee02c4 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 a31c1d4cf2..9529481328 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 8ab4e72f3d..1695ce9f45 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 4cf6425d35..7a3280793d 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 8d46e415e0..e7ba555e31 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 606480f934..b602437f72 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 d5f771ac46..16113ba069 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 d3be0f1f75..7d11834e02 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 0fdae27045..b65177ff4a 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 6268b9d787..2c035455f3 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 866610eda9..5ab0dd04ca 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 fed93f2e61..85ec8dcb38 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 11a50206e8..135187b90e 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 815d39fbc5..947b331ed4 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 ba9a1b3ad7..29d0115c4a 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 42e0896bc6..874211bef4 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 50c12a58cd..9537170b0e 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 60383f4114..3fc103bac4 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 1ce91e5d1f..433c259f00 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 f27a4e4f92..2472d49a17 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 3ead231648..f7235efbed 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 9700cadc33..6f7cae17cd 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 80770eb502..2e7e1472d0 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 3754c694c9..f47870a7e6 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 ef1b5aebe4..065ac181e9 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 92067ac024..d2b67c2589 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 ec7b9c343e..f934b08e46 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 5f6a26b6bb..f3254baac2 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 3cf4a31f62..ce4806e24c 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 8cb4d4762f..c664f8da04 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 bea5ab3aa5..37066ecf6e 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 73604b6311..2f3d7ede02 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 fc5289f667..d77267df76 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 246808fa9d..f8c086c907 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 62c2932ac0..4e14b3f06f 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 ff4b810903..5caedbe795 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 de928be568..4d4a6cb1d1 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 0e5d6a705d..c49829b0f0 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 27761e51b1..e57a2af75b 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 c36d2ce9d2..bce2c7c4be 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 7752c8e005..818c2cf55b 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 5725fb9228..d2a12983b9 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 1684c05dec..a4c6d871b0 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 69560ad972..14b9dadb06 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 e0aba2fb48..a1b6b976e2 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 3f68d5b308..3ef57ec83d 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 a264488869..daec1dc945 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 e37fd53acf..bac4d8b48f 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 25eff96980..f3f1c66572 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 3864594aca..83994f55ca 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 1030ae553d..42ba02ac29 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 5067e2ee96..a9bd31406b 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 e5dbb0047e..4c8775a2d6 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 5ddbc42a1f..b2ee512d8c 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 683a9621a8..64f674370b 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 6f8e27e255..471ec4afae 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 db504bb449..f0bbaa53ea 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 c5ea985e17..885bd47600 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 e66ac27d1d..2a14002b2b 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 787ecaf9f8..0866c503bb 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 a340500e18..fc5ebbba09 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 971fad946d..404185f2b5 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 dafa25b3b3..0f4ecb38b9 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 1f81da5aed..721df26b44 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 98c5d565c5..6abfe01adc 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 5012e6cfc8..515ff9c964 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 dd374264b9..cac68ec19f 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 441e10b039..082314c4bb 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 5a5d56f8b8..973c12da4d 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 b6677aceff..2cb9cbbdac 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 379be40f9f..01bbc7af20 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 890dff1ec3..a1fca56604 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 3f4397f68c..6c37c63e3e 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 cdd174920a..f32c7c1012 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 3eeb1111c8..618887f382 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 f590daf7dd..0c866a51f4 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 1ad0818128..106a6d12e8 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 a8fcd83671..c10770398f 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 228a9e963c..4446cc6c7d 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 d5adf03166..74f33f22ca 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 170c680daf..7f3a974d74 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 92eacaf004..71c2b81373 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 9ac3fa3f49..a8d0753d90 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 c3831a6be7..83be798572 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 7f25e9960b..a9d26f1809 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 af9dbfbf93..238ad40840 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 ad6d42e836..39aff6f56b 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 2425d30b62..a75b004c8c 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 0872b44701..49e984b1a6 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 4f1357c721..070ad118ce 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 dd5709a115..7680a77abd 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 102880e9fb..5535ce0af6 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 c4dc405e1e..45451f71f0 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 dc5014ef24..eda4d411dd 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 25e62e418d..e5fd11ef91 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 a148602bbe..7d578a7042 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 54e527dd11..a3c3b88265 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 5fedb07337..f2fa92053b 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 ca989d4b33..9f40662a4f 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 aa5284c2e8..b0125594e5 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 6a4801c142..ffa1018d81 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 b0c542a45b..e4ef88779f 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 a6104e8ea2..2aae61cc19 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 83f073aefb..dc4adc50fb 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 94744f6b78..0d119eaa04 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 0e94df5251..2254ef578c 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 3d7a2fbd59..f03887bf08 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 7c67755e1f..013022619d 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 9c88cbe47b..6833878d45 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 71a7f9c2fa..529bb36b68 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 4330593ff1..69d3e754e7 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 4ce9b7cf7e..b0c1c130e9 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 773a07108b..754fc362e6 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 34bd493217..fa2deb8f6c 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 20ae974c77..5d8694fa7f 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 6ffca51995..7a9732dd45 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 3acd6ed16c..daeff64a94 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 c0ad89dc73..db2511083f 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 90acc8f617..1fdfe6e13b 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 64d3111cf7..842eb31f3d 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 65bd712a09..cb5dbc26bb 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 da586a8dba..8703668b9b 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 80481f7a75..1c6fa8fbfe 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 ca6df34cd6..2e57f92078 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 660e2bce15..4e8d34230a 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 0cea61d533..56e8a68dd4 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 d8daeb83d1..e47e8954be 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 9f8a6f2167..3e6d693246 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 ee92de2484..3e05119760 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 222e89cc19..6bad9e1686 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 5b3e03cdf0..5ede845974 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 700670aad1..62eecd8ff6 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 421c0960fa..3af86b5ce7 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 ef95dc9635..507b8afdd3 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 abffec5fc1..6f9409b65a 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 e442dc2ccb..02fe74dcb8 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 5288ad37b1..0107e28c60 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 1e3aa9e36d..d320a07c47 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 e1b367a787..c3a6298c35 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 9f7ef7bc90..adf1946cdb 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 da480d381d..3c3dc73fb6 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 cdeed96007..1ed436a413 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 ee4b3641c3..e588255b8a 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 c8c42d2b93..9f48331fd9 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 4e859faee3..5f0d5e9c8f 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 69de47905c..a4cd80635f 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 5e6bb27f21..e27e234086 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 d37732fcc1..d27a64d105 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 e2e5f1c45b..dc0feaf520 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 97eeb9d86e..999fa42528 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 c3ee2c53cb..975cff70e3 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 7296d2e0fa..dcbbc5ef9a 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 3509879da7..7ee33adade 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 62e0ca57c1..b582ae77c5 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 01ca6dcc00..58f6857978 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 8ca7afcd8e..cec941a0a7 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 cf4b35f66a..30c3726052 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 abeab46c1a..caec77b071 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 a16e0ba4ab..294afea875 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 7570eaacfc..e3b691fed9 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 717e2d4841..efdd80fa33 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 c72d8146a4..7fe9702b3d 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 2bc18a157a..7457b326cb 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 0e9f4e3239..675e261bdb 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 18d97c980c..2dd14af40b 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 02970c77a9..7aee0a8099 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 79e1842cf9..ed758da70f 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 57470bf823..3e9fc23f2e 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 5dafb56c37..75bf51b477 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 74fa570893..e2f122ab98 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 f86c4860fd..a7918303cb 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 a5b7b3b5de..e62c9f88ee 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 b2232543c4..b72ba42375 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 8473b15a75..15a7d2eb09 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 d9ee6394c7..ee18a940ec 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 5cce027e02..1df28b6c22 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 1f5fe727bb..674736af04 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 c2e54acbcb..b3fd1a5fdb 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 520db0f9a5..d23bdadc52 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 0a5c6c0b86..5f6b6db799 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 40707ae2be..868a8a8981 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 5734cbb02d..8bf9914188 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 81587d5862..c3e4e22852 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 6e98c030d3..46228175bd 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 b8a408f5b0..cd457fbbef 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 b2f0c62788..a8b15826b0 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 8bf1f4e944..0afc3e581c 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 0169f6b159..4bc937abc8 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 aa1c852974..60e6774987 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 9a27cdfdfe..a0fd6baa8a 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 840a130ad7..6cab14e877 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 0342a02fbd..2ac795d511 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 8402303723..999896209b 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 bfa23d5772..7ac578987b 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 d7338692b1..618b4d21bc 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 fe85d50020..27968a7062 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 5381391a53..d9b3f5ee87 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 20e1d7c459..7482a34c6a 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 d701b00c16..0cf49d9b62 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 447ab46d5e..383d2cad98 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 2a9b1626a9..e792c3ed99 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 45496dfb04..2763a363ed 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 924b9c2ac4..cdad850dde 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 175837fb73..90ffb2047b 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 0617e786b7..0d77a3c74a 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 7106e6a879..3e62ffd56a 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 20b51647d0..348c735d8d 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 da966b50a0..286b8cd067 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 65547327e4..a64db4ac0c 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 535fa84680..fff9f71f4d 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 bd297e6ea5..3d89de7a80 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 0ca15ca118..47ede121b2 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 05a4b9ee9e..c85b7962c7 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 f8b40c539b..896820f9aa 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 6d7d483c9c..464960f753 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 ea53e9172a..0d4fc87b9d 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 eabb5de727..352111702a 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 f760630518..a77740bd87 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 e9fca1dc09..076601e2a4 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 89c843b65e..cb6157470b 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 f4bb2215c1..4c2737651f 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 5564542e8f..201fdbd71a 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 49e7685fad..adf90d5f15 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 df3b46afba..a12a4f5eb2 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 abe941d4ef..582896c26e 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 abe69cfc8b..5d99af8beb 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 2462ba6e35..9567f9675c 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 ef7e7b3350..6a416da847 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 8b527aabcf..1ad73c51d1 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 7382f31aa5..7d9e14cdef 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 b5b9e431c9..40153c83b0 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 d979d2a3eb..13f5e16343 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 9c080b8d9d..d324dce4f0 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 669cf64ca1..be860a0649 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 3c64a0c192..e6045213e5 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 78e480960e..e61e6481a9 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 c06dc4e198..7457d1e003 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 9f1c88db97..ce6df225ca 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 fa44b1e8a2..fe01bcd7da 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 11a8191084..6ac9c0e3fc 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 83fbb11095..6b947907ca 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 27ce5ba69a..9a89d0d85a 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 37f467c118..c6affe433c 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 8d6956b9a1..c4b5676dc3 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 bf1c50dbd5..4ad68f4735 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 141042526d..0387124c7a 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 7fe0971c65..f6c343e5e5 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 47bdbad8bc..1d4436b4a6 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 260c999f7f..358e4ada6a 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 15d97d7791..dfeac357d7 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 742b9d33f8..9c96c71e49 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 f581442543..20cf50d37b 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 976e77bd8b..e485320a18 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 262d29db67..385a8ec533 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 7a6cb4aab5..7497427c57 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 3f8f6366a6..28a5ea5b7b 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 d6c00a4463..f6116d969a 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 549bc3ee99..799f26e7d1 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 aa8b0b2019..2a55769680 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 e372d80783..11222c9ccd 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 e5394f8a50..a535e0fb94 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 fe43a5b371..b176357c23 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 5bb9710108..e556a20dc5 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 c22ed6410f..0be3b8e6a4 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 9354680722..802cd832a9 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 a74774b790..aed5b15e67 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 96265d8edd..cb786b7ff6 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 82d2ff934c..843f744087 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 5f42d25fe4..c2fe9f8d06 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 fb1c366acc..94ab11bebc 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 04d8e7418e..99d63ca0a6 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 13b171900a..e96f96a630 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 a2cf6f8af5..d451cd59b1 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 486f2ee061..936fc77e0a 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 afcd1cc668..aecc55b132 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 5d2e606528..d8ccc3b0da 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 5b55f54770..daa88f3e7a 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 63c34a8811..6e0d15e63d 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 8176c8cb7f..9eb04d7a27 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 440138f881..8a77204248 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 d05941b797..34ed7fe9d0 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 6e22edfe59..bad8b3d1f1 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 dd0ae3b9ac..126df5b710 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 0ef01a80b2..5459af59ce 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 08837aef2c..4ee45b4f38 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 d595bcf6bc..75385f9373 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 4bdfa42b94..fd62128cf7 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 6e9ca1ddda..d7c9ecfbbf 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 679efd9f6f..ad54856400 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 6cfee358d9..6f7d4395f8 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 49e32cfd7a..2a26b8f4f0 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 9c6282ea1d..3e19f0069a 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 e3cb2d0cc6..457180173d 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 6bf3d29bd6..c0e1158a7e 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 b792d17e2c..3d99e05695 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 3a088a4348..f5f7033b33 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 6d31f5266e..cc36f7defc 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 fa03f343b4..98ca06b2e0 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 67bd1fdf00..f79193594a 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 4e699d198a..99317ea51c 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 c30d0ba5e0..dba1ac83d9 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 e852949774..fb47382607 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 1d6c6e4594..f14946a155 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 17d9148cde..3ef75491bf 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 9514ede901..b6a125a845 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 1108b1573b..5c58972e04 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 0ab8935177..fc1a476ed5 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 7359b8fc78..91b189e46f 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 d7606ed582..f91d62c87d 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 7da4126fff..9452b404fc 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 1b3eb485c0..4e9421c9d3 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 213c2481f5..c093ff7f2e 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 d39a883dd8..1a67135ec4 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 522239054d..20c882c978 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 667efb867e..20e104ff14 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 c161f4321e..4657cca356 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 b15a96e6dc..7bb3e6ee6f 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 0bb2d09c72..11cc3631a4 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 89f56c568c..3abffc2178 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 597f37fa93..9ac11d1cc7 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 2deee03de6..3d667fd904 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 44d33e0722..bc7a9c653e 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 7d09f629e6..c7834aa4cc 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 e46c8c545b..2cdd43c425 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 0fa9123db1..45d6a39b97 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 c6c02f7400..ff4c6d87c7 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 4f1542e607..0f8adfbe10 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 a7643915aa..36e7f7159a 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 a4c0ca0d69..0e5cab9308 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 355a7ee802..5d2e06e7b5 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 e47d37f510..ac1b206d0c 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 ff2ece54c5..119e8a43d7 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 d150dd37e5..6ab3112118 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 1b6a8ecce0..bb780c253e 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 fcc1bf9347..ebb17ce2a9 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 47e031199d..47c8630556 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 2572d649c8..3d88d33a93 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 3ce7acb162..96aa4eb16f 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 3380c4f9b2..10ccf61eb3 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 67b8b36ad1..7ead335f2b 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 0c498f0d7f..d808514afa 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 81cfbeff56..24e682723d 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 394f1c9729..93616eb331 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 acfd0961a4..cad2888ee6 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 5288ebfccd..a1e5d62eae 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 c5d38c247f..b4841d1186 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 d94a55047d..ddd9696e0c 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 65b164edac..5c0c8716de 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 156c150c80..b72f27e531 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 36e610a8ca..48fcc7fb96 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 f67635a798..70eeaa85b1 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 ce3f3e07d5..8a4a6493c8 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 3efd76210a..c1b5ff2c99 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 a92d7a0ed4..98ad5eb1d4 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 2a72651c21..86a46ac446 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 d11f299246..e014522510 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 067552b1c4..f24b530e4f 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 f602278f7f..1493a7bcc8 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 3526e4ad7f..49f376f993 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 ac4f95061b..35ab68f34d 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 dfe4ab330b..da6cbb5743 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 3ac7c510c1..ba164db9fd 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 3697a826f2..c31ce82f29 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 dac7276774..ab543e0814 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 c22b067169..687c83f2e1 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 3c90e499d3..506ec9a872 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 e53169be6a..5d307cf39e 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 64e9339f58..4ac08badf2 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 b8ba86d729..b18dd3c981 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 2bb78b7bc8..b98f9ef28b 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 c015755c7c..e442543b78 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 9209332612..47ef7bd981 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 c9584a9ff7..d2d21d50bf 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 16dc6275ac..1b6e125faa 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 4574705f9d..15ad7efc99 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 b33b29950c..1a4a1bcf57 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 2ffc2c2a49..55811d8ee2 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 4b4c34790b..e60acb2ffa 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 dc2462a555..a8c77901bf 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 aa46246964..bf5ad70b9b 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 4d8619500a..626ee99072 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 c3c65be193..884199cdf5 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 3877dc971e..0b03ff1488 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 a42e1e92f4..6b6c102e6e 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 1b19b2dd51..3b40372ff6 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 6738ed8eca..0756ac66a5 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 f8586153c4..cf306094fd 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 2b3ecc9550..801a972d2f 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 a59905198b..a1d62d5c92 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 b308a337f8..c65b76af92 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 bed6f5a605..3a4947af08 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 80b6086596..e9fc66c99e 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 023d0492a2..c302190548 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 80ba4d5d2a..592aebf061 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 b0b7854c0c..23128b641d 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 470c058fea..a671dbe5fe 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 ed33bf3706..be05fce869 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 82a8061671..1b9e87a5cb 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 4eee1bec99..c05aa297e4 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 6b9d0c4332..fb8657a4b2 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 902310f3c0..cf8c8a2d01 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 a07ce81498..d1d3e17750 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 b64e13fbbe..57bc32238d 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 be76be316f..f3479d6448 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 92396574e3..42861f8bdf 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 bbc47963c3..ebffd31307 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 eac0cd292f..ab84a2e3c2 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 e88e3e33f5..a8a935c5fc 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 4316503ba6..75382f81d4 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 0aa0b4c238..10da65e317 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 903f0043a7..d5cf5d1c1f 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 375d5965bb..810ea4a00e 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 538089d10f..c9da28acc6 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 f328da59f2..dab6842bbe 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 a04b1e9007..9d89d15c01 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 17681cf97b..3590ab1add 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 ff2fe6b778..40b9727c78 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 a43f3b6029..21533d0c07 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 e4c2b31945..d1075c0e3a 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 e88d1eff0a..d07ea96d64 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 6e5bf2a8bd..e045dc318a 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 d96c43dbff..e4e6c72e16 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 e45485ed0a..c262aad18d 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 4b12a14c78..c6e6b72490 100644
--- a/test/language/statements/with/12.10.1-14-s.js
+++ b/test/language/statements/with/12.10.1-14-s.js
@@ -14,8 +14,6 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        "use strict";
-
         try {
             eval("var obj = { get(a) { with(a){} } }; ");
 
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 c9e3c81da6..ab29d383f4 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 2dcdd737aa..be3f8ded7b 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 80de16529e..a5ff977a48 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 b6d2612189..64cbbc9c48 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 cf7e1b6922..4f3cbc814d 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 15a631d465..3d6c293ba1 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 5eba834357..00d19090e9 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 ae083fd876..41908c4e6b 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 fc2653e35c..642d624e06 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 b5dd449f50..1bdff1b84d 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 4005975cb6..cd1a084eb2 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 15e4bb1191..59c14445c4 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 38c32f3d2b..a869694302 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 8408012282..147072476a 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 4007379795..8a297bee0c 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 b822a0f9f1..85bc6d8238 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 6dde2a5444..b787d319a3 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 ad8bfa2d1e..b0d1714865 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 0843a8dbf1..69b776a94f 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;
-- 
GitLab