From 0dbafac5a60e49aa8aab9f8adf2d2614890a63a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bargull?= <andre.bargull@gmail.com>
Date: Tue, 5 Aug 2014 17:38:52 +0200
Subject: [PATCH] Add 'var' declarations for strict mode

This change adds 'var' declarations for global variables to allow the tests to run in strict mode (see issue #35).
Extra care was taken to ensure the changes do not alter the test behavior, for example when implicit creation of global variables are part of the test.
Note: The change does not fix all strict mode errors due to missing 'var' declarations.
---
 test/intl402/11.1.1_20_c.js                                   | 2 +-
 test/language/expressions/call/S11.2.4_A1.2_T1.js             | 2 +-
 test/language/expressions/call/S11.2.4_A1.2_T2.js             | 2 +-
 .../expressions/compound-assignment/S11.13.2_A1_T1.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T10.js        | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T11.js        | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T2.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T3.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T4.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T5.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T6.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T7.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T8.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A1_T9.js         | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T1.1.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T1.2.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T1.3.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T1.4.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.1.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.2.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.3.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.4.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.5.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.6.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.7.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.8.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.10_T2.9.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T1.1.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T1.2.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T1.3.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T1.4.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.1.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.2.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.3.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.4.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.5.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.6.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.7.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.8.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.11_T2.9.js    | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.1_T2.9.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.2_T2.9.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.3_T2.9.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.4_T2.9.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.5_T2.9.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.6_T2.9.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.7_T2.9.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.8_T2.9.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T1.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T1.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T1.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T1.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.1.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.2.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.3.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.4.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.5.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.6.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.7.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.8.js     | 2 ++
 .../expressions/compound-assignment/S11.13.2_A4.9_T2.9.js     | 2 ++
 test/language/expressions/does-not-equals/S11.9.2_A7.1.js     | 1 +
 test/language/expressions/equals/S11.9.1_A7.1.js              | 1 +
 test/language/expressions/instanceof/S11.8.6_A6_T4.js         | 4 ++--
 test/language/expressions/modulus/S11.5.3_A4_T7.js            | 2 ++
 test/language/expressions/object/11.1.5-0-1.js                | 3 ++-
 test/language/expressions/object/11.1.5-0-2.js                | 3 ++-
 test/language/expressions/object/11.1.5_6-3-1.js              | 4 ++--
 test/language/expressions/object/11.1.5_6-3-2.js              | 4 ++--
 test/language/expressions/object/11.1.5_7-3-1.js              | 4 ++--
 test/language/expressions/object/11.1.5_7-3-2.js              | 4 ++--
 .../language/expressions/strict-does-not-equals/S11.9.5_A7.js | 1 +
 test/language/expressions/strict-equals/S11.9.4_A7.js         | 1 +
 test/language/statements/do-while/S12.6.1_A2.js               | 2 ++
 test/language/statements/do-while/S12.6.1_A3.js               | 2 ++
 test/language/statements/do-while/S12.6.1_A4_T1.js            | 2 ++
 test/language/statements/do-while/S12.6.1_A5.js               | 2 ++
 test/language/statements/do-while/S12.6.1_A7.js               | 1 +
 test/language/statements/do-while/S12.6.1_A8.js               | 1 +
 test/language/statements/expression/S12.4_A2_T1.js            | 2 ++
 test/language/statements/expression/S12.4_A2_T2.js            | 2 ++
 test/language/statements/for-in/S12.6.4_A14_T2.js             | 2 ++
 test/language/statements/for-in/S12.6.4_A3.1.js               | 1 +
 test/language/statements/for-in/S12.6.4_A3.js                 | 1 +
 test/language/statements/for-in/S12.6.4_A4.1.js               | 1 +
 test/language/statements/for-in/S12.6.4_A4.js                 | 1 +
 test/language/statements/for-in/S12.6.4_A5.1.js               | 2 ++
 test/language/statements/for-in/S12.6.4_A5.js                 | 2 ++
 test/language/statements/for-in/S12.6.4_A6.1.js               | 2 ++
 test/language/statements/for-in/S12.6.4_A6.js                 | 2 ++
 test/language/statements/for-in/S12.6.4_A7_T1.js              | 4 +++-
 test/language/statements/for-in/S12.6.4_A7_T2.js              | 4 +++-
 test/language/statements/for/S12.6.3_A11.1_T1.js              | 1 +
 test/language/statements/for/S12.6.3_A11.1_T2.js              | 1 +
 test/language/statements/for/S12.6.3_A11_T1.js                | 1 +
 test/language/statements/for/S12.6.3_A11_T2.js                | 1 +
 test/language/statements/for/S12.6.3_A12.1_T1.js              | 1 +
 test/language/statements/for/S12.6.3_A12.1_T2.js              | 1 +
 test/language/statements/for/S12.6.3_A12_T1.js                | 1 +
 test/language/statements/for/S12.6.3_A12_T2.js                | 1 +
 test/language/statements/for/S12.6.3_A3.js                    | 2 ++
 test/language/statements/for/S12.6.3_A5.js                    | 2 ++
 test/language/statements/for/S12.6.3_A9.1.js                  | 1 +
 test/language/statements/for/S12.6.3_A9.js                    | 1 +
 test/language/statements/function/S13_A11_T3.js               | 4 ++--
 test/language/statements/function/S13_A11_T4.js               | 4 ++--
 test/language/statements/return/S12.9_A3.js                   | 1 +
 test/language/statements/return/S12.9_A4.js                   | 1 +
 test/language/statements/variable/S12.2_A9.js                 | 2 +-
 test/language/statements/while/S12.6.2_A3.js                  | 2 +-
 test/language/statements/while/S12.6.2_A4_T1.js               | 2 ++
 test/language/statements/while/S12.6.2_A5.js                  | 2 ++
 test/language/statements/while/S12.6.2_A7.js                  | 1 +
 test/language/statements/while/S12.6.2_A8.js                  | 1 +
 test/language/types/object/S8.6_A4_T1.js                      | 2 +-
 211 files changed, 394 insertions(+), 24 deletions(-)

diff --git a/test/intl402/11.1.1_20_c.js b/test/intl402/11.1.1_20_c.js
index 605b71bfca..30061de8a5 100644
--- a/test/intl402/11.1.1_20_c.js
+++ b/test/intl402/11.1.1_20_c.js
@@ -184,7 +184,7 @@ var currencyDigits = {
 
 Object.getOwnPropertyNames(currencyDigits).forEach(function (currency) {
     var digits = currencyDigits[currency];
-    format = Intl.NumberFormat([], {style: "currency", currency: currency});
+    var format = Intl.NumberFormat([], {style: "currency", currency: currency});
     var min = format.resolvedOptions().minimumFractionDigits;
     var max = format.resolvedOptions().maximumFractionDigits;
     if (min !== digits) {
diff --git a/test/language/expressions/call/S11.2.4_A1.2_T1.js b/test/language/expressions/call/S11.2.4_A1.2_T1.js
index aba4737480..116915f712 100644
--- a/test/language/expressions/call/S11.2.4_A1.2_T1.js
+++ b/test/language/expressions/call/S11.2.4_A1.2_T1.js
@@ -7,7 +7,7 @@ es5id: 11.2.4_A1.2_T1
 description: Function is declared with no FormalParameterList
 ---*/
 
-f_arg = function() {
+var f_arg = function() {
   return arguments;
 }
 
diff --git a/test/language/expressions/call/S11.2.4_A1.2_T2.js b/test/language/expressions/call/S11.2.4_A1.2_T2.js
index d94b4ccd48..8e063b0d14 100644
--- a/test/language/expressions/call/S11.2.4_A1.2_T2.js
+++ b/test/language/expressions/call/S11.2.4_A1.2_T2.js
@@ -7,7 +7,7 @@ es5id: 11.2.4_A1.2_T2
 description: Function is declared with FormalParameterList
 ---*/
 
-f_arg = function(x,y) {
+var f_arg = function(x,y) {
   return arguments;
 }
 
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T1.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T1.js
index aa95407f93..337edd58f0 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T1.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T1
 description: Checking by using eval, check operator is x *= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = -1;
 if ((eval("x\u0009*=\u0009-1")) !== 1) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T10.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T10.js
index f754208082..476c8c4fd0 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T10.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T10.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T10
 description: Checking by using eval, check operator is x ^= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 if ((eval("x\u0009^=\u00091")) !== 0) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T11.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T11.js
index ae23bbee99..f696a7d295 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T11.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T11.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T11
 description: Checking by using eval, check operator is x |= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = 0;
 if ((eval("x\u0009|=\u00091")) !== 1) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T2.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T2.js
index b42ef75751..c1c63b62d4 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T2.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T2
 description: Checking by using eval, check operator is x /= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = -1;
 if ((eval("x\u0009/=\u0009-1")) !== 1) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T3.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T3.js
index e745e53693..aced7d504e 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T3.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T3
 description: Checking by using eval, check operator is x %= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = -1;
 if ((eval("x\u0009%=\u0009-1")) !== 0) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T4.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T4.js
index a32afac5d4..5d78ded6a2 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T4.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T4
 description: Checking by using eval, check operator is x += y
 ---*/
 
+var x;
+
 //CHECK#1
 x = -1;
 if ((eval("x\u0009+=\u0009-1")) !== -2) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T5.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T5.js
index 758d2b2269..77036a4e7d 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T5.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T5
 description: Checking by using eval, check operator is x -= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = -1;
 if ((eval("x\u0009-=\u00091")) !== -2) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T6.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T6.js
index 2f203a84b7..73c541eaef 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T6.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T6
 description: Checking by using eval, check operator is x <<= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 if ((eval("x\u0009<<=\u00091")) !== 2) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T7.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T7.js
index 21f2440d55..ddc6e43fca 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T7.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T7
 description: Checking by using eval, check operator is x >>= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 if ((eval("x\u0009>>=\u00091")) !== 0) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T8.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T8.js
index 39061c7859..b5f708ba56 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T8.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T8
 description: Checking by using eval, check operator is x >>>= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 if ((eval("x\u0009>>>=\u00091")) !== 0) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A1_T9.js b/test/language/expressions/compound-assignment/S11.13.2_A1_T9.js
index a6277fe7dd..556286ba6f 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A1_T9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A1_T9.js
@@ -9,6 +9,8 @@ es5id: 11.13.2_A1_T9
 description: Checking by using eval, check operator is x &= y
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 if ((eval("x\u0009&=\u00091")) !== 1) {
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.1.js
index eb69307f3f..441353c5fe 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x ^= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.2.js
index 013b49cdb6..b0b3e1b1fb 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.10_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x ^= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.3.js
index 957caad077..543ef2cb46 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.10_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x ^= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.4.js
index abd68b31c3..f17ab78998 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.10_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x ^= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.1.js
index f129f62ed6..e8797c6b22 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x ^= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.2.js
index 52f25d1d49..cc91515f1c 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x ^= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.3.js
index d0ce01c4a7..4aa8ce4152 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x ^= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.4.js
index b5de9755da..0efe21487b 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x ^= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.5.js
index 018816c2d5..ec0f421ae7 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x ^= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.6.js
index eb76fa3c9c..778034c40c 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x ^= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.7.js
index 483ae73189..eb6dff9288 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x ^= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.8.js
index a87df513bf..3b410b7fe7 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x ^= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.9.js
index bd886fb1ca..9699ae97ee 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.10_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x ^= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.1.js
index 14d74fd89b..1cf4a77bc6 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x |= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.2.js
index f623092490..a9194eb0d4 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.11_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x |= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.3.js
index 28029eaba7..b415dcc009 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.11_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x |= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.4.js
index f5071fcf11..3c1cd473be 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.11_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x |= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.1.js
index 0c8587a7b9..55411857a8 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x |= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.2.js
index 76a0cbac9a..7f5c412b82 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x |= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.3.js
index 844af35889..a7a99e88e5 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x |= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.4.js
index 8b43f6e5e7..3a392553af 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x |= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.5.js
index 5c0665e161..4fbe0ad473 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x |= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.6.js
index 56df4d3abb..2a0b7c970a 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x |= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.7.js
index c8bd81ee34..748e689316 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x |= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.8.js
index 1b8a1341f2..6a4a2f6dba 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x |= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.9.js
index 830f02d38e..1e09079c83 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.11_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x |= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.1.js
index 65df46ff35..c05966c5cd 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x *= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.2.js
index 9fcf28382f..a78090b66d 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.1_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x *= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.3.js
index 144c1abc4d..4702437ace 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.1_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x *= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.4.js
index 8d0f738590..f0714b110b 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.1_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x *= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.1.js
index ad14aeff6b..58bbdc1389 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Number (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x *= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.2.js
index 42038b4422..b2ba69d36b 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x *= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.3.js
index e2927f309e..b328b48eb7 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x *= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.4.js
index 593d81b87c..98e355cb56 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x *= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.5.js
index 043adfc76e..69b5bdbdd7 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) amd Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x *= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.6.js
index 2a2b6622f3..7440046173 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.6.js
@@ -9,6 +9,8 @@ description: >
     primitive String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x *= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.7.js
index fad4346ffe..fcf2cb62c2 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x *= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.8.js
index 89b2293d6b..ca6dbc24fb 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x *= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.9.js
index 206ede2d5a..83d05d9d22 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.1_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x *= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.1.js
index 836092b979..47bc73f91f 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x /= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.2.js
index f749df46c9..4f844b7cef 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.2_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x /= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.3.js
index 1ff7892483..d6275a0f1c 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.2_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x /= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.4.js
index 7fcbb6c9f7..0920d7dddc 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.2_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x /= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.1.js
index 9df6867708..683c301723 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x /= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.2.js
index 21b1c5195e..b59733b9cf 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x /= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.3.js
index 6f55f91852..8006b2636a 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x /= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.4.js
index 5db14510bf..7563968315 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x /= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.5.js
index ddaa129f52..0eee3f8320 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x /= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.6.js
index 4f62d059a0..253a205146 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x /= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.7.js
index 4792ba2102..c11cf0744a 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x /= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.8.js
index 7d90f78bfb..4e3b2aa4a0 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x /= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.9.js
index 013c9f4aff..867aaeeb8b 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.2_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x /= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.1.js
index eb9c04afaa..9c3e14b6ac 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x %= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.2.js
index 7deece40e6..a3bfadaa1b 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.3_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x %= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.3.js
index 20e471f146..c35c8f6885 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.3_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x %= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.4.js
index f7247b7dff..17cbdf3ea6 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.3_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x %= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.1.js
index ad0f729c6e..e5cdd935d2 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x %= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.2.js
index a3044bf1a9..d36ec1f5f1 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x %= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.3.js
index 3d76882c14..cac32e0912 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x %= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.4.js
index a378194d8e..8ea80a8b43 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x %= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.5.js
index 4e3889774e..f05282de70 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x %= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.6.js
index c2354fb282..d556281d69 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x %= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.7.js
index 8c1cdf1e04..d7b07d1bb2 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x %= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.8.js
index bc432e25c6..aa2c06ff1a 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x %= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.9.js
index 2388b8282f..bc6657e0de 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.3_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x %= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.1.js
index acd55efc0c..a342d04d4d 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x += true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.2.js
index d4053c239b..db0d4211ae 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.4_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x += 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.3.js
index ee2661bb04..099cc3d0de 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.4_T1.3
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x += undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.4.js
index 5e1a2cc220..9bc63daeb8 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.4_T1.4
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x += "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.1.js
index 2557171b26..7a6d648292 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x += 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.2.js
index 3f1a602c09..b085d16572 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x += null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.3.js
index 9f085f4a3b..e7577d46c9 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x += undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.4.js
index b45842831e..3344d274cc 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x += undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.5.js
index 50aad64d71..8527fe98dd 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.5.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x += null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.6.js
index 471da1c90b..e52971c2f8 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.6.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x += 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.7.js
index 63b47f4bb9..c8ff04e8b8 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x += "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.8.js
index f4a6f22885..9b17a05801 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.8.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x += undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.9.js
index 257ce01193..69aab78566 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.4_T2.9.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x += null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.1.js
index 7e2dd3cc7e..24ae9d1b6f 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x -= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.2.js
index a86ee53016..8afa62d1d8 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.5_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x -= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.3.js
index beab296c1d..69c8a93a32 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.5_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x -= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.4.js
index c4749bafd3..d59d566ea8 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.5_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x -= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.1.js
index 86c63b9272..8a9ac23ece 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x -= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.2.js
index 52d9786cd9..ba53128b40 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x -= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.3.js
index b163031160..0cbe3267b4 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x -= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.4.js
index 7425eb90e3..0ae5db20b2 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x -= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.5.js
index 5e435705a9..07488a6595 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x -= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.6.js
index bd6d4091e2..f187d5227b 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x -= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.7.js
index d370d02126..b8bac2c4e0 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x -= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.8.js
index af874c53c3..c82632df4f 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x -= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.9.js
index 7fd59e564a..50277288c0 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.5_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x -= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.1.js
index 3541fbab48..4eb1e23feb 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x <<= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.2.js
index 2b5d384a06..b84a8cfddd 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.6_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x <<= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.3.js
index 375c33a63b..a446be5925 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.6_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x <<= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.4.js
index dbe92282b1..85da9030e9 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.6_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x <<= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.1.js
index 25e5981df2..de123f223c 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x <<= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.2.js
index 5e4e9cb34d..23a74a6847 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x <<= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.3.js
index cd852cfedd..e0cbc2a651 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x <<= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.4.js
index 2c21bdba0f..a34bc13630 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x <<= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.5.js
index f6b8fab041..a1a22388a2 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x <<= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.6.js
index d5694e3a0f..bec3643bf5 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x <<= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.7.js
index 78d87e7523..2de095a7de 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x <<= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.8.js
index e147e7827a..47a6a8727f 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x <<= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.9.js
index 1dea4d2269..95a062af63 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.6_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x <<= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.1.js
index a62b408ced..de11e90060 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.2.js
index 09cd213644..ba20da2500 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.7_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x >>= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.3.js
index 3fefee446e..5d9d1b2f7d 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.7_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x >>= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.4.js
index 0531339dec..858eb78abc 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.7_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x >>= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.1.js
index 9e1a6f7514..9dc43212fe 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.2.js
index e75670780e..7a176be7f1 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x >>= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.3.js
index 167d99e69a..7ce0446036 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x >>= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.4.js
index 817c66438d..380814f8a9 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x >>= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.5.js
index 02e33a4583..16a05a9972 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.6.js
index a5f7fc4293..7106f3e514 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x >>= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.7.js
index 85ba94d98e..0d542aa7bc 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x >>= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.8.js
index 41c03877a1..59ced550ba 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.9.js
index 88867eeb11..0f034aed20 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.7_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.1.js
index 1822d2b75f..4903916264 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>>= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.2.js
index b1caaf6b36..ebba29e719 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.8_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x >>>= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.3.js
index 0a9ff8100e..97f191a675 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.8_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x >>>= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.4.js
index f51c06899f..1f0b33ee31 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.8_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x >>>= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.1.js
index 83b22785ff..73d9ef9eac 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>>= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.2.js
index 401157aa02..a71f32a3bb 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x >>>= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.3.js
index 4c5cd9e5df..bf487790fa 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x >>>= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.4.js
index eb25a79512..892e9b2cba 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x >>>= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.5.js
index 6cd4bf9f07..5682eb9d2f 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>>= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.6.js
index 3ac8b81eac..644ab209e3 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x >>>= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.7.js
index fc10e12147..e6034e985b 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x >>>= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.8.js
index 1436f02b98..5708ea9a15 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>>= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.9.js
index db31ee1900..a3c4b4ff52 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.8_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x >>>= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.1.js
index 0b72c03bdd..403cbf2143 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.1.js
@@ -9,6 +9,8 @@ description: >
     object
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x &= true;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.2.js
index fa2410dae5..2af7e89e39 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.2.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.9_T1.2
 description: Type(x) and Type(y) vary between primitive number and Number object
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x &= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.3.js
index 6f0ea8e1be..ab8a04875e 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.3.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.9_T1.3
 description: Type(x) and Type(y) vary between primitive string and String object
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x &= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.4.js
index 7c42e185ac..60a3aba69e 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T1.4.js
@@ -7,6 +7,8 @@ es5id: 11.13.2_A4.9_T1.4
 description: Type(x) and Type(y) vary between Null and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = null;
 x &= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.1.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.1.js
index cbf0bfff24..f64b07dfee 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.1.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.1.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x &= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.2.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.2.js
index e4e602dfda..0eacfaa71a 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.2.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.2.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and String (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x &= 1;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.3.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.3.js
index 77639c5a0b..b47d6c70ea 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.3.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.3.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x &= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.4.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.4.js
index 47c0a6205c..c7031bb0bc 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.4.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.4.js
@@ -9,6 +9,8 @@ description: >
     Number (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = 1;
 x &= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.5.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.5.js
index f86bd8c46c..9ec63975f5 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.5.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.5.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Boolean (primitive and object)
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x &= "1";
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.6.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.6.js
index e2e05070c5..0b04b3083a 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.6.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.6.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x &= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.7.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.7.js
index fb236d986e..0661a04283 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.7.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.7.js
@@ -9,6 +9,8 @@ description: >
     String (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = "1";
 x &= null;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.8.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.8.js
index c365a8b065..cd7635a51a 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.8.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.8.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Undefined
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x &= undefined;
diff --git a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.9.js b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.9.js
index 2cfaf5953a..5799512413 100644
--- a/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.9.js
+++ b/test/language/expressions/compound-assignment/S11.13.2_A4.9_T2.9.js
@@ -9,6 +9,8 @@ description: >
     Boolean (primitive or object) and Null
 ---*/
 
+var x;
+
 //CHECK#1
 x = true;
 x &= null;
diff --git a/test/language/expressions/does-not-equals/S11.9.2_A7.1.js b/test/language/expressions/does-not-equals/S11.9.2_A7.1.js
index 4076e0cb44..54763656ed 100644
--- a/test/language/expressions/does-not-equals/S11.9.2_A7.1.js
+++ b/test/language/expressions/does-not-equals/S11.9.2_A7.1.js
@@ -32,6 +32,7 @@ if ((new Object() != new Object()) !== true) {
 }
 
 //CHECK#5
+var x, y;
 x = {}; 
 y = x;
 if ((x != y) !== false) {
diff --git a/test/language/expressions/equals/S11.9.1_A7.1.js b/test/language/expressions/equals/S11.9.1_A7.1.js
index 720f58ba59..d69ca5ff92 100644
--- a/test/language/expressions/equals/S11.9.1_A7.1.js
+++ b/test/language/expressions/equals/S11.9.1_A7.1.js
@@ -32,6 +32,7 @@ if ((new Object() == new Object()) !== false) {
 }
 
 //CHECK#5
+var x, y;
 x = {}; 
 y = x;
 if ((x == y) !== true) {
diff --git a/test/language/expressions/instanceof/S11.8.6_A6_T4.js b/test/language/expressions/instanceof/S11.8.6_A6_T4.js
index dce76c8064..bae10aa281 100644
--- a/test/language/expressions/instanceof/S11.8.6_A6_T4.js
+++ b/test/language/expressions/instanceof/S11.8.6_A6_T4.js
@@ -9,8 +9,8 @@ es5id: 11.8.6_A6_T4
 description: Checking if RelationalExpression is object
 ---*/
 
-MyFunct = function(){};
-__my__funct = new MyFunct;
+var MyFunct = function(){};
+var __my__funct = new MyFunct;
 
 
 //CHECK#1
diff --git a/test/language/expressions/modulus/S11.5.3_A4_T7.js b/test/language/expressions/modulus/S11.5.3_A4_T7.js
index 7e24abca59..5d0c777894 100644
--- a/test/language/expressions/modulus/S11.5.3_A4_T7.js
+++ b/test/language/expressions/modulus/S11.5.3_A4_T7.js
@@ -19,6 +19,8 @@ function truncate(x) {
   }
 }
 
+var x, y;
+
 //CHECK#1
 x = 1.3; 
 y = 1.1;
diff --git a/test/language/expressions/object/11.1.5-0-1.js b/test/language/expressions/object/11.1.5-0-1.js
index 993e9e423d..4289f50181 100644
--- a/test/language/expressions/object/11.1.5-0-1.js
+++ b/test/language/expressions/object/11.1.5-0-1.js
@@ -17,7 +17,8 @@ function testcase() {
   var s1 = "In getter";
   var s2 = "In setter";
   var s3 = "Modified by setter";
-  eval("var o = {get foo(){ return s1;},set foo(arg){return s2 = s3}};");
+  var o;
+  eval("o = {get foo(){ return s1;},set foo(arg){return s2 = s3}};");
   if(o.foo !== s1) 
     return false;
   o.foo=10;
diff --git a/test/language/expressions/object/11.1.5-0-2.js b/test/language/expressions/object/11.1.5-0-2.js
index 3e2464ff68..fa8da8a76e 100644
--- a/test/language/expressions/object/11.1.5-0-2.js
+++ b/test/language/expressions/object/11.1.5-0-2.js
@@ -17,7 +17,8 @@ function testcase() {
   var s1 = "First getter";
   var s2 = "First setter";
   var s3 = "Second getter";
-  eval("var o = {get foo(){ return s1;},set foo(arg){return s2 = s3}, get bar(){ return s3}, set bar(arg){ s3 = arg;}};");
+  var o;
+  eval("o = {get foo(){ return s1;},set foo(arg){return s2 = s3}, get bar(){ return s3}, set bar(arg){ s3 = arg;}};");
   if(o.foo !== s1) 
     return false;
   o.foo = 10;
diff --git a/test/language/expressions/object/11.1.5_6-3-1.js b/test/language/expressions/object/11.1.5_6-3-1.js
index c426b34274..61f289a270 100644
--- a/test/language/expressions/object/11.1.5_6-3-1.js
+++ b/test/language/expressions/object/11.1.5_6-3-1.js
@@ -16,8 +16,8 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
-  eval("var o = {get foo(){return 1;}};");
+  var o;
+  eval("o = {get foo(){return 1;}};");
   var desc = Object.getOwnPropertyDescriptor(o,"foo");
   if(desc.enumerable === true &&
      desc.configurable === true)
diff --git a/test/language/expressions/object/11.1.5_6-3-2.js b/test/language/expressions/object/11.1.5_6-3-2.js
index d5907527f8..313b234c08 100644
--- a/test/language/expressions/object/11.1.5_6-3-2.js
+++ b/test/language/expressions/object/11.1.5_6-3-2.js
@@ -18,8 +18,8 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
-  eval("var o = {get foo(){return 1;}};");
+  var o;
+  eval("o = {get foo(){return 1;}};");
   var desc = Object.getOwnPropertyDescriptor(o,"foo");
   return desc.set === undefined
  }
diff --git a/test/language/expressions/object/11.1.5_7-3-1.js b/test/language/expressions/object/11.1.5_7-3-1.js
index 746c935a9a..043a22cea6 100644
--- a/test/language/expressions/object/11.1.5_7-3-1.js
+++ b/test/language/expressions/object/11.1.5_7-3-1.js
@@ -16,8 +16,8 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
-  eval("var o = {set foo(arg){return 1;}};");
+  var o;
+  eval("o = {set foo(arg){return 1;}};");
   var desc = Object.getOwnPropertyDescriptor(o,"foo");
   if(desc.enumerable === true &&
      desc.configurable === true)
diff --git a/test/language/expressions/object/11.1.5_7-3-2.js b/test/language/expressions/object/11.1.5_7-3-2.js
index 3499deaa57..efbb1ce10f 100644
--- a/test/language/expressions/object/11.1.5_7-3-2.js
+++ b/test/language/expressions/object/11.1.5_7-3-2.js
@@ -18,8 +18,8 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
-  eval("var o = {set foo(arg){}};");
+  var o;
+  eval("o = {set foo(arg){}};");
   var desc = Object.getOwnPropertyDescriptor(o,"foo");
   return desc.get === undefined
  }
diff --git a/test/language/expressions/strict-does-not-equals/S11.9.5_A7.js b/test/language/expressions/strict-does-not-equals/S11.9.5_A7.js
index 6d6c3e777b..68cfce427e 100644
--- a/test/language/expressions/strict-does-not-equals/S11.9.5_A7.js
+++ b/test/language/expressions/strict-does-not-equals/S11.9.5_A7.js
@@ -32,6 +32,7 @@ if (!(new Object(+0) !== new Object(-0))) {
 }
 
 //CHECK#5
+var x, y;
 x = {}; 
 y = x;
 if (x !== y) {
diff --git a/test/language/expressions/strict-equals/S11.9.4_A7.js b/test/language/expressions/strict-equals/S11.9.4_A7.js
index e3299beaf8..1422bcf82b 100644
--- a/test/language/expressions/strict-equals/S11.9.4_A7.js
+++ b/test/language/expressions/strict-equals/S11.9.4_A7.js
@@ -32,6 +32,7 @@ if (new Object(+0) === new Object(-0)) {
 }
 
 //CHECK#5
+var x, y;
 x = {}; 
 y = x;
 if (!(x === y)) {
diff --git a/test/language/statements/do-while/S12.6.1_A2.js b/test/language/statements/do-while/S12.6.1_A2.js
index 0c4462a7d8..2fb84ff571 100644
--- a/test/language/statements/do-while/S12.6.1_A2.js
+++ b/test/language/statements/do-while/S12.6.1_A2.js
@@ -10,6 +10,8 @@ description: Evaluating Statement with error Expression
 includes: [Test262Error.js]
 ---*/
 
+var __in__do;
+
 try {
 	do __in__do = "reached"; while (abbracadabra);
 	$ERROR('#1: \'do __in__do = "reached"; while (abbracadabra)\' lead to throwing exception');
diff --git a/test/language/statements/do-while/S12.6.1_A3.js b/test/language/statements/do-while/S12.6.1_A3.js
index 52adc3c251..d0686f74cc 100644
--- a/test/language/statements/do-while/S12.6.1_A3.js
+++ b/test/language/statements/do-while/S12.6.1_A3.js
@@ -9,6 +9,8 @@ es5id: 12.6.1_A3
 description: Using eval "eval("do __in__do=1; while (false)")"
 ---*/
 
+var __evaluated, __in__do;
+
 __evaluated = eval("do __in__do=1; while (false)");
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A4_T1.js b/test/language/statements/do-while/S12.6.1_A4_T1.js
index 28eab4f193..7e533b3aba 100644
--- a/test/language/statements/do-while/S12.6.1_A4_T1.js
+++ b/test/language/statements/do-while/S12.6.1_A4_T1.js
@@ -9,6 +9,8 @@ es5id: 12.6.1_A4_T1
 description: Using "break" within a "do-while" loop
 ---*/
 
+var __in__do__before__break, __in__do__after__break;
+
 do {
     __in__do__before__break="reached"; 
     break; 
diff --git a/test/language/statements/do-while/S12.6.1_A5.js b/test/language/statements/do-while/S12.6.1_A5.js
index 5467a9d876..9c152bdf42 100644
--- a/test/language/statements/do-while/S12.6.1_A5.js
+++ b/test/language/statements/do-while/S12.6.1_A5.js
@@ -7,6 +7,8 @@ es5id: 12.6.1_A5
 description: Using eval
 ---*/
 
+var __evaluated, __in__do__before__break, __in__do__after__break;
+
 __evaluated = eval("do {__in__do__before__break=1; break; __in__do__after__break=2;} while(0)");
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/do-while/S12.6.1_A7.js b/test/language/statements/do-while/S12.6.1_A7.js
index b4cc8a457d..5e21a0e7f6 100644
--- a/test/language/statements/do-while/S12.6.1_A7.js
+++ b/test/language/statements/do-while/S12.6.1_A7.js
@@ -9,6 +9,7 @@ es5id: 12.6.1_A7
 description: Using eval
 ---*/
 
+var __evaluated;
 var __condition=0
 
 __evaluated = eval("do eval(\"__condition++\"); while (__condition<5)");
diff --git a/test/language/statements/do-while/S12.6.1_A8.js b/test/language/statements/do-while/S12.6.1_A8.js
index 144f002784..0b708522d3 100644
--- a/test/language/statements/do-while/S12.6.1_A8.js
+++ b/test/language/statements/do-while/S12.6.1_A8.js
@@ -7,6 +7,7 @@ es5id: 12.6.1_A8
 description: Using eval
 ---*/
 
+var __evaluated;
 var __condition = 0, __odds=0;
 
 __evaluated = eval("do { __condition++; if (((''+__condition/2).split('.')).length>1) continue; __odds++;} while(__condition < 10)");
diff --git a/test/language/statements/expression/S12.4_A2_T1.js b/test/language/statements/expression/S12.4_A2_T1.js
index 742b586575..e79747d9ce 100644
--- a/test/language/statements/expression/S12.4_A2_T1.js
+++ b/test/language/statements/expression/S12.4_A2_T1.js
@@ -11,6 +11,8 @@ es5id: 12.4_A2_T1
 description: Checking by using eval "(eval("x+1+x==1"))"
 ---*/
 
+var __evaluated;
+
 x=1;
 
 __evaluated = eval("x+1+x==1");
diff --git a/test/language/statements/expression/S12.4_A2_T2.js b/test/language/statements/expression/S12.4_A2_T2.js
index a2f294f80c..50696d237d 100644
--- a/test/language/statements/expression/S12.4_A2_T2.js
+++ b/test/language/statements/expression/S12.4_A2_T2.js
@@ -11,6 +11,8 @@ es5id: 12.4_A2_T2
 description: Checking by using eval(eval(x), where x is any string)
 ---*/
 
+var __evaluated;
+
 x="5+1|0===0";
 
 __evaluated = eval(x);
diff --git a/test/language/statements/for-in/S12.6.4_A14_T2.js b/test/language/statements/for-in/S12.6.4_A14_T2.js
index 48c1d4a5a2..56047bfe9a 100644
--- a/test/language/statements/for-in/S12.6.4_A14_T2.js
+++ b/test/language/statements/for-in/S12.6.4_A14_T2.js
@@ -7,6 +7,8 @@ es5id: 12.6.4_A14_T2
 description: "Using \"function __func(){return {a:1};}()\" as Expession"
 ---*/
 
+var x;
+
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#
 for(x in function __func(){return {a:1};}()){
diff --git a/test/language/statements/for-in/S12.6.4_A3.1.js b/test/language/statements/for-in/S12.6.4_A3.1.js
index 13ecc79638..48db6f9bac 100644
--- a/test/language/statements/for-in/S12.6.4_A3.1.js
+++ b/test/language/statements/for-in/S12.6.4_A3.1.js
@@ -11,6 +11,7 @@ description: >
     an array of numbers
 ---*/
 
+var __str, __evaluated, arr;
 __str="";
 
 __evaluated = eval("for(var ind in (arr=[2,1,4,3]))__str+=arr[ind]");
diff --git a/test/language/statements/for-in/S12.6.4_A3.js b/test/language/statements/for-in/S12.6.4_A3.js
index 899b244e07..eace7dc336 100644
--- a/test/language/statements/for-in/S12.6.4_A3.js
+++ b/test/language/statements/for-in/S12.6.4_A3.js
@@ -11,6 +11,7 @@ description: >
     an array of numbers. Eval is used
 ---*/
 
+var __str, __evaluated, arr, ind;
 __str="";
 
 __evaluated = eval("for(ind in (arr=[2,1,4,3]))__str+=arr[ind]");
diff --git a/test/language/statements/for-in/S12.6.4_A4.1.js b/test/language/statements/for-in/S12.6.4_A4.1.js
index ab2d46b91d..2a303e18ef 100644
--- a/test/language/statements/for-in/S12.6.4_A4.1.js
+++ b/test/language/statements/for-in/S12.6.4_A4.1.js
@@ -9,6 +9,7 @@ es5id: 12.6.4_A4.1
 description: Using Object as an Expression is appropriate. Eval is used
 ---*/
 
+var __str, __evaluated, hash;
 __str="";
 
 __evaluated = eval("for(var ind in (hash={2:'b',1:'a',4:'d',3:'c'}))__str+=hash[ind]");
diff --git a/test/language/statements/for-in/S12.6.4_A4.js b/test/language/statements/for-in/S12.6.4_A4.js
index d41ee1c768..04f3c7e302 100644
--- a/test/language/statements/for-in/S12.6.4_A4.js
+++ b/test/language/statements/for-in/S12.6.4_A4.js
@@ -9,6 +9,7 @@ es5id: 12.6.4_A4
 description: Using Object as an Expression is appropriate. Eval is used
 ---*/
 
+var __str, __evaluated, hash, ind;
 __str="";
 
 __evaluated = eval("for(ind in (hash={2:'b',1:'a',4:'d',3:'c'}))__str+=hash[ind]");
diff --git a/test/language/statements/for-in/S12.6.4_A5.1.js b/test/language/statements/for-in/S12.6.4_A5.1.js
index 198341268f..c91ce7ae2b 100644
--- a/test/language/statements/for-in/S12.6.4_A5.1.js
+++ b/test/language/statements/for-in/S12.6.4_A5.1.js
@@ -11,6 +11,8 @@ description: >
     depth is two
 ---*/
 
+var __hash__map, __arr;
+
 __hash__map={a:{aa:1,ab:2,ac:3,ad:4},b:{ba:1,bb:2,bc:3,bd:4},c:{ca:1,cb:2,cc:3,cd:4},d:{da:1,db:2,dc:3,dd:4}};
 
 __arr = "";
diff --git a/test/language/statements/for-in/S12.6.4_A5.js b/test/language/statements/for-in/S12.6.4_A5.js
index d23e0e15b1..cff7ed0926 100644
--- a/test/language/statements/for-in/S12.6.4_A5.js
+++ b/test/language/statements/for-in/S12.6.4_A5.js
@@ -11,6 +11,8 @@ description: >
     depth is two
 ---*/
 
+var __hash__map, __arr, __key, __ind;
+
 __hash__map={a:{aa:1,ab:2,ac:3,ad:4},b:{ba:1,bb:2,bc:3,bd:4},c:{ca:1,cb:2,cc:3,cd:4},d:{da:1,db:2,dc:3,dd:4}};
 
 __arr = "";
diff --git a/test/language/statements/for-in/S12.6.4_A6.1.js b/test/language/statements/for-in/S12.6.4_A6.1.js
index 646cbda5dd..122bdee849 100644
--- a/test/language/statements/for-in/S12.6.4_A6.1.js
+++ b/test/language/statements/for-in/S12.6.4_A6.1.js
@@ -11,6 +11,8 @@ description: >
     appropriate. The prototype is "{feat:2,hint:"protohint"}"
 ---*/
 
+var __accum;
+
 function FACTORY(){this.prop=1;this.hint="hinted"};
 
 FACTORY.prototype = {feat:2,hint:"protohint"};
diff --git a/test/language/statements/for-in/S12.6.4_A6.js b/test/language/statements/for-in/S12.6.4_A6.js
index ac4bcb2684..38e697f611 100644
--- a/test/language/statements/for-in/S12.6.4_A6.js
+++ b/test/language/statements/for-in/S12.6.4_A6.js
@@ -11,6 +11,8 @@ description: >
     appropriate. The prototype is "{feat:2,hint:"protohint"}"
 ---*/
 
+var __accum, key;
+
 function FACTORY(){this.prop=1;this.hint="hinted"};
 
 FACTORY.prototype = {feat:2,hint:"protohint"};
diff --git a/test/language/statements/for-in/S12.6.4_A7_T1.js b/test/language/statements/for-in/S12.6.4_A7_T1.js
index bccfb2c7e5..794884a105 100644
--- a/test/language/statements/for-in/S12.6.4_A7_T1.js
+++ b/test/language/statements/for-in/S12.6.4_A7_T1.js
@@ -11,6 +11,8 @@ description: >
     case
 ---*/
 
+var __obj, __accum, __key;
+
 __obj={aa:1,ba:2,ca:3};
 
 __accum="";
@@ -43,7 +45,7 @@ if (__accum.indexOf("ba2")!==-1) {
 
 // erasator is the hash map terminator
 function erasator_T_1000(hash_map, charactr){
-	for (key in hash_map){
+	for (var key in hash_map){
 		if (key.indexOf(charactr)===0) {
 			delete hash_map[key];
 		};
diff --git a/test/language/statements/for-in/S12.6.4_A7_T2.js b/test/language/statements/for-in/S12.6.4_A7_T2.js
index 7c24fa78c6..4a9e1489de 100644
--- a/test/language/statements/for-in/S12.6.4_A7_T2.js
+++ b/test/language/statements/for-in/S12.6.4_A7_T2.js
@@ -11,6 +11,8 @@ description: >
     Statement" case
 ---*/
 
+var __obj, __accum;
+
 __obj={aa:1,ba:2,ca:3};
 
 __accum="";
@@ -43,7 +45,7 @@ if (__accum.indexOf("ba2")!==-1) {
 
 // erasator is the hash map terminator
 function erasator_T_1000(hash_map, charactr){
-	for (key in hash_map){
+	for (var key in hash_map){
 		if (key.indexOf(charactr)===0) {
 			delete hash_map[key];
 		};
diff --git a/test/language/statements/for/S12.6.3_A11.1_T1.js b/test/language/statements/for/S12.6.3_A11.1_T1.js
index 298c208dfc..140ebe4f58 100644
--- a/test/language/statements/for/S12.6.3_A11.1_T1.js
+++ b/test/language/statements/for/S12.6.3_A11.1_T1.js
@@ -10,6 +10,7 @@ es5id: 12.6.3_A11.1_T1
 description: Using "continue" in order to continue a loop
 ---*/
 
+var __str;
 __str=""
 
 for(var index=0; index<10; index+=1) {
diff --git a/test/language/statements/for/S12.6.3_A11.1_T2.js b/test/language/statements/for/S12.6.3_A11.1_T2.js
index 2e448389f2..db63667e56 100644
--- a/test/language/statements/for/S12.6.3_A11.1_T2.js
+++ b/test/language/statements/for/S12.6.3_A11.1_T2.js
@@ -10,6 +10,7 @@ es5id: 12.6.3_A11.1_T2
 description: Embedded loops
 ---*/
 
+var __str;
 __str="";
 
 outer : for(var index=0; index<4; index+=1) {
diff --git a/test/language/statements/for/S12.6.3_A11_T1.js b/test/language/statements/for/S12.6.3_A11_T1.js
index 9295466669..8dcf2b8342 100644
--- a/test/language/statements/for/S12.6.3_A11_T1.js
+++ b/test/language/statements/for/S12.6.3_A11_T1.js
@@ -10,6 +10,7 @@ es5id: 12.6.3_A11_T1
 description: Simple test of continue loop with using "continue"
 ---*/
 
+var __str, index;
 __str=""
 
 for(index=0; index<10; index+=1) {
diff --git a/test/language/statements/for/S12.6.3_A11_T2.js b/test/language/statements/for/S12.6.3_A11_T2.js
index b24ede0206..d775076e71 100644
--- a/test/language/statements/for/S12.6.3_A11_T2.js
+++ b/test/language/statements/for/S12.6.3_A11_T2.js
@@ -10,6 +10,7 @@ es5id: 12.6.3_A11_T2
 description: Embedded loops
 ---*/
 
+var __str, index, index_n;
 __str="";
 
 outer : for(index=0; index<4; index+=1) {
diff --git a/test/language/statements/for/S12.6.3_A12.1_T1.js b/test/language/statements/for/S12.6.3_A12.1_T1.js
index 835555b4a4..a3eb190353 100644
--- a/test/language/statements/for/S12.6.3_A12.1_T1.js
+++ b/test/language/statements/for/S12.6.3_A12.1_T1.js
@@ -10,6 +10,7 @@ es5id: 12.6.3_A12.1_T1
 description: Breaking a loop with "break"
 ---*/
 
+var __str;
 __str=""
 
 for(var index=0; index<10; index+=1) {
diff --git a/test/language/statements/for/S12.6.3_A12.1_T2.js b/test/language/statements/for/S12.6.3_A12.1_T2.js
index 9acae6ba19..5208ea7318 100644
--- a/test/language/statements/for/S12.6.3_A12.1_T2.js
+++ b/test/language/statements/for/S12.6.3_A12.1_T2.js
@@ -10,6 +10,7 @@ es5id: 12.6.3_A12.1_T2
 description: Embedded loops
 ---*/
 
+var __str;
 __str="";
 
 outer : for(var index=0; index<4; index+=1) {
diff --git a/test/language/statements/for/S12.6.3_A12_T1.js b/test/language/statements/for/S12.6.3_A12_T1.js
index 10b3eff3b0..0acba4ded6 100644
--- a/test/language/statements/for/S12.6.3_A12_T1.js
+++ b/test/language/statements/for/S12.6.3_A12_T1.js
@@ -10,6 +10,7 @@ es5id: 12.6.3_A12_T1
 description: Breaking a loop with "break"
 ---*/
 
+var __str, index;
 __str=""
 
 for(index=0; index<10; index+=1) {
diff --git a/test/language/statements/for/S12.6.3_A12_T2.js b/test/language/statements/for/S12.6.3_A12_T2.js
index f1c412cbd7..83d8c98e70 100644
--- a/test/language/statements/for/S12.6.3_A12_T2.js
+++ b/test/language/statements/for/S12.6.3_A12_T2.js
@@ -10,6 +10,7 @@ es5id: 12.6.3_A12_T2
 description: Embedded loops
 ---*/
 
+var __str, index, index_n;
 __str="";
 
 outer : for(index=0; index<4; index+=1) {
diff --git a/test/language/statements/for/S12.6.3_A3.js b/test/language/statements/for/S12.6.3_A3.js
index 20653fc282..bb1d750b5b 100644
--- a/test/language/statements/for/S12.6.3_A3.js
+++ b/test/language/statements/for/S12.6.3_A3.js
@@ -10,6 +10,8 @@ es5id: 12.6.3_A3
 description: Using "(function(){throw "FirstExpression"})()" as FirstExpression
 ---*/
 
+var __in__NotInExpression__, __in__NotInExpression__2, __in__for;
+
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
 try {
diff --git a/test/language/statements/for/S12.6.3_A5.js b/test/language/statements/for/S12.6.3_A5.js
index 41c7876a53..23760cb282 100644
--- a/test/language/statements/for/S12.6.3_A5.js
+++ b/test/language/statements/for/S12.6.3_A5.js
@@ -10,6 +10,8 @@ es5id: 12.6.3_A5
 description: Using eval "for(eval("i in arr");1;)"
 ---*/
 
+var arr, i;
+
 arr = [1,2,3,4,5];
 i = 1;
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A9.1.js b/test/language/statements/for/S12.6.3_A9.1.js
index f1ded83ef0..faa2e8e23d 100644
--- a/test/language/statements/for/S12.6.3_A9.1.js
+++ b/test/language/statements/for/S12.6.3_A9.1.js
@@ -9,6 +9,7 @@ es5id: 12.6.3_A9.1
 description: Using eval
 ---*/
 
+var supreme, count;
 supreme=5;
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/for/S12.6.3_A9.js b/test/language/statements/for/S12.6.3_A9.js
index 701d9ec607..eb14e6ca0d 100644
--- a/test/language/statements/for/S12.6.3_A9.js
+++ b/test/language/statements/for/S12.6.3_A9.js
@@ -9,6 +9,7 @@ es5id: 12.6.3_A9
 description: Using eval
 ---*/
 
+var supreme;
 supreme=5;
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/function/S13_A11_T3.js b/test/language/statements/function/S13_A11_T3.js
index 6b7fd85b78..0dbf626e20 100644
--- a/test/language/statements/function/S13_A11_T3.js
+++ b/test/language/statements/function/S13_A11_T3.js
@@ -10,8 +10,8 @@ description: Deleting arguments[i] and returning result of the operation
 ---*/
 
 function __func(){
-    was_del=false;
-    for (i=0; i < arguments.length; i++)
+    var was_del=false;
+    for (var i=0; i < arguments.length; i++)
        was_del= was_del || delete arguments[i];
     return was_del;
 }
diff --git a/test/language/statements/function/S13_A11_T4.js b/test/language/statements/function/S13_A11_T4.js
index 583c65c319..f9a93ffa0c 100644
--- a/test/language/statements/function/S13_A11_T4.js
+++ b/test/language/statements/function/S13_A11_T4.js
@@ -10,8 +10,8 @@ description: Deleting arguments[i] and checking the type of arguments[i]
 ---*/
 
 function __func(){
-    is_undef=true;
-    for (i=0; i < arguments.length; i++)
+    var is_undef=true;
+    for (var i=0; i < arguments.length; i++)
     {
         delete arguments[i];
         is_undef= is_undef && (typeof arguments[i] === "undefined");
diff --git a/test/language/statements/return/S12.9_A3.js b/test/language/statements/return/S12.9_A3.js
index 568196f8b5..90301840e6 100644
--- a/test/language/statements/return/S12.9_A3.js
+++ b/test/language/statements/return/S12.9_A3.js
@@ -7,6 +7,7 @@ es5id: 12.9_A3
 description: Return without Expression
 ---*/
 
+var __evaluated;
 __evaluated = (function (){return;})();
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/return/S12.9_A4.js b/test/language/statements/return/S12.9_A4.js
index d0e38cf2de..c7a90cd2e7 100644
--- a/test/language/statements/return/S12.9_A4.js
+++ b/test/language/statements/return/S12.9_A4.js
@@ -14,6 +14,7 @@ description: Return very sophisticated expression and function
 // second derivative 
 function DD_operator(f, delta){return function(x){return (f(x+delta)-2*f(x)+f(x-delta))/(delta*delta)};}
 
+var DDsin;
 DDsin = DD_operator(Math.sin, 0.00001);
 
 
diff --git a/test/language/statements/variable/S12.2_A9.js b/test/language/statements/variable/S12.2_A9.js
index 78268f8bfd..3b982ad1bf 100644
--- a/test/language/statements/variable/S12.2_A9.js
+++ b/test/language/statements/variable/S12.2_A9.js
@@ -11,7 +11,7 @@ description: >
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-for (__prop in this){
+for (var __prop in this){
     if (__prop === "__declared__var")
         enumed=true;
 }
diff --git a/test/language/statements/while/S12.6.2_A3.js b/test/language/statements/while/S12.6.2_A3.js
index e1cc457fd0..111d8c6784 100644
--- a/test/language/statements/while/S12.6.2_A3.js
+++ b/test/language/statements/while/S12.6.2_A3.js
@@ -9,7 +9,7 @@ es5id: 12.6.2_A3
 description: Using eval
 ---*/
 
-var __in__do;
+var __evaluated, __in__do;
 
 __evaluated = eval("while (false) __in__do=1;");
 
diff --git a/test/language/statements/while/S12.6.2_A4_T1.js b/test/language/statements/while/S12.6.2_A4_T1.js
index 07d8d4f523..e4da43948f 100644
--- a/test/language/statements/while/S12.6.2_A4_T1.js
+++ b/test/language/statements/while/S12.6.2_A4_T1.js
@@ -9,6 +9,8 @@ es5id: 12.6.2_A4_T1
 description: "\"break\" within a \"while\" Statement"
 ---*/
 
+var __in__do__before__break, __in__do__after__break;
+
 while(1===1){
     __in__do__before__break="reached"; 
     break;
diff --git a/test/language/statements/while/S12.6.2_A5.js b/test/language/statements/while/S12.6.2_A5.js
index fa1b130185..bd555832bc 100644
--- a/test/language/statements/while/S12.6.2_A5.js
+++ b/test/language/statements/while/S12.6.2_A5.js
@@ -9,6 +9,8 @@ es5id: 12.6.2_A5
 description: Using eval
 ---*/
 
+var __evaluated, __in__do__before__break, __in__do__after__break;
+
 __evaluated = eval("while(1) {__in__do__before__break=1; break; __in__do__after__break=2;}");
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/statements/while/S12.6.2_A7.js b/test/language/statements/while/S12.6.2_A7.js
index d5bd119315..3c1bd8cf1e 100644
--- a/test/language/statements/while/S12.6.2_A7.js
+++ b/test/language/statements/while/S12.6.2_A7.js
@@ -9,6 +9,7 @@ es5id: 12.6.2_A7
 description: using eval
 ---*/
 
+var __evaluated;
 var __condition=0
 
 __evaluated = eval("while (__condition<5) eval(\"__condition++\");");
diff --git a/test/language/statements/while/S12.6.2_A8.js b/test/language/statements/while/S12.6.2_A8.js
index 858e8ba5ab..af9ab7e39b 100644
--- a/test/language/statements/while/S12.6.2_A8.js
+++ b/test/language/statements/while/S12.6.2_A8.js
@@ -7,6 +7,7 @@ es5id: 12.6.2_A8
 description: using eval
 ---*/
 
+var __evaluated;
 var __condition = 0, __odds=0;
 
 __evaluated = eval("while(__condition < 10) { __condition++; if (((''+__condition/2).split('.')).length>1) continue; __odds++;}");
diff --git a/test/language/types/object/S8.6_A4_T1.js b/test/language/types/object/S8.6_A4_T1.js
index 014cab75aa..51ed416108 100644
--- a/test/language/types/object/S8.6_A4_T1.js
+++ b/test/language/types/object/S8.6_A4_T1.js
@@ -13,7 +13,7 @@ var obj = {bar:true, some:1, foo:"a"};
 
 var count=0;
 
-for (property in obj)	count++;
+for (var property in obj)	count++;
 
 if (count !== 3){
   $ERROR('#1: obj = {bar:true, some:1, foo:"a"}; count=0; for (property in obj) count++; count === 3. Actual: ' + (count));
-- 
GitLab