diff --git a/test/suite/ch11/11.2/11.2.1/S11.2.1_A4_T5.js b/test/suite/ch11/11.2/11.2.1/S11.2.1_A4_T5.js
index 303884773540c8a902b1d8f38d0745cd29f4b37a..cc9cd5cdd755c5e0a784f48dd0e9947ea4579461 100644
--- a/test/suite/ch11/11.2/11.2.1/S11.2.1_A4_T5.js
+++ b/test/suite/ch11/11.2/11.2.1/S11.2.1_A4_T5.js
@@ -34,5 +34,5 @@ if (typeof String.prototype.toLowerCase !== "function")  $ERROR('#23: typeof Str
 if (typeof String.prototype['toLowerCase'] !== "function")  $ERROR('#24: typeof String.prototype["toLowerCase"] === "function". Actual: ' + (typeof String.prototype["toLowerCase"] ));
 if (typeof String.prototype.toUpperCase !== "function")  $ERROR('#25: typeof String.prototype.toUpperCase === "function". Actual: ' + (typeof String.prototype.toUpperCase ));
 if (typeof String.prototype['toUpperCase'] !== "function")  $ERROR('#26: typeof Array.prototype === "object". Actual: ' + (typeof Array.prototype ));
-if (typeof String.prototype.length  !== "number")  $ERROR('#27: typeof String.prototype.length === "number". Actual: ' + (typeof String.prototype.length ));
-if (typeof String.prototype['length']  !== "number")  $ERROR('#28: typeof String.prototype["length"] === "number". Actual: ' + (typeof String.prototype["length"] ));
+if (typeof String.prototype.length  !== "undefined")  $ERROR('#27: typeof String.prototype.length === "undefined". Actual: ' + (typeof String.prototype.length ));
+if (typeof String.prototype['length']  !== "undefined")  $ERROR('#28: typeof String.prototype["length"] === "undefined". Actual: ' + (typeof String.prototype["length"] ));
diff --git a/test/suite/ch11/11.4/11.4.1/11.4.1-5-a-28-s.js b/test/suite/ch11/11.4/11.4.1/11.4.1-5-a-28-s.js
index 845599fa7b43b3afb89e8bcfa9b7ee44f1809480..60383f41149669b38ad6126a1fdd132def228784 100644
--- a/test/suite/ch11/11.4/11.4.1/11.4.1-5-a-28-s.js
+++ b/test/suite/ch11/11.4/11.4.1/11.4.1-5-a-28-s.js
@@ -6,7 +6,7 @@
 
 /*---
 es5id: 11.4.1-5-a-28-s
-description: Strict Mode - TypeError is thrown when deleting RegExp.length
+description: Strict Mode - TypeError is not thrown when deleting RegExp.length
 flags: [onlyStrict]
 includes: [runTestCase.js]
 ---*/
@@ -14,11 +14,7 @@ includes: [runTestCase.js]
 function testcase() {
     "use strict";
     var a = new RegExp();
-    try {
-        var b = delete RegExp.length;
-        return false;
-    } catch (e) {
-        return e instanceof TypeError;
-    }
+    var b = delete RegExp.length;
+    return true;
 }
 runTestCase(testcase);
diff --git a/test/suite/ch12/12.1/S12.1_A4_T2.js b/test/suite/ch12/12.1/S12.1_A4_T2.js
index 10cfb43aa6053060426b8c639d79b5a686206d39..2a6a56ffe50cd3c697041767cb529fb6ab0fccbf 100644
--- a/test/suite/ch12/12.1/S12.1_A4_T2.js
+++ b/test/suite/ch12/12.1/S12.1_A4_T2.js
@@ -4,7 +4,7 @@
 /*---
 info: The production Block can't be inside of expression
 es5id: 12.1_A4_T2
-description: Checking if execution of "y={x}" fails
+description: Checking if execution of "y={x;}" fails
 negative: SyntaxError
 ---*/
 
diff --git a/test/suite/ch12/12.14/12.14-1.js b/test/suite/ch12/12.14/12.14-1.js
index 052f4aec5013b6970801527493c1c87cc5f02048..413261c7e0de300cb061184f5c0e27463fb9a82d 100644
--- a/test/suite/ch12/12.14/12.14-1.js
+++ b/test/suite/ch12/12.14/12.14-1.js
@@ -7,11 +7,14 @@
 /*---
 es5id: 12.14-1
 description: >
-    catch doesn't change declaration scope - var initializer in catch
-    with same name as catch parameter changes parameter
+    var initializer in catch with same name as catch parameter is a
+    SyntaxError
+negative: ^((?!NotEarlyError).)*$
 includes: [runTestCase.js]
 ---*/
 
+throw NotEarlyError;
+
 function testcase() {
   foo = "prior to throw";
   try {
diff --git a/test/suite/ch12/12.14/12.14-2.js b/test/suite/ch12/12.14/12.14-2.js
index 1a2f3030960f7be974bd5e119c8736ac569afea6..911c101f4d54138baae124afd4f07d8cb320be7b 100644
--- a/test/suite/ch12/12.14/12.14-2.js
+++ b/test/suite/ch12/12.14/12.14-2.js
@@ -7,11 +7,14 @@
 /*---
 es5id: 12.14-2
 description: >
-    catch doesn't change declaration scope - var initializer in catch
-    with same name as catch parameter changes parameter
+    var initializer in catch with same name as catch parameter is a
+    SyntaxError
+negative: ^((?!NotEarlyError).)*$
 includes: [runTestCase.js]
 ---*/
 
+throw NotEarlyError;
+
 function testcase() {
   function capturedFoo() {return foo};
   foo = "prior to throw";
diff --git a/test/suite/ch13/13.2/13.2-15-1.js b/test/suite/ch13/13.2/13.2-15-1.js
index 38247988951f919fbd078fe8d5c765b6d0cb28a4..0e2952a34e24656d54d04cfda06a630a4f3e241e 100644
--- a/test/suite/ch13/13.2/13.2-15-1.js
+++ b/test/suite/ch13/13.2/13.2-15-1.js
@@ -33,6 +33,6 @@ function testcase() {
             delete fun.length;
             verifyConfigurable = fun.hasOwnProperty("length");
 
-            return verifyValue && !verifyWritable && !verifyEnumerable && verifyConfigurable;
+            return verifyValue && !verifyWritable && !verifyEnumerable && !verifyConfigurable;
         }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.1/15.1.2/15.1.2.1/S15.1.2.1_A4.2.js b/test/suite/ch15/15.1/15.1.2/15.1.2.1/S15.1.2.1_A4.2.js
index 1ea85754660e7e50ac8dd288073b90e737afde87..7e120fc6b600a63022db1831bae093daefe8ae87 100644
--- a/test/suite/ch15/15.1/15.1.2/15.1.2.1/S15.1.2.1_A4.2.js
+++ b/test/suite/ch15/15.1/15.1.2/15.1.2.1/S15.1.2.1_A4.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of eval has the attribute DontDelete
+info: The length property of eval does not have the attribute DontDelete
 es5id: 15.1.2.1_A4.2
 description: Checking use hasOwnProperty, delete
 includes: [$FAIL.js]
@@ -16,8 +16,8 @@ if (eval.hasOwnProperty('length') !== true) {
 delete eval.length;
 
 //CHECK#2
-if (eval.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete eval.length; eval.hasOwnProperty(\'length\') === true. Actual: ' + (eval.hasOwnProperty('length')));
+if (eval.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete eval.length; eval.hasOwnProperty(\'length\') === false. Actual: ' + (eval.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.1/15.1.2/15.1.2.2/S15.1.2.2_A9.2.js b/test/suite/ch15/15.1/15.1.2/15.1.2.2/S15.1.2.2_A9.2.js
index f37f028ced0b80735b067c68a8884602318fad1d..6e6be2f6b5c578d8dcdaf7e1cc31d8e882745062 100644
--- a/test/suite/ch15/15.1/15.1.2/15.1.2.2/S15.1.2.2_A9.2.js
+++ b/test/suite/ch15/15.1/15.1.2/15.1.2.2/S15.1.2.2_A9.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of parseInt has the attribute DontDelete
+info: The length property of parseInt does not have the attribute DontDelete
 es5id: 15.1.2.2_A9.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (parseInt.hasOwnProperty('length') !== true) {
 delete parseInt.length;
 
 //CHECK#2
-if (parseInt.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete parseInt.length; parseInt.hasOwnProperty(\'length\') === true. Actual: ' + (parseInt.hasOwnProperty('length')));
+if (parseInt.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete parseInt.length; parseInt.hasOwnProperty(\'length\') === false. Actual: ' + (parseInt.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.1/15.1.2/15.1.2.3/S15.1.2.3_A7.2.js b/test/suite/ch15/15.1/15.1.2/15.1.2.3/S15.1.2.3_A7.2.js
index b21e19a82647766ca7730541e29c8dffb8ba3a66..e5a00f1bde46c1d11d680c0c24f78e94befd2ef7 100644
--- a/test/suite/ch15/15.1/15.1.2/15.1.2.3/S15.1.2.3_A7.2.js
+++ b/test/suite/ch15/15.1/15.1.2/15.1.2.3/S15.1.2.3_A7.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of parseFloat has the attribute DontDelete
+info: The length property of parseFloat does not have the attribute DontDelete
 es5id: 15.1.2.3_A7.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (parseFloat.hasOwnProperty('length') !== true) {
 delete parseFloat.length;
 
 //CHECK#2
-if (parseFloat.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete parseFloat.length; parseFloat.hasOwnProperty(\'length\') === true. Actual: ' + (parseFloat.hasOwnProperty('length')));
+if (parseFloat.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete parseFloat.length; parseFloat.hasOwnProperty(\'length\') === false. Actual: ' + (parseFloat.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.1/15.1.2/15.1.2.4/S15.1.2.4_A2.2.js b/test/suite/ch15/15.1/15.1.2/15.1.2.4/S15.1.2.4_A2.2.js
index a40d15462a8930a3f1c8090b7cd8898f81974539..cb9c5bb84964a0338acf1fd2d2c204d4f6e6df0c 100644
--- a/test/suite/ch15/15.1/15.1.2/15.1.2.4/S15.1.2.4_A2.2.js
+++ b/test/suite/ch15/15.1/15.1.2/15.1.2.4/S15.1.2.4_A2.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of isNaN has the attribute DontDelete
+info: The length property of isNaN does not have the attribute DontDelete
 es5id: 15.1.2.4_A2.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (isNaN.hasOwnProperty('length') !== true) {
 delete isNaN.length;
 
 //CHECK#2
-if (isNaN.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete isNaN.length; isNaN.hasOwnProperty(\'length\') === true. Actual: ' + (isNaN.hasOwnProperty('length')));
+if (isNaN.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete isNaN.length; isNaN.hasOwnProperty(\'length\') === false. Actual: ' + (isNaN.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.1/15.1.2/15.1.2.5/S15.1.2.5_A2.2.js b/test/suite/ch15/15.1/15.1.2/15.1.2.5/S15.1.2.5_A2.2.js
index c8916b22c5cef7beb29e5fdd375529b85a596fe0..d29d44118ffd855c60e95657c883cca816ebb71d 100644
--- a/test/suite/ch15/15.1/15.1.2/15.1.2.5/S15.1.2.5_A2.2.js
+++ b/test/suite/ch15/15.1/15.1.2/15.1.2.5/S15.1.2.5_A2.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of isFinite has the attribute DontDelete
+info: The length property of isFinite does not have the attribute DontDelete
 es5id: 15.1.2.5_A2.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (isFinite.hasOwnProperty('length') !== true) {
 delete isFinite.length;
 
 //CHECK#2
-if (isFinite.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete isFinite.length; isFinite.hasOwnProperty(\'length\') === true. Actual: ' + (isFinite.hasOwnProperty('length')));
+if (isFinite.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete isFinite.length; isFinite.hasOwnProperty(\'length\') === false. Actual: ' + (isFinite.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.1/15.1.3/15.1.3.1/S15.1.3.1_A5.2.js b/test/suite/ch15/15.1/15.1.3/15.1.3.1/S15.1.3.1_A5.2.js
index cf06185cf8124e8f5e08650854a1eca0901f765b..aa1d3b266ec49168652d4319f35d713717354701 100644
--- a/test/suite/ch15/15.1/15.1.3/15.1.3.1/S15.1.3.1_A5.2.js
+++ b/test/suite/ch15/15.1/15.1.3/15.1.3.1/S15.1.3.1_A5.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of decodeURI has the attribute DontDelete
+info: The length property of decodeURI does not have the attribute DontDelete
 es5id: 15.1.3.1_A5.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (decodeURI.hasOwnProperty('length') !== true) {
 delete decodeURI.length;
 
 //CHECK#2
-if (decodeURI.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete decodeURI.length; decodeURI.hasOwnProperty(\'length\') === true. Actual: ' + (decodeURI.hasOwnProperty('length')));
+if (decodeURI.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete decodeURI.length; decodeURI.hasOwnProperty(\'length\') === false. Actual: ' + (decodeURI.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.1/15.1.3/15.1.3.2/S15.1.3.2_A5.2.js b/test/suite/ch15/15.1/15.1.3/15.1.3.2/S15.1.3.2_A5.2.js
index f048e015ed5ceb9d7dac19bcd3d46c78fb069908..3f4673858e0524360c585a25427a764578a059c3 100644
--- a/test/suite/ch15/15.1/15.1.3/15.1.3.2/S15.1.3.2_A5.2.js
+++ b/test/suite/ch15/15.1/15.1.3/15.1.3.2/S15.1.3.2_A5.2.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of decodeURIComponent has the attribute DontDelete
+info: >
+    The length property of decodeURIComponent does not have the attribute
+    DontDelete
 es5id: 15.1.3.2_A5.2
 description: Checking use hasOwnProperty, delete
 includes: [$FAIL.js]
@@ -16,8 +18,8 @@ if (decodeURIComponent.hasOwnProperty('length') !== true) {
 delete decodeURIComponent.length;
 
 //CHECK#2
-if (decodeURIComponent.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete decodeURIComponent.length; decodeURIComponent.hasOwnProperty(\'length\') === true. Actual: ' + (decodeURIComponent.hasOwnProperty('length')));
+if (decodeURIComponent.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete decodeURIComponent.length; decodeURIComponent.hasOwnProperty(\'length\') === false. Actual: ' + (decodeURIComponent.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.1/15.1.3/15.1.3.3/S15.1.3.3_A5.2.js b/test/suite/ch15/15.1/15.1.3/15.1.3.3/S15.1.3.3_A5.2.js
index 7b451e8679de77a4895b2c19018e002935027762..f9302dcc87b6944fdc69420ef3bc4bcecbbc540f 100644
--- a/test/suite/ch15/15.1/15.1.3/15.1.3.3/S15.1.3.3_A5.2.js
+++ b/test/suite/ch15/15.1/15.1.3/15.1.3.3/S15.1.3.3_A5.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of encodeURI has the attribute DontDelete
+info: The length property of encodeURI does not have the attribute DontDelete
 es5id: 15.1.3.3_A5.2
 description: Checking use hasOwnProperty, delete
 includes: [$FAIL.js]
@@ -16,8 +16,8 @@ if (encodeURI.hasOwnProperty('length') !== true) {
 delete encodeURI.length;
 
 //CHECK#2
-if (encodeURI.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete encodeURI.length; encodeURI.hasOwnProperty(\'length\') === true. Actual: ' + (encodeURI.hasOwnProperty('length')));
+if (encodeURI.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete encodeURI.length; encodeURI.hasOwnProperty(\'length\') === false. Actual: ' + (encodeURI.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.1/15.1.3/15.1.3.4/S15.1.3.4_A5.2.js b/test/suite/ch15/15.1/15.1.3/15.1.3.4/S15.1.3.4_A5.2.js
index cb303eff7d82c7005915b8bb62d3101e9b363a43..086e65ac99c952ef4afce167a706f451dfc37536 100644
--- a/test/suite/ch15/15.1/15.1.3/15.1.3.4/S15.1.3.4_A5.2.js
+++ b/test/suite/ch15/15.1/15.1.3/15.1.3.4/S15.1.3.4_A5.2.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of encodeURIComponent has the attribute DontDelete
+info: >
+    The length property of encodeURIComponent does not have the attribute
+    DontDelete
 es5id: 15.1.3.4_A5.2
 description: Checking use hasOwnProperty, delete
 includes: [$FAIL.js]
@@ -16,8 +18,8 @@ if (encodeURIComponent.hasOwnProperty('length') !== true) {
 delete encodeURIComponent.length;
 
 //CHECK#2
-if (encodeURIComponent.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete encodeURIComponent.length; encodeURIComponent.hasOwnProperty(\'length\') === true. Actual: ' + (encodeURIComponent.hasOwnProperty('length')));
+if (encodeURIComponent.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete encodeURIComponent.length; encodeURIComponent.hasOwnProperty(\'length\') === false. Actual: ' + (encodeURIComponent.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.10/15.10.6/15.10.6.2/S15.10.6.2_A9.js b/test/suite/ch15/15.10/15.10.6/15.10.6.2/S15.10.6.2_A9.js
index 0dd0ff35b2c8982b4498294f94e838990da97451..90957d4c42eca54f7119bc6a72c389b7f249d92d 100644
--- a/test/suite/ch15/15.10/15.10.6/15.10.6.2/S15.10.6.2_A9.js
+++ b/test/suite/ch15/15.10/15.10.6/15.10.6.2/S15.10.6.2_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp.prototype.exec.length property has the attribute DontDelete
+info: >
+    The RegExp.prototype.exec.length property does not have the attribute
+    DontDelete
 es5id: 15.10.6.2_A9
 description: >
     Checking if deleting the RegExp.prototype.exec.length property
@@ -16,11 +18,11 @@ if ((RegExp.prototype.exec.hasOwnProperty('length') !== true)) {
 }
 
 //CHECK#1
-if (delete RegExp.prototype.exec.length !== false) {
-  $ERROR('#1: delete RegExp.prototype.exec.length === false');
+if (delete RegExp.prototype.exec.length !== true) {
+  $ERROR('#1: delete RegExp.prototype.exec.length === true');
 }
 
 //CHECK#2
-if (RegExp.prototype.exec.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete RegExp.prototype.exec.length; RegExp.prototype.exec.hasOwnProperty(\'length\') === true');
+if (RegExp.prototype.exec.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete RegExp.prototype.exec.length; RegExp.prototype.exec.hasOwnProperty(\'length\') === false');
 }
diff --git a/test/suite/ch15/15.10/15.10.6/15.10.6.3/S15.10.6.3_A9.js b/test/suite/ch15/15.10/15.10.6/15.10.6.3/S15.10.6.3_A9.js
index 2b647b2a9c17a9d4bca79eb1dfa047f41f80e64b..1fea4a6668cec879f25226bdaec0c8f0be4baa2f 100644
--- a/test/suite/ch15/15.10/15.10.6/15.10.6.3/S15.10.6.3_A9.js
+++ b/test/suite/ch15/15.10/15.10.6/15.10.6.3/S15.10.6.3_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp.prototype.test.length property has the attribute DontDelete
+info: >
+    The RegExp.prototype.test.length property does not have the attribute
+    DontDelete
 es5id: 15.10.6.3_A9
 description: Checking if deleting RegExp.prototype.test.length property fails
 includes: [$FAIL.js]
@@ -14,11 +16,11 @@ if ((RegExp.prototype.exec.hasOwnProperty('length') !== true)) {
 }
 
 //CHECK#1
-if (delete RegExp.prototype.exec.length !== false) {
-  $ERROR('#1: delete RegExp.prototype.exec.length === false');
+if (delete RegExp.prototype.exec.length !== true) {
+  $ERROR('#1: delete RegExp.prototype.exec.length === true');
 }
 
 //CHECK#2
-if (RegExp.prototype.exec.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete RegExp.prototype.exec.length; RegExp.prototype.exec.hasOwnProperty(\'length\') === true');
+if (RegExp.prototype.exec.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete RegExp.prototype.exec.length; RegExp.prototype.exec.hasOwnProperty(\'length\') === false');
 }
diff --git a/test/suite/ch15/15.10/15.10.6/15.10.6.4/S15.10.6.4_A9.js b/test/suite/ch15/15.10/15.10.6/15.10.6.4/S15.10.6.4_A9.js
index 9fcc3a5c49222bb2388ae90ee51ac26c8b872546..19482128faa8e001bfb3d622818e4d16095dbd7b 100644
--- a/test/suite/ch15/15.10/15.10.6/15.10.6.4/S15.10.6.4_A9.js
+++ b/test/suite/ch15/15.10/15.10.6/15.10.6.4/S15.10.6.4_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp.prototype.toString.length property has the attribute DontDelete
+info: >
+    The RegExp.prototype.toString.length property does not have the attribute
+    DontDelete
 es5id: 15.10.6.4_A9
 description: >
     Checking if deleting the RegExp.prototype.toString.length property
@@ -16,11 +18,11 @@ if ((RegExp.prototype.toString.hasOwnProperty('length') !== true)) {
 }
 
 //CHECK#1
-if (delete RegExp.prototype.toString.length !== false) {
-	$ERROR('#1: delete RegExp.prototype.toString.length === false');
+if (delete RegExp.prototype.toString.length !== true) {
+	$ERROR('#1: delete RegExp.prototype.toString.length === true');
 }
 
 //CHECK#2
-if (RegExp.prototype.toString.hasOwnProperty('length') !== true) {
-	$ERROR('#2: delete RegExp.prototype.toString.length; RegExp.prototype.toString.hasOwnProperty(\'length\') === true');
+if (RegExp.prototype.toString.hasOwnProperty('length') !== false) {
+	$ERROR('#2: delete RegExp.prototype.toString.length; RegExp.prototype.toString.hasOwnProperty(\'length\') === false');
 }
diff --git a/test/suite/ch15/15.10/15.10.6/15.10.6.js b/test/suite/ch15/15.10/15.10.6/15.10.6.js
index bdf799db4fc749e2328bed1af489597a7c22bcec..85ee842d8e16dcfaf604f0c1e30cd002237eb83c 100644
--- a/test/suite/ch15/15.10/15.10.6/15.10.6.js
+++ b/test/suite/ch15/15.10/15.10.6/15.10.6.js
@@ -6,12 +6,12 @@
 
 /*---
 es5id: 15.10.6
-description: RegExp.prototype is itself a RegExp
+description: RegExp.prototype is itself a not RegExp
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var s = Object.prototype.toString.call(RegExp.prototype);
-  return s === '[object RegExp]';
+  return s === '[object Object]';
  }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js b/test/suite/ch15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js
index 532d6b9b472997c6b28af574a558d504c1371b87..5bc0c793f65f6392df33e1f878f14513ddf6073e 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js
@@ -6,11 +6,18 @@
 
 /*---
 es5id: 15.10.7.1-1
-description: RegExp.prototype.source is of type String
+description: RegExp.prototype.source is a non-generic accessor property
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  return (typeof(RegExp.prototype.source)) === 'string';
- }
+  try {
+    RegExp.prototype.source;
+  } catch (e) {
+    if (e instanceof TypeError) {
+      return true;
+    }
+  }
+  return false;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.1/15.10.7.1-2.js b/test/suite/ch15/15.10/15.10.7/15.10.7.1/15.10.7.1-2.js
index c51672f800815c7ad5c90edebd4fa3fcb4740d10..4a58cbbd7a9d2550e4419f2e86bc8523f24889e4 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.1/15.10.7.1-2.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.1/15.10.7.1-2.js
@@ -7,17 +7,18 @@
 /*---
 es5id: 15.10.7.1-2
 description: >
-    RegExp.prototype.source is a data property with default attribute
-    values (false)
+    RegExp.prototype.source is an accessor property whose set accessor
+    function is undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var d = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source');
   
-  if (d.writable === false &&
+  if (typeof d.get === 'function' &&
+      d.set === undefined &&
       d.enumerable === false &&
-      d.configurable === false) {
+      d.configurable === true) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A10.js b/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A10.js
index f174cd6ac4046f42be84dc2852a63b6035aa04f6..eef7c8c7cd111c7029c1c2a84bbe19e0914d22c9 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A10.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A10.js
@@ -2,24 +2,25 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance source property has the attribute ReadOnly
+info: The RegExp.prototype source property does not have a set accessor
 es5id: 15.10.7.1_A10
 description: Checking if varying the source property fails
 includes: [$FAIL.js]
 ---*/
 
-__re = /./;
+__re = RegExp.prototype;
 
 //CHECK#1
 if (__re.hasOwnProperty('source') !== true) {
-  $FAIL('#1: __re = /./; __re.hasOwnProperty(\'source\') === true');
+  $FAIL('#1: __re = RegExp.prototype; __re.hasOwnProperty(\'source\') === true');
 }
 
-__obj = __re.source;
+__sample = /./;
+__obj = __sample.source;
 
-__re.source = "shifted";
+__sample.source = "shifted";
 
 //CHECK#2
-if (__re.source !== __obj) {
-  $ERROR('#2: __re = /./; __obj = __re.source; __re.source = "shifted"; __re.source === __obj. Actual: ' + (__re.source));
+if (__sample.source !== __obj) {
+  $ERROR('#2: __sample = /./; __obj = __sample.source; __sample.source = "shifted"; __sample.source === __obj. Actual: ' + (__sample.source));
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A8.js b/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A8.js
index 149693e3472c7368a0daadc8250983a47c147126..d94eaddc311872ae77e1ce799e767f1d632732c9 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A8.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A8.js
@@ -2,24 +2,24 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance source property has the attribute DontEnum
+info: The RegExp.prototype source property has the attribute DontEnum
 es5id: 15.10.7.1_A8
 description: >
-    Checking if enumerating the source property of RegExp instance
+    Checking if enumerating the source property of RegExp.prototype
     fails
 includes: [$FAIL.js]
 ---*/
 
-__re = new RegExp("[1-2]","i");
+__re = RegExp.prototype;
 
 //CHECK#0
 if (__re.hasOwnProperty('source') !== true) {
-	$FAIL('#0: __re = new RegExp("[1-2]","i"); __re.hasOwnProperty(\'source\') === true');
+	$FAIL('#0: __re = RegExp.prototype; __re.hasOwnProperty(\'source\') === true');
 }
 
  //CHECK#1
 if (__re.propertyIsEnumerable('source') !== false) {
-	$ERROR('#1: __re = new RegExp("[1-2]","i"); __re.propertyIsEnumerable(\'source\') === false');
+	$ERROR('#1: __re = RegExp.prototype; __re.propertyIsEnumerable(\'source\') === false');
 }
 
  //CHECK#2
@@ -29,5 +29,5 @@ for (p in __re){
 }
 
 if (count !== 0) {
-  $ERROR('#2: count = 0; __re = new RegExp("[1-2]","i"); for (p in __re){ if (p==="source") count++; } count === 0. Actual: ' + (count));
+  $ERROR('#2: count = 0; __re = RegExp.prototype; for (p in __re){ if (p==="source") count++; } count === 0. Actual: ' + (count));
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A9.js b/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A9.js
index 22d70e2aba57c12d5768173e18be80d853cd0ae1..fa8241fae84dff5279dbd8083c0b94deeb7725ab 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A9.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.1/S15.10.7.1_A9.js
@@ -2,25 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance source property has the attribute DontDelete
+info: >
+    The RegExp.prototype source property does not have the attribute
+    DontDelete
 es5id: 15.10.7.1_A9
-description: Checking if deleting the source property fails
+description: Checking if deleting the source property succeeds
 includes: [$FAIL.js]
 ---*/
 
-__re = new RegExp;
+__re = RegExp.prototype;
 
 //CHECK#0
 if (__re.hasOwnProperty('source') !== true) {
-	$FAIL('#0: __re = new RegExp; __re.hasOwnProperty(\'source\') === true');
+	$FAIL('#0: __re = RegExp.prototype; __re.hasOwnProperty(\'source\') === true');
 }
 
 //CHECK#1
-if ((delete __re.source) !== false) {
-	$ERROR('#1: __re = new RegExp; (delete __re.source) === false');
+if ((delete __re.source) !== true) {
+	$ERROR('#1: __re = RegExp.prototype; (delete __re.source) === true');
 }
 
 //CHECK#2
-if (__re.hasOwnProperty('source') !== true) {
-	$ERROR('#2: __re = new RegExp;delete __re.source === true; __re.hasOwnProperty(\'source\') === true');
+if (__re.hasOwnProperty('source') !== false) {
+	$ERROR('#2: __re = RegExp.prototype;delete __re.source === true; __re.hasOwnProperty(\'source\') === false');
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js b/test/suite/ch15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js
index b5b837c66bb4b17d7127515c9db737f0ca052fe3..09dee32b5bdd5d2840c6819a23908fc44ca65b53 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js
@@ -6,11 +6,18 @@
 
 /*---
 es5id: 15.10.7.2-1
-description: RegExp.prototype.global is of type Boolean
+description: RegExp.prototype.global is a non-generic accessor property
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  return (typeof(RegExp.prototype.global)) === 'boolean';
- }
+  try {
+    RegExp.prototype.global;
+  } catch (e) {
+    if (e instanceof TypeError) {
+      return true;
+    }
+  }
+  return false;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.2/15.10.7.2-2.js b/test/suite/ch15/15.10/15.10.7/15.10.7.2/15.10.7.2-2.js
index 9d14ce8bc836e462448e546d19587cc5eb82602e..69ba5ad9be2b0e43804d00df286402e08ca8498c 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.2/15.10.7.2-2.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.2/15.10.7.2-2.js
@@ -7,17 +7,18 @@
 /*---
 es5id: 15.10.7.2-2
 description: >
-    RegExp.prototype.global is a data property with default attribute
-    values (false)
+    RegExp.prototype.global is an accessor property whose set accessor
+    function is undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'global');
   
-  if (desc.writable === false &&
+  if (typeof desc.get === 'function' &&
+      desc.set === undefined &&
       desc.enumerable === false &&
-      desc.configurable === false) {
+      desc.configurable === true) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A10.js b/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A10.js
index afa6a60c2cab534fac2851d91e9651d183f70253..497d8716187cbbb1f90cd4c77ad0d84c20942a0a 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A10.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A10.js
@@ -2,24 +2,25 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance global property has the attribute ReadOnly
+info: The RegExp.prototype global property does not have a set accessor
 es5id: 15.10.7.2_A10
 description: Checking if varying the global property fails
 includes: [$FAIL.js]
 ---*/
 
-__re = /^|^/;
+__re = RegExp.prototype;
 
 //CHECK#1
 if (__re.hasOwnProperty('global') !== true) {
-  $FAIL('#1: __re = /^|^/; __re.hasOwnProperty(\'global\') === true');
+  $FAIL('#1: __re = RegExp.prototype; __re.hasOwnProperty(\'global\') === true');
 }
 
-__obj = __re.global;
+__sample = /^|^/;
+__obj = __sample.global;
 
-__re.global = "shifted";
+__sample.global = "shifted";
 
 //CHECK#2
-if (__re.global !== __obj) {
-  $ERROR('#2: __re = /^|^/; __obj = __re.global; __re.global = "shifted"; __re.global === __obj. Actual: ' + (__re.global));
+if (__sample.global !== __obj) {
+  $ERROR('#2: __sample = /^|^/; __obj = __sample.global; __sample.global = "shifted"; __sample.global === __obj. Actual: ' + (__sample.global));
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A8.js b/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A8.js
index 3061d4007545d9aac5af41f965baebdfc9a5b91e..c6eb777de10e38a0728af8fce120cf39689eee7d 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A8.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A8.js
@@ -2,24 +2,24 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance global property has the attribute DontEnum
+info: The RegExp.prototype global property has the attribute DontEnum
 es5id: 15.10.7.2_A8
 description: >
-    Checking if enumerating the global property of RegExp instance
+    Checking if enumerating the global property of RegExp.prototype
     fails
 includes: [$FAIL.js]
 ---*/
 
-__re = new RegExp("[o-o]","m");
+__re = RegExp.prototype;
 
 //CHECK#0
 if (__re.hasOwnProperty('global') !== true) {
-  $FAIL('#0: __re = new RegExp("[o-o]","m"); __re.hasOwnProperty(\'global\') === true');
+  $FAIL('#0: __re = RegExp.prototype; __re.hasOwnProperty(\'global\') === true');
 }
 
  //CHECK#1
 if (__re.propertyIsEnumerable('global') !== false) {
-  $ERROR('#1: __re = new RegExp("[o-o]","m"); __re.propertyIsEnumerable(\'global\') === false');
+  $ERROR('#1: __re = RegExp.prototype; __re.propertyIsEnumerable(\'global\') === false');
 }
 
  //CHECK#2
@@ -29,5 +29,5 @@ for (p in __re){
 }
 
 if (count !== 0) {
-  $ERROR('#2: count = 0; __re = new RegExp("[o-o]","m"); for (p in __re){ if (p==="global") count++; } count === 0. Actual: ' + (count));
+  $ERROR('#2: count = 0; __re = RegExp.prototype; for (p in __re){ if (p==="global") count++; } count === 0. Actual: ' + (count));
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A9.js b/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A9.js
index 9601d8715a6a9ba8569e5f64d656d03d062daa18..a04a55816a48f5ec9ca3206a839fa260aa4d6dd0 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A9.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.2/S15.10.7.2_A9.js
@@ -2,25 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance global property has the attribute DontDelete
+info: >
+    The RegExp.prototype global property does not have the attribute
+    DontDelete
 es5id: 15.10.7.2_A9
-description: Checking if deleting the global property fails
+description: Checking if deleting the global property succeeds
 includes: [$FAIL.js]
 ---*/
 
-__re = new RegExp;
+__re = RegExp.prototype;
 
 //CHECK#0
 if (__re.hasOwnProperty('global') !== true) {
-  $FAIL('#0: __re = new RegExp; __re.hasOwnProperty(\'global\') === true');
+  $FAIL('#0: __re = RegExp.prototype; __re.hasOwnProperty(\'global\') === true');
 }
 
 //CHECK#1
-if ((delete __re.global) !== false) {
-  $ERROR('#1: __re = new RegExp; (delete __re.global) === false');
+if ((delete __re.global) !== true) {
+  $ERROR('#1: __re = RegExp.prototype; (delete __re.global) === true');
 }
 
 //CHECK#2
-if (__re.hasOwnProperty('global') !== true) {
-  $ERROR('#2: __re = new RegExp;delete __re.global === true; __re.hasOwnProperty(\'global\') === true');
+if (__re.hasOwnProperty('global') !== false) {
+  $ERROR('#2: __re = RegExp.prototype;delete __re.global === true; __re.hasOwnProperty(\'global\') === false');
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js b/test/suite/ch15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js
index 4e71e6f7dc27dcf1af945b5710661fa9841498ef..1aad19b989801ca4c20d5015e8b2658669bdf82d 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js
@@ -6,11 +6,18 @@
 
 /*---
 es5id: 15.10.7.3-1
-description: RegExp.prototype.ignoreCase is of type Boolean
+description: RegExp.prototype.ignoreCase is a non-generic accessor property
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  return (typeof(RegExp.prototype.ignoreCase)) === 'boolean';
- }
+  try {
+    RegExp.prototype.ignoreCase;
+  } catch (e) {
+    if (e instanceof TypeError) {
+      return true;
+    }
+  }
+  return false;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.3/15.10.7.3-2.js b/test/suite/ch15/15.10/15.10.7/15.10.7.3/15.10.7.3-2.js
index ebc125de24ce7fbdc4b2bf915bbb8963099cecfe..1b9a36fdc73e270fedd25d8c6b83528bff521d7e 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.3/15.10.7.3-2.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.3/15.10.7.3-2.js
@@ -7,17 +7,18 @@
 /*---
 es5id: 15.10.7.3-2
 description: >
-    RegExp.prototype.ignoreCase is a data property with default
-    attribute values (false)
+    RegExp.prototype.ignoreCase is an accessor property whose set
+    accessor function is undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var d = Object.getOwnPropertyDescriptor(RegExp.prototype, 'ignoreCase');
   
-  if (d.writable === false &&
+  if (typeof d.get === 'function' &&
+      d.set === undefined &&
       d.enumerable === false &&
-      d.configurable === false) {
+      d.configurable === true) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A10.js b/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A10.js
index 0da4368385bc074f49b2e7cebf49e2ed497146e9..19728367877d4fbf3d0156bda77b589ff44268f4 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A10.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A10.js
@@ -2,24 +2,25 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance ignoreCase property has the attribute ReadOnly
+info: The RegExp.prototype ignoreCase property does not have a set accessor
 es5id: 15.10.7.3_A10
 description: Checking if varying the ignoreCase property fails
 includes: [$FAIL.js]
 ---*/
 
-__re = /a|b|c/;
+__re = RegExp.prototype;
 
 //CHECK#1
 if (__re.hasOwnProperty('ignoreCase') !== true) {
-  $FAIL('#1: __re = /a|b|c/; __re.hasOwnProperty(\'ignoreCase\') === true');
+  $FAIL('#1: __re = RegExp.prototype; __re.hasOwnProperty(\'ignoreCase\') === true');
 }
 
-__obj = __re.ignoreCase;
+__sample = /a|b|c/;
+__obj = __sample.ignoreCase;
 
-__re.ignoreCase = "shifted";
+__sample.ignoreCase = "shifted";
 
 //CHECK#2
-if (__re.ignoreCase !== __obj) {
-  $ERROR('#2: __re = /a|b|c/; __obj = __re.ignoreCase; __re.ignoreCase = "shifted"; __re.ignoreCase === __obj. Actual: ' + (__re.ignoreCase));
+if (__sample.ignoreCase !== __obj) {
+  $ERROR('#2: __sample = /a|b|c/; __obj = __sample.ignoreCase; __sample.ignoreCase = "shifted"; __sample.ignoreCase === __obj. Actual: ' + (__sample.ignoreCase));
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A8.js b/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A8.js
index 121f3bbace1679f653150e7919366e127a309f60..42f4eb9a3bbaa4b13023ed9929fb646a8c05da3d 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A8.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A8.js
@@ -2,24 +2,24 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance ignoreCase property has the attribute DontEnum
+info: The RegExp.prototype ignoreCase property has the attribute DontEnum
 es5id: 15.10.7.3_A8
 description: >
-    Checking if enumerating the ignoreCase property of RegExp instance
-    fails
+    Checking if enumerating the ignoreCase property of
+    RegExp.prototype fails
 includes: [$FAIL.js]
 ---*/
 
-__re = new RegExp("[|||||||]","");
+__re = RegExp.prototype;
 
 //CHECK#0
 if (__re.hasOwnProperty('ignoreCase') !== true) {
-  $FAIL('#0: __re = new RegExp("[|||||||]",""); __re.hasOwnProperty(\'ignoreCase\') === true');
+  $FAIL('#0: __re = RegExp.prototype; __re.hasOwnProperty(\'ignoreCase\') === true');
 }
 
  //CHECK#1
 if (__re.propertyIsEnumerable('ignoreCase') !== false) {
-  $ERROR('#1: __re = new RegExp("[|||||||]",""); __re.propertyIsEnumerable(\'ignoreCase\') === false');
+  $ERROR('#1: __re = RegExp.prototype; __re.propertyIsEnumerable(\'ignoreCase\') === false');
 }
 
  //CHECK#2
@@ -29,5 +29,5 @@ for (p in __re){
 }
 
 if (count !== 0) {
-  $ERROR('#2: count = 0; __re = new RegExp("[|||||||]",""); for (p in __re){ if (p==="ignoreCase") count++; } count === 0. Actual: ' + (count));
+  $ERROR('#2: count = 0; __re = RegExp.prototype; for (p in __re){ if (p==="ignoreCase") count++; } count === 0. Actual: ' + (count));
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A9.js b/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A9.js
index 1364f69629a04b486bc3f17ed71d20e807c655a8..796d2b3bff08f6c7b84dbc42fd55f29f3aefa425 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A9.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.3/S15.10.7.3_A9.js
@@ -2,25 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance ignoreCase property has the attribute DontDelete
+info: >
+    The RegExp.prototype ignoreCase property does not have the attribute
+    DontDelete
 es5id: 15.10.7.3_A9
-description: Checking if deleting the ignoreCase property fails
+description: Checking if deleting the ignoreCase property succeeds
 includes: [$FAIL.js]
 ---*/
 
-__re = new RegExp;
+__re = RegExp.prototype;
 
 //CHECK#0
 if (__re.hasOwnProperty('ignoreCase') !== true) {
-  $FAIL('#0: __re = new RegExp; __re.hasOwnProperty(\'ignoreCase\') === true');
+  $FAIL('#0: __re = RegExp.prototype; __re.hasOwnProperty(\'ignoreCase\') === true');
 }
 
 //CHECK#1
-if ((delete __re.ignoreCase) !== false) {
-  $ERROR('#1: __re = new RegExp; (delete __re.ignoreCase) === false');
+if ((delete __re.ignoreCase) !== true) {
+  $ERROR('#1: __re = RegExp.prototype; (delete __re.ignoreCase) === true');
 }
 
 //CHECK#2
-if (__re.hasOwnProperty('ignoreCase') !== true) {
-  $ERROR('#2: __re = new RegExp;delete __re.ignoreCase === true; __re.hasOwnProperty(\'ignoreCase\') === true');
+if (__re.hasOwnProperty('ignoreCase') !== false) {
+  $ERROR('#2: __re = RegExp.prototype;delete __re.ignoreCase === true; __re.hasOwnProperty(\'ignoreCase\') === false');
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js b/test/suite/ch15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js
index 8fe735687ec99fd51b0b6fe663bde50ff847752d..de0b1c4e7b7b3f9b481794594666a8f278a03916 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js
@@ -6,11 +6,18 @@
 
 /*---
 es5id: 15.10.7.4-1
-description: RegExp.prototype.multiline is of type Boolean
+description: RegExp.prototype.multiline is a non-generic accessor property
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  return (typeof(RegExp.prototype.multiline)) === 'boolean';
- }
+  try {
+    RegExp.prototype.multiline;
+  } catch (e) {
+    if (e instanceof TypeError) {
+      return true;
+    }
+  }
+  return false;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.4/15.10.7.4-2.js b/test/suite/ch15/15.10/15.10.7/15.10.7.4/15.10.7.4-2.js
index 6df1859d65fbe58c625bd29f45da3dc004c8a5cf..059d23206987006579f3eface7dde1575ed88dea 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.4/15.10.7.4-2.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.4/15.10.7.4-2.js
@@ -7,17 +7,18 @@
 /*---
 es5id: 15.10.7.4-2
 description: >
-    RegExp.prototype.multiline is a data property with default
-    attribute values (false)
+    RegExp.prototype.multiline is an accessor property whose set
+    accessor function is undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var d = Object.getOwnPropertyDescriptor(RegExp.prototype, 'multiline');
   
-  if (d.writable === false &&
+  if (typeof d.get === 'function' &&
+      d.set === undefined &&
       d.enumerable === false &&
-      d.configurable === false) {
+      d.configurable === true) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A10.js b/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A10.js
index bd811c9eb2ff899dcaa468c529bc0c23d005b736..51ef99f81b63a2d964325096a5ded2da62162e5d 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A10.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A10.js
@@ -2,24 +2,25 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance multiline property has the attribute ReadOnly
+info: The RegExp.prototype multiline property does not have a set accessor
 es5id: 15.10.7.4_A10
 description: Checking if varying the multiline property fails
 includes: [$FAIL.js]
 ---*/
 
-__re = /\n/;
+__re = RegExp.prototype;
 
 //CHECK#1
 if (__re.hasOwnProperty('multiline') !== true) {
-  $FAIL('#1: __re = /\\n/; __re.hasOwnProperty(\'multiline\') === true');
+  $FAIL('#1: __re = RegExp.prototype; __re.hasOwnProperty(\'multiline\') === true');
 }
 
-__obj = __re.multiline;
+__sample = /\n/;
+__obj = __sample.multiline;
 
-__re.multiline = "shifted";
+__sample.multiline = "shifted";
 
 //CHECK#2
-if (__re.multiline !== __obj) {
-  $ERROR('#2: __re = /\\n/; __obj = __re.multiline; __re.multiline = "shifted"; __re.multiline === __obj. Actual: ' + (__re.multiline));
+if (__sample.multiline !== __obj) {
+  $ERROR('#2: __sample = /\n/; __obj = __sample.multiline; __sample.multiline = "shifted"; __sample.multiline === __obj. Actual: ' + (__sample.multiline));
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A8.js b/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A8.js
index 94848027024b672bc4646b77420f4ca91f8a33c3..65c0183bf371015ded233cbec45a25f818f3c928 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A8.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A8.js
@@ -2,24 +2,24 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance multiline property has the attribute DontEnum
+info: The RegExp.prototype multiline property has the attribute DontEnum
 es5id: 15.10.7.4_A8
 description: >
-    Checking if enumerating the multiline property of RegExp instance
+    Checking if enumerating the multiline property of RegExp.prototype
     fails
 includes: [$FAIL.js]
 ---*/
 
-__re = new RegExp("[\u0041-\u0049]");
+__re = RegExp.prototype;
 
 //CHECK#0
 if (__re.hasOwnProperty('multiline') !== true) {
-  $FAIL('#0: __re = new RegExp("[\\u0041-\\u0049]"); __re.hasOwnProperty(\'multiline\') === true');
+  $FAIL('#0: __re = RegExp.prototype; __re.hasOwnProperty(\'multiline\') === true');
 }
 
  //CHECK#1
 if (__re.propertyIsEnumerable('multiline') !== false) {
-  $ERROR('#1: __re = new RegExp("[\\u0041-\\u0049]"); __re.propertyIsEnumerable(\'multiline\') === false');
+  $ERROR('#1: __re = RegExp.prototype; __re.propertyIsEnumerable(\'multiline\') === false');
 }
 
  //CHECK#2
@@ -29,5 +29,5 @@ for (p in __re){
 }
 
 if (count !== 0) {
-  $ERROR('#2: count = 0; __re = new RegExp("[\\u0041-\\u0049]"); for (p in __re){ if (p==="multiline") count++; } count === 0. Actual: ' + (count));
+  $ERROR('#2: count = 0; __re = RegExp.prototype; for (p in __re){ if (p==="multiline") count++; } count === 0. Actual: ' + (count));
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A9.js b/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A9.js
index 1593447d28e5c208d71a8994adcd01ccba23516e..c045847e828ffe5e63d24886069195647d58f935 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A9.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.4/S15.10.7.4_A9.js
@@ -2,25 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The RegExp instance multiline property has the attribute DontDelete
+info: >
+    The RegExp.prototype multiline property does not have the attribute
+    DontDelete
 es5id: 15.10.7.4_A9
-description: Checking if deleting the multiline property fails
+description: Checking if deleting the multiline property succeeds
 includes: [$FAIL.js]
 ---*/
 
-__re = new RegExp;
+__re = RegExp.prototype;
 
 //CHECK#0
 if (__re.hasOwnProperty('multiline') !== true) {
-  $FAIL('#0: __re = new RegExp; __re.hasOwnProperty(\'multiline\') === true');
+  $FAIL('#0: __re = RegExp.prototype; __re.hasOwnProperty(\'multiline\') === true');
 }
 
 //CHECK#1
-if ((delete __re.multiline) !== false) {
-  $ERROR('#1: __re = new RegExp; (delete __re.multiline) === false');
+if ((delete __re.multiline) !== true) {
+  $ERROR('#1: __re = RegExp.prototype; (delete __re.multiline) === true');
 }
 
 //CHECK#2
-if (__re.hasOwnProperty('multiline') !== true) {
-  $ERROR('#2: __re = new RegExp;delete __re.multiline === true; __re.hasOwnProperty(\'multiline\') === true');
+if (__re.hasOwnProperty('multiline') !== false) {
+  $ERROR('#2: __re = RegExp.prototype;delete __re.multiline === true; __re.hasOwnProperty(\'multiline\') === false');
 }
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js b/test/suite/ch15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js
index a7f61f0ed4fe5c3d41675c38bb5411dd57ab87c4..b3d7796f53015cc67d25fcf2f8be42960b7b1c03 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js
@@ -6,11 +6,11 @@
 
 /*---
 es5id: 15.10.7.5-1
-description: RegExp.prototype.lastIndex is of type Number
+description: RegExp.prototype.lastIndex is of type Undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  return (typeof(RegExp.prototype.lastIndex)) === 'number';
+  return (typeof(RegExp.prototype.lastIndex)) === 'undefined';
  }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.10/15.10.7/15.10.7.5/15.10.7.5-2.js b/test/suite/ch15/15.10/15.10.7/15.10.7.5/15.10.7.5-2.js
index 46011c9744d39b79c0060238afe33cb8015a0687..ca184328dbf4b17093828fad3136a95f4d7d6967 100644
--- a/test/suite/ch15/15.10/15.10.7/15.10.7.5/15.10.7.5-2.js
+++ b/test/suite/ch15/15.10/15.10.7/15.10.7.5/15.10.7.5-2.js
@@ -6,19 +6,12 @@
 
 /*---
 es5id: 15.10.7.5-2
-description: >
-    RegExp.prototype.lastIndex is a data property with specified
-    attribute values
+description: RegExp.prototype.lastIndex is not present
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var d = Object.getOwnPropertyDescriptor(RegExp.prototype, 'lastIndex');
-  
-  if (d.writable === true &&
-      d.enumerable === false &&
-      d.configurable === false) {
-    return true;
-  }
+  return d === undefined;
  }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.11/15.11.4/S15.11.4_A2.js b/test/suite/ch15/15.11/15.11.4/S15.11.4_A2.js
index 85eecb41ea9d2e00faaf41e9d5b7fec881f95265..7c100386c0daeee8142ac0d86e27742d71ddd13b 100644
--- a/test/suite/ch15/15.11/15.11.4/S15.11.4_A2.js
+++ b/test/suite/ch15/15.11/15.11.4/S15.11.4_A2.js
@@ -4,7 +4,7 @@
 /*---
 info: >
     The value of the internal [[Class]] property of Error prototype object is
-    "Error"
+    "Object"
 es5id: 15.11.4_A2
 description: >
     Getting the value of the internal [[Class]] property using
@@ -16,8 +16,8 @@ __tostr = Error.prototype.toString();
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (__tostr !== "[object Error]") {
-	$ERROR('#1: Error.prototype.toString=Object.prototype.toString; __tostr = Error.prototype.toString(); __tostr === "[object Error]". Actual: '+__tostr );
+if (__tostr !== "[object Object]") {
+	$ERROR('#1: Error.prototype.toString=Object.prototype.toString; __tostr = Error.prototype.toString(); __tostr === "[object Object]". Actual: '+__tostr );
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js
index 96fa087ce0eaf9369dbbbeb37fcff72a294c03f5..b238b21057818147a67280befad9fa917c8fca30 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js
@@ -6,15 +6,14 @@
 
 /*---
 es5id: 15.2.3.10-1-1
-description: Object.preventExtensions throws TypeError if 'O' is undefined
+description: >
+    Object.preventExtensions does not throw TypeError if 'O' is
+    undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.preventExtensions(undefined);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.preventExtensions(undefined);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js
index 21e22d208a6c77685a62a25a3ce32ca53c75d742..6a2fd8ab68c768cb3de9ed245ca6f2e9762661a3 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js
@@ -6,15 +6,12 @@
 
 /*---
 es5id: 15.2.3.10-1-2
-description: Object.preventExtensions throws TypeError if 'O' is null
+description: Object.preventExtensions does not throw TypeError if 'O' is null
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.preventExtensions(null);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.preventExtensions(null);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js
index 861adb31ba41bef8ddc6726b94a2c27b701e6fdd..0f524bb0fc7b53817e79458dd681d20bdce0871c 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js
@@ -7,16 +7,13 @@
 /*---
 es5id: 15.2.3.10-1-3
 description: >
-    Object.preventExtensions throws TypeError if 'O' is a boolean
-    primitive value
+    Object.preventExtensions does not throw TypeError if 'O' is a
+    boolean primitive value
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.preventExtensions(true);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.preventExtensions(true);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js
index 480de023c4bfc2dce249d848f953d484c3c6b284..29e7f45c90b52e4dd9cb0c8e245eedddfce979be 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js
@@ -7,16 +7,13 @@
 /*---
 es5id: 15.2.3.10-1-4
 description: >
-    Object.preventExtensions throws TypeError if 'O' is a string
-    primitive value
+    Object.preventExtensions does not throw TypeError if 'O' is a
+    string primitive value
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.preventExtensions("abc");
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.preventExtensions("abc");
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.js
index 2a5cde4557701b2a0a5e9b6aa7e10a674a18100d..993a070ec20ff802acfb675cc217c6154935d1c6 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.js
@@ -7,19 +7,13 @@
 /*---
 es5id: 15.2.3.10-1
 description: >
-    Object.preventExtensions throws TypeError if type of first param
-    is not Object
+    Object.preventExtensions does not throw TypeError if type of first
+    param is not Object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-    try {
-      Object.preventExtensions(0);
-    }
-    catch (e) {
-      if (e instanceof TypeError) {
-        return true;
-      }
-    }
- }
+    Object.preventExtensions(0);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.js
index 59d4830b0a4dc201e8bde4f0c9e73fd736cf26d6..891dcdd39a9084b6804597a465ba5b85d6358bce 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.js
@@ -7,19 +7,13 @@
 /*---
 es5id: 15.2.3.11-1
 description: >
-    Object.isSealed throws TypeError if type of first param is not
-    Object
+    Object.isSealed does not throw TypeError if type of first param is
+    not Object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-    try {
-      Object.isSealed(0);
-    }
-    catch (e) {
-      if (e instanceof TypeError) {
-        return true;
-      }
-    }
- }
+    Object.isSealed(0);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js
index eb487d61d979e1701f4034933b9d637ff5c05591..a9f558f14079869b9a87cebb1f64ad04208e6d97 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js
@@ -7,16 +7,13 @@
 /*---
 es5id: 15.2.3.12-1-1
 description: >
-    Object.isFrozen - TypeError is thrown when the first param 'O' is
-    undefined
+    Object.isFrozen - TypeError is not thrown when the first param 'O'
+    is undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.isFrozen(undefined);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.isFrozen(undefined);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js
index 018df97e23338ab1f54ca7db199e7d2ea9ef66f6..931f7154eea1ccf882d5ee8abe052ea21d673309 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js
@@ -7,16 +7,13 @@
 /*---
 es5id: 15.2.3.12-1-2
 description: >
-    Object.isFrozen - TypeError is thrown when the first param 'O' is
-    null
+    Object.isFrozen - TypeError is not thrown when the first param 'O'
+    is null
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.isFrozen(null);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.isFrozen(null);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js
index 8aa8f4b16259517fae30b7351477ef710a700272..91dbb82ccd833da98f1dc1002debff24fc56ee52 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js
@@ -7,16 +7,13 @@
 /*---
 es5id: 15.2.3.12-1-3
 description: >
-    Object.isFrozen - TypeError is thrown when the first param 'O' is
-    a boolean
+    Object.isFrozen - TypeError is not thrown when the first param 'O'
+    is a boolean
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.isFrozen(true);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.isFrozen(true);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js
index 10daea66c19e83b80d31b11eecb0add3314427f1..127b69f884396160efbfd9a58c316bef2f88d35e 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js
@@ -7,16 +7,13 @@
 /*---
 es5id: 15.2.3.12-1-4
 description: >
-    Object.isFrozen - TypeError is thrown when the first param 'O' is
-    a string
+    Object.isFrozen - TypeError is not thrown when the first param 'O'
+    is a string
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.isFrozen("abc");
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.isFrozen("abc");
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.js
index d5d8613d5e7ea0053f79b66b168a389dd60e7d3b..5e7abce7da30d7445869b303105b37dbff481bcf 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.js
@@ -7,19 +7,13 @@
 /*---
 es5id: 15.2.3.12-1
 description: >
-    Object.isFrozen throws TypeError if type of first param is not
-    Object
+    Object.isFrozen does not throw TypeError if type of first param is
+    not Object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-    try {
-      Object.isFrozen(0);
-    }
-    catch (e) {
-      if (e instanceof TypeError) {
-        return true;
-      }
-    }
- }
+    Object.isFrozen(0);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.js
index d2e08fd8779d7ad1da75e5fa6375a78df06856dc..b3b3fc725fece987afc76b93e444fb718a29325c 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.js
@@ -6,16 +6,12 @@
 
 /*---
 es5id: 15.2.3.13-1-1
-description: Object.isExtensible throws TypeError if 'O' is undefined
+description: Object.isExtensible does not throw TypeError if 'O' is undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
-        try {
-            Object.isExtensible(undefined);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.isExtensible(undefined);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.js b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.js
index fa3ae98f2a9dcfeaf38f21b237e6cfecb2de7eb4..528552255e73e0852b5fcb702f6d8cc9fa8de946 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.js
@@ -6,16 +6,12 @@
 
 /*---
 es5id: 15.2.3.13-1-2
-description: Object.isExtensible throws TypeError if 'O' is null
+description: Object.isExtensible does not throw TypeError if 'O' is null
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
-        try {
-            Object.isExtensible(null);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.isExtensible(null);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.js
index 9316d317c8ed1fa03417d2694fd9c8d991c40364..e626bd9657cfba06138d8f9cd423280f27d1db8a 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.js
@@ -6,16 +6,12 @@
 
 /*---
 es5id: 15.2.3.13-1-3
-description: Object.isExtensible throws TypeError if 'O' is a boolean
+description: Object.isExtensible does not throw TypeError if 'O' is a boolean
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
-        try {
-            Object.isExtensible(true);
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.isExtensible(true);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.js
index 92ec1162becad077aab734c4b2064c8fda055b9f..f00f6889bf65904ea3c62010c61d254cd288e684 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.js
@@ -6,16 +6,12 @@
 
 /*---
 es5id: 15.2.3.13-1-4
-description: Object.isExtensible throws TypeError if 'O' is a string
+description: Object.isExtensible does not throw TypeError if 'O' is a string
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-
-        try {
-            Object.isExtensible("abc");
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.isExtensible("abc");
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.js
index fa43536bec7848b5c9b6acba33d7b1e84e169027..d4c94bd83b225a97616f6854459aefe70d6adcdc 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.js
@@ -7,19 +7,13 @@
 /*---
 es5id: 15.2.3.13-1
 description: >
-    Object.isExtensible throws TypeError if type of first param is not
-    Object
+    Object.isExtensible does not throw TypeError if type of first
+    param is not Object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-    try {
-      Object.isExtensible(0);
-    }
-    catch (e) {
-      if (e instanceof TypeError) {
-        return true;
-      }
-    }
- }
+    Object.isExtensible(0);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.js
index 0bb775e5063d6a7f438bba08de77f62d901292f4..38768d1bf87a0c5e9e3ee37f1fc21223cf763b22 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.js
@@ -6,18 +6,14 @@
 
 /*---
 es5id: 15.2.3.14-1-1
-description: Object.keys throws TypeError if type of first param is not Object
+description: >
+    Object.keys does not throw TypeError if type of first param is not
+    Object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  try {
     Object.keys(0);
-  }
-  catch (e) {
-    if (e instanceof TypeError) {
-      return true;
-    }
-  }
- }
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.js b/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.js
index dee6257973a40e9e056948422f12599967b55960..65f53a9a17d54c25c5ea5ed712b0825f6dfa6526 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.js
@@ -7,19 +7,13 @@
 /*---
 es5id: 15.2.3.14-1-2
 description: >
-    Object.keys throws TypeError if type of first param is not Object
-    (boolean)
+    Object.keys does not throw TypeError if type of first param is not
+    Object (boolean)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  try {
     Object.keys(true);
-  }
-  catch (e) {
-    if (e instanceof TypeError) {
-      return true;
-    }
-  }
- }
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js
index 33a1eedfbce8377ab3adbef7b439300db14de5e5..6c9ef6ded4c4c6ed6241946fbe4eb7c0ba9a5413 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js
@@ -7,19 +7,13 @@
 /*---
 es5id: 15.2.3.14-1-3
 description: >
-    Object.keys throws TypeError if type of first param is not Object
-    (string)
+    Object.keys does not throw TypeError if type of first param is not
+    Object (string)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  try {
     Object.keys('abc');
-  }
-  catch (e) {
-    if (e instanceof TypeError) {
-      return true;
-    }
-  }
- }
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.js
index 3e1d7cee716e05cf397c1747b9bf325839774394..d441d17b4e7b16d3d3c746f840e095474b897899 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.js
@@ -6,16 +6,11 @@
 
 /*---
 es5id: 15.2.3.2-1-3
-description: Object.getPrototypeOf throws TypeError if 'O' is a boolean
+description: Object.getPrototypeOf returns Boolean.prototype if 'O' is a boolean
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.getPrototypeOf(true);
-            return false;
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    return Object.getPrototypeOf(true) === Boolean.prototype;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.js
index 747e26450ea55dedb6911dad74c72d7f5640d7aa..a637dcc1bb331ab1be815f6191dabd1723d7a061 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.js
@@ -6,16 +6,11 @@
 
 /*---
 es5id: 15.2.3.2-1-4
-description: Object.getPrototypeOf throws TypeError if 'O' is a string
+description: Object.getPrototypeOf returns String.prototype if 'O' is a string
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.getPrototypeOf("abc");
-            return false;
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    return Object.getPrototypeOf("abc") === String.prototype;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.js
index c5a56bf96fa63fd36c16acd38995d8ad03290877..b3e435d88adb13f4e425a7e4bf24d71219d8edfe 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.js
@@ -6,20 +6,11 @@
 
 /*---
 es5id: 15.2.3.2-1
-description: >
-    Object.getPrototypeOf throws TypeError if type of first param is
-    not Object
+description: Object.getPrototypeOf returns Number.prototype if 'O' is a number
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  try {
-    Object.getPrototypeOf(0);
-  }
-  catch (e) {
-    if (e instanceof TypeError) {
-      return true;
-    }
-  }
- }
+    return Object.getPrototypeOf(0) === Number.prototype;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js
index 78776ab2ad830fb5c2ffdbd080ef6ec441da6f5b..ce6a8b78a5033242ee8c22ba5f289dbd8d55b3fd 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js
@@ -13,7 +13,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  if (Object.getPrototypeOf(EvalError) === Function.prototype) {
+  if (Object.getPrototypeOf(EvalError) === Error) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js
index 7026c496102019f879acdd478d3a92820cb4b06e..06e41803c0fbffc2cb6976fb3015882b3a907bff 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js
@@ -13,7 +13,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  if (Object.getPrototypeOf(RangeError) === Function.prototype) {
+  if (Object.getPrototypeOf(RangeError) === Error) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js
index beb50836c5f470f20cdbc0754d6b42d80fe814c9..8107751e53c4702850197cf08c97b499943f8247 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js
@@ -13,7 +13,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  if (Object.getPrototypeOf(ReferenceError) === Function.prototype) {
+  if (Object.getPrototypeOf(ReferenceError) === Error) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js
index 376230d5f39cf0d66055b022b931179231dc8f88..482e4c4d336e206f952c4b133103b38a94cb7b3f 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js
@@ -13,7 +13,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  if (Object.getPrototypeOf(SyntaxError) === Function.prototype) {
+  if (Object.getPrototypeOf(SyntaxError) === Error) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js
index bd0afb4b8c94be2d199461e34c2dde9d911f4fa3..b9cde71da4006f6ccd02850dc536cdc59f55d93b 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js
@@ -13,7 +13,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  if (Object.getPrototypeOf(TypeError) === Function.prototype) {
+  if (Object.getPrototypeOf(TypeError) === Error) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js
index aa24d913617e300c95c443084a78bfdd343b2c3d..370b9f1af5dc445c8cfe84ff2f1c1ede11343531 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js
@@ -13,7 +13,7 @@ includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  if (Object.getPrototypeOf(URIError) === Function.prototype) {
+  if (Object.getPrototypeOf(URIError) === Error) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js
index 392954022317731f99be6afacfd235b33d5e540d..b8c8a53bd232e3a8a373f472056b1d35b77c5379 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js
@@ -7,16 +7,13 @@
 /*---
 es5id: 15.2.3.3-1-3
 description: >
-    Object.getOwnPropertyDescriptor - TypeError is thrown when first
-    param is a boolean
+    Object.getOwnPropertyDescriptor - TypeError is not thrown when
+    first param is a boolean
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.getOwnPropertyDescriptor(true, "foo");
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.getOwnPropertyDescriptor(true, "foo");
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js
index c1943dd0900d4b207a77fdea7269ec1b45df229b..1ac7505d6366b560ab2a96b0d32bfee9ad0efe1a 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js
@@ -7,16 +7,13 @@
 /*---
 es5id: 15.2.3.3-1-4
 description: >
-    Object.getOwnPropertyDescriptor - TypeError is thrown when first
-    param is a number
+    Object.getOwnPropertyDescriptor - TypeError is not thrown when
+    first param is a number
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.getOwnPropertyDescriptor(-2, "foo");
-        } catch (e) {
-            return (e instanceof TypeError);
-        }
-    }
+    Object.getOwnPropertyDescriptor(-2, "foo");
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.js
index 89a2375a9e118754a05f5faad9d1b581614d7b7c..85d46a90f021fc4aaf6c2dbc98cccb269e988f27 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.js
@@ -7,19 +7,13 @@
 /*---
 es5id: 15.2.3.3-1
 description: >
-    Object.getOwnPropertyDescriptor throws TypeError if type of first
-    param is not Object
+    Object.getOwnPropertyDescriptor does not throw TypeError if type
+    of first param is not Object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-  try {
     Object.getOwnPropertyDescriptor(0, "foo");
-  }
-  catch (e) {
-    if (e instanceof TypeError) {
-      return true;
-    }
-  }
- }
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js
index 2e99c0b754b63290d79bbd83b057344211bf399a..655a10dbc41c8ad634ddeb26de341864875f7d26 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js
@@ -7,8 +7,8 @@
 /*---
 es5id: 15.2.3.3-4-186
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (Function.length)
+    Object.getOwnPropertyDescriptor returns data desc for properties
+    on built-ins (Function.length)
 includes: [runTestCase.js]
 ---*/
 
@@ -17,7 +17,7 @@ function testcase() {
 
   if (desc.writable === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
+      desc.configurable === true &&
       desc.hasOwnProperty('get') === false &&
       desc.hasOwnProperty('set') === false) {
     return true;
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js
index da1b05695ba368584324f7508a267de3193ffd81..ff2459298de2f5c686309ef8a4a059e14abb258d 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js
@@ -7,8 +7,8 @@
 /*---
 es5id: 15.2.3.3-4-187
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (Function (instance).length)
+    Object.getOwnPropertyDescriptor returns data desc for properties
+    on built-ins (Function (instance).length)
 includes: [runTestCase.js]
 ---*/
 
@@ -19,7 +19,7 @@ function testcase() {
 
   if (desc.writable === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
+      desc.configurable === true &&
       desc.hasOwnProperty('get') === false &&
       desc.hasOwnProperty('set') === false) {
     return true;
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js
index 57c4faa1f3dbf005682724cef0c7863be7dc621a..0630192fcf6765c3ebb48f6892645b57ede6f110 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js
@@ -7,8 +7,8 @@
 /*---
 es5id: 15.2.3.3-4-191
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (String.length)
+    Object.getOwnPropertyDescriptor returns data desc for properties
+    on built-ins (String.length)
 includes: [runTestCase.js]
 ---*/
 
@@ -17,7 +17,7 @@ function testcase() {
 
   if (desc.writable === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
+      desc.configurable === true &&
       desc.hasOwnProperty('get') === false &&
       desc.hasOwnProperty('set') === false) {
     return true;
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js
index a5cd5bb8c49c7a6a973ec03c9590bf428886b5f6..9b939980721fa6a6e95d99170a7ba1b028a92b5c 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js
@@ -7,8 +7,8 @@
 /*---
 es5id: 15.2.3.3-4-194
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (Boolean.length)
+    Object.getOwnPropertyDescriptor returns data desc for properties
+    on built-ins (Boolean.length)
 includes: [runTestCase.js]
 ---*/
 
@@ -17,7 +17,7 @@ function testcase() {
 
   if (desc.writable === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
+      desc.configurable === true &&
       desc.hasOwnProperty('get') === false &&
       desc.hasOwnProperty('set') === false) {
     return true;
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js
index a42debf8573d54315e23ba897fd343a164ac5848..3a701203ac1035bd056f2bbd38717013e8493ef2 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js
@@ -7,8 +7,8 @@
 /*---
 es5id: 15.2.3.3-4-201
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (Number.length)
+    Object.getOwnPropertyDescriptor returns data desc for properties
+    on built-ins (Number.length)
 includes: [runTestCase.js]
 ---*/
 
@@ -17,7 +17,7 @@ function testcase() {
 
   if (desc.writable === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
+      desc.configurable === true &&
       desc.hasOwnProperty('get') === false &&
       desc.hasOwnProperty('set') === false) {
     return true;
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js
index 23675eb08888d6d45f130d587daf7906e6ffe1e5..4f21b75cd4c3848b1a415c3320ddd5968559d94e 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js
@@ -7,19 +7,19 @@
 /*---
 es5id: 15.2.3.3-4-212
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (RegExp.prototype.source)
+    Object.getOwnPropertyDescriptor returns accessor desc for
+    accessors on built-ins (RegExp.prototype.source)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "source");
 
-  if (desc.writable === false &&
+  if (desc.hasOwnProperty('writable') === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
+      desc.configurable === true &&
+      typeof desc.get === 'function' &&
+      desc.set === undefined) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js
index b2602753f94723770b20c09dcadd3a5cb7b6d16d..d25f745d391208b315a876cd70374fccee86c9b5 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js
@@ -7,19 +7,19 @@
 /*---
 es5id: 15.2.3.3-4-213
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (RegExp.prototype.global)
+    Object.getOwnPropertyDescriptor returns accessor desc for
+    accessors on built-ins (RegExp.prototype.global)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "global");
 
-  if (desc.writable === false &&
+  if (desc.hasOwnProperty('writable') === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
+      desc.configurable === true &&
+      typeof desc.get === 'function' &&
+      desc.set === undefined) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js
index fd61133fe2448cec1ab72982060ffe1b3f4a3a38..8ffc506d78b9f0b31a61c07634fc6820b08bf2f4 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js
@@ -7,19 +7,19 @@
 /*---
 es5id: 15.2.3.3-4-214
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (RegExp.prototype.ignoreCase)
+    Object.getOwnPropertyDescriptor returns accessor desc for
+    accessors on built-ins (RegExp.prototype.ignoreCase)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "ignoreCase");
 
-  if (desc.writable === false &&
+  if (desc.hasOwnProperty('writable') === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
+      desc.configurable === true &&
+      typeof desc.get === 'function' &&
+      desc.set === undefined) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js
index 144f8c80433e19adecf1a3d464cdd0277e09e606..302916c8679fabc41edbd75bd691e9813be9a028 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js
@@ -7,19 +7,19 @@
 /*---
 es5id: 15.2.3.3-4-215
 description: >
-    Object.getOwnPropertyDescriptor returns data desc (all false) for
-    properties on built-ins (RegExp.prototype.multiline)
+    Object.getOwnPropertyDescriptor returns accessor desc for
+    accessors on built-ins (RegExp.prototype.multiline)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "multiline");
 
-  if (desc.writable === false &&
+  if (desc.hasOwnProperty('writable') === false &&
       desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
+      desc.configurable === true &&
+      typeof desc.get === 'function' &&
+      desc.set === undefined) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js
index 2fdda1531f9cee236e70802e3419cae2c6340b27..85663b5e18d8e934c869e79699a0bcc9604447ce 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js
@@ -6,10 +6,14 @@
 
 /*---
 es5id: 15.2.3.4-1-4
-info: >
-  ES5 requires a `TypeError` here, while ES6 requires `ToObject` (19.1.2.7, 19.1.2.8.1)
-description: Object.getOwnPropertyNames throws TypeError if 'O' is a boolean
-negative: TypeError
+description: >
+    Object.getOwnPropertyNames does not throw TypeError if 'O' is a
+    boolean
+includes: [runTestCase.js]
 ---*/
 
-Object.getOwnPropertyNames(true);
+function testcase() {
+    Object.getOwnPropertyNames(true);
+    return true;
+}
+runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js
index 74f66d60d7d2bd6428238d6a60b9a9d064101dfb..f533057f2d2ab76624956de6425626f2759021a6 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js
@@ -6,10 +6,14 @@
 
 /*---
 es5id: 15.2.3.4-1-5
-info: >
-  ES5 requires a `TypeError` here, while ES6 requires `ToObject` (19.1.2.7, 19.1.2.8.1)
-description: Object.getOwnPropertyNames throws TypeError if 'O' is a string
-negative: TypeError
+description: >
+    Object.getOwnPropertyNames does not throw TypeError if 'O' is a
+    string
+includes: [runTestCase.js]
 ---*/
 
-Object.getOwnPropertyNames("abc");
+function testcase() {
+    Object.getOwnPropertyNames("abc");
+    return true;
+}
+runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js
index 5d3f9748ef36fc325306c87128840a43bfb498c8..88bf21949ce2c0e9778ef026678bcecd5cf7b5be 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js
@@ -6,12 +6,14 @@
 
 /*---
 es5id: 15.2.3.4-1
-info: >
-  ES5 requires a `TypeError` here, while ES6 requires `ToObject` (19.1.2.7, 19.1.2.8.1)
 description: >
-    Object.getOwnPropertyNames throws TypeError if type of first param
-    is not Object
-negative: TypeError
+    Object.getOwnPropertyNames does not throw TypeError if type of
+    first param is not Object
+includes: [runTestCase.js]
 ---*/
 
-Object.getOwnPropertyNames(0);
+function testcase() {
+    Object.getOwnPropertyNames(0);
+    return true;
+ }
+runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-3.js
index 971bfc98ea76a0f9e12276853d658195a2b421f0..bb2d61cf191c98faac5474038929d9e11f7d9ae1 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-3.js
@@ -7,9 +7,10 @@
 /*---
 es5id: 15.2.3.7-6-a-93-3
 description: >
-    Object.defineProperties will fail to update [[Value]] attribute of
-    named data property 'P' when [[Configurable]] attribute of first
-    updating property is false  (8.12.9 - step Note & 10.a.ii.1)
+    Object.defineProperties will not fail to update [[Value]]
+    attribute of named data property 'P' when [[Configurable]]
+    attribute of first updating property is false  (8.12.9 - step Note
+    & 10.a.ii.1)
 includes:
     - runTestCase.js
     - dataPropertyAttributesAreCorrect.js
@@ -45,7 +46,7 @@ function testcase() {
         } catch (e) {
             return e instanceof TypeError &&
                 dataPropertyAttributesAreCorrect(obj, "property", 1001, false, false, false) &&
-                dataPropertyAttributesAreCorrect(obj, "property1", 1003, false, false, true);
+                dataPropertyAttributesAreCorrect(obj, "property1", 1004, false, false, true);
         }
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-4.js
index 76b7ff71ba7fbe38ecc8af309a08af041613cb23..151a5f83936797ad86a00595e4c4a8644629a8a1 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-4.js
@@ -7,9 +7,10 @@
 /*---
 es5id: 15.2.3.7-6-a-93-4
 description: >
-    Object.defineProperties will fail to update [[Value]] attribute of
-    indexed data property 'P' when [[Configurable]] attribute of first
-    updating property are false  (8.12.9 - step Note & 10.a.ii.1)
+    Object.defineProperties will not fail to update [[Value]]
+    attribute of indexed data property 'P' when [[Configurable]]
+    attribute of first updating property are false  (8.12.9 - step
+    Note & 10.a.ii.1)
 includes:
     - runTestCase.js
     - dataPropertyAttributesAreCorrect.js
@@ -45,7 +46,7 @@ function testcase() {
         } catch (e) {
             return e instanceof TypeError &&
                 dataPropertyAttributesAreCorrect(obj, "0", 1001, false, false, false) &&
-                dataPropertyAttributesAreCorrect(obj, "1", 1003, false, false, true);
+                dataPropertyAttributesAreCorrect(obj, "1", 1004, false, false, true);
         }
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.js
index 1ad1153274395d84ea58d581fe1467d4acb7b2be..25cdf45f5a96834740cc6638f31efe270f360395 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.js
@@ -6,16 +6,14 @@
 
 /*---
 es5id: 15.2.3.8-1-1
-description: Object.seal throws TypeError if type of first param is undefined
+description: >
+    Object.seal does not throw TypeError if type of first param is
+    undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.seal(undefined);
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
+    Object.seal(undefined);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.js b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.js
index 033eee71d1675aff9ff2cf96d9f3ea96283c9723..88bb8b7b463d93defd1acdaea4467ce7182da804 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.js
@@ -6,16 +6,12 @@
 
 /*---
 es5id: 15.2.3.8-1-2
-description: Object.seal throws TypeError if type of first param is null
+description: Object.seal does not throw TypeError if type of first param is null
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.seal(null);
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
+    Object.seal(null);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.js
index bd5aed44384ef5c84ae8d6eea53008f738df7267..5e20bc92bd56efba3800a4a537cb2c107bba01d4 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.js
@@ -7,17 +7,13 @@
 /*---
 es5id: 15.2.3.8-1-3
 description: >
-    Object.seal throws TypeError if type of first param is a boolean
-    primitive
+    Object.seal does not throw TypeError if type of first param is a
+    boolean primitive
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.seal(false);
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
+    Object.seal(false);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.js
index 6e3aca140ea29f92cea54d57c2f944a989da0d27..21d41eef03383a43c57495fba24b77f07a5a9cd1 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.js
@@ -7,17 +7,13 @@
 /*---
 es5id: 15.2.3.8-1-4
 description: >
-    Object.seal throws TypeError if type of first param is a string
-    primitive
+    Object.seal does not throw TypeError if type of first param is a
+    string primitive
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.seal("abc");
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
+    Object.seal("abc");
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.js
index 769c927f8ecfaabab67d0c6dc7a2181ae4aff822..465bad95e78343b3e5793ff63531e05c61de5df8 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.js
@@ -6,18 +6,14 @@
 
 /*---
 es5id: 15.2.3.8-1
-description: Object.seal throws TypeError if type of first param is not Object
+description: >
+    Object.seal does not throw TypeError if type of first param is not
+    Object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-    try {
-      Object.seal(0);
-    }
-    catch (e) {
-      if (e instanceof TypeError) {
-        return true;
-      }
-    }
- }
+    Object.seal(0);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.js
index fddc2f49ca214672d0f7f53a3f488f90f1f2b22c..cf944436557b6d19defebb7b756eac53c93b6d6c 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.js
@@ -6,16 +6,14 @@
 
 /*---
 es5id: 15.2.3.9-1-1
-description: Object.freeze throws TypeError if type of first param is undefined
+description: >
+    Object.freeze does not throw TypeError if type of first param is
+    undefined
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.freeze(undefined);
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
+    Object.freeze(undefined);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.js b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.js
index 51673ac3b164709c8265bf807adb1c9479b86df0..e5838965fbbd803763e660bbc1a88a9ecbdcbfdf 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.js
@@ -6,16 +6,14 @@
 
 /*---
 es5id: 15.2.3.9-1-2
-description: Object.freeze throws TypeError if type of first param is null
+description: >
+    Object.freeze does not throw TypeError if type of first param is
+    null
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.freeze(null);
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
+    Object.freeze(null);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js
index 84a6f569010714ce0b4b0275c457b62f6ff7f97c..04386a2598f94421c9352b748e52f83a3b7a3b20 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js
@@ -7,26 +7,14 @@
 /*---
 es5id: 15.2.3.9-1-3
 description: >
-    Object.freeze throws TypeError if type of first param is boolean
-    primitive
+    Object.freeze does not throw TypeError if type of first param is
+    boolean primitive
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        var result = false;
-        try {
-            Object.freeze(false);
-
-            return false;
-        } catch (e) {
-            result = e instanceof TypeError;
-        }
-        try {
-            Object.freeze(true);
-
-            return false;
-        } catch (e) {
-            return result && e instanceof TypeError;
-        }
-    }
+    Object.freeze(false);
+    Object.freeze(true);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.js b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.js
index 191e29f1b2fe195f5d71dd70ca2d68c7955058eb..5280d71fa4f6d4d41cd88a858a0c6053546c57c1 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.js
@@ -7,17 +7,13 @@
 /*---
 es5id: 15.2.3.9-1-4
 description: >
-    Object.freeze throws TypeError if type of first param is string
-    primitive
+    Object.freeze does not throw TypeError if type of first param is
+    string primitive
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.freeze("abc");
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
+    Object.freeze("abc");
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.js b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.js
index f884d20a387bcd257f1f538e5145cd1d2d09cb95..0a6a42e71ce64d77ea2ec74b4df6d55548246970 100644
--- a/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.js
+++ b/test/suite/ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.js
@@ -6,16 +6,14 @@
 
 /*---
 es5id: 15.2.3.9-1
-description: Object.freeze throws TypeError if type of first param is not Object
+description: >
+    Object.freeze does not throw TypeError if type of first param is
+    not Object
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
-        try {
-            Object.freeze(0);
-            return false;
-        } catch (e) {
-            return e instanceof TypeError;
-        }
-    }
+    Object.freeze(0);
+    return true;
+}
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.2/S15.2.4.2_A9.js b/test/suite/ch15/15.2/15.2.4/15.2.4.2/S15.2.4.2_A9.js
index 5517272613235e9fbfded1bcbc9f2539fa3690f7..bb8300ac86f76b6d3d4b0f45ef1b2c2581e133a9 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.2/S15.2.4.2_A9.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.2/S15.2.4.2_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The Object.prototype.toString.length property has the attribute DontDelete
+info: >
+    The Object.prototype.toString.length property does not have the attribute
+    DontDelete
 es5id: 15.2.4.2_A9
 description: >
     Checknig if deleting of the Object.prototype.toString.length
@@ -17,11 +19,11 @@ if (!(Object.prototype.toString.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Object.prototype.toString.length) {
-  $ERROR('#1: The Object.prototype.toString.length property has the attributes DontDelete');
+if (!delete Object.prototype.toString.length) {
+  $ERROR('#1: The Object.prototype.toString.length property does not have the attributes DontDelete');
 }
 
 //CHECK#2
-if (!(Object.prototype.toString.hasOwnProperty('length'))) {
-  $FAIL('#2: The Object.prototype.toString.length property has the attributes DontDelete');
+if (Object.prototype.toString.hasOwnProperty('length')) {
+  $FAIL('#2: The Object.prototype.toString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A9.js b/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A9.js
index 1eb87555b80877cf1f7d68e46af6bbe14a5e678f..b00e8597a1b669ef0f44037bb5a28f2afed4c08d 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A9.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The Object.prototype.toLocaleString.length property has the attribute
-    DontDelete
+    The Object.prototype.toLocaleString.length property does not have the
+    attribute DontDelete
 es5id: 15.2.4.3_A9
 description: >
     Checknig if deleting of the Object.prototype.toLocaleString.length
@@ -19,11 +19,11 @@ if (!(Object.prototype.toLocaleString.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Object.prototype.toLocaleString.length) {
-  $ERROR('#1: The Object.prototype.toLocaleString.length property has the attributes DontDelete');
+if (!delete Object.prototype.toLocaleString.length) {
+  $ERROR('#1: The Object.prototype.toLocaleString.length property does not have the attributes DontDelete');
 }
 
 //CHECK#2
-if (!(Object.prototype.toLocaleString.hasOwnProperty('length'))) {
-  $FAIL('#2: The Object.prototype.toLocaleString.length property has the attributes DontDelete');
+if (Object.prototype.toLocaleString.hasOwnProperty('length')) {
+  $FAIL('#2: The Object.prototype.toLocaleString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A9.js b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A9.js
index c1dc9e1b27efe48dc318de3abf232d4c253d625f..539ab6308e4c2eadcdf8e9d62f638641a3100a67 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A9.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The Object.prototype.valueOf.length property has the attribute DontDelete
+info: >
+    The Object.prototype.valueOf.length property does not have the attribute
+    DontDelete
 es5id: 15.2.4.4_A9
 description: >
     Checknig if deleting of the Object.prototype.valueOf.length
@@ -17,11 +19,11 @@ if (!(Object.prototype.valueOf.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Object.prototype.valueOf.length) {
-  $ERROR('#1: The Object.prototype.valueOf.length property has the attributes DontDelete');
+if (!delete Object.prototype.valueOf.length) {
+  $ERROR('#1: The Object.prototype.valueOf.length property does not have the attributes DontDelete');
 }
 
 //CHECK#2
-if (!(Object.prototype.valueOf.hasOwnProperty('length'))) {
-  $FAIL('#2: The Object.prototype.valueOf.length property has the attributes DontDelete');
+if (Object.prototype.valueOf.hasOwnProperty('length')) {
+  $FAIL('#2: The Object.prototype.valueOf.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A9.js b/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A9.js
index 59e3eeb71c96ad05819197cfc5d38c59d96d51a8..661ca20afe9185e6c94b011a0203f53130b93a3c 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A9.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The Object.prototype.hasOwnProperty.length property has the attribute
-    DontDelete
+    The Object.prototype.hasOwnProperty.length property does not have the
+    attribute DontDelete
 es5id: 15.2.4.5_A9
 description: >
     Checking if deleting the Object.prototype.hasOwnProperty.length
@@ -18,11 +18,11 @@ if (!(Object.prototype.hasOwnProperty.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Object.prototype.hasOwnProperty.length) {
-  $ERROR('#1: The Object.prototype.hasOwnProperty.length property has the attributes DontDelete');
+if (!delete Object.prototype.hasOwnProperty.length) {
+  $ERROR('#1: The Object.prototype.hasOwnProperty.length property does not have the attributes DontDelete');
 }
 
 //CHECK#2
-if (!(Object.prototype.hasOwnProperty.hasOwnProperty('length'))) {
-  $FAIL('#2: The Object.prototype.hasOwnProperty.length property has the attributes DontDelete');
+if (Object.prototype.hasOwnProperty.hasOwnProperty('length')) {
+  $FAIL('#2: The Object.prototype.hasOwnProperty.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A9.js b/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A9.js
index 640b2d1ddf727a8adc185b265e621579088ff326..463510bcb9b44b6a678fa5ef529984828d720814 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A9.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The Object.prototype.isPrototypeOf.length property has the attribute
-    DontDelete
+    The Object.prototype.isPrototypeOf.length property does not have the
+    attribute DontDelete
 es5id: 15.2.4.6_A9
 description: >
     Checking deleting the Object.prototype.isPrototypeOf.length
@@ -18,7 +18,7 @@ if (!(Object.prototype.isPrototypeOf.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Object.prototype.isPrototypeOf.length) {
-  $ERROR('#1: The Object.prototype.isPrototypeOf.length property has the attributes DontDelete');
+if (!delete Object.prototype.isPrototypeOf.length) {
+  $ERROR('#1: The Object.prototype.isPrototypeOf.length property does not have the attributes DontDelete');
 }
 //
diff --git a/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A9.js b/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A9.js
index 54b3ff4a5f6beb7c30a289d8dd567dc7cb4ffd58..3ac3248d1d7fef5e2195a693c36e92ec660e0366 100644
--- a/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A9.js
+++ b/test/suite/ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The Object.prototype.propertyIsEnumerable.length property has the
-    attribute DontDelete
+    The Object.prototype.propertyIsEnumerable.length property does not have
+    the attribute DontDelete
 es5id: 15.2.4.7_A9
 description: >
     Checking if deleting the
@@ -18,7 +18,7 @@ if (!(Object.prototype.propertyIsEnumerable.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Object.prototype.propertyIsEnumerable.length) {
-  $ERROR('#1: The Object.prototype.propertyIsEnumerable.length property has the attributes DontDelete');
+if (!delete Object.prototype.propertyIsEnumerable.length) {
+  $ERROR('#1: The Object.prototype.propertyIsEnumerable.length property does not have the attributes DontDelete');
 }
 //
diff --git a/test/suite/ch15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js b/test/suite/ch15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js
index 28c9d733bddb57b8022af83a05cdaed3304d70bd..e63abae91804241f0efdcc2f705ec309463336c7 100644
--- a/test/suite/ch15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js
+++ b/test/suite/ch15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js
@@ -16,7 +16,7 @@ function testcase() {
   if(desc.value === 1 &&
      desc.writable === false &&
      desc.enumerable === false &&
-     desc.configurable === false)
+     desc.configurable === true)
     return true; 
 
  }
diff --git a/test/suite/ch15/15.3/15.3.4/15.3.4.2/S15.3.4.2_A9.js b/test/suite/ch15/15.3/15.3.4/15.3.4.2/S15.3.4.2_A9.js
index 421345f46c77cf24a66154c9991d3331e5cd3753..d5373305da05d8a7d35a02a0082a6af0e57ca5d1 100644
--- a/test/suite/ch15/15.3/15.3.4/15.3.4.2/S15.3.4.2_A9.js
+++ b/test/suite/ch15/15.3/15.3.4/15.3.4.2/S15.3.4.2_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The Function.prototype.toString.length property has the attribute
-    DontDelete
+    The Function.prototype.toString.length property does not have the
+    attribute DontDelete
 es5id: 15.3.4.2_A9
 description: >
     Checking if deleting the Function.prototype.toString.length
@@ -18,11 +18,11 @@ if (!(Function.prototype.toString.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Function.prototype.toString.length) {
-  $ERROR('#1: The Function.prototype.toString.length property has the attributes DontDelete');
+if (!delete Function.prototype.toString.length) {
+  $ERROR('#1: The Function.prototype.toString.length property does not have the attributes DontDelete');
 }
 
 //CHECK#2
-if (!(Function.prototype.toString.hasOwnProperty('length'))) {
-  $FAIL('#2: The Function.prototype.toString.length property has the attributes DontDelete');
+if (Function.prototype.toString.hasOwnProperty('length')) {
+  $FAIL('#2: The Function.prototype.toString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.3/15.3.4/15.3.4.3/S15.3.4.3_A9.js b/test/suite/ch15/15.3/15.3.4/15.3.4.3/S15.3.4.3_A9.js
index 3aaca1ff5c1c00a52c16a3cc9594016ed64efbea..5d578503bcb280122ae1469d44d3f17840efe484 100644
--- a/test/suite/ch15/15.3/15.3.4/15.3.4.3/S15.3.4.3_A9.js
+++ b/test/suite/ch15/15.3/15.3.4/15.3.4.3/S15.3.4.3_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The Function.prototype.apply.length property has the attribute DontDelete
+info: >
+    The Function.prototype.apply.length property does not have the attribute
+    DontDelete
 es5id: 15.3.4.3_A9
 description: >
     Checking if deleting the Function.prototype.apply.length property
@@ -16,11 +18,11 @@ if (!(Function.prototype.apply.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Function.prototype.apply.length) {
-  $ERROR('#1: The Function.prototype.apply.length property has the attributes DontDelete');
+if (!delete Function.prototype.apply.length) {
+  $ERROR('#1: The Function.prototype.apply.length property does not have the attributes DontDelete');
 }
 
 //CHECK#2
-if (!(Function.prototype.apply.hasOwnProperty('length'))) {
-  $FAIL('#2: The Function.prototype.apply.length property has the attributes DontDelete');
+if (Function.prototype.apply.hasOwnProperty('length')) {
+  $FAIL('#2: The Function.prototype.apply.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.3/15.3.4/15.3.4.4/S15.3.4.4_A9.js b/test/suite/ch15/15.3/15.3.4/15.3.4.4/S15.3.4.4_A9.js
index 607a7fdad82092b975f9002ca355e8ffa76105e3..a94a21255eaa9516143d6aad58178d56e35396df 100644
--- a/test/suite/ch15/15.3/15.3.4/15.3.4.4/S15.3.4.4_A9.js
+++ b/test/suite/ch15/15.3/15.3.4/15.3.4.4/S15.3.4.4_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The Function.prototype.call.length property has the attribute DontDelete
+info: >
+    The Function.prototype.call.length property does not have the attribute
+    DontDelete
 es5id: 15.3.4.4_A9
 description: >
     Checking if deleting the Function.prototype.call.length property
@@ -16,11 +18,11 @@ if (!(Function.prototype.call.hasOwnProperty('length'))) {
 }
 
 //CHECK#1
-if (delete Function.prototype.call.length) {
-  $ERROR('#1: The Function.prototype.call.length property has the attributes DontDelete');
+if (!delete Function.prototype.call.length) {
+  $ERROR('#1: The Function.prototype.call.length property does not have the attributes DontDelete');
 }
 
 //CHECK#2
-if (!(Function.prototype.call.hasOwnProperty('length'))) {
-  $FAIL('#2: The Function.prototype.call.length property has the attributes DontDelete');
+if (Function.prototype.call.hasOwnProperty('length')) {
+  $FAIL('#2: The Function.prototype.call.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-39gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-39gs.js
index d6136d3928a2d561bba36b321a9dfe9f50346eb3..0693406ed31786c0c786a35b082d79390e7ff837 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-39gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-39gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 function f1() {
     function f() {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     }
     return f();
 }
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-40gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-40gs.js
index e101888c7d0a27bd7dfced1aba3d324bb3c0e506..96c73d20ae5183dc0c6cce7ad3505e676465b7ac 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-40gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-40gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 function f1() {
     var f = function () {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     }
     return f();
 }
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-41gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-41gs.js
index 4a273086872845c5322564fe996b7e4623d3daab..6a1137b9904e635eb1e4c45590ac0bf50095a8f0 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-41gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-41gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 function f1() {
     return (function () {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     })();
 }
 f1();
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-42gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-42gs.js
index c3aa7954dbda9cf92acde6a47615304e346f66c7..a2ee3010661e6755ef98ee032007dd44590ba20d 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-42gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-42gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 var f1 = function () {
     function f() {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     }
     return f();
 }
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-43gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-43gs.js
index 4f7c3f279b267051b5610822f4ee6d4dd32a3c8b..8febd8c451e843a394a39b1c28c8b7ddd8e4d1e5 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-43gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-43gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 var f1 = function () {
     var f = function () {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     }
     return f();
 }
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-44gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-44gs.js
index f3cdde554a2f8abf596643dcfc9b0f9efe0fc027..eb1a6974a13fd2d4db2c3c0ba4430de58cac5773 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-44gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-44gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 var f1 = function () {
     return (function () {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     })();
 }
 f1();
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-45gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-45gs.js
index d5144c7ffdd0d822fa59b0cb1c976b086db013c7..2659a6b06ff27c57bcf5a66e8034fdc7cf1a157a 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-45gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-45gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 (function () {
     function f() {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     }
     return f();
 })();
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-46gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-46gs.js
index e946f1cb21708f91655e824cf975bf49f137f443..26d486fe04cfaa4f81862521b8865f66631ec9d0 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-46gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-46gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 (function () {
     var f = function () {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     }
     return f();
 })();
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-47gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-47gs.js
index 856cc23685ef60d4d997ac652139ff08ab20b7e2..6b9e4b3097cbb5e6820bb818e2c8f408ba239c52 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-47gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-47gs.js
@@ -17,7 +17,8 @@ flags: [noStrict]
 (function () {
     return (function () {
         "use strict";
-        return gNonStrict();
+        var r = gNonStrict();
+        return r;
     })();
 })();
 
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-56gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-56gs.js
index 1b580cc0e0dee1d899c806624a85d38b281ee5cd..8e2ce201b96684983808f5d928b7d871864bfe74 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-56gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-56gs.js
@@ -14,7 +14,7 @@ negative: TypeError
 flags: [noStrict]
 ---*/
 
-function f() { "use strict"; return gNonStrict();};
+function f() { "use strict"; var r = gNonStrict(); return r;};
 function foo() { return f();}
 foo();
 
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-58gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-58gs.js
index 83d4eb2defe33cf0a41d8337b89ac849ab5784ac..80326c9b26bf9bacd49eb7e20e7e4ab015f3798e 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-58gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-58gs.js
@@ -14,7 +14,7 @@ negative: TypeError
 flags: [noStrict]
 ---*/
 
-function f() { "use strict"; return gNonStrict();};
+function f() { "use strict"; var r = gNonStrict(); return r;};
 Function("return f();")();
 
 
diff --git a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-59gs.js b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-59gs.js
index fec005f16bf3e41450058c519222f522154a50ed..134f23f5b4b3244c113854073f6fc36328b65968 100644
--- a/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-59gs.js
+++ b/test/suite/ch15/15.3/15.3.5/15.3.5.4/15.3.5.4_2-59gs.js
@@ -14,7 +14,7 @@ negative: TypeError
 flags: [noStrict]
 ---*/
 
-function f() { "use strict"; return gNonStrict();};
+function f() { "use strict"; var r = gNonStrict(); return r;};
 new Function("return f();")();
 
 
diff --git a/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T1.js b/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T1.js
index c17d11d4947d941a21536ff10deb75a393eb3d61..0a4b99e1c7e1a1d0114dbd6ab3126fc2e542430f 100644
--- a/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T1.js
+++ b/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T1.js
@@ -2,11 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: the length property has the attributes { DontDelete }
+info: the length property does not have the attributes { DontDelete }
 es5id: 15.3.5.1_A2_T1
 description: >
     Checking if deleting the length property of
-    Function("arg1,arg2,arg3", null) fails
+    Function("arg1,arg2,arg3", null) succeeds
 includes: [$FAIL.js]
 ---*/
 
@@ -18,16 +18,16 @@ if (!(f.hasOwnProperty('length'))) {
 }
 
 //CHECK#2
-if(delete f.length){
-  $ERROR('#2: the function.length property has the attributes DontDelete.');
+if(!delete f.length){
+  $ERROR('#2: the function.length property does not have the attributes DontDelete.');
 }
 
 //CHECK#3
-if (!(f.hasOwnProperty('length'))) {
-  $ERROR('#3: the function.length property has the attributes DontDelete.');
+if (f.hasOwnProperty('length')) {
+  $ERROR('#3: the function.length property does not have the attributes DontDelete.');
 }
 
 //CHECK#4
-if (f.length !== 3) {
-  $ERROR('#4: the length property has the attributes { DontDelete }');
+if (f.length === 3) {
+  $ERROR('#4: the length property does not have the attributes { DontDelete }');
 }
diff --git a/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T2.js b/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T2.js
index de3e38087f1d08020c3a8b0391fb7d8e4d96c4c2..4fdb0c08e6b01cb3355e5f361cb4c6986015e31e 100644
--- a/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T2.js
+++ b/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T2.js
@@ -2,11 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: the length property has the attributes { DontDelete }
+info: the length property does not have the attributes { DontDelete }
 es5id: 15.3.5.1_A2_T2
 description: >
     Checking if deleting the length property of
-    Function("arg1,arg2,arg3","arg4,arg5", null) fails
+    Function("arg1,arg2,arg3","arg4,arg5", null) succeeds
 includes: [$FAIL.js]
 ---*/
 
@@ -20,11 +20,11 @@ if (!(f.hasOwnProperty('length'))) {
 delete f.length;
 
 //CHECK#2
-if (!(f.hasOwnProperty('length'))) {
-  $ERROR('#2: the function.length property has the attributes DontDelete.');
+if (f.hasOwnProperty('length')) {
+  $ERROR('#2: the function.length property does not have the attributes DontDelete.');
 }
 
 //CHECK#3
-if (f.length !== 5) {
-  $ERROR('#3: the length property has the attributes { DontDelete }');
+if (f.length === 5) {
+  $ERROR('#3: the length property does not have the attributes { DontDelete }');
 }
diff --git a/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T3.js b/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T3.js
index bbaedacccc1a1331d8f4f2e7be15d1677f2ec439..7bbea1d78f022a9ca7ccf999d04a45ab7153b929 100644
--- a/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T3.js
+++ b/test/suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T3.js
@@ -2,11 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: the length property has the attributes { DontDelete }
+info: the length property does not have the attributes { DontDelete }
 es5id: 15.3.5.1_A2_T3
 description: >
     Checking if deleting the length property of
-    Function("arg1,arg2,arg3","arg1,arg2","arg3", null) fails
+    Function("arg1,arg2,arg3","arg1,arg2","arg3", null) succeeds
 includes: [$FAIL.js]
 ---*/
 
@@ -20,11 +20,11 @@ if (!(f.hasOwnProperty('length'))) {
 delete f.length;
 
 //CHECK#2
-if (!(f.hasOwnProperty('length'))) {
-  $ERROR('#2: the function.length property has the attributes DontDelete.');
+if (f.hasOwnProperty('length')) {
+  $ERROR('#2: the function.length property does not have the attributes DontDelete.');
 }
 
 //CHECK#3
-if (f.length !== 6) {
-  $ERROR('#3: the length property has the attributes { DontDelete }');
+if (f.length === 6) {
+  $ERROR('#3: the length property does not have the attributes { DontDelete }');
 }
diff --git a/test/suite/ch15/15.4/15.4.3/15.4.3.1/S15.4.3.1_A5.js b/test/suite/ch15/15.4/15.4.3/15.4.3.1/S15.4.3.1_A5.js
index e0f25204c049e1235ff7d1c681b915636ac6ec0d..9d07b93cf198dac05a54d2ca991d083b3d7ed729 100644
--- a/test/suite/ch15/15.4/15.4.3/15.4.3.1/S15.4.3.1_A5.js
+++ b/test/suite/ch15/15.4/15.4.3/15.4.3.1/S15.4.3.1_A5.js
@@ -2,16 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of Array.prototype is 0
+info: The length property of Array.prototype is undefined
 es5id: 15.4.3.1_A5
-description: Array.prototype.length === 0
+description: Array.prototype.length === undefined
 ---*/
 
 //CHECK#1
-if (Array.prototype.length !== 0) {
-  $ERROR('#1.1: Array.prototype.length === 0. Actual: ' + (Array.prototype.length));
-} else {
-  if (1 / Array.prototype.length !== Number.POSITIVE_INFINITY) {
-    $ERROR('#1.2: Array.prototype.length === +0. Actual: -' + (Array.prototype.length));
-  }
+if (Array.prototype.length !== undefined) {
+  $ERROR('#1.1: Array.prototype.length === undefined. Actual: ' + (Array.prototype.length));
 }
diff --git a/test/suite/ch15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js b/test/suite/ch15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js
index 2434737072cc091455ad62bba1188126815639f4..f7659b6002595cbe5d91e48da48e5c42ad93dc4b 100644
--- a/test/suite/ch15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js
+++ b/test/suite/ch15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js
@@ -7,14 +7,14 @@
 /*---
 es5id: 15.4.3.2-0-5
 description: >
-    Array.isArray return true if its argument is an Array
+    Array.isArray return false if its argument is not an Array
     (Array.prototype)
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var b = Array.isArray(Array.prototype);
-  if (b === true) {
+  if (b === false) {
     return true;
   }
  }
diff --git a/test/suite/ch15/15.4/15.4.3/S15.4.3_A2.2.js b/test/suite/ch15/15.4/15.4.3/S15.4.3_A2.2.js
index 173e08a0d9e430ec871003abf796d9af413cfe58..28ea0c13c979a55eb509576a8bcbcc9ffebbf67d 100644
--- a/test/suite/ch15/15.4/15.4.3/S15.4.3_A2.2.js
+++ b/test/suite/ch15/15.4/15.4.3/S15.4.3_A2.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of Array has the attribute DontDelete
+info: The length property of Array does not have the attribute DontDelete
 es5id: 15.4.3_A2.2
 description: Checking use hasOwnProperty, delete
 includes: [$FAIL.js]
@@ -16,8 +16,8 @@ if (Array.hasOwnProperty('length') !== true) {
 delete Array.length;
 
 //CHECK#2
-if (Array.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.length; Array.hasOwnProperty(\'length\') === true. Actual: ' + (Array.hasOwnProperty('length')));
+if (Array.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.length; Array.hasOwnProperty(\'length\') === false. Actual: ' + (Array.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T1.js
index 5656f89983866fc5aced25ddf22b963218ab3986..85a35260763aaa7511ab76a8fb7ec8b90cda6c16 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T1.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T1.js
@@ -2,9 +2,10 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.10_A3_T1
 description: length = 4294967296
+includes: [$FAIL.js]
 ---*/
 
 var obj = {};
@@ -12,19 +13,12 @@ obj.slice = Array.prototype.slice;
 obj[0] = "x";
 obj[4294967295] = "y";
 obj.length = 4294967296;
-var arr = obj.slice(0,4294967296);
 
-//CHECK#1
-if (arr.length !== 0) {
-  $ERROR('#1: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.slice(0,4294967296); arr.length === 0. Actual: ' + (arr.length));
-}
-
-//CHECK#2
-if (arr[0] !== undefined) {
-   $ERROR('#2: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.slice(0,4294967296); arr[0] === undefined. Actual: ' + (arr[0]));
-}  
-
-//CHECK#3
-if (arr[4294967295] !== undefined) {
-   $ERROR('#3: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.slice(0,4294967296); arr[4294967295] === undefined. Actual: ' + (arr[4294967295]));
+try {
+  var arr = obj.slice(0,4294967296);
+  $FAIL('#1: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.slice(0,4294967296); lead to throwing exception. Actual: '+arr);
+} catch (e) {
+  if (!(e instanceof RangeError)) {
+    $ERROR('#1.1: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.slice(0,4294967296); lead to throwing exception. Exception is instance of RangeError. Actual: exception is '+e);
+  }
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T2.js
index 520ae9b920055d457439264065aeb30e70439da4..699318b1996e582f2b57a8aebb134fb0c6181eee 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T2.js
@@ -2,9 +2,10 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.10_A3_T2
 description: length = 4294967297
+includes: [$FAIL.js]
 ---*/
 
 var obj = {};
@@ -12,19 +13,12 @@ obj.slice = Array.prototype.slice;
 obj[0] = "x";
 obj[4294967296] = "y";
 obj.length = 4294967297;
-var arr = obj.slice(0,4294967297);
 
-//CHECK#1
-if (arr.length !== 1) {
-  $ERROR('#1: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; var arr = obj.slice(0,4294967297); arr.length === 1. Actual: ' + (arr.length));
-}
-
-//CHECK#2
-if (arr[0] !== "x") {
-   $ERROR('#2: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; var arr = obj.slice(0,4294967297); arr[0] === "x". Actual: ' + (arr[0]));
-}
-
-//CHECK#3
-if (arr[4294967296] !== undefined) {
-   $ERROR('#3: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; var arr = obj.slice(0,4294967297); arr[4294967296] === undefined. Actual: ' + (arr[4294967296]));
+try {
+  var arr = obj.slice(0,4294967297);
+  $FAIL('#1: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; var arr = obj.slice(0,4294967297); lead to throwing exception. Actual: '+arr);
+} catch (e) {
+  if (!(e instanceof RangeError)) {
+    $ERROR('#1.1: var obj = {}; obj.slice = Array.prototype.slice; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; var arr = obj.slice(0,4294967297); lead to throwing exception. Exception is instance of RangeError. Actual: exception is '+e);
+  }
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T3.js
index 2071530ffa7bf27f8f7366b446c8b175e4e09f50..991e0d18191ca3e26418222ba93651a0a43f6870 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T3.js
@@ -14,11 +14,11 @@ obj.length = -1;
 var arr = obj.slice(4294967294,4294967295);
 
 //CHECK#1
-if (arr.length !== 1) {
-  $ERROR('#1: var obj = {}; obj.slice = Array.prototype.slice; obj[4294967294] = "x"; obj.length = 4294967295; var arr = obj.slice(4294967294,4294967295); arr.length === 1. Actual: ' + (arr.length));
+if (arr.length !== 0) {
+  $ERROR('#1: var obj = {}; obj.slice = Array.prototype.slice; obj[4294967294] = "x"; obj.length = 4294967295; var arr = obj.slice(4294967294,4294967295); arr.length === 0. Actual: ' + (arr.length));
 }
 
 //CHECK#3
-if (arr[0] !== "x") {
-   $ERROR('#3: var obj = {}; obj.slice = Array.prototype.slice; obj[4294967294] = "x"; obj.length = 4294967295; var arr = obj.slice(4294967294,4294967295); arr[0] === "x". Actual: ' + (arr[0]));
+if (arr[0] !== undefined) {
+   $ERROR('#3: var obj = {}; obj.slice = Array.prototype.slice; obj[4294967294] = "x"; obj.length = 4294967295; var arr = obj.slice(4294967294,4294967295); arr[0] === undefined. Actual: ' + (arr[0]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A5.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A5.2.js
index 0237712b39a34c1a41fc57bcaa0fda1068a156e9..e764b1a217c6740263b4de0688d22fbb28297fe1 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A5.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.10/S15.4.4.10_A5.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of slice has the attribute DontDelete
+info: The length property of slice does not have the attribute DontDelete
 es5id: 15.4.4.10_A5.2
 description: Checking use hasOwnProperty, delete
 includes: [$FAIL.js]
@@ -16,8 +16,8 @@ if (Array.prototype.slice.hasOwnProperty('length') !== true) {
 delete Array.prototype.slice.length;
 
 //CHECK#2
-if (Array.prototype.slice.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.slice.length; Array.prototype.slice.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.slice.hasOwnProperty('length')));
+if (Array.prototype.slice.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.slice.length; Array.prototype.slice.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.slice.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T1.js
deleted file mode 100644
index 0d6524abf8b5d7f442ef7d90ef11259a1fd686d9..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T1.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.11_A4_T1
-description: length = 4294967296
----*/
-
-var obj = {};
-obj.sort = Array.prototype.sort;
-obj[0] = "x";
-obj[4294967295] = "y";
-obj.length = 4294967296;
-
-//CHECK#1
-if (obj.sort() !== obj) {
-  $ERROR('#1: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.sort() === obj. Actual: ' + (obj.sort()));
-}
-
-//CHECK#2
-if (obj.length !== 4294967296) {
-  $ERROR('#2: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.sort(); obj.length === 4294967296. Actual: ' + (obj.length));
-}
-
-//CHECK#3
-if (obj[0] !== "x") {
-  $ERROR('#3: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.sort(); obj[0] == "x"');
-}
-
-//CHECK#4
-if (obj[4294967295] !== "y") {
-  $ERROR('#4: var obj = {}; obj.sort = Array.prototype.sort; obj[] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.sort(); obj[4294967295] == "y"');
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T2.js
deleted file mode 100644
index 94e4d5074badb9d883a4e9d99597db258986e5b7..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T2.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.11_A4_T2
-description: length = 4294967298
----*/
-
-var obj = {};
-obj.sort = Array.prototype.sort;
-obj[0] = "z";
-obj[1] = "y";
-obj[4294967297] = "x";
-obj.length = 4294967298;
-
-//CHECK#1
-if (obj.sort() !== obj) {
-  $ERROR('#1: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[4294967297] = "x"; obj.length = 4294967298; obj.sort() === obj. Actual: ' + (obj.sort()));
-}
-
-//CHECK#2
-if (obj.length !== 4294967298) {
-  $ERROR('#2: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[4294967297] = "x"; obj.length = 4294967298; obj.sort(); obj.length === 4294967298. Actual: ' + (obj.length));
-}
-
-//CHECK#3
-if (obj[0] !== "y") {
-  $ERROR('#3: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[4294967297] = "x"; obj.length = 4294967298; obj.sort(); obj[0] === "y". Actual: ' + (obj[0]));
-}   
-
-//CHECK#4
-if (obj[1] !== "z") {
-  $ERROR('#4: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[4294967297] = "x"; obj.length = 4294967298; obj.sort(); obj[1] === "z". Actual: ' + (obj[1]));
-} 
-
-//CHECK#5
-if (obj[4294967297] !== "x") {
-  $ERROR('#5: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[4294967297] = "x"; obj.length = 4294967298; obj.sort(); obj[4294967297] === "x". Actual: ' + (obj[4294967297]));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T3.js
index dd018a4ad71d8b455d037f71814fd6615e4cd048..a47594f9fd8e7fd0a2d850226eb8a8b5bb3e67a5 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T3.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.11_A4_T3
 description: length = -4294967294
 ---*/
@@ -25,13 +25,13 @@ if (obj.length !== -4294967294) {
 }
 
 //CHECK#3
-if (obj[0] !== "y") {
-  $ERROR('#3: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[2] = "x"; obj.length = -4294967294; obj.sort(); obj[0] === "y". Actual: ' + (obj[0]));
+if (obj[0] !== "z") {
+  $ERROR('#3: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[2] = "x"; obj.length = -4294967294; obj.sort(); obj[0] === "z". Actual: ' + (obj[0]));
 }   
 
 //CHECK#4
-if (obj[1] !== "z") {
-  $ERROR('#4: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[2] = "x"; obj.length = -4294967294; obj.sort(); obj[1] === "z". Actual: ' + (obj[1]));
+if (obj[1] !== "y") {
+  $ERROR('#4: var obj = {}; obj.sort = Array.prototype.sort; obj[0] = "z"; obj[1] = "y"; obj[2] = "x"; obj.length = -4294967294; obj.sort(); obj[1] === "y". Actual: ' + (obj[1]));
 } 
 
 //CHECK#5
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A7.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A7.2.js
index edb2de70b15f645f1e4addf4b813fa68289c02d3..101ee5365a4f2912a0dc5d2ad7f7e6bcb22c90c6 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A7.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A7.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of sort has the attribute DontDelete
+info: The length property of sort does not have the attribute DontDelete
 es5id: 15.4.4.11_A7.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.sort.hasOwnProperty('length') !== true) {
 delete Array.prototype.sort.length;
 
 //CHECK#2
-if (Array.prototype.sort.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.sort.length; Array.prototype.sort.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.sort.hasOwnProperty('length')));
+if (Array.prototype.sort.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.sort.length; Array.prototype.sort.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.sort.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T1.js
index eedc9fddc66baa575270f1b55c023de99f347d8b..b5a4d5a3291d194c7f0fc3e39504d06374466865 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T1.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T1.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.12_A3_T1
 description: length is arbitrarily
 ---*/
@@ -15,13 +15,13 @@ obj.length = 4294967296;
 var arr = obj.splice(4294967295, 1);
 
 //CHECK#1
-if (arr.length !== 0) {
-  $ERROR('#1: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.splice(4294967295,1); arr.length === 0. Actual: ' + (arr.length));
+if (arr.length !== 1) {
+  $ERROR('#1: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.splice(4294967295,1); arr.length === 1. Actual: ' + (arr.length));
 }
 
 //CHECK#2
-if (obj.length !== 0) {
-   $ERROR('#2: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.splice(4294967295,1); obj.length === 0. Actual: ' + (obj.length));
+if (obj.length !== 4294967295) {
+   $ERROR('#2: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.splice(4294967295,1); obj.length === 4294967295. Actual: ' + (obj.length));
 }
 
 //CHECK#3
@@ -30,6 +30,11 @@ if (obj[0] !== "x") {
 }   
 
 //CHECK#4
-if (obj[4294967295] !== "y") {
-   $ERROR('#4: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.splice(4294967295,1); obj[4294967295] === "y". Actual: ' + (obj[4294967295]));
+if (obj[4294967295] !== undefined) {
+   $ERROR('#4: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.splice(4294967295,1); obj[4294967295] === undefined. Actual: ' + (obj[4294967295]));
+}  
+
+//CHECK#5
+if (arr[0] !== "y") {
+   $ERROR('#5: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; var arr = obj.splice(4294967295,1); arr[0] === "y". Actual: ' + (arr[0]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T2.js
deleted file mode 100644
index 7d30b3b0eaa74cd8c6de672052d3da220fa1a9b1..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T2.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.12_A3_T2
-description: length is arbitrarily
----*/
-
-var obj = {};
-obj.splice = Array.prototype.splice;
-obj[0] = "x";
-obj.length = 4294967297;
-var arr = obj.splice(0,1);
-
-//CHECK#1
-if (arr.length !== 1) {
-  $ERROR('#1: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[0] = "y"; obj.length = 4294967297; var arr = obj.splice(0,1); arr.length === 1. Actual: ' + (arr.length));
-}
-
-//CHECK#2
-if (arr[0] !== "x") {
-   $ERROR('#2: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[0] = "y"; obj.length = 1; var arr = obj.splice(0,1); arr[0] === "x". Actual: ' + (arr[0]));
-} 
-
-//CHECK#3
-if (obj.length !== 0) {
-   $ERROR('#3: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[0] = "y"; obj.length = 1; var arr = obj.splice(0,1); obj.length === 0. Actual: ' + (obj.length));
-}
-
-//CHECK#4
-if (obj[0] !== undefined) {
-   $ERROR('#4: var obj = {}; obj.splice = Array.prototype.splice; obj[0] = "x"; obj[0] = "y"; obj.length = 1; var arr = obj.splice(0,1); obj[0] === undefined. Actual: ' + (obj[0]));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T3.js
index 11d1daa206c395c52b7c55a927d8edd39f8f6133..fb5fc1fcec8113d3e751db1b348937ab3c6d22d5 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T3.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.12_A3_T3
 description: length is arbitrarily
 ---*/
@@ -14,21 +14,21 @@ obj.length = -1;
 var arr = obj.splice(4294967294,1);
 
 //CHECK#1
-if (arr.length !== 1) {
-  $ERROR('#1: var obj = {}; obj.splice = Array.prototype.splice; obj[4294967294] = "x"; obj.length = -1; var arr = obj.splice(4294967294,1); arr.length === 1. Actual: ' + (arr.length));
+if (arr.length !== 0) {
+  $ERROR('#1: var obj = {}; obj.splice = Array.prototype.splice; obj[4294967294] = "x"; obj.length = -1; var arr = obj.splice(4294967294,1); arr.length === 0. Actual: ' + (arr.length));
 }
 
 //CHECK#2
-if (arr[0] !== "x") {
-   $ERROR('#2: var obj = {}; obj.splice = Array.prototype.splice; obj[4294967294] = "x"; obj.length = 1; var arr = obj.splice(4294967294,1); arr[0] === "x". Actual: ' + (arr[0]));
+if (arr[0] !== undefined) {
+   $ERROR('#2: var obj = {}; obj.splice = Array.prototype.splice; obj[4294967294] = "x"; obj.length = 1; var arr = obj.splice(4294967294,1); arr[0] === undefined. Actual: ' + (arr[0]));
 } 
 
 //CHECK#3
-if (obj.length !== 4294967294) {
-   $ERROR('#3: var obj = {}; obj.splice = Array.prototype.splice; obj[4294967294] = "x"; obj.length = 1; var arr = obj.splice(4294967294,1); obj.length === 4294967294. Actual: ' + (obj.length));
+if (obj.length !== 0) {
+   $ERROR('#3: var obj = {}; obj.splice = Array.prototype.splice; obj[4294967294] = "x"; obj.length = 1; var arr = obj.splice(4294967294,1); obj.length === 0. Actual: ' + (obj.length));
 }
 
 //CHECK#4
-if (obj[4294967294] !== undefined) {
-   $ERROR('#4: var obj = {}; obj.splice = Array.prototype.splice; obj[4294967294] = "x"; obj.length = 1; var arr = obj.splice(4294967294,1); obj[4294967294] === undefined. Actual: ' + (obj[4294967294]));
+if (obj[4294967294] !== "x") {
+   $ERROR('#4: var obj = {}; obj.splice = Array.prototype.splice; obj[4294967294] = "x"; obj.length = 1; var arr = obj.splice(4294967294,1); obj[4294967294] === "x". Actual: ' + (obj[4294967294]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A5.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A5.2.js
index d9247a03cc310976749ef3662ad6895f2144fdba..20ec46bf89155c73d81d0077e7db9839417dfd4d 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A5.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A5.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of splice has the attribute DontDelete
+info: The length property of splice does not have the attribute DontDelete
 es5id: 15.4.4.12_A5.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.splice.hasOwnProperty('length') !== true) {
 delete Array.prototype.splice.length;
 
 //CHECK#2
-if (Array.prototype.splice.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.splice.length; Array.prototype.splice.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.splice.hasOwnProperty('length')));
+if (Array.prototype.splice.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.splice.length; Array.prototype.splice.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.splice.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A2_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A2_T2.js
index 69724423abce28ae49a99aceec3406dc807e081d..af7899ad4e9531a34e1d1a68c98b404207126332 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A2_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A2_T2.js
@@ -32,23 +32,6 @@ if (obj["0"] !== -1) {
   $ERROR('#3: var obj = {}; obj.length = NaN; obj.unshift = Array.prototype.unshift; obj.unshift(-1); obj["0"] === -1. Actual: ' + (obj["0"]));
 }
 
-//CHECK#4
-obj.length = Number.POSITIVE_INFINITY;
-var unshift = obj.unshift(-4);
-if (unshift !== 1) {
-  $ERROR('#4: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.unshift = Array.prototype.unshift; obj.unshift(-4) === 1. Actual: ' + (unshift));
-}
-
-//CHECK#5
-if (obj.length !== 1) {
-  $ERROR('#6: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.unshift = Array.prototype.unshift; obj.unshift(-4); obj.length === 1. Actual: ' + (obj.length));
-}
-
-//CHECK#6
-if (obj["0"] !== -4) {
-  $ERROR('#6: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.unshift = Array.prototype.unshift; obj.unshift(-4); obj["0"] === -4. Actual: ' + (obj["0"]));
-}
-
 //CHECK#7
 obj.length = Number.NEGATIVE_INFINITY;
 var unshift = obj.unshift(-7);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T1.js
deleted file mode 100644
index 4878af2fcab1afc4139e876a6aa169464a4e047f..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T1.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.13_A3_T1
-description: length = 4294967296
----*/
-
-var obj = {};
-obj.unshift = Array.prototype.unshift;
-obj.length = 4294967296;
-
-//CHECK#1
-var unshift = obj.unshift("x", "y", "z");
-if (unshift !== 3) {
-  $ERROR('#1: var obj = {}; obj.unshift = Array.prototype.unshift; obj.length = 4294967296; obj.unshift("x", "y", "z") === 3. Actual: ' + (unshift));
-}
-
-//CHECK#2
-if (obj.length !== 3) {
-  $ERROR('#2: var obj = {}; obj.unshift = Array.prototype.unshift; obj.length = 4294967296; obj.unshift("x", "y", "z"); obj.length === 3. Actual: ' + (obj.length));
-}
-
-//CHECK#3
-if (obj[0] !== "x") {
-   $ERROR('#3: var obj = {}; obj.unshift = Array.prototype.unshift; obj.length = 4294967296; obj.unshift("x", "y", "z"); obj[0] === "x". Actual: ' + (obj[0]));
-}
-
-//CHECK#4
-if (obj[1] !== "y") {
-   $ERROR('#4: var obj = {}; obj.unshift = Array.prototype.unshift; obj.length = 4294967296; obj.unshift("x", "y", "z"); obj[1] === "y". Actual: ' + (obj[1]));
-}  
-
-//CHECK#5
-if (obj[2] !== "z") {
-   $ERROR('#5: var obj = {}; obj.unshift = Array.prototype.unshift; obj.length = 4294967296; obj.unshift("x", "y", "z"); obj[2] === "z". Actual: ' + (obj[2]));
-} 
-
-var obj = {};
-obj.unshift = Array.prototype.unshift;
-obj.length = 4294967296;
-
-//CHECK#6
-var unshift = obj.unshift();
-if (unshift !== 0) {
-  $ERROR('#6: var obj = {}; obj.unshift = Array.prototype.unshift; obj.length = 4294967296; obj.unshift() === 0. Actual: ' + (unshift));
-}
-
-//CHECK#7
-if (obj.length !== 0) {
-  $ERROR('#7: var obj = {}; obj.unshift = Array.prototype.unshift; obj.length = 4294967296; obj.unshift(); obj.length === 0. Actual: ' + (obj.length));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T2.js
index 9aacd01148fb2a128049519e1db9a89e94ced507..aae17e9d992de3842833a577ebcb6ad221f479f6 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.13_A3_T2
 description: length = -4294967295
 ---*/
@@ -14,13 +14,13 @@ obj.length = -4294967295;
 
 //CHECK#1
 var unshift = obj.unshift("x", "y", "z");
-if (unshift !== 4) {
-  $ERROR('#1: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = -4294967295; obj.unshift("x", "y", "z") === 4. Actual: ' + (unshift));
+if (unshift !== 3) {
+  $ERROR('#1: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = -4294967295; obj.unshift("x", "y", "z") === 3. Actual: ' + (unshift));
 }
 
 //CHECK#2
-if (obj.length !== 4) {
-  $ERROR('#2: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = -4294967295; obj.unshift("x", "y", "z"); obj.length === 4. Actual: ' + (obj.length));
+if (obj.length !== 3) {
+  $ERROR('#2: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = -4294967295; obj.unshift("x", "y", "z"); obj.length === 3. Actual: ' + (obj.length));
 }
 
 //CHECK#3
@@ -39,6 +39,6 @@ if (obj[2] !== "z") {
 }
 
 //CHECK#6
-if (obj[3] !== "") {
-   $ERROR('#6: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = -4294967295; obj.unshift("x", "y", "z"); obj[3] === "". Actual: ' + (obj[3]));
+if (obj[3] !== undefined) {
+   $ERROR('#6: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = -4294967295; obj.unshift("x", "y", "z"); obj[3] === undefined. Actual: ' + (obj[3]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T3.js
deleted file mode 100644
index 4faa900c52d4169a69f12fcedd3fb7dba3818b65..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T3.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.13_A3_T3
-description: length = 4294967297
----*/
-
-var obj = {};
-obj.unshift = Array.prototype.unshift;
-obj[0] = "";
-obj.length = 4294967297;
-
-//CHECK#1
-var unshift = obj.unshift("x", "y", "z");
-if (unshift !== 4) {
-  $ERROR('#1: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = 4294967297; obj.unshift("x", "y", "z") === 4. Actual: ' + (unshift));
-}
-
-//CHECK#2
-if (obj.length !== 4) {
-  $ERROR('#2: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = 4294967297; obj.unshift("x", "y", "z"); obj.length === 4. Actual: ' + (obj.length));
-}
-
-//CHECK#3
-if (obj[0] !== "x") {
-   $ERROR('#3: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = 4294967297; obj.unshift("x", "y", "z"); obj[0] === "x". Actual: ' + (obj[0]));
-}
-
-//CHECK#4
-if (obj[1] !== "y") {
-   $ERROR('#4: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = 4294967297; obj.unshift("x", "y", "z"); obj[1] === "y". Actual: ' + (obj[1]));
-}  
-
-//CHECK#5
-if (obj[2] !== "z") {
-   $ERROR('#5: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = 4294967297; obj.unshift("x", "y", "z"); obj[2] === "z". Actual: ' + (obj[2]));
-}
-
-//CHECK#6
-if (obj[3] !== "") {
-   $ERROR('#6: var obj = {}; obj.unshift = Array.prototype.unshift; obj[0] = ""; obj.length = 4294967297; obj.unshift("x", "y", "z"); obj[3] === "". Actual: ' + (obj[3]));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A5.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A5.2.js
index db99253442f562490063cdf1cf2d1de62a8b6446..5dc23d845e694c0936346c177625629f4cdd0c16 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A5.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A5.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of unshift has the attribute DontDelete
+info: The length property of unshift does not have the attribute DontDelete
 es5id: 15.4.4.13_A5.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.unshift.hasOwnProperty('length') !== true) {
 delete Array.prototype.unshift.length;
 
 //CHECK#2
-if (Array.prototype.unshift.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.unshift.length; Array.prototype.unshift.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.unshift.hasOwnProperty('length')));
+if (Array.prototype.unshift.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.unshift.length; Array.prototype.unshift.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.unshift.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js
index d3579368dabe5c01da8ea697312a184361ae0c5c..5e13941469250a8ddb386c4a6e820c1a119faee4 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js
@@ -16,7 +16,7 @@ function testcase() {
 
         var obj = { 1: "true", 2: "2", length: "-4294967294" };
 
-        return Array.prototype.indexOf.call(obj, "true") === 1 &&
+        return Array.prototype.indexOf.call(obj, "true") === -1 &&
         Array.prototype.indexOf.call(obj, "2") === -1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js
index 7d8fef351d9e40255ca39a798277661193fd7610..8f212690980c19b7c3aa4d4dc606987038ebdc5b 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js
@@ -18,8 +18,8 @@ function testcase() {
         var objTwo = { 0: true, 1: true, length: "+Infinity" };
         var objThree = { 0: true, 1: true, length: "-Infinity" };
 
-        return Array.prototype.indexOf.call(objOne, true) === -1 &&
-            Array.prototype.indexOf.call(objTwo, true) === -1 &&
+        return Array.prototype.indexOf.call(objOne, true) === 0 &&
+            Array.prototype.indexOf.call(objTwo, true) === 0 &&
             Array.prototype.indexOf.call(objThree, true) === -1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js
index 5b37a18966e6122473c31961445e26e438b0200d..6c2ea8f5f839d197a2aecacf0198389442ebd0bb 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js
@@ -8,15 +8,15 @@
 es5id: 15.4.4.14-3-25
 description: >
     Array.prototype.indexOf - value of 'length' is a negative
-    non-integer, ensure truncation occurs in the proper direction
+    non-integer
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
 
-        var obj = { 1: true, 2: false, length: -4294967294.5 }; //length will be 2 finally
+        var obj = { 1: true, 2: false, length: -4294967294.5 }; //length will be 0 finally
 
-        return Array.prototype.indexOf.call(obj, true) === 1 &&
+        return Array.prototype.indexOf.call(obj, true) === -1 &&
         Array.prototype.indexOf.call(obj, false) === -1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js
index 7bc0b8b5b3f017537ce2cbf9d3a48434c3fb6d18..7885166769181bc4ebebc87242718b830d5d6a5b 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js
@@ -21,6 +21,6 @@ function testcase() {
             length: 4294967296
         };
 
-        return Array.prototype.indexOf.call(obj, targetObj) === -1;
+        return Array.prototype.indexOf.call(obj, targetObj) === 0;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js
index 407655eb587c20de40411f970c5c39a2aa420ecb..68336d3054e0b627c01aa79df4a1fbd0ee11d5d5 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js
@@ -21,6 +21,6 @@ function testcase() {
         };
 
         return Array.prototype.indexOf.call(obj, targetObj) === 0 &&
-            Array.prototype.indexOf.call(obj, 4294967297) === -1;
+            Array.prototype.indexOf.call(obj, 4294967297) === 1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js
index 045d80ae7587f5adc2b3aa16c337b9cdad349439..77232173df42901c3488e9429adc00d71b44ef0f 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js
@@ -16,7 +16,7 @@ function testcase() {
 
         var obj = { 4: true, 5: false, length: 5 - Math.pow(2, 32) };
 
-        return Array.prototype.indexOf.call(obj, true) === 4 &&
+        return Array.prototype.indexOf.call(obj, true) === -1 &&
             Array.prototype.indexOf.call(obj, false) === -1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js
index 9f9f16d9c931d069f4bda0f8d2276d8c34be2e45..52f837e7cb9d39cff3440e4b96d7851ef0e4bcd8 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js
@@ -16,6 +16,6 @@ function testcase() {
 
         var obj = { 0: 0, length: Infinity };
 
-        return Array.prototype.indexOf.call(obj, 0) === -1;
+        return Array.prototype.indexOf.call(obj, 0) === 0;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js
index 967680c5007ebab0552e97f633c3c6aa1af772ca..8a76977d6c59d72b5de7f95c80938306b440f724 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js
@@ -16,7 +16,7 @@ function testcase() {
 
         var obj = {1: null, 2: undefined, length: "-4294967294"};
 
-        return Array.prototype.lastIndexOf.call(obj, null) === 1 &&
+        return Array.prototype.lastIndexOf.call(obj, null) === -1 &&
             Array.prototype.lastIndexOf.call(obj, undefined) === -1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js
index 4bd755f3ef53c330db1fb45f8525dd40187e05f2..8ff6537b3cc3c80b52a4834d65d781fdf465fb44 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js
@@ -8,18 +8,14 @@
 es5id: 15.4.4.15-3-14
 description: >
     Array.prototype.lastIndexOf - value of 'length' is a string
-    containing +/-Infinity
+    containing -Infinity
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
 
-        var objOne = { 0: true, 1: true, length: "Infinity" };
-        var objTwo = { 0: true, 1: true, length: "+Infinity" };
         var objThree = { 0: true, 1: true, length: "-Infinity" };
 
-        return Array.prototype.lastIndexOf.call(objOne, true) === -1 &&
-            Array.prototype.lastIndexOf.call(objTwo, true) === -1 &&
-            Array.prototype.lastIndexOf.call(objThree, true) === -1;
+        return Array.prototype.lastIndexOf.call(objThree, true) === -1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js
index e22cc2b06104efc0254cfa2e31fde4008279f688..26ada3f97cdf1438a620ebfac9954a31efc2957a 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js
@@ -8,7 +8,7 @@
 es5id: 15.4.4.15-3-25
 description: >
     Array.prototype.lastIndexOf - value of 'length' is a negative
-    non-integer, ensure truncation occurs in the proper direction
+    non-integer
 includes: [runTestCase.js]
 ---*/
 
@@ -16,7 +16,7 @@ function testcase() {
 
         var obj = { 1: true, 2: false, length: -4294967294.5 };
 
-        return Array.prototype.lastIndexOf.call(obj, true) === 1 &&
+        return Array.prototype.lastIndexOf.call(obj, true) === -1 &&
             Array.prototype.lastIndexOf.call(obj, false) === -1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js
index 4e9748739a1608006c315237143189efbadb8a7b..ba2a1c37a42a92a0a0314f6e35b9efd2d5fa830a 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js
@@ -22,6 +22,6 @@ function testcase() {
             length: 4294967296
         };
 
-        return Array.prototype.lastIndexOf.call(obj, targetObj) === -1; //verify length is 0 finally
+        return Array.prototype.lastIndexOf.call(obj, targetObj) === 4294967295; //verify length is 4294967296 finally
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js
deleted file mode 100644
index 65ddbb1fe293cbe2b2bfb92f5dbc5464780e133f..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.15-3-29
-description: >
-    Array.prototype.lastIndexOf - value of 'length' is boundary value
-    (2^32 + 1)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var targetObj = {};
-        var obj = {
-            0: targetObj,
-            1: 4294967297,
-            length: 4294967297
-        };
-
-        return Array.prototype.lastIndexOf.call(obj, targetObj) === 0 &&
-            Array.prototype.lastIndexOf.call(obj, 4294967297) === -1;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js
index b72126cfc871d28ae90436432efa73b3f936d722..a170f4e13a8ca3f254e5d5b11999600ed95120eb 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js
@@ -16,7 +16,7 @@ function testcase() {
 
         var obj = { 4: -Infinity, 5: Infinity, length: 5 - Math.pow(2, 32) };
 
-        return Array.prototype.lastIndexOf.call(obj, -Infinity) === 4 &&
+        return Array.prototype.lastIndexOf.call(obj, -Infinity) === -1 &&
             Array.prototype.lastIndexOf.call(obj, Infinity) === -1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js
deleted file mode 100644
index 93d4f2523bb606f698f3ec9be5e1dc35c6212211..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.15-3-8
-description: >
-    Array.prototype.lastIndexOf - value of 'length' is a number (value
-    is Infinity)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var obj = { 0: 0, length: Infinity };
-
-        return Array.prototype.lastIndexOf.call(obj, 0) === -1;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js
index 694c1ad522c080aadb6f1be5b8e6a29feb504ef6..e6ddec460fbbd72dce827f67c8c05e015907832c 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js
@@ -24,6 +24,6 @@ function testcase() {
         var obj = { 0: 11, 1: 12, 2: 9, length: "-4294967294" };
 
         return Array.prototype.every.call(obj, callbackfn1) &&
-            !Array.prototype.every.call(obj, callbackfn2);
+            Array.prototype.every.call(obj, callbackfn2);
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js
index d3a0d676527b925872942a20a08059e16eef0f67..00e461852b02b2ae0a53994845f7c1d5d1d7da34 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js
@@ -23,8 +23,8 @@ function testcase() {
         var objTwo = { 0: 9, length: "+Infinity" };
         var objThree = { 0: 9, length: "-Infinity" };
 
-        return Array.prototype.every.call(objOne, callbackfn) &&
-            Array.prototype.every.call(objTwo, callbackfn) &&
-            Array.prototype.every.call(objThree, callbackfn) && !accessed;
+        return !Array.prototype.every.call(objOne, callbackfn) &&
+            !Array.prototype.every.call(objTwo, callbackfn) &&
+            Array.prototype.every.call(objThree, callbackfn) && accessed;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js
index d2d8b62ab0821d9c1a21281ba14830dc7b52edbb..0ab7e093149e2b7e6bf87aaae8b7ba7ad55377de 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js
@@ -6,9 +6,7 @@
 
 /*---
 es5id: 15.4.4.16-3-25
-description: >
-    Array.prototype.every - value of 'length' is a negative
-    non-integer, ensure truncation occurs in the proper direction
+description: Array.prototype.every - value of 'length' is a negative non-integer
 includes: [runTestCase.js]
 ---*/
 
@@ -29,6 +27,6 @@ function testcase() {
         };
 
         return Array.prototype.every.call(obj, callbackfn1) &&
-            !Array.prototype.every.call(obj, callbackfn2);
+            Array.prototype.every.call(obj, callbackfn2);
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js
deleted file mode 100644
index a3bd124bd66ee605e45b9c845eaf6ed7372b0446..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.16-3-28
-description: Array.prototype.every - value of 'length' is boundary value (2^32)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-
-        function callbackfn(val, idx, obj) {
-            accessed = true;
-            return val > 10;
-        }
-
-        var obj = {
-            0: 12,
-            length: 4294967296
-        };
-
-        return Array.prototype.every.call(obj, callbackfn) && !accessed;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js
index b3a932779f218fcf49f234550a0c6e41ed9ec336..cb3f74098c1d77aeea8eaa7fbd62e380308aba5d 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js
@@ -27,7 +27,7 @@ function testcase() {
             length: 4294967297
         };
 
-        return Array.prototype.every.call(obj, callbackfn1) &&
+        return !Array.prototype.every.call(obj, callbackfn1) &&
             !Array.prototype.every.call(obj, callbackfn2);
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js
index 55cf9388947bbd9677fdef069e58a8930949846b..0dbdbef86add1a5eca8f6b80e97a60c2cf0ff616 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js
@@ -21,9 +21,9 @@ function testcase() {
             return val > 11;
         }
 
-        var obj = { 0: 12, 1: 11, 2: 9, length: -4294967294 }; //length used to exec while loop is 2
+        var obj = { 0: 12, 1: 11, 2: 9, length: -4294967294 }; //length used to exec while loop is 0
 
         return Array.prototype.every.call(obj, callbackfn1) &&
-            !Array.prototype.every.call(obj, callbackfn2);
+            Array.prototype.every.call(obj, callbackfn2);
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js
index 79c313e35dc0847400c567cbc29ecae44abf0b62..55770cf7ea212eef095a5bdf4a4115e5b3415335 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js
@@ -23,6 +23,6 @@ function testcase() {
 
         var obj = { 0: 9, length: Infinity };
 
-        return Array.prototype.every.call(obj, callbackfn) && !accessed;
+        return !Array.prototype.every.call(obj, callbackfn) && accessed;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js
index 1816512861cb453976b8a72fbce78661553e3813..2a8bcc622e4208090c96b3df3cd55152bcd453f9 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js
@@ -23,7 +23,7 @@ function testcase() {
 
         var obj = { 0: 9, 1: 11, 2: 12, length: "-4294967294" };
 
-        return Array.prototype.some.call(obj, callbackfn1) &&
+        return !Array.prototype.some.call(obj, callbackfn1) &&
             !Array.prototype.some.call(obj, callbackfn2);
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js
index 0756b321cafce403df6b141b45bec6c2204feaf0..274cd984e2ed3b02c3514cb66e00867df0916d47 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js
@@ -23,8 +23,8 @@ function testcase() {
         var objTwo = { 0: 11, length: "+Infinity" };
         var objThree = { 0: 11, length: "-Infinity" };
 
-        return !Array.prototype.some.call(objOne, callbackfn) &&
-            !Array.prototype.some.call(objTwo, callbackfn) &&
-            !Array.prototype.some.call(objThree, callbackfn) && !accessed;
+        return Array.prototype.some.call(objOne, callbackfn) &&
+            Array.prototype.some.call(objTwo, callbackfn) &&
+            !Array.prototype.some.call(objThree, callbackfn) && accessed;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js
index 840c21c99e835369eb9ad7b4ad3301488ab09d3a..6c5d1e4b2c450ab6287c25c1b763f9bc3797cc19 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js
@@ -6,9 +6,7 @@
 
 /*---
 es5id: 15.4.4.17-3-25
-description: >
-    Array.prototype.some - value of 'length' is a negative
-    non-integer, ensure truncation occurs in the proper direction
+description: Array.prototype.some - value of 'length' is a negative non-integer
 includes: [runTestCase.js]
 ---*/
 
@@ -28,7 +26,7 @@ function testcase() {
             length: -4294967294.5
         };
 
-        return Array.prototype.some.call(obj, callbackfn1) &&
+        return !Array.prototype.some.call(obj, callbackfn1) &&
             !Array.prototype.some.call(obj, callbackfn2);
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js
index 3cc8f859b58c6dcc28491bd35ef6b834459f2c11..24b9ddad2a91225d7b6ee5a82667f3c2d09668de 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js
@@ -24,6 +24,6 @@ function testcase() {
             length: 4294967296
         };
 
-        return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+        return Array.prototype.some.call(obj, callbackfn) && accessed;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js
index 3b35e122e2c72196e8d910f9cbc0e901b2aaabfe..d636da80a28c434358bd5681cf622f05c75e7970 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js
@@ -28,6 +28,6 @@ function testcase() {
         };
 
         return Array.prototype.some.call(obj, callbackfn1) &&
-            !Array.prototype.some.call(obj, callbackfn2);
+            Array.prototype.some.call(obj, callbackfn2);
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js
index 9070335b1b78b099d3d9f33b92c5bceb38219026..6dfa99b4e4a085103929c55e0ea2e482e98897a1 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js
@@ -23,7 +23,7 @@ function testcase() {
 
         var obj = { 0: 9, 1: 11, 2: 12, length: -4294967294 };
 
-        return Array.prototype.some.call(obj, callbackfn1) &&
+        return !Array.prototype.some.call(obj, callbackfn1) &&
             !Array.prototype.some.call(obj, callbackfn2);
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js
index e1ca567c91ec1d1f933f7181902e892a923a3ca6..1d98b97f881adea9dde9783965c0ef7c4a1ee35c 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js
@@ -23,6 +23,6 @@ function testcase() {
 
         var obj = { 0: 11, length: Infinity };
 
-        return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+        return Array.prototype.some.call(obj, callbackfn) && accessed;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js
index 8d7d518dcf8bcebf7e464b6fe9bef007416ee997..5020e73d13278aeb5c2580b7ccf6a178c5710794 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js
@@ -24,6 +24,6 @@ function testcase() {
 
         Array.prototype.forEach.call(obj, callbackfn);
 
-        return testResult;
+        return !testResult;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js
index d478a0e3a2a3bbcb3089863b1776819e075e5126..25dd46606f63cd99e9aae188b01038e05e90896c 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js
@@ -6,38 +6,22 @@
 
 /*---
 es5id: 15.4.4.18-3-14
-description: >
-    Array.prototype.forEach - 'length' is a string containing
-    +/-Infinity
+description: Array.prototype.forEach - 'length' is a string containing -Infinity
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
 
-        var accessed1 = false;
         var accessed2 = false;
-        var accessed3 = false;
-
-        function callbackfn1(val, idx, obj) {
-            accessed1 = true;
-        }
 
         function callbackfn2(val, idx, obj) {
             accessed2 = true;
         }
 
-        function callbackfn3(val, idx, obj) {
-            accessed3 = true;
-        }
-
-        var obj1 = { 0: 9, length: "Infinity" };
         var obj2 = { 0: 9, length: "-Infinity" };
-        var obj3 = { 0: 9, length: "+Infinity" };
 
-        Array.prototype.forEach.call(obj1, callbackfn1);
         Array.prototype.forEach.call(obj2, callbackfn2);
-        Array.prototype.forEach.call(obj3, callbackfn3);
 
-        return !accessed1 && !accessed2 && !accessed3;
+        return !accessed2;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js
index badd055c4bd03a5182a01026738bc86608a9c7d0..19f07890f08098b86e20771a5df4737ded014bac 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js
@@ -8,7 +8,7 @@
 es5id: 15.4.4.18-3-25
 description: >
     Array.prototype.forEach - value of 'length' is a negative
-    non-integer, ensure truncation occurs in the proper direction
+    non-integer
 includes: [runTestCase.js]
 ---*/
 
@@ -28,6 +28,6 @@ function testcase() {
 
         Array.prototype.forEach.call(obj, callbackfn);
 
-        return testResult;
+        return !testResult;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js
deleted file mode 100644
index 3fc30f7ac6cbd6d0070854b31be6c352c0b0149d..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.18-3-28
-description: >
-    Array.prototype.forEach - value of 'length' is boundary value
-    (2^32)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-
-        function callbackfn(val, idx, obj) {
-            accessed = true;
-        }
-
-        var obj = {
-            0: 12,
-            length: 4294967296
-        };
-
-        Array.prototype.forEach.call(obj, callbackfn);
-
-        return !accessed;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js
deleted file mode 100644
index 59f569cba8edb1f90907a792b3e4bcc63cdbaf06..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.18-3-29
-description: >
-    Array.prototype.forEach - value of 'length' is boundary value
-    (2^32 + 1)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var testResult = false;
-
-        function callbackfn(val, idx, obj) {
-            testResult = (val > 10);
-        }
-
-        var obj = {
-            0: 11,
-            1: 9,
-            length: 4294967297
-        };
-
-        Array.prototype.forEach.call(obj, callbackfn);
-
-        return testResult;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js
index 3302cc14cff12f9258969951d8e9a8d33167e52a..575753e4925384265d2d387f22602ad9282c9a88 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js
@@ -24,6 +24,6 @@ function testcase() {
 
         Array.prototype.forEach.call(obj, callbackfn);
 
-        return testResult1;
+        return !testResult1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js
deleted file mode 100644
index 882030d7d02233274464c5900a0e15469c675d13..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.18-3-8
-description: >
-    Array.prototype.forEach - value of 'length' is a number (value is
-    Infinity)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-
-        function callbackfn(val, idx, obj) {
-            accessed = true;
-        }
-
-        var obj = { 0: 9, length: Infinity };
-
-        Array.prototype.forEach.call(obj, callbackfn);
-
-        return !accessed;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js
index e689cb64c07c637632469e9170555f9be4299950..81ecdf4754ab37db21d2461ed8e1b5c6b7e6af4f 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js
@@ -21,6 +21,6 @@ function testcase() {
 
         var newArr = Array.prototype.map.call(obj, callbackfn);
 
-        return newArr.length === 2;
+        return newArr.length === 0;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js
index 86fe75c6f312a1174d556375176de3be4766e62e..3b8a4b6da6f26ff62b03eaa4eccf979525bf9077 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js
@@ -17,8 +17,12 @@ function testcase() {
 
         var obj = { 0: 9, length: "Infinity" };
 
-        var newArr = Array.prototype.map.call(obj, callbackfn);
-
-        return newArr.length === 0;
+        try {
+            Array.prototype.map.call(obj, callbackfn);
+        } catch (e) {
+            if (e instanceof RangeError) {
+                return true;
+            }
+        }
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js
index 56ee74f0f25d05e88287a59ef24286a5c93fd9f8..d28b92b8a8a93c1b3172f2b46df3b7747414c1bc 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js
@@ -6,9 +6,7 @@
 
 /*---
 es5id: 15.4.4.19-3-25
-description: >
-    Array.prototype.map - value of 'length' is a negative non-integer,
-    ensure truncation occurs in the proper direction
+description: Array.prototype.map - value of 'length' is a negative non-integer
 includes: [runTestCase.js]
 ---*/
 
@@ -26,6 +24,6 @@ function testcase() {
 
         var newArr = Array.prototype.map.call(obj, callbackfn);
 
-        return newArr.length === 2;
+        return newArr.length === 0;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js
index a0e4121b47b46c4d41c3f6c424ea52005b67ee79..d033f36de1b925c2430b65fa7be5adef2ccaca99 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js
@@ -21,8 +21,12 @@ function testcase() {
             length: 4294967296
         };
 
-        var newArr = Array.prototype.map.call(obj, callbackfn);
-
-        return newArr.length === 0;
+        try {
+            var newArr = Array.prototype.map.call(obj, callbackfn);
+        } catch (e) {
+            if (e instanceof RangeError) {
+                return true;
+            }
+        }
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js
index 235cb8068ac9ab43cf369e4884840ae580fa6144..73dddc53f599da8b5d48d1b6cbf9ec4c814b1077 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js
@@ -24,7 +24,12 @@ function testcase() {
             length: 4294967297
         };
 
-        var newArr = Array.prototype.map.call(obj, callbackfn);
-        return newArr.length === 1;
+        try {
+            var newArr = Array.prototype.map.call(obj, callbackfn);
+        } catch (e) {
+            if (e instanceof RangeError) {
+                return true;
+            }
+        }
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js
index c74b39246e61ef49507d6c4197a8e9c11ac45b4a..d70fcb31dab6e3475cca760efb40f8fadf1eef9f 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js
@@ -21,6 +21,6 @@ function testcase() {
 
         var newArr = Array.prototype.map.call(obj, callbackfn);
 
-        return newArr.length === 2;
+        return newArr.length === 0;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js
index 0c419594ae9bacec877c6db614d453d11fcaad51..05d0d5d8169864daec40eee1b17c0a8339433f40 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js
@@ -19,8 +19,12 @@ function testcase() {
 
         var obj = { 0: 9, length: Infinity };
 
-        var newArr = Array.prototype.map.call(obj, callbackfn);
-
-        return newArr.length === 0;
+        try {
+            Array.prototype.map.call(obj, callbackfn);
+        } catch (e) {
+            if (e instanceof RangeError) {
+                return true;
+            }
+        }
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.2/S15.4.4.2_A4.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.2/S15.4.4.2_A4.2.js
index 1d0e6439fa99131d69477f64404c77481794585a..63e9b9cf174d9cd351ebfadb2ed2f5b37bd2fec8 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.2/S15.4.4.2_A4.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.2/S15.4.4.2_A4.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of toString has the attribute DontDelete
+info: The length property of toString does not have the attribute DontDelete
 es5id: 15.4.4.2_A4.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.toString.hasOwnProperty('length') !== true) {
 delete Array.prototype.toString.length;
 
 //CHECK#2
-if (Array.prototype.toString.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.toString.length; Array.prototype.toString.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.toString.hasOwnProperty('length')));
+if (Array.prototype.toString.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.toString.length; Array.prototype.toString.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.toString.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js
index 186f1a8555adc06475dee34d5688ddf013b5de18..8f487a79487378ee76cadac1b95a57458ff2893d 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js
@@ -22,6 +22,6 @@ function testcase() {
 
         var newArr = Array.prototype.filter.call(obj, callbackfn);
 
-        return newArr.length === 1 && newArr[0] === 11;
+        return newArr.length === 0 && newArr[0] === undefined;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js
index 96310362e2dbdfb3193fe9e65a93f6132797912a..e9e964bc13b7cd5ded66cf7f96cf6d3a24c030ed 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js
@@ -6,43 +6,23 @@
 
 /*---
 es5id: 15.4.4.20-3-14
-description: >
-    Array.prototype.filter - 'length' is a string containing
-    +/-Infinity
+description: Array.prototype.filter - 'length' is a string containing -Infinity
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
 
-        var accessed1 = false;
         var accessed2 = false;
-        var accessed3 = false;
-
-        function callbackfn1(val, idx, obj) {
-            accessed1 = true;
-            return true;
-        }
 
         function callbackfn2(val, idx, obj) {
             accessed2 = true;
             return true;
         }
 
-        function callbackfn3(val, idx, obj) {
-            accessed3 = true;
-            return true;
-        }
-
-        var obj1 = { 0: 9, length: "Infinity" };
         var obj2 = { 0: 9, length: "-Infinity" };
-        var obj3 = { 0: 9, length: "+Infinity" };
 
-        var newArr1 = Array.prototype.filter.call(obj1, callbackfn1);
         var newArr2 = Array.prototype.filter.call(obj2, callbackfn2);
-        var newArr3 = Array.prototype.filter.call(obj3, callbackfn3);
 
-        return !accessed1 && newArr1.length === 0 &&
-            !accessed2 && newArr2.length === 0 && 
-            !accessed3 && newArr3.length === 0;
+        return !accessed2 && newArr2.length === 0;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js
index 2f1dd3d1f237486b1224625a3b4a6b29779dbbdb..7642ad1be22daaba89f255b5c4cfb39851cf65d7 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js
@@ -8,7 +8,7 @@
 es5id: 15.4.4.20-3-25
 description: >
     Array.prototype.filter - value of 'length' is a negative
-    non-integer, ensure truncation occurs in the proper direction
+    non-integer
 includes: [runTestCase.js]
 ---*/
 
@@ -26,6 +26,6 @@ function testcase() {
 
         var newArr = Array.prototype.filter.call(obj, callbackfn);
 
-        return newArr.length === 1 && newArr[0] === 11;
+        return newArr.length === 0 && newArr[0] === undefined;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js
deleted file mode 100644
index eeba0b85b46691dc3999c6f3ff2629bb26fb4781..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.20-3-28
-description: Array.prototype.filter - value of 'length' is boundary value (2^32)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-        function callbackfn(val, idx, obj) {
-            accessed = true;
-            return true;
-        }
-
-        var obj = {
-            0: 12,
-            length: 4294967296
-        };
-
-        var newArr = Array.prototype.filter.call(obj, callbackfn);
-
-        return !accessed && newArr.length === 0;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js
deleted file mode 100644
index cc85138907fbb412006dd1f60f16f67067f0a6f6..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.20-3-29
-description: >
-    Array.prototype.filter - value of 'length' is boundary value (2^32
-    + 1)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        function callbackfn(val, idx, obj) {
-            return true;
-        }
-
-        var obj = {
-            0: 11,
-            1: 9,
-            length: 4294967297
-        };
-
-        var newArr = Array.prototype.filter.call(obj, callbackfn);
-
-        return newArr.length === 1 && newArr[0] === 11;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js
index ff0843aad228b86794adf8b927556523ebda4922..bb6dc6971d6d4309acd8ed76dfa4174a858ec2cc 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js
@@ -21,6 +21,6 @@ function testcase() {
         var obj = { 1: 11, 2: 9, length: -4294967294 };
         var newArr = Array.prototype.filter.call(obj, callbackfn);
 
-        return newArr.length === 1 && newArr[0] === 11;
+        return newArr.length === 0 && newArr[0] === undefined;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js
deleted file mode 100644
index b298e3905bd63f39c06e7b7ed0f844a2be235dce..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.20-3-8
-description: >
-    Array.prototype.filter - value of 'length' is a number (value is
-    Infinity)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-        function callbackfn(val, idx, obj) {
-            accessed = true;
-            return true;
-        }
-
-        var obj = { 0: 9, length: Infinity };
-        var newArr = Array.prototype.filter.call(obj, callbackfn);
-
-        return newArr.length === 0 && !accessed;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js
index 8652b7323207886a43ac8640b805e6e340da6605..07df74b4848d52343f81884e2f2a767d9e32acf0 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js
@@ -20,6 +20,6 @@ function testcase() {
 
         var obj = { 1: 11, 2: 9, length: "-4294967294" };
 
-        return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+        return Array.prototype.reduce.call(obj, callbackfn, 1) === 1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js
index 518ad1ac6268eebdbb9327804c9ca4bac918c2e2..a71b6a4480b3015ebcd489071a3a952a9bbce5eb 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js
@@ -6,40 +6,22 @@
 
 /*---
 es5id: 15.4.4.21-3-14
-description: >
-    Array.prototype.reduce - 'length' is a string containing
-    +/-Infinity
+description: Array.prototype.reduce - 'length' is a string containing -Infinity
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
 
-        var accessed1 = false;
         var accessed2 = false;
-        var accessed3 = false;
-
-        function callbackfn1(prevVal, curVal, idx, obj) {
-            accessed1 = true;
-            return 2;
-        }
 
         function callbackfn2(prevVal, curVal, idx, obj) {
             accessed2 = true;
             return 2;
         }
 
-        function callbackfn3(prevVal, curVal, idx, obj) {
-            accessed3 = true;
-            return 2;
-        }
-
-        var obj1 = { 0: 9, length: "Infinity" };
         var obj2 = { 0: 9, length: "-Infinity" };
-        var obj3 = { 0: 9, length: "+Infinity" };
 
-        return Array.prototype.reduce.call(obj1, callbackfn1, 1) === 1 &&
-            Array.prototype.reduce.call(obj2, callbackfn2, 1) === 1 &&
-            Array.prototype.reduce.call(obj3, callbackfn3, 1) === 1 &&
-            !accessed1 && !accessed2 && !accessed3;
+        return Array.prototype.reduce.call(obj2, callbackfn2, 1) === 1
+            && !accessed2;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js
index 3eccdc997f84e3728af1e9e19bdf1a1f684dd567..2e9ec79aeaf2f28d1547c7d2e5d3cc4fe9211df9 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js
@@ -8,7 +8,7 @@
 es5id: 15.4.4.21-3-25
 description: >
     Array.prototype.reduce - value of 'length' is a negative
-    non-integer, ensure truncation occurs in the proper direction
+    non-integer
 includes: [runTestCase.js]
 ---*/
 
@@ -24,6 +24,6 @@ function testcase() {
             length: -4294967294.5
         };
 
-        return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+        return Array.prototype.reduce.call(obj, callbackfn, 1) === 1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js
deleted file mode 100644
index e40a3e0d851efe0d9561823f047e3d56ca5fc25c..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.21-3-28
-description: Array.prototype.reduce - value of 'length' is boundary value (2^32)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-
-        function callbackfn(prevVal, curVal, idx, obj) {
-            accessed = true;
-            return 2;
-        }
-
-        var obj = {
-            0: 12,
-            length: 4294967296
-        };
-
-        return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js
deleted file mode 100644
index 79c7554fd76aa4cea68cd3c12c4360fdaa335d1d..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.21-3-29
-description: >
-    Array.prototype.reduce - value of 'length' is boundary value (2^32
-    + 1)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        function callbackfn(prevVal, curVal, idx, obj) {
-            return (curVal === 11 && idx === 0);
-        }
-
-        var obj = {
-            0: 11,
-            1: 9,
-            length: 4294967297
-        };
-
-        return Array.prototype.reduce.call(obj, callbackfn, 1);
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js
index 7e5a6db2dccc0bd8dc96e19f95b83df087f0365a..cc15672867854d1fe974a7d1a420f6274b4a111c 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js
@@ -20,6 +20,6 @@ function testcase() {
 
         var obj = { 1: 11, 2: 9, length: -4294967294 };
 
-        return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+        return Array.prototype.reduce.call(obj, callbackfn, 1) === 1;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js
deleted file mode 100644
index f7f8d9085e9b2e48048fb3269415fcf417873319..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.21-3-8
-description: >
-    Array.prototype.reduce - value of 'length' is a number (value is
-    Infinity)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-
-        function callbackfn(prevVal, curVal, idx, obj) {
-            accessed = true;
-            return 2;
-        }
-
-        var obj = { 0: 9, length: Infinity };
-
-        return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js
index d088a4a1adccfe54ae272d9a91051f60ef7e961f..893615b21c44b0c41325ae947b83ff91895b8d9d 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js
@@ -30,6 +30,6 @@ function testcase() {
         var obj = { 0: 11, 1: 12, 2: 9, length: "-4294967294" };
 
         Array.prototype.reduceRight.call(obj, callbackfn, 1);
-        return testResult1 && testResult2;
+        return testResult1 && !testResult2;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js
index 4c4ac7796bade6f6970c78e96e47f3a395934eb3..3dd76bc2957d4e22f745c6194d7994b181901476 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js
@@ -8,35 +8,21 @@
 es5id: 15.4.4.22-3-14
 description: >
     Array.prototype.reduceRight - value of 'length' is a string
-    containing +/-Infinity
+    containing -Infinity
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
 
-        var accessed1 = false;
         var accessed2 = false;
-        var accessed3 = false;
-
-        function callbackfn1(prevVal, curVal, idx, obj) {
-            accessed1 = true;
-        }
 
         function callbackfn2(prevVal, curVal, idx, obj) {
             accessed2 = true;
         }
 
-        function callbackfn3(prevVal, curVal, idx, obj) {
-            accessed3 = true;
-        }
-
-        var obj1 = { 0: 9, length: "Infinity" };
         var obj2 = { 0: 9, length: "-Infinity" };
-        var obj3 = { 0: 9, length: "+Infinity" };
 
-        return Array.prototype.reduceRight.call(obj1, callbackfn1, 1) === 1 &&
-            Array.prototype.reduceRight.call(obj2, callbackfn2, 2) === 2 &&
-            Array.prototype.reduceRight.call(obj3, callbackfn3, 3) === 3 &&
-            !accessed1 && !accessed2 && !accessed3;
+        return Array.prototype.reduceRight.call(obj2, callbackfn2, 2) === 2 &&
+            !accessed2;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js
index b366c109222f5c6877d0931ba3fd22460f5ceb71..2ebd7aeb9dca6f1e447514f12d1bfb791fd37222 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js
@@ -8,7 +8,7 @@
 es5id: 15.4.4.22-3-25
 description: >
     Array.prototype.reduceRight - value of 'length' is a negative
-    non-integer, ensure truncation occurs in the proper direction
+    non-integer
 includes: [runTestCase.js]
 ---*/
 
@@ -35,6 +35,6 @@ function testcase() {
         };
 
         Array.prototype.reduceRight.call(obj, callbackfn, 1);
-        return testResult1 && testResult2;
+        return testResult1 && !testResult2;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js
deleted file mode 100644
index 84095c94e874d52e1e674fc25b1e54a4aaec8c65..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.22-3-28
-description: >
-    Array.prototype.reduceRight - value of 'length' is boundary value
-    (2^32)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-
-        function callbackfn(prevVal, curVal, idx, obj) {
-            accessed = true;
-        }
-
-        var obj = {
-            0: 12,
-            length: 4294967296
-        };
-
-        return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js
deleted file mode 100644
index 158d574fc0937dff4151afd08ffd050998e2dfd1..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.22-3-29
-description: >
-    Array.prototype.reduceRight - value of 'length' is boundary value
-    (2^32 + 1)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var testResult1 = true;
-        var testResult2 = false;
-        function callbackfn(prevVal, curVal, idx, obj) {
-            if (idx > 0) {
-                testResult1 = false;
-            }
-
-            if (idx === 0) {
-                testResult2 = true;
-            }
-            return false;
-        }
-
-        var obj = {
-            0: 11,
-            1: 9,
-            length: 4294967297
-        };
-
-        Array.prototype.reduceRight.call(obj, callbackfn, 1);
-        return testResult1 && testResult2;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js
index 8163f389742fdef0312869f02d9b6aad13d07487..89f1d867bfa0f443c1a6aa5280d2d895c0a442d6 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js
@@ -30,6 +30,6 @@ function testcase() {
         var obj = { 1: 11, 2: 9, length: -4294967294 };
 
         Array.prototype.reduceRight.call(obj, callbackfn, 1);
-        return testResult1 && testResult2;
+        return testResult1 && !testResult2;
     }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js b/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js
deleted file mode 100644
index 30b7ff5e9c0c9a5a8b0f959fbfcc03b41c9ad4d7..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// Ecma International makes this code available under the terms and conditions set
-// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
-// "Use Terms").   Any redistribution of this code must retain the above
-// copyright and this notice and otherwise comply with the Use Terms.
-
-/*---
-es5id: 15.4.4.22-3-8
-description: >
-    Array.prototype.reduceRight - value of 'length' is a number (value
-    is Infinity)
-includes: [runTestCase.js]
----*/
-
-function testcase() {
-
-        var accessed = false;
-
-        function callbackfn(prevVal, curVal, idx, obj) {
-            accessed = true;
-        }
-
-        var obj = { 0: 9, length: Infinity };
-
-        return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
-    }
-runTestCase(testcase);
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.3/S15.4.4.3_A4.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.3/S15.4.4.3_A4.2.js
index a19e4b57b7730e0a65a1c165b207453f0f07c785..9b001445b2a588c6ba390f1792cd10594efc767c 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.3/S15.4.4.3_A4.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.3/S15.4.4.3_A4.2.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of toLocaleString has the attribute DontDelete
+info: >
+    The length property of toLocaleString does not have the attribute
+    DontDelete
 es5id: 15.4.4.3_A4.2
 description: Checking use hasOwnProperty, delete
 includes: [$FAIL.js]
@@ -16,8 +18,8 @@ if (Array.prototype.toLocaleString.hasOwnProperty('length') !== true) {
 delete Array.prototype.toLocaleString.length;
 
 //CHECK#2
-if (Array.prototype.toLocaleString.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.toLocaleString.length; Array.prototype.toLocaleString.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.toLocaleString.hasOwnProperty('length')));
+if (Array.prototype.toLocaleString.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.toLocaleString.length; Array.prototype.toLocaleString.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.toLocaleString.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.4/S15.4.4.4_A4.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.4/S15.4.4.4_A4.2.js
index 58d7bc482989ed27de9baa3a0d1f32bb3741a7fc..ed257692273e3d749eca2773f4d061ca653e7179 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.4/S15.4.4.4_A4.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.4/S15.4.4.4_A4.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of concat has the attribute DontDelete
+info: The length property of concat does not have the attribute DontDelete
 es5id: 15.4.4.4_A4.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.concat.hasOwnProperty('length') !== true) {
 delete Array.prototype.concat.length;
 
 //CHECK#2
-if (Array.prototype.concat.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.concat.length; Array.prototype.concat.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.concat.hasOwnProperty('length')));
+if (Array.prototype.concat.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.concat.length; Array.prototype.concat.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.concat.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A2_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A2_T2.js
index c6800a2e6de8c31f5996f6f2e633937fbbe608fa..2081d3133d472af6fcd1cf6f4f790b8d5fb1d1b2 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A2_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A2_T2.js
@@ -23,17 +23,6 @@ if (isNaN(obj.length) !== true) {
   $ERROR('#2: var obj = {}; obj.length = NaN; obj.join = Array.prototype.join; obj.join(); obj.length === Not-a-Number. Actual: ' + (obj.length));
 }
 
-//CHECK#3
-obj.length = Number.POSITIVE_INFINITY;
-if (obj.join() !== "") {
-  $ERROR('#3: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.join = Array.prototype.join; obj.join() === "". Actual: ' + (obj.join()));
-}
-
-//CHECK#4
-if (obj.length !== Number.POSITIVE_INFINITY) {
-  $ERROR('#4: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.join = Array.prototype.join; obj.join(); obj.length === Number.POSITIVE_INFINITY. Actual: ' + (obj.length));
-}
-
 //CHECK#5
 obj.length = Number.NEGATIVE_INFINITY;
 if (obj.join() !== "") {
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T1.js
deleted file mode 100644
index ebecfbd05b399c64f8a0bcc04e54c7bc9b2e2c99..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T1.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.5_A4_T1
-description: length = 4294967296
----*/
-
-var obj = {};
-obj.join = Array.prototype.join;
-obj[0] = "x";
-obj[4294967295] = "y";
-obj.length = 4294967296;
-
-//CHECK#1
-if (obj.join("") !== "") {
-  $ERROR('#1: var obj = {}; obj.join = Array.prototype.join; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.join("") === "". Actual: ' + (obj.join("")));
-}
-
-//CHECK#2
-if (obj.length !== 4294967296) {
-  $ERROR('#2: var obj = {}; obj.join = Array.prototype.join; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.join(""); obj.length === 4294967296. Actual: ' + (obj.length));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T2.js
deleted file mode 100644
index ac72d735452241575033e95f432688b87fb95541..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T2.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.5_A4_T2
-description: length = 4294967297
----*/
-
-var obj = {};
-obj.join = Array.prototype.join;
-obj[0] = "x";
-obj[1] = "y";
-obj[4294967296] = "z";
-obj.length = 4294967297;
-
-//CHECK#1
-if (obj.join("") !== "x") {
-  $ERROR('#1: var obj = {}; obj.join = Array.prototype.join; obj[0] = "x"; obj[1] = "y"; obj[4294967296] = "z"; obj.length = 4294967297; obj.join("") === "x". Actual: ' + (obj.join("")));
-}
-
-//CHECK#2
-if (obj.length !== 4294967297) {
-  $ERROR('#2: var obj = {}; obj.join = Array.prototype.join; obj[0] = "x"; obj[1] = "y"; obj[4294967296] = "z"; obj.length = 4294967297; obj.join(""); obj.length === 4294967297. Actual: ' + (obj.length));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T3.js
index c13a68b757623810643b5159f115cf662d1e6297..ed16dd8f8c285a7baa786864d75e72aeb1ab0e98 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T3.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.5_A4_T3
 description: length = -4294967294
 ---*/
@@ -15,8 +15,8 @@ obj[2] = "z";
 obj.length = -4294967294;
 
 //CHECK#1
-if (obj.join("") !== "xy") {
-  $ERROR('#1: var obj = {}; obj.join = Array.prototype.join; obj[0] = "x"; obj[1] = "y"; obj[2] = "z"; obj.length = -4294967294; obj.join("") === "xy". Actual: ' + (obj.join("")));
+if (obj.join("") !== "") {
+  $ERROR('#1: var obj = {}; obj.join = Array.prototype.join; obj[0] = "x"; obj[1] = "y"; obj[2] = "z"; obj.length = -4294967294; obj.join("") === "". Actual: ' + (obj.join("")));
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A6.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A6.2.js
index e1fc43c9d9d16005312e46894b9807c17af5a868..3b80f2ce1cae711f83c41ef1837c3b88cb7d4924 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A6.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A6.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of join has the attribute DontDelete
+info: The length property of join does not have the attribute DontDelete
 es5id: 15.4.4.5_A6.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.join.hasOwnProperty('length') !== true) {
 delete Array.prototype.join.length;
  
 //CHECK#2
-if (Array.prototype.join.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.join.length; Array.prototype.join.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.join.hasOwnProperty('length')));
+if (Array.prototype.join.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.join.length; Array.prototype.join.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.join.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A2_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A2_T2.js
index 211dd129270d5419f6098ce1cbe025ff1637b325..eb7cb6f169cf59b685dfddef737f4c760feec010 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A2_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A2_T2.js
@@ -34,8 +34,8 @@ if (pop !== undefined) {
 }
 
 //CHECK#4
-if (obj.length !== 0) {
-  $ERROR('#4: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.pop = Array.prototype.pop; obj.pop(); obj.length === 0. Actual: ' + (obj.length));
+if (obj.length !== 9007199254740990) {
+  $ERROR('#4: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.pop = Array.prototype.pop; obj.pop(); obj.length === 9007199254740990. Actual: ' + (obj.length));
 }
 
 //CHECK#5
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T1.js
index f7657f024b4a111196739233f3630839361c8086..7e84f3cb8e3707f6a7a128e89257940b259de2f2 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T1.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T1.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.6_A3_T1
 description: length = 4294967296
 ---*/
@@ -15,13 +15,13 @@ obj.length = 4294967296;
 
 //CHECK#1
 var pop = obj.pop();
-if (pop !== undefined) {
-  $ERROR('#1: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.pop() === unedfined. Actual: ' + (pop));
+if (pop !== "y") {
+  $ERROR('#1: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.pop() === "y". Actual: ' + (pop));
 }
 
 //CHECK#2
-if (obj.length !== 0) {
-  $ERROR('#2: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.pop(); obj.length === 0. Actual: ' + (obj.length));
+if (obj.length !== 4294967295) {
+  $ERROR('#2: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.pop(); obj.length === 4294967295. Actual: ' + (obj.length));
 }
 
 //CHECK#3
@@ -30,6 +30,6 @@ if (obj[0] !== "x") {
 }  
 
 //CHECK#4
-if (obj[4294967295] !== "y") {
-   $ERROR('#4: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.pop(); obj[4294967295] === "y". Actual: ' + (obj[4294967295]));
+if (obj[4294967295] !== undefined) {
+   $ERROR('#4: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.pop(); obj[4294967295] === undefined. Actual: ' + (obj[4294967295]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T2.js
index 46ccd95d26a1471e0358609a52e5cfbf7dddd4fc..eef4c9ffba09d9a424ca5ef361af2910f68da0a5 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.6_A3_T2
 description: length = 4294967297
 ---*/
@@ -15,21 +15,21 @@ obj.length = 4294967297;
 
 //CHECK#1
 var pop = obj.pop();
-if (pop !== "x") {
-  $ERROR('#1: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; obj.pop() === "x". Actual: ' + (pop));
+if (pop !== "y") {
+  $ERROR('#1: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; obj.pop() === "y". Actual: ' + (pop));
 }
 
 //CHECK#2
-if (obj.length !== 0) {
-  $ERROR('#2: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; obj.pop(); obj.length === 0. Actual: ' + (obj.length));
+if (obj.length !== 4294967296) {
+  $ERROR('#2: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; obj.pop(); obj.length === 4294967296. Actual: ' + (obj.length));
 }
 
 //CHECK#3
-if (obj[0] !== undefined) {
-   $ERROR('#3: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; obj.pop(); obj[0] === undefined. Actual: ' + (obj[0]));
+if (obj[0] !== "x") {
+   $ERROR('#3: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; obj.pop(); obj[0] === "x". Actual: ' + (obj[0]));
 }
 
 //CHECK#4
-if (obj[4294967296] !== "y") {
-   $ERROR('#4: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; obj.pop(); obj[4294967296] === "y". Actual: ' + (obj[4294967296]));
+if (obj[4294967296] !== undefined) {
+   $ERROR('#4: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967296] = "y"; obj.length = 4294967297; obj.pop(); obj[4294967296] === undefined. Actual: ' + (obj[4294967296]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T3.js
index 97a96425d2189006c5b95168de52148f57484669..bc7328bec9acf71401b48311b7b86cf52e619cf6 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T3.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.6_A3_T3
 description: length = -1
 ---*/
@@ -14,16 +14,16 @@ obj.length = -1;
 
 //CHECK#1
 var pop = obj.pop();
-if (pop !== "x") {
-  $ERROR('#1: var obj = {}; obj.pop = Array.prototype.pop; obj[4294967294] = "x"; obj.length = -1; obj.pop() === "x". Actual: ' + (pop));
+if (pop !== undefined) {
+  $ERROR('#1: var obj = {}; obj.pop = Array.prototype.pop; obj[4294967294] = "x"; obj.length = -1; obj.pop() === undefined. Actual: ' + (pop));
 }
 
 //CHECK#2
-if (obj.length !== 4294967294) {
-  $ERROR('#2: var obj = {}; obj.pop = Array.prototype.pop; obj[4294967294] = "x"; obj.length = -1; obj.pop(); obj.length === 4294967294. Actual: ' + (obj.length));
+if (obj.length !== 0) {
+  $ERROR('#2: var obj = {}; obj.pop = Array.prototype.pop; obj[4294967294] = "x"; obj.length = -1; obj.pop(); obj.length === 0. Actual: ' + (obj.length));
 }
 
 //CHECK#3
-if (obj[4294967294] !== undefined) {
-   $ERROR('#3: var obj = {}; obj.pop = Array.prototype.pop; obj[4294967294] = "x"; obj.length = -1; obj.pop(); obj[4294967294] === undefined. Actual: ' + (obj[4294967294]));
+if (obj[4294967294] !== "x") {
+   $ERROR('#3: var obj = {}; obj.pop = Array.prototype.pop; obj[4294967294] = "x"; obj.length = -1; obj.pop(); obj[4294967294] === "x". Actual: ' + (obj[4294967294]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A5.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A5.2.js
index 99e3f32782bcb8cd953686a3931d49ffc662cbb1..f1167771b858c98a803e1ad107473f04ec109c5d 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A5.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A5.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of pop has the attribute DontDelete
+info: The length property of pop does not have the attribute DontDelete
 es5id: 15.4.4.6_A5.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.pop.hasOwnProperty('length') !== true) {
 delete Array.prototype.pop.length;
 
 //CHECK#2
-if (Array.prototype.pop.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.pop.length; Array.prototype.pop.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.pop.hasOwnProperty('length')));
+if (Array.prototype.pop.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.pop.length; Array.prototype.pop.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.pop.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A2_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A2_T2.js
index 565aa3c6b77cce4bf312be05520c66d783fc461d..00683a8fd16ef8a1b68297112e03672196d5da42 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A2_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A2_T2.js
@@ -35,18 +35,18 @@ if (obj["0"] !== -1) {
 //CHECK#4
 obj.length = Number.POSITIVE_INFINITY;
 var push = obj.push(-4);
-if (push !== 1) {
-  $ERROR('#4: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.push = Array.prototype.push; obj.push(-4) === 1. Actual: ' + (push));
+if (push !== 9007199254740992) {
+  $ERROR('#4: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.push = Array.prototype.push; obj.push(-4) === 9007199254740992. Actual: ' + (push));
 }
 
 //CHECK#5
-if (obj.length !== 1) {
-  $ERROR('#6: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.push = Array.prototype.push; obj.push(-4); obj.length === 1. Actual: ' + (obj.length));
+if (obj.length !== 9007199254740992) {
+  $ERROR('#6: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.push = Array.prototype.push; obj.push(-4); obj.length === 9007199254740992. Actual: ' + (obj.length));
 }
 
 //CHECK#6
-if (obj["0"] !== -4) {
-  $ERROR('#6: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.push = Array.prototype.push; obj.push(-4); obj["0"] === -4. Actual: ' + (obj["0"]));
+if (obj[9007199254740991] !== -4) {
+  $ERROR('#6: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.push = Array.prototype.push; obj.push(-4); obj[9007199254740991] === -4. Actual: ' + (obj["0"]));
 }
 
 //CHECK#7
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A3.js
index ea9118947bf0720887b5d20a3280ac6caab436b0..d40582cd96928031c418eaa011cd0c82e599ebfa 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A3.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for Array object
+info: Check ToLength(length) for Array object
 es5id: 15.4.4.7_A3
 description: If ToUint32(length) !== length, throw RangeError
 ---*/
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T1.js
index ab47ba918b64c30ba189c47d18f429679e2ca3be..08e6d0d42e5a618c02efdafb6c08aec0c40844be 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T1.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T1.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.7_A4_T1
 description: length = 4294967296
 ---*/
@@ -13,41 +13,56 @@ obj.length = 4294967296;
 
 //CHECK#1
 var push = obj.push("x", "y", "z");
-if (push !== 3) {
-  $ERROR('#1: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z") === 3. Actual: ' + (push));
+if (push !== 4294967299) {
+  $ERROR('#1: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z") === 4294967299. Actual: ' + (push));
 }
 
 //CHECK#2
-if (obj.length !== 3) {
-  $ERROR('#2: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj.length === 3. Actual: ' + (obj.length));
+if (obj.length !== 4294967299) {
+  $ERROR('#2: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj.length === 4294967299. Actual: ' + (obj.length));
 }
 
 //CHECK#3
-if (obj[0] !== "x") {
-   $ERROR('#3: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[0] === "x". Actual: ' + (obj[0]));
+if (obj[0] !== undefined) {
+   $ERROR('#3: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[0] === undefined. Actual: ' + (obj[0]));
 }
 
 //CHECK#4
-if (obj[1] !== "y") {
-   $ERROR('#4: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[1] === "y". Actual: ' + (obj[1]));
+if (obj[1] !== undefined) {
+   $ERROR('#4: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[1] === undefined. Actual: ' + (obj[1]));
 }  
 
 //CHECK#5
-if (obj[2] !== "z") {
-   $ERROR('#5: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[2] === "z". Actual: ' + (obj[2]));
+if (obj[2] !== undefined) {
+   $ERROR('#5: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[2] === undefined. Actual: ' + (obj[2]));
+} 
+
+//CHECK#6
+if (obj[4294967296] !== "x") {
+   $ERROR('#6: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[4294967296] === "x". Actual: ' + (obj[4294967296]));
+}
+
+//CHECK#7
+if (obj[4294967297] !== "y") {
+   $ERROR('#7: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[4294967297] === "y". Actual: ' + (obj[4294967297]));
+}  
+
+//CHECK#8
+if (obj[4294967298] !== "z") {
+   $ERROR('#8: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push("x", "y", "z"); obj[4294967298] === "z". Actual: ' + (obj[4294967298]));
 } 
 
 var obj = {};
 obj.push = Array.prototype.push;
 obj.length = 4294967296;
 
-//CHECK#6
+//CHECK#9
 var push = obj.push();
-if (push !== 0) {
-  $ERROR('#6: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push() === 0. Actual: ' + (push));
+if (push !== 4294967296) {
+  $ERROR('#9: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push() === 4294967296. Actual: ' + (push));
 }
 
-//CHECK#7
-if (obj.length !== 0) {
-  $ERROR('#7: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push(); obj.length === 0. Actual: ' + (obj.length));
+//CHECK#10
+if (obj.length !== 4294967296) {
+  $ERROR('#10: var obj = {}; obj.push = Array.prototype.push; obj.length = 4294967296; obj.push(); obj.length === 4294967296. Actual: ' + (obj.length));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T2.js
index 5a9d23619c333681400ba7414d15d6a96236061b..605ef629ee7e1a379e13fc8a57c3a74dbcf63fe7 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.7_A4_T2
 description: length = 4294967295
 ---*/
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T3.js
index 045f4d1bcda0b1b9e82e7d8c3ea0ed411bad12ca..b0862b55d7f9098eddf836e755f4f8b11f61ce69 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T3.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.7_A4_T3
 description: length = -1
 ---*/
@@ -13,26 +13,41 @@ obj.length = -1;
 
 //CHECK#1
 var push = obj.push("x", "y", "z");
-if (push !== 4294967298) {
-  $ERROR('#1: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z") === 4294967298. Actual: ' + (push));
+if (push !== 3) {
+  $ERROR('#1: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z") === 3. Actual: ' + (push));
 }
 
 //CHECK#2
-if (obj.length !== 4294967298) {
-  $ERROR('#2: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj.length === 4294967298. Actual: ' + (obj.length));
+if (obj.length !== 3) {
+  $ERROR('#2: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj.length === 3. Actual: ' + (obj.length));
 }
 
 //CHECK#3
-if (obj[4294967295] !== "x") {
-   $ERROR('#3: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[4294967295] === "x". Actual: ' + (obj[4294967295]));
+if (obj[4294967295] !== undefined) {
+   $ERROR('#3: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[4294967295] === undefined. Actual: ' + (obj[4294967295]));
 }
 
 //CHECK#4
-if (obj[4294967296] !== "y") {
-   $ERROR('#4: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[4294967296] === "y". Actual: ' + (obj[4294967296]));
+if (obj[4294967296] !== undefined) {
+   $ERROR('#4: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[4294967296] === undefined. Actual: ' + (obj[4294967296]));
 }  
 
 //CHECK#5
-if (obj[4294967297] !== "z") {
-   $ERROR('#5: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[4294967297] === "z". Actual: ' + (obj[4294967297]));
+if (obj[4294967297] !== undefined) {
+   $ERROR('#5: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[4294967297] === undefined. Actual: ' + (obj[4294967297]));
+}  
+
+//CHECK#6
+if (obj[0] !== "x") {
+   $ERROR('#3: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[0] === "x". Actual: ' + (obj[0]));
+}
+
+//CHECK#7
+if (obj[1] !== "y") {
+   $ERROR('#4: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[1] === "y". Actual: ' + (obj[1]));
+}
+
+//CHECK#8
+if (obj[2] !== "z") {
+   $ERROR('#5: var obj = {}; obj.push = Array.prototype.push; obj.length = -1; obj.push("x", "y", "z"); obj[2] === "z". Actual: ' + (obj[2]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A6.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A6.2.js
index 8131b033dd96e072db1c6cfd7f1a12e424674ebb..15ab62b680cc6da32cf3309aba475f21157596cb 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A6.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A6.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of push has the attribute DontDelete
+info: The length property of push does not have the attribute DontDelete
 es5id: 15.4.4.7_A6.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.push.hasOwnProperty('length') !== true) {
 delete Array.prototype.push.length;
 
 //CHECK#2
-if (Array.prototype.push.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.push.length; Array.prototype.push.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.push.hasOwnProperty('length')));
+if (Array.prototype.push.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.push.length; Array.prototype.push.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.push.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T1.js
deleted file mode 100644
index 197736e5cad4b9b9ef385433a19e946d63d9c806..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T1.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.8_A3_T1
-description: length = 4294967296
----*/
-
-var obj = {};
-obj.reverse = Array.prototype.reverse;
-obj[0] = "x";
-obj[4294967295] = "y";
-obj.length = 4294967296;
-
-//CHECK#1
-var reverse = obj.reverse();
-if (reverse !== obj) {
-  $ERROR('#1: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.reverse() === obj. Actual: ' + (reverse));
-}
-
-//CHECK#2
-if (obj.length !== 4294967296) {
-  $ERROR('#2: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.reverse(); obj.length === 4294967296. Actual: ' + (obj.length));
-}
-
-//CHECK#3
-if (obj[0] !== "x") {
-  $ERROR('#3: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.reverse(); obj[0] == "x"');
-}
-
-//CHECK#4
-if (obj[4294967295] !== "y") {
-  $ERROR('#4: var obj = {}; obj.reverse = Array.prototype.reverse; obj[] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.reverse(); obj[4294967295] == "y"');
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T2.js
deleted file mode 100644
index 308b292f083dcf1da2f02bc08787d19bb49623b5..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T2.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.8_A3_T2
-description: length = 4294967298
----*/
-
-var obj = {};
-obj.reverse = Array.prototype.reverse;
-obj[0] = "x";
-obj[1] = "y";
-obj[4294967297] = "z";
-obj.length = 4294967298;
-
-//CHECK#1
-var reverse = obj.reverse();
-if (reverse !== obj) {
-  $ERROR('#1: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[4294967297] = "z"; obj.length = 4294967298; obj.reverse() === obj. Actual: ' + (reverse));
-}
-
-//CHECK#2
-if (obj.length !== 4294967298) {
-  $ERROR('#2: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[4294967297] = "z"; obj.length = 4294967298; obj.reverse(); obj.length === 4294967298. Actual: ' + (obj.length));
-}
-
-//CHECK#3
-if (obj[0] !== "y") {
-  $ERROR('#3: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[4294967297] = "z"; obj.length = 4294967298; obj.reverse(); obj[0] === "y". Actual: ' + (obj[0]));
-}   
-
-//CHECK#4
-if (obj[1] !== "x") {
-  $ERROR('#4: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[4294967297] = "z"; obj.length = 4294967298; obj.reverse(); obj[1] === "x". Actual: ' + (obj[1]));
-} 
-
-//CHECK#5
-if (obj[4294967297] !== "z") {
-  $ERROR('#5: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[4294967297] = "z"; obj.length = 4294967298; obj.reverse(); obj[4294967297] === "z". Actual: ' + (obj[4294967297]));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T3.js
index 9851e09b1a85262c107f02d65af12be74d883881..7edd94a6d925f5f2e102de75ba079ec53418794c 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T3.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.8_A3_T3
 description: length = -4294967294
 ---*/
@@ -26,13 +26,13 @@ if (obj.length !== -4294967294) {
 }
 
 //CHECK#3
-if (obj[0] !== "y") {
-  $ERROR('#3: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[2] = "z"; obj.length = -4294967294; obj.reverse(); obj[0] === "y". Actual: ' + (obj[0]));
+if (obj[0] !== "x") {
+  $ERROR('#3: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[2] = "z"; obj.length = -4294967294; obj.reverse(); obj[0] === "x". Actual: ' + (obj[0]));
 }   
 
 //CHECK#4
-if (obj[1] !== "x") {
-  $ERROR('#4: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[2] = "z"; obj.length = -4294967294; obj.reverse(); obj[1] === "x". Actual: ' + (obj[1]));
+if (obj[1] !== "y") {
+  $ERROR('#4: var obj = {}; obj.reverse = Array.prototype.reverse; obj[0] = "x"; obj[1] = "y"; obj[2] = "z"; obj.length = -4294967294; obj.reverse(); obj[1] === "y". Actual: ' + (obj[1]));
 } 
 
 //CHECK#5
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A5.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A5.2.js
index fce5b261c9810afa5d9e7dc0e8518a9c12d1d954..0c4365d795d22f99f891d868caadbef03216ba66 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A5.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A5.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of reverse has the attribute DontDelete
+info: The length property of reverse does not have the attribute DontDelete
 es5id: 15.4.4.8_A5.2
 description: Checking use hasOwnProperty, delete
 flags: [noStrict]
@@ -17,8 +17,8 @@ if (Array.prototype.reverse.hasOwnProperty('length') !== true) {
 delete Array.prototype.reverse.length;
 
 //CHECK#2
-if (Array.prototype.reverse.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.reverse.length; Array.prototype.reverse.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.reverse.hasOwnProperty('length')));
+if (Array.prototype.reverse.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.reverse.length; Array.prototype.reverse.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.reverse.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A2_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A2_T2.js
index 5bf7090b6a5cccafa750c03911926ea716ce76ef..089330a3beadf5bfebab436b457ac92e4aa516c9 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A2_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A2_T2.js
@@ -26,18 +26,6 @@ if (obj.length !== 0) {
   $ERROR('#2: var obj = {}; obj.length = NaN; obj.shift = Array.prototype.shift; obj.shift(); obj.length === 0. Actual: ' + (obj.length));
 }
 
-//CHECK#3
-obj.length = Number.POSITIVE_INFINITY;
-var shift = obj.shift();
-if (shift !== undefined) {
-  $ERROR('#3: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift));
-}
-
-//CHECK#4
-if (obj.length !== 0) {
-  $ERROR('#4: var obj = {}; obj.length = Number.POSITIVE_INFINITY; obj.shift = Array.prototype.shift; obj.shift(); obj.length === 0. Actual: ' + (obj.length));
-}
-
 //CHECK#5
 obj.length = Number.NEGATIVE_INFINITY;
 var shift = obj.shift();
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T1.js b/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T1.js
deleted file mode 100644
index 0d0ad97da3e8dace4c5763c2239ef4065a02bb8a..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T1.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.9_A3_T1
-description: length is arbitrarily
----*/
-
-var obj = {};
-obj.shift = Array.prototype.shift;
-obj[0] = "x";
-obj[4294967295] = "y";
-obj.length = 4294967296;
-
-//CHECK#1
-var shift = obj.shift();
-if (shift !== undefined) {
-  $ERROR('#1: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.shift() === unedfined. Actual: ' + (shift));
-}
-
-//CHECK#2
-if (obj.length !== 0) {
-  $ERROR('#2: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.shift(); obj.length === 0. Actual: ' + (obj.length));
-}
-
-//CHECK#3
-if (obj[0] !== "x") {
-   $ERROR('#3: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.shift(); obj[0] === "x". Actual: ' + (obj[0]));
-}  
-
-//CHECK#4
-if (obj[4294967295] !== "y") {
-   $ERROR('#4: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.shift(); obj[4294967295] === "y". Actual: ' + (obj[4294967295]));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T2.js
deleted file mode 100644
index d504fe515b9c823f4a7e93a9f78f3f8d6d1cc88b..0000000000000000000000000000000000000000
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T2.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: Check ToUint32(length) for non Array objects
-es5id: 15.4.4.9_A3_T2
-description: length is arbitrarily
----*/
-
-var obj = {};
-obj.shift = Array.prototype.shift;
-obj[0] = "x";
-obj[1] = "y";
-obj[4294967296] = "z";
-obj.length = 4294967297;
-
-//CHECK#1
-var shift = obj.shift();
-if (shift !== "x") {
-  $ERROR('#1: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj[4294967296] = "z"; obj.length = 4294967297; obj.shift() === "x". Actual: ' + (shift));
-}
-
-//CHECK#2
-if (obj.length !== 0) {
-  $ERROR('#2: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj[4294967296] = "z"; obj.length = 4294967297; obj.shift(); obj.length === 0. Actual: ' + (obj.length));
-}
-
-//CHECK#3
-if (obj[0] !== undefined) {
-   $ERROR('#3: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj[4294967296] = "z"; obj.length = 4294967297; obj.shift(); obj[0] === undefined. Actual: ' + (obj[0]));
-}
-
-//CHECK#4
-if (obj[1] !== "y") {
-   $ERROR('#4: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj[4294967296] = "z"; obj.length = 4294967297; obj.shift(); obj[1] === "y". Actual: ' + (obj[1]));
-}
-
-//CHECK#4
-if (obj[4294967296] !== "z") {
-   $ERROR('#4: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj[4294967296] = "z"; obj.length = 4294967297; obj.shift(); obj[4294967296] === "z". Actual: ' + (obj[4294967296]));
-}
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T3.js b/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T3.js
index 92bd9acf94ac05f34d31fdfe68251ef5e2631f8a..6bc350a40b76562551517cef579b060a28d408e1 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T3.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T3.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Check ToUint32(length) for non Array objects
+info: Check ToLength(length) for non Array objects
 es5id: 15.4.4.9_A3_T3
 description: length is arbitrarily
 ---*/
@@ -15,21 +15,21 @@ obj.length = -4294967294;
 
 //CHECK#1
 var shift = obj.shift();
-if (shift !== "x") {
-  $ERROR('#1: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj.length = -4294967294; obj.shift() === "x". Actual: ' + (shift));
+if (shift !== undefined) {
+  $ERROR('#1: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj.length = -4294967294; obj.shift() === undefined. Actual: ' + (shift));
 }
 
 //CHECK#2
-if (obj.length !== 1) {
-  $ERROR('#2: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj.length = -4294967294; obj.shift(); obj.length === 1. Actual: ' + (obj.length));
+if (obj.length !== 0) {
+  $ERROR('#2: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj.length = -4294967294; obj.shift(); obj.length === 0. Actual: ' + (obj.length));
 }
 
 //CHECK#3
-if (obj[0] !== "y") {
-   $ERROR('#3: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj.length = -4294967294; obj.shift(); obj[0] === "y". Actual: ' + (obj[0]));
+if (obj[0] !== "x") {
+   $ERROR('#3: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x"; obj[1] = "y"; obj.length = -4294967294; obj.shift(); obj[0] === "x". Actual: ' + (obj[0]));
 }
 
 //CHECK#4
-if (obj[1] !== undefined) {
-   $ERROR('#4: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x" obj[1] = "y"; obj.length = -4294967294; obj.shift(); obj[1] === undefined. Actual: ' + (obj[1]));
+if (obj[1] !== "y") {
+   $ERROR('#4: var obj = {}; obj.shift = Array.prototype.shift; obj[0] = "x" obj[1] = "y"; obj.length = -4294967294; obj.shift(); obj[1] === "y". Actual: ' + (obj[1]));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A5.2.js b/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A5.2.js
index c6dcd5e48cb082d2afa540c70fa6139be8e413a0..1bd71a76f6b824eb9753fd70f445860e3ebc80e8 100644
--- a/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A5.2.js
+++ b/test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A5.2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The length property of shift has the attribute DontDelete
+info: The length property of shift does not have the attribute DontDelete
 es5id: 15.4.4.9_A5.2
 description: Checking use hasOwnProperty, delete
 includes: [$FAIL.js]
@@ -16,8 +16,8 @@ if (Array.prototype.shift.hasOwnProperty('length') !== true) {
 delete Array.prototype.shift.length;
 
 //CHECK#2
-if (Array.prototype.shift.hasOwnProperty('length') !== true) {
-  $ERROR('#2: delete Array.prototype.shift.length; Array.prototype.shift.hasOwnProperty(\'length\') === true. Actual: ' + (Array.prototype.shift.hasOwnProperty('length')));
+if (Array.prototype.shift.hasOwnProperty('length') !== false) {
+  $ERROR('#2: delete Array.prototype.shift.length; Array.prototype.shift.hasOwnProperty(\'length\') === false. Actual: ' + (Array.prototype.shift.hasOwnProperty('length')));
 }
 
 //CHECK#3
diff --git a/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.1_T2.js b/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.1_T2.js
index e726ff8e1202bd650c589b075094e95ffff8407e..cfdd8f8dbe531e1e18ccfced43e457456d3c8873 100644
--- a/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.1_T2.js
+++ b/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.1_T2.js
@@ -4,12 +4,12 @@
 /*---
 es5id: 15.4.4_A1.1_T2
 description: >
-    The Array prototype object is itself an array; its [[Class]] is
-    "Array",
+    The Array prototype object is itself not an array; its [[Class]]
+    is "Object",
 ---*/
 
 //CHECK#1
-if (Object.prototype.toString.call(Array.prototype) !== "[object Array]") {
-  $ERROR('The Array prototype object is itself an array; its' +
-         '[[Class]] is "Array".');
+if (Object.prototype.toString.call(Array.prototype) !== "[object Object]") {
+  $ERROR('The Array prototype object is itself not an array; its' +
+         '[[Class]] is "Object".');
 }
diff --git a/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.2_T1.js b/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.2_T1.js
index 0c9cccb55967b542a05f486909bec8bfdb953a17..e048cf764dd95e90e1c2bf93219eb3c2ab3e9244 100644
--- a/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.2_T1.js
+++ b/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.2_T1.js
@@ -2,13 +2,13 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The [[Class]] property of the Array prototype object is set to "Array"
+info: The [[Class]] property of the Array prototype object is set to "Object"
 es5id: 15.4.4_A1.2_T1
 description: Checking use Object.prototype.toString
 ---*/
 
 //CHECK#1
 Array.prototype.getClass = Object.prototype.toString;
-if (Array.prototype.getClass() !== "[object " + "Array" + "]") {
-  $ERROR('#1: Array.prototype.getClass = Object.prototype.toString; Array.prototype is Array object. Actual: ' + (Array.prototype.getClass()));
+if (Array.prototype.getClass() !== "[object " + "Object" + "]") {
+  $ERROR('#1: Array.prototype.getClass = Object.prototype.toString; Array.prototype is Object object. Actual: ' + (Array.prototype.getClass()));
 }
diff --git a/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.3_T1.js b/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.3_T1.js
index d8b242c816f21a0bf46f81932517b66304ce9dff..d812e56934f85bdf0fce33c3004e843bf38cdb7e 100644
--- a/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.3_T1.js
+++ b/test/suite/ch15/15.4/15.4.4/S15.4.4_A1.3_T1.js
@@ -2,16 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Array prototype object has length property whose value is +0
+info: Array prototype object does not have a length property
 es5id: 15.4.4_A1.3_T1
-description: Array.prototype.length === 0
+description: Array.prototype.length === undefined
 ---*/
 
 //CHECK#1
-if (Array.prototype.length !== 0) {
-  $ERROR('#1.1: Array.prototype.length === 0. Actual: ' + (Array.prototype.length));
-} else {
-  if (1 / Array.prototype.length !== Number.POSITIVE_INFINITY) {
-    $ERROR('#1.2: Array.prototype.length === +0. Actual: ' + (Array.prototype.length));
-  }
+if (Array.prototype.length !== undefined) {
+  $ERROR('#1.1: Array.prototype.length === undefined. Actual: ' + (Array.prototype.length));
 }
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.10/S15.5.4.10_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.10/S15.5.4.10_A9.js
index 9cfee781d78c25c5d8feb379918cf174ed22c434..868d5007e15727e131592095a87c819be3ec347b 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.10/S15.5.4.10_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.10/S15.5.4.10_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The String.prototype.match.length property has the attribute DontDelete
+info: >
+    The String.prototype.match.length property does not have the attribute
+    DontDelete
 es5id: 15.5.4.10_A9
 description: >
     Checking if deleting the String.prototype.match.length property
@@ -20,16 +22,16 @@ if (!(String.prototype.match.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.match.length) {
-  $ERROR('#1: delete String.prototype.match.length return false');
+if (!delete String.prototype.match.length) {
+  $ERROR('#1: delete String.prototype.match.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.match.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.match.length; String.prototype.match.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.match.hasOwnProperty('length'));
+if (String.prototype.match.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.match.length; String.prototype.match.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.match.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.11/S15.5.4.11_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.11/S15.5.4.11_A9.js
index e9bfdd91f1299477a7c2f0918e354c6842f0ad41..c116d554aba4305dc91755e29a3be65514537d14 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.11/S15.5.4.11_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.11/S15.5.4.11_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The String.prototype.replace.length property has the attribute DontDelete
+info: >
+    The String.prototype.replace.length property does not have the attribute
+    DontDelete
 es5id: 15.5.4.11_A9
 description: >
     Checking if deleting the String.prototype.replace.length property
@@ -20,16 +22,16 @@ if (!(String.prototype.replace.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.replace.length) {
-  $ERROR('#1: delete String.prototype.replace.length return false');
+if (!delete String.prototype.replace.length) {
+  $ERROR('#1: delete String.prototype.replace.length return true!');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.replace.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.replace.length; String.prototype.replace.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.replace.hasOwnProperty('length'));
+if (String.prototype.replace.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.replace.length; String.prototype.replace.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.replace.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.12/S15.5.4.12_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.12/S15.5.4.12_A9.js
index 688c7e94cb8bd93cdd154811621c3a90c5cf9b50..90bb0c1fd5d3faab04ed8f7ef575c956d2699d65 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.12/S15.5.4.12_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.12/S15.5.4.12_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The String.prototype.search.length property has the attribute DontDelete
+info: >
+    The String.prototype.search.length property does not have the attribute
+    DontDelete
 es5id: 15.5.4.12_A9
 description: >
     Checking if deleting the String.prototype.search.length property
@@ -20,16 +22,16 @@ if (!(String.prototype.search.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.search.length) {
-  $ERROR('#1: delete String.prototype.search.length return false');
+if (!delete String.prototype.search.length) {
+  $ERROR('#1: delete String.prototype.search.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.search.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.search.length; String.prototype.search.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.search.hasOwnProperty('length'));
+if (String.prototype.search.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.search.length; String.prototype.search.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.search.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.13/S15.5.4.13_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.13/S15.5.4.13_A9.js
index 437249f7fc1f58da2e4467010869b4d00285d4ca..5d12784db27325a17585754d2a7f6420f2241f5f 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.13/S15.5.4.13_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.13/S15.5.4.13_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The String.prototype.slice.length property has the attribute DontDelete
+info: >
+    The String.prototype.slice.length property does not have the attribute
+    DontDelete
 es5id: 15.5.4.13_A9
 description: >
     Checking if deleting the String.prototype.slice.length property
@@ -20,16 +22,16 @@ if (!(String.prototype.slice.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.slice.length) {
-  $ERROR('#1: delete String.prototype.slice.length return false');
+if (!delete String.prototype.slice.length) {
+  $ERROR('#1: delete String.prototype.slice.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.slice.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.slice.length; String.prototype.slice.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.slice.hasOwnProperty('length'));
+if (String.prototype.slice.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.slice.length; String.prototype.slice.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.slice.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.14/S15.5.4.14_A2_T37.js b/test/suite/ch15/15.5/15.5.4/15.5.4.14/S15.5.4.14_A2_T37.js
index 8983b061a572523862645c49ad517d3d505e6539..85a4bf128e9e0e7e52787ace1d0de386c5c0c15f 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.14/S15.5.4.14_A2_T37.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.14/S15.5.4.14_A2_T37.js
@@ -17,7 +17,7 @@ Number.prototype.split = String.prototype.split;
 
 var __split = __instance.split(1, -Math.pow(2,32)+1);
 
-var __expected = [""];
+var __expected = [];
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.14/S15.5.4.14_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.14/S15.5.4.14_A9.js
index 645e77d1f82a90566fe9c3c0b3aa5ef25b0228c7..532cd97f19194281531156432e2d263dd79c7528 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.14/S15.5.4.14_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.14/S15.5.4.14_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The String.prototype.split.length property has the attribute DontDelete
+info: >
+    The String.prototype.split.length property does not have the attribute
+    DontDelete
 es5id: 15.5.4.14_A9
 description: >
     Checking if deleting the String.prototype.split.length property
@@ -20,16 +22,16 @@ if (!(String.prototype.split.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.split.length) {
-  $ERROR('#1: delete String.prototype.split.length return false');
+if (!delete String.prototype.split.length) {
+  $ERROR('#1: delete String.prototype.split.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.split.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.split.length; String.prototype.split.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.split.hasOwnProperty('length'));
+if (String.prototype.split.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.split.length; String.prototype.split.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.split.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.15/S15.5.4.15_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.15/S15.5.4.15_A9.js
index cb9bd3a3b2281aaa3270102a7166dc252a8234d3..9d710f1065e1a90cfc76143bd338aa60d4758863 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.15/S15.5.4.15_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.15/S15.5.4.15_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String.prototype.substring.length property has the attribute
-    DontDelete
+    The String.prototype.substring.length property does not have the
+    attribute DontDelete
 es5id: 15.5.4.15_A9
 description: >
     Checking if deleting the String.prototype.substring.length
@@ -22,16 +22,16 @@ if (!(String.prototype.substring.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.substring.length) {
-  $ERROR('#1: delete String.prototype.substring.length return false');
+if (!delete String.prototype.substring.length) {
+  $ERROR('#1: delete String.prototype.substring.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.substring.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.substring.length; String.prototype.substring.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.substring.hasOwnProperty('length'));
+if (String.prototype.substring.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.substring.length; String.prototype.substring.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.substring.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.16/S15.5.4.16_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.16/S15.5.4.16_A9.js
index bac6729b6ac7aa11935ee8957d14608e73256c00..ff157981b5f205de0cd959ef13e41165fb15754d 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.16/S15.5.4.16_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.16/S15.5.4.16_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String.prototype.toLowerCase.length property has the attribute
-    DontDelete
+    The String.prototype.toLowerCase.length property does not have the
+    attribute DontDelete
 es5id: 15.5.4.16_A9
 description: >
     Checking if deleting the String.prototype.toLowerCase.length
@@ -22,16 +22,16 @@ if (!(String.prototype.toLowerCase.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.toLowerCase.length) {
-  $ERROR('#1: delete String.prototype.toLowerCase.length return false');
+if (!delete String.prototype.toLowerCase.length) {
+  $ERROR('#1: delete String.prototype.toLowerCase.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.toLowerCase.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.toLowerCase.length; String.prototype.toLowerCase.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.toLowerCase.hasOwnProperty('length'));
+if (String.prototype.toLowerCase.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.toLowerCase.length; String.prototype.toLowerCase.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.toLowerCase.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.17/S15.5.4.17_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.17/S15.5.4.17_A9.js
index 6fe0ae45c800e7ddf5bdfc9af8a81ec799fa8cb6..5efe5d9d0316c2d7af29a50498a2319bc53f69ff 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.17/S15.5.4.17_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.17/S15.5.4.17_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String.prototype.toLocaleLowerCase.length property has the attribute
-    DontDelete
+    The String.prototype.toLocaleLowerCase.length property does not have the
+    attribute DontDelete
 es5id: 15.5.4.17_A9
 description: >
     Checking if deleting the String.prototype.toLocaleLowerCase.length
@@ -22,16 +22,16 @@ if (!(String.prototype.toLocaleLowerCase.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.toLocaleLowerCase.length) {
-  $ERROR('#1: delete String.prototype.toLocaleLowerCase.length return false');
+if (!delete String.prototype.toLocaleLowerCase.length) {
+  $ERROR('#1: delete String.prototype.toLocaleLowerCase.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.toLocaleLowerCase.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.toLocaleLowerCase.length; String.prototype.toLocaleLowerCase.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.toLocaleLowerCase.hasOwnProperty('length'));
+if (String.prototype.toLocaleLowerCase.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.toLocaleLowerCase.length; String.prototype.toLocaleLowerCase.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.toLocaleLowerCase.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.18/S15.5.4.18_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.18/S15.5.4.18_A9.js
index 372c0626263d66d55f3145a1186ad53e4d416225..2409b5417cd8e92a212fb4258446564637c5104f 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.18/S15.5.4.18_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.18/S15.5.4.18_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String.prototype.toUpperCase.length property has the attribute
-    DontDelete
+    The String.prototype.toUpperCase.length property does not have the
+    attribute DontDelete
 es5id: 15.5.4.18_A9
 description: >
     Checking if deleting the String.prototype.toUpperCase.length
@@ -22,16 +22,16 @@ if (!(String.prototype.toUpperCase.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.toUpperCase.length) {
-  $ERROR('#1: delete String.prototype.toUpperCase.length return false');
+if (!delete String.prototype.toUpperCase.length) {
+  $ERROR('#1: delete String.prototype.toUpperCase.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.toUpperCase.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.toUpperCase.length; String.prototype.toUpperCase.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.toUpperCase.hasOwnProperty('length'));
+if (String.prototype.toUpperCase.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.toUpperCase.length; String.prototype.toUpperCase.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.toUpperCase.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.19/S15.5.4.19_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.19/S15.5.4.19_A9.js
index 87b467287d355d73751d88043a82c6c31c4c32f1..b17b2d8a2b5a7f030cd2787dca941d4a9619684b 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.19/S15.5.4.19_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.19/S15.5.4.19_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String.prototype.toLocaleUpperCase.length property has the attribute
-    DontDelete
+    The String.prototype.toLocaleUpperCase.length property does not have the
+    attribute DontDelete
 es5id: 15.5.4.19_A9
 description: >
     Checking if deleting the String.prototype.toLocaleUpperCase.length
@@ -22,16 +22,16 @@ if (!(String.prototype.toLocaleUpperCase.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.toLocaleUpperCase.length) {
-  $ERROR('#1: delete String.prototype.toLocaleUpperCase.length return false');
+if (!delete String.prototype.toLocaleUpperCase.length) {
+  $ERROR('#1: delete String.prototype.toLocaleUpperCase.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.toLocaleUpperCase.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.toLocaleUpperCase.length; String.prototype.toLocaleUpperCase.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.toLocaleUpperCase.hasOwnProperty('length'));
+if (String.prototype.toLocaleUpperCase.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.toLocaleUpperCase.length; String.prototype.toLocaleUpperCase.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.toLocaleUpperCase.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.4/S15.5.4.4_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.4/S15.5.4.4_A9.js
index df532070d85cdb246d267fbf3584b70a0d67853a..20ddd5f0c25d191a933b7a65f61b6f85aca2a66c 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.4/S15.5.4.4_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.4/S15.5.4.4_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The String.prototype.charAt.length property has the attribute DontDelete
+info: >
+    The String.prototype.charAt.length property does not have the attribute
+    DontDelete
 es5id: 15.5.4.4_A9
 description: >
     Checking if deleting the String.prototype.charAt.length property
@@ -19,16 +21,16 @@ if (!(String.prototype.charAt.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.charAt.length) {
-  $ERROR('#1: delete String.prototype.charAt.length return false');
+if (!delete String.prototype.charAt.length) {
+  $ERROR('#1: delete String.prototype.charAt.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.charAt.hasOwnProperty('length'))) {
-  $ERROR('#2: delete String.prototype.charAt.length; String.prototype.charAt.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.charAt.hasOwnProperty('length')); 
+if (String.prototype.charAt.hasOwnProperty('length')) {
+  $ERROR('#2: delete String.prototype.charAt.length; String.prototype.charAt.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.charAt.hasOwnProperty('length')); 
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.5/S15.5.4.5_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.5/S15.5.4.5_A9.js
index 19dedc3fb4c2442f2e0a50ab2e0e87a6922d1576..104e94654ba982060df7621df7b2a27245a17f10 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.5/S15.5.4.5_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.5/S15.5.4.5_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String.prototype.charCodeAt.length property has the attribute
-    DontDelete
+    The String.prototype.charCodeAt.length property does not have the
+    attribute DontDelete
 es5id: 15.5.4.5_A9
 description: >
     Checking if deleting the String.prototype.charCodeAt.length
@@ -22,16 +22,16 @@ if (!(String.prototype.charCodeAt.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.charCodeAt.length) {
-  $ERROR('#1: delete String.prototype.charCodeAt.length return false');
+if (!delete String.prototype.charCodeAt.length) {
+  $ERROR('#1: delete String.prototype.charCodeAt.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.charCodeAt.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.charCodeAt.length; String.prototype.charCodeAt.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.charCodeAt.hasOwnProperty('length')); 
+if (String.prototype.charCodeAt.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.charCodeAt.length; String.prototype.charCodeAt.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.charCodeAt.hasOwnProperty('length')); 
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.6/S15.5.4.6_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.6/S15.5.4.6_A9.js
index bb17f12c062ce635fb2dd60a3d01b22bf0cb37f3..f381eccf79f3d6e8cd07a5b7e925d944e9b26b56 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.6/S15.5.4.6_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.6/S15.5.4.6_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The String.prototype.concat.length property has the attribute DontDelete
+info: >
+    The String.prototype.concat.length property does not have the attribute
+    DontDelete
 es5id: 15.5.4.6_A9
 description: >
     Checking if deleting the String.prototype.concat.length property
@@ -20,16 +22,16 @@ if (!(String.prototype.concat.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.concat.length) {
-  $ERROR('#1: delete String.prototype.concat.length return false');
+if (!delete String.prototype.concat.length) {
+  $ERROR('#1: delete String.prototype.concat.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.concat.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.concat.length; String.prototype.concat.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.concat.hasOwnProperty('length')); 
+if (String.prototype.concat.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.concat.length; String.prototype.concat.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.concat.hasOwnProperty('length')); 
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.7/S15.5.4.7_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.7/S15.5.4.7_A9.js
index f7ae5eb7ddc1339782e132858c055821ab2086cf..b09575db91d65a498b9d60962568304f33b956a6 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.7/S15.5.4.7_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.7/S15.5.4.7_A9.js
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The String.prototype.indexOf.length property has the attribute DontDelete
+info: >
+    The String.prototype.indexOf.length property does not have the attribute
+    DontDelete
 es5id: 15.5.4.7_A9
 description: >
     Checking if deleting the String.prototype.indexOf.length property
@@ -20,16 +22,16 @@ if (!(String.prototype.indexOf.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.indexOf.length) {
-  $ERROR('#1: delete String.prototype.indexOf.length raturn false');
+if (!delete String.prototype.indexOf.length) {
+  $ERROR('#1: delete String.prototype.indexOf.length raturn true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.indexOf.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.indexOf.length; String.prototype.indexOf.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.indexOf.hasOwnProperty('length')); 
+if (String.prototype.indexOf.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.indexOf.length; String.prototype.indexOf.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.indexOf.hasOwnProperty('length')); 
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.8/S15.5.4.8_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.8/S15.5.4.8_A9.js
index 0eba9ee622bf9615e7b865cba3bc21b8372fd76d..63f376f36cba59c95f48b4f7b89d31065730879c 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.8/S15.5.4.8_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.8/S15.5.4.8_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String.prototype.lastIndexOf.length property has the attribute
-    DontDelete
+    The String.prototype.lastIndexOf.length property does not have the
+    attribute DontDelete
 es5id: 15.5.4.8_A9
 description: >
     Checking if deleting the String.prototype.lastIndexOf.length
@@ -22,16 +22,16 @@ if (!(String.prototype.lastIndexOf.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.lastIndexOf.length) {
-  $ERROR('#1: delete String.prototype.lastIndexOf.length return false');
+if (!delete String.prototype.lastIndexOf.length) {
+  $ERROR('#1: delete String.prototype.lastIndexOf.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.lastIndexOf.hasOwnProperty('length'))) {
-  $FAIL('#2: delete String.prototype.lastIndexOf.length; String.prototype.lastIndexOf.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.lastIndexOf.hasOwnProperty('length'));
+if (String.prototype.lastIndexOf.hasOwnProperty('length')) {
+  $FAIL('#2: delete String.prototype.lastIndexOf.length; String.prototype.lastIndexOf.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.lastIndexOf.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/15.5.4.9/S15.5.4.9_A9.js b/test/suite/ch15/15.5/15.5.4/15.5.4.9/S15.5.4.9_A9.js
index 689830106023f1662b150641bff75bcad24ff367..82e853105a1cd577c3fcda29b8b9f55de5921be9 100644
--- a/test/suite/ch15/15.5/15.5.4/15.5.4.9/S15.5.4.9_A9.js
+++ b/test/suite/ch15/15.5/15.5.4/15.5.4.9/S15.5.4.9_A9.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String.prototype.localeCompare.length property has the attribute
-    DontDelete
+    The String.prototype.localeCompare.length property does not have the
+    attribute DontDelete
 es5id: 15.5.4.9_A9
 description: >
     Checking if deleting the String.prototype.localeCompare.length
@@ -21,16 +21,16 @@ if (!(String.prototype.localeCompare.hasOwnProperty('length'))) {
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (delete String.prototype.localeCompare.length) {
-  $ERROR('#1: delete String.prototype.localeCompare.length return false');
+if (!delete String.prototype.localeCompare.length) {
+  $ERROR('#1: delete String.prototype.localeCompare.length return true');
 }
 //
 //////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (!(String.prototype.localeCompare.hasOwnProperty('length'))) {
-  $ERROR('#2: delete String.prototype.localeCompare.length; String.prototype.localeCompare.hasOwnProperty(\'length\') return true. Actual: '+String.prototype.localeCompare.hasOwnProperty('length'));
+if (String.prototype.localeCompare.hasOwnProperty('length')) {
+  $ERROR('#2: delete String.prototype.localeCompare.length; String.prototype.localeCompare.hasOwnProperty(\'length\') return false. Actual: '+String.prototype.localeCompare.hasOwnProperty('length'));
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/S15.5.4_A1.js b/test/suite/ch15/15.5/15.5.4/S15.5.4_A1.js
index 2f202199dd44a41dc91717f3510b41691529982e..1b69a4ebd746a37e0aeae6d709d136d2ffd9df2e 100644
--- a/test/suite/ch15/15.5/15.5.4/S15.5.4_A1.js
+++ b/test/suite/ch15/15.5/15.5.4/S15.5.4_A1.js
@@ -3,8 +3,8 @@
 
 /*---
 info: >
-    The String prototype object is itself a String object (its [[Class]] is
-    "String")
+    The String prototype object is itself not a String object (its [[Class]]
+    is "Object")
 es5id: 15.5.4_A1
 description: >
     first we delete String.prototype.toString cause it overrides
@@ -16,8 +16,8 @@ delete String.prototype.toString;
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (String.prototype.toString() !== "[object "+"String"+"]") {
-  $ERROR('#1: delete String.prototype.toString; String.prototype.toString() === "[object "+"String"+"]". Actual: String.prototype.toString() ==='+String.prototype.toString() ); 
+if (String.prototype.toString() !== "[object "+"Object"+"]") {
+  $ERROR('#1: delete String.prototype.toString; String.prototype.toString() === "[object "+"Object"+"]". Actual: String.prototype.toString() ==='+String.prototype.toString() );
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/S15.5.4_A2.js b/test/suite/ch15/15.5/15.5.4/S15.5.4_A2.js
index 8d28ad383f34a4bc2a0ac24dd386d96e6d9ac858..e3efd8db9536c6a8f23784213a8b9311b37bcba7 100644
--- a/test/suite/ch15/15.5/15.5.4/S15.5.4_A2.js
+++ b/test/suite/ch15/15.5/15.5.4/S15.5.4_A2.js
@@ -2,17 +2,22 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: >
-    The String prototype object is itself a String object whose value is an
-    empty string
+info: The String prototype object is itself not a String object
 es5id: 15.5.4_A2
 description: Checking String.prototype
+includes: [$FAIL.js]
 ---*/
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (String.prototype !="") {
-  $ERROR('#1: String.prototype =="". Actual: String.prototype =='+String.prototype ); 
+try {
+  (String.prototype !="");
+  $FAIL('#1: "(String.prototype !="");" lead to throwing exception. Actual: '+(String.prototype !=""));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "(String.prototype !="")" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
+
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.5/15.5.4/S15.5.4_A3.js b/test/suite/ch15/15.5/15.5.4/S15.5.4_A3.js
index 6633499f4539241116efdd1b58108f240666eed8..433ce049b2645c565e93965181b1f969b5e4b587 100644
--- a/test/suite/ch15/15.5/15.5.4/S15.5.4_A3.js
+++ b/test/suite/ch15/15.5/15.5.4/S15.5.4_A3.js
@@ -21,8 +21,8 @@ delete String.prototype.toString;
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#2
-if (String.prototype.toString() != "[object "+"String"+"]") {
-  $ERROR('#2: delete String.prototype.toString; String.prototype.toString() == "[object "+"String"+"]". Actual: String.prototype.toString() =='+String.prototype.toString() ); 
+if (String.prototype.toString() != "[object "+"Object"+"]") {
+  $ERROR('#2: delete String.prototype.toString; String.prototype.toString() == "[object "+"Object"+"]". Actual: String.prototype.toString() =='+String.prototype.toString() );
 }
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/suite/ch15/15.6/15.6.3/15.6.3.1/S15.6.3.1_A1.js b/test/suite/ch15/15.6/15.6.3/15.6.3.1/S15.6.3.1_A1.js
index abdd3fb88aaad9169f459f5a9642bb78b39b5f95..9daeede972cea55bb632e9b8c18b5d53bbc3e211 100644
--- a/test/suite/ch15/15.6/15.6.3/15.6.3.1/S15.6.3.1_A1.js
+++ b/test/suite/ch15/15.6/15.6.3/15.6.3.1/S15.6.3.1_A1.js
@@ -7,6 +7,7 @@ info: >
     prototype object
 es5id: 15.6.3.1_A1
 description: Checking Boolean.prototype property
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
@@ -15,12 +16,17 @@ if (typeof Boolean.prototype !== "object") {
 }
 
 //CHECK#2
-if (Boolean.prototype != false) {
-  $ERROR('#2: Boolean.prototype == false');
+try {
+  (Boolean.prototype != false);
+  $FAIL('#2: "(Boolean.prototype != false);" lead to throwing exception. Actual: '+(Boolean.prototype != false));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#2.1: "(Boolean.prototype != false)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 delete Boolean.prototype.toString;
 
-if (Boolean.prototype.toString() !== "[object Boolean]") {
-  $ERROR('#3: The [[Class]] property of the Boolean prototype object is set to "Boolean"');
+if (Boolean.prototype.toString() !== "[object Object]") {
+  $ERROR('#3: The [[Class]] property of the Boolean prototype object is set to "Object"');
 }
diff --git a/test/suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T1.js b/test/suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T1.js
index e81cacc79938aca4334b1b558cab14fac20473c0..ecf174bfd33c1e2581432cad72df3d9e32c4a3fe 100644
--- a/test/suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T1.js
+++ b/test/suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T1.js
@@ -8,11 +8,17 @@ info: >
     "false" is returned
 es5id: 15.6.4.2_A1_T1
 description: no arguments
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Boolean.prototype.toString() !== "false"){
-  $ERROR('#1: Boolean.prototype.toString() === "false"');
+try {
+  (Boolean.prototype.toString() !== "false");
+  $FAIL('#1: "(Boolean.prototype.toString() !== "false");" lead to throwing exception. Actual: '+(Boolean.prototype.toString() !== "false"));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "(Boolean.prototype.toString() !== "false")" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T2.js b/test/suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T2.js
index 310256bf6fccff53f0c712711ba51de59fba6616..2fcc7e385503cefb8d27a60ec989949d73b4ccff 100644
--- a/test/suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T2.js
+++ b/test/suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T2.js
@@ -8,11 +8,17 @@ info: >
     "false" is returned
 es5id: 15.6.4.2_A1_T2
 description: with some argument
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Boolean.prototype.toString(true) !== "false"){
-  $ERROR('#1: Boolean.prototype.toString(true) === "false"');
+try {
+  (Boolean.prototype.toString(true) !== "false");
+  $FAIL('#1: "(Boolean.prototype.toString(true) !== "false");" lead to throwing exception. Actual: '+(Boolean.prototype.toString(true) !== "false"));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "(Boolean.prototype.toString(true) !== "false")" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T1.js b/test/suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T1.js
index 27e0a89360727be7dc9ccb361882a71ddf2f489b..6d75e1c21bc4801f618e5e89a9f3aca47e76dc03 100644
--- a/test/suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T1.js
+++ b/test/suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T1.js
@@ -5,11 +5,17 @@
 info: Boolean.prototype.valueOf() returns this boolean value
 es5id: 15.6.4.3_A1_T1
 description: no arguments
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Boolean.prototype.valueOf() !== false){
-  $ERROR('#1: Boolean.prototype.valueOf() === false');
+try {
+  (Boolean.prototype.valueOf() !== false);
+  $FAIL('#1: "(Boolean.prototype.valueOf() !== false);" lead to throwing exception. Actual: '+(Boolean.prototype.valueOf() !== false));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "(Boolean.prototype.valueOf() !== false)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T2.js b/test/suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T2.js
index 9300d4e85614135495945bc48dc75cb437795a7a..1e059bcafe64f7c99394d35a1a8561afeeab8d85 100644
--- a/test/suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T2.js
+++ b/test/suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T2.js
@@ -5,11 +5,17 @@
 info: Boolean.prototype.valueOf() returns this boolean value
 es5id: 15.6.4.3_A1_T2
 description: calling with argument
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Boolean.prototype.valueOf(true) !== false){
-  $ERROR('#1: Boolean.prototype.valueOf(true) === false');
+try {
+  (Boolean.prototype.valueOf(true) !== false);
+  $FAIL('#1: "(Boolean.prototype.valueOf(true) !== false);" lead to throwing exception. Actual: '+(Boolean.prototype.valueOf(true) !== false));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "(Boolean.prototype.valueOf(true) !== false)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.6/15.6.4/S15.6.4_A1.js b/test/suite/ch15/15.6/15.6.4/S15.6.4_A1.js
index dcec08f4e0f4606e09b50ab62014942405150328..87f5ff017ec90511032abdbf8c6ac98a8c469a47 100644
--- a/test/suite/ch15/15.6/15.6.4/S15.6.4_A1.js
+++ b/test/suite/ch15/15.6/15.6.4/S15.6.4_A1.js
@@ -3,10 +3,11 @@
 
 /*---
 info: >
-    The Boolean prototype object is itself a Boolean object
-    (its [[Class]] is "Boolean") whose value is false
+    The Boolean prototype object is itself not a Boolean object
+    (its [[Class]] is "Object")
 es5id: 15.6.4_A1
 description: Checking type and value of Boolean.prototype
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
@@ -15,12 +16,17 @@ if (typeof Boolean.prototype !== "object") {
 }
 
 //CHECK#2
-if (Boolean.prototype != false) {
-  $ERROR('#2: Boolean.prototype == false');
+try {
+  (Boolean.prototype != false);
+  $FAIL('#2: "(Boolean.prototype != false);" lead to throwing exception. Actual: '+(Boolean.prototype != false));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#2.1: "(Boolean.prototype != false)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 delete Boolean.prototype.toString;
 
-if (Boolean.prototype.toString() !== "[object Boolean]") {
-  $ERROR('#3: The [[Class]] property of the Boolean prototype object is set to "Boolean"');
+if (Boolean.prototype.toString() !== "[object Object]") {
+  $ERROR('#3: The [[Class]] property of the Boolean prototype object is set to "Object"');
 }
diff --git a/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T1.js b/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T1.js
index a95379833938486c1be08019510a865bac729534..08a68e127471bc12ff13e70c5b79812ad2eac9d4 100644
--- a/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T1.js
+++ b/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T1.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Number.prototype is itself Number object
+info: Number.prototype is itself not a Number object
 es5id: 15.7.3.1_A2_T1
 description: >
     Checking type of Number.prototype property - test based on
@@ -16,6 +16,6 @@ if (typeof Number.prototype !== "object") {
 
 delete Number.prototype.toString;
 
-if (Number.prototype.toString() !== "[object Number]") {
-  $ERROR('#3: The [[Class]] property of the Number prototype object is set to "Number"');
+if (Number.prototype.toString() !== "[object Object]") {
+  $ERROR('#3: The [[Class]] property of the Number prototype object is set to "Object"');
 }
diff --git a/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T2.js b/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T2.js
index c69df9a8b2a910caecc252c39c6fb97c6b534624..1e6eaacfbcf37bc1ebcc719f500187669018aae6 100644
--- a/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T2.js
+++ b/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T2.js
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Number.prototype is itself Number object
+info: Number.prototype is itself not a Number object
 es5id: 15.7.3.1_A2_T2
 description: >
     Checking type of Number.prototype property - test based on
@@ -16,6 +16,6 @@ if (typeof Number.prototype !== "object") {
 
 Number.prototype.toString = Object.prototype.toString;
 
-if (Number.prototype.toString() !== "[object Number]") {
-  $ERROR('#3: The [[Class]] property of the Number prototype object is set to "Number"');
+if (Number.prototype.toString() !== "[object Object]") {
+  $ERROR('#3: The [[Class]] property of the Number prototype object is set to "Object"');
 }
diff --git a/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A3.js b/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A3.js
index 5f86ce5fa5f81f0bc389f8aabf3864d4e5965c5e..d0bcc47dcc9c742e7c01be63f5fbdf0c0b7d8a2c 100644
--- a/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A3.js
+++ b/test/suite/ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A3.js
@@ -2,14 +2,18 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: Number.prototype value is +0
+info: Number.prototype value is not +0
 es5id: 15.7.3.1_A3
 description: Checking value of Number.prototype property
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if (Number.prototype != 0) {
-  $ERROR('#2: Number.prototype == +0');
-} else if( 1/Number.prototype != Number.POSITIVE_INFINITY){
-  $ERROR('#2: Number.prototype == +0');
+try {
+  (Number.prototype != 0);
+  $FAIL('#1: "(Number.prototype != 0);" lead to throwing exception. Actual: '+(Number.prototype != 0));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "(Number.prototype != 0)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4-1.js b/test/suite/ch15/15.7/15.7.4/15.7.4-1.js
index 6adee31338e73d5658c5ad4caed0d5a17226f728..df609fe50a945f8294c31dcbfe13d591bd42eaed 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4-1.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4-1.js
@@ -6,13 +6,13 @@
 
 /*---
 es5id: 15.7.4-1
-description: "Number prototype object: its [[Class]] must be 'Number'"
+description: "Number prototype object: its [[Class]] must be 'Object'"
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
   var numProto = Object.getPrototypeOf(new Number(42));
   var s = Object.prototype.toString.call(numProto );
-  return (s === '[object Number]') ;
+  return (s === '[object Object]') ;
  }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T01.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T01.js
index 7fcef1cb9d644a94a01ec7b0fc16d1f3543809cb..536c5ace335f53f1a6b9ea300778c64816a770b9 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T01.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T01.js
@@ -8,11 +8,17 @@ info: >
     the resulting string value is returned
 es5id: 15.7.4.2_A1_T01
 description: undefined radix
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString() !== "0"){
-  $ERROR('#1: Number.prototype.toString() === "0"');
+try {
+  Number.prototype.toString();
+  $FAIL('#1: "Number.prototype.toString();" lead to throwing exception. Actual: '+Number.prototype.toString());
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString()" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T02.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T02.js
index 03aacb9a7b859b46573c4d685a553f4a6c87614e..8545bca2331196ce5d03b84aac51fac6b48e202d 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T02.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T02.js
@@ -8,11 +8,17 @@ info: >
     the resulting string value is returned
 es5id: 15.7.4.2_A1_T02
 description: radix is 10
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(10) !== "0"){
-  $ERROR('#1: Number.prototype.toString(10) === "0"');
+try {
+  Number.prototype.toString(10);
+  $FAIL('#1: "Number.prototype.toString(10);" lead to throwing exception. Actual: '+Number.prototype.toString(10));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(10)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T03.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T03.js
index 2b701765e4af58f39754bc39415efd92f4216da4..7b4ae2df0ab8865f60cb2bd9226d5e7ea5da2e5a 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T03.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T03.js
@@ -8,11 +8,17 @@ info: >
     the resulting string value is returned
 es5id: 15.7.4.2_A1_T03
 description: radix is undefined value
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(undefined) !== "0"){
-  $ERROR('#1: Number.prototype.toString(undefined) === "0"');
+try {
+  Number.prototype.toString(undefined);
+  $FAIL('#1: "Number.prototype.toString(undefined);" lead to throwing exception. Actual: '+Number.prototype.toString(undefined));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(undefined)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T01.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T01.js
index bf2534bb619fc9e08e506ce736f2a451fba6be84..c17441d0647a33d0deb5fd267764879b51f328fd 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T01.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T01.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T01
 description: radix is 2
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(2) !== "0"){
-  $ERROR('#1: Number.prototype.toString(2) === "0"');
+try {
+  Number.prototype.toString(2);
+  $FAIL('#1: "Number.prototype.toString(2);" lead to throwing exception. Actual: '+Number.prototype.toString(2));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(2)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T02.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T02.js
index a9b2ef733f4d453233aa0602c389a6019904b0f6..54c52b8f384b9cb1e6a5167ac44a81f6b2f2b11a 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T02.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T02.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T02
 description: radix is 3
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(3) !== "0"){
-  $ERROR('#1: Number.prototype.toString(3) === "0"');
+try {
+  Number.prototype.toString(3);
+  $FAIL('#1: "Number.prototype.toString(3);" lead to throwing exception. Actual: '+Number.prototype.toString(3));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(3)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T03.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T03.js
index 00761b262cf5755e3e818b0c1576f5a38721e414..0197cbea3d80edb3f9aa942ce8df93699a804c38 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T03.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T03.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T03
 description: radix is 4
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(4) !== "0"){
-  $ERROR('#1: Number.prototype.toString(4) === "0"');
+try {
+  Number.prototype.toString(4);
+  $FAIL('#1: "Number.prototype.toString(4);" lead to throwing exception. Actual: '+Number.prototype.toString(4));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(4)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T04.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T04.js
index 27f30f4eae53d07c57b10b9efa4971c1a1d99012..55a8ad851bf8dca833576f320e2bfc124b1201d5 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T04.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T04.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T04
 description: radix is 5
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(5) !== "0"){
-  $ERROR('#1: Number.prototype.toString(5) === "0"');
+try {
+  Number.prototype.toString(5);
+  $FAIL('#1: "Number.prototype.toString(5);" lead to throwing exception. Actual: '+Number.prototype.toString(5));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(5)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T05.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T05.js
index fd022b515b93779eac88f7e0b4dc17c6507c498d..2e554f7441eea1b8f1a20c21bb061fe57f86066a 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T05.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T05.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T05
 description: radix is 6
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(6) !== "0"){
-  $ERROR('#1: Number.prototype.toString(6) === "0"');
+try {
+  Number.prototype.toString(6);
+  $FAIL('#1: "Number.prototype.toString(6);" lead to throwing exception. Actual: '+Number.prototype.toString(6));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(6)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T06.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T06.js
index 4ddf517df326fdb680ed16e4dc2b9913f6afbcc8..796a9aba846478716e0f2c49de6af668356af666 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T06.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T06.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T06
 description: radix is 7
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(7) !== "0"){
-  $ERROR('#1: Number.prototype.toString(7) === "0"');
+try {
+  Number.prototype.toString(7);
+  $FAIL('#1: "Number.prototype.toString(7);" lead to throwing exception. Actual: '+Number.prototype.toString(7));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(7)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T07.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T07.js
index ff85a714906f9480e53b2f0b2fcc82bb23cc0692..abbacb3e30f426b49186cdb65f90003c0c74aeb5 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T07.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T07.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T07
 description: radix is 8
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(8) !== "0"){
-  $ERROR('#1: Number.prototype.toString(8) === "0"');
+try {
+  Number.prototype.toString(8);
+  $FAIL('#1: "Number.prototype.toString(8);" lead to throwing exception. Actual: '+Number.prototype.toString(8));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(8)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T08.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T08.js
index 6f673ab01327717d1716af8713733cf5b4b6cd89..ee631bf88498f367c7d42dda6a7812140163cafb 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T08.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T08.js
@@ -7,13 +7,18 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T08
 description: radix is 9
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(9) !== "0"){
-  $ERROR('#1: Number.prototype.toString(9) === "0"');
+try {
+  Number.prototype.toString(9);
+  $FAIL('#1: "Number.prototype.toString(9);" lead to throwing exception. Actual: '+Number.prototype.toString(9));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(9)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
-
 //CHECK#2
 if((new Number()).toString(9) !== "0"){
   $ERROR('#2: (new Number()).toString(9) === "0"');
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T09.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T09.js
index f9e5852baaa0771a79df476e2b74f1a45efc9c47..cef78b15bea67bc820eb828ce7f94478f6b0ca4c 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T09.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T09.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T09
 description: radix is 11
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(11) !== "0"){
-  $ERROR('#1: Number.prototype.toString(11) === "0"');
+try {
+  Number.prototype.toString(11);
+  $FAIL('#1: "Number.prototype.toString(11);" lead to throwing exception. Actual: '+Number.prototype.toString(11));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(11)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T10.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T10.js
index 5d53c2bef27cc330bc82aad0079c604ac00ef9cb..133cb947681cd21d295a2cd546f51b57fdf284de 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T10.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T10.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T10
 description: radix is 12
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(12) !== "0"){
-  $ERROR('#1: Number.prototype.toString(12) === "0"');
+try {
+  Number.prototype.toString(12);
+  $FAIL('#1: "Number.prototype.toString(12);" lead to throwing exception. Actual: '+Number.prototype.toString(12));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(12)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T11.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T11.js
index abd79ee344f70e15eb78c3358a9a07b293ae48e5..9b2deca9f5d13e07ee88d48c167dc7f11e5745f1 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T11.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T11.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T11
 description: radix is 13
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(13) !== "0"){
-  $ERROR('#1: Number.prototype.toString(13) === "0"');
+try {
+  Number.prototype.toString(13);
+  $FAIL('#1: "Number.prototype.toString(13);" lead to throwing exception. Actual: '+Number.prototype.toString(13));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(13)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T12.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T12.js
index 4b9dcd63015881545846646ca1b3258602e30acf..464191e078e973a133dca4676e7abe922a8a7614 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T12.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T12.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T12
 description: radix is 14
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(14) !== "0"){
-  $ERROR('#1: Number.prototype.toString(14) === "0"');
+try {
+  Number.prototype.toString(14);
+  $FAIL('#1: "Number.prototype.toString(14);" lead to throwing exception. Actual: '+Number.prototype.toString(14));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(14)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T13.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T13.js
index f134115029a68abc5b0598c91446451db9615dd1..dd0cb89a3e277aeb4922e0c9710a8de36c00b00a 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T13.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T13.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T13
 description: radix is 15
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(15) !== "0"){
-  $ERROR('#1: Number.prototype.toString(15) === "0"');
+try {
+  Number.prototype.toString(15);
+  $FAIL('#1: "Number.prototype.toString(15);" lead to throwing exception. Actual: '+Number.prototype.toString(15));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(15)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T14.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T14.js
index f78fe04dd5d89f6ee7e7f59fd601ce550a1f19a2..362a67568d61824fe22870502176b876fedcc396 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T14.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T14.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T14
 description: radix is 16
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(16) !== "0"){
-  $ERROR('#1: Number.prototype.toString(16) === "0"');
+try {
+  Number.prototype.toString(16);
+  $FAIL('#1: "Number.prototype.toString(16);" lead to throwing exception. Actual: '+Number.prototype.toString(16));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(16)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T15.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T15.js
index bf5cfe27f356e25260cb50529be31b8565b134af..17573e524248941fe65758df67948714059cf6d8 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T15.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T15.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T15
 description: radix is 17
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(17) !== "0"){
-  $ERROR('#1: Number.prototype.toString(17) === "0"');
+try {
+  Number.prototype.toString(17);
+  $FAIL('#1: "Number.prototype.toString(17);" lead to throwing exception. Actual: '+Number.prototype.toString(17));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(17)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T16.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T16.js
index 002e0cfeb4223d6aa73f4900700b73d63bd23d3c..aa523c21ea8eca1a1007000e9c6f431eaf9b53cf 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T16.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T16.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T16
 description: radix is 18
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(18) !== "0"){
-  $ERROR('#1: Number.prototype.toString(18) === "0"');
+try {
+  Number.prototype.toString(18);
+  $FAIL('#1: "Number.prototype.toString(18);" lead to throwing exception. Actual: '+Number.prototype.toString(18));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(18)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T17.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T17.js
index 90773b31e59d07a54396615e73519c7056e2bfb3..cbee3f1e113743812f494293b5940e6bc95b39d8 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T17.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T17.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T17
 description: radix is 19
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(19) !== "0"){
-  $ERROR('#1: Number.prototype.toString(19) === "0"');
+try {
+  Number.prototype.toString(19);
+  $FAIL('#1: "Number.prototype.toString(19);" lead to throwing exception. Actual: '+Number.prototype.toString(19));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(19)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T18.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T18.js
index e521f4e04e338ef0a3dc48a7c35ea7795ec82ec4..fcf4aafe45ef3ef21d43a596e52240ce8272325f 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T18.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T18.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T18
 description: radix is 20
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(20) !== "0"){
-  $ERROR('#1: Number.prototype.toString(20) === "0"');
+try {
+  Number.prototype.toString(20);
+  $FAIL('#1: "Number.prototype.toString(20);" lead to throwing exception. Actual: '+Number.prototype.toString(20));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(20)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T19.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T19.js
index 85265d53b0a57a95f78c6b8b198e264ffc3bef18..55f6a0f25bc9d3c8cd93f4ffe7ed91bfa878b5a3 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T19.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T19.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T19
 description: radix is 21
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(21) !== "0"){
-  $ERROR('#1: Number.prototype.toString(21) === "0"');
+try {
+  Number.prototype.toString(21);
+  $FAIL('#1: "Number.prototype.toString(21);" lead to throwing exception. Actual: '+Number.prototype.toString(21));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(21)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T20.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T20.js
index 038e832ce021a6deee9ce05d2897d6ce1cc9eb98..0a9df39c4e4ebf57742a552efdf14d19221e6b97 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T20.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T20.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T20
 description: radix is 22
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(22) !== "0"){
-  $ERROR('#1: Number.prototype.toString(22) === "0"');
+try {
+  Number.prototype.toString(22);
+  $FAIL('#1: "Number.prototype.toString(22);" lead to throwing exception. Actual: '+Number.prototype.toString(22));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(22)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T21.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T21.js
index e82878b19cd8d6242a6e65019924d48705c2b2c7..571842649315f29a4d3c75f2449387c883014ac8 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T21.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T21.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T21
 description: radix is 23
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(23) !== "0"){
-  $ERROR('#1: Number.prototype.toString(23) === "0"');
+try {
+  Number.prototype.toString(23);
+  $FAIL('#1: "Number.prototype.toString(23);" lead to throwing exception. Actual: '+Number.prototype.toString(23));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(23)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T22.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T22.js
index ead76b2fe20ade83841ff5e86f9c7009e5330c13..a64a164eb11645755747a5d30aa61bd78e32bcbb 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T22.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T22.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T22
 description: radix is 24
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(24) !== "0"){
-  $ERROR('#1: Number.prototype.toString(24) === "0"');
+try {
+  Number.prototype.toString(24);
+  $FAIL('#1: "Number.prototype.toString(24);" lead to throwing exception. Actual: '+Number.prototype.toString(24));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(24)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T23.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T23.js
index d8f277e50c0a18b8996f8a87fd3085df904a7bae..407adef04e382525b479e8a4e8623c10a6365acc 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T23.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T23.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T23
 description: radix is 25
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(25) !== "0"){
-  $ERROR('#1: Number.prototype.toString(25) === "0"');
+try {
+  Number.prototype.toString(25);
+  $FAIL('#1: "Number.prototype.toString(25);" lead to throwing exception. Actual: '+Number.prototype.toString(25));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(25)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T24.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T24.js
index 8bac6eff9456d49edc6b6fddbcc290f32b06bf3a..fe9b4c86da7c246da47d267615cb31ec683a5809 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T24.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T24.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T24
 description: radix is 26
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(26) !== "0"){
-  $ERROR('#1: Number.prototype.toString(26) === "0"');
+try {
+  Number.prototype.toString(26);
+  $FAIL('#1: "Number.prototype.toString(26);" lead to throwing exception. Actual: '+Number.prototype.toString(26));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(26)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T25.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T25.js
index 3bdff1ea9c73279fd9a4bc7d67453be0a0a73659..7985d0920be12a11978660f2f04b6c8196a54344 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T25.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T25.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T25
 description: radix is 27
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(27) !== "0"){
-  $ERROR('#1: Number.prototype.toString(27) === "0"');
+try {
+  Number.prototype.toString(27);
+  $FAIL('#1: "Number.prototype.toString(27);" lead to throwing exception. Actual: '+Number.prototype.toString(27));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(27)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T26.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T26.js
index 3f918a3460590c6b6e140043a3b77a46697195ba..36d9851e1ffa1baa05edc6281ca8a46eb650cca9 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T26.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T26.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T26
 description: radix is 28
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(28) !== "0"){
-  $ERROR('#1: Number.prototype.toString(28) === "0"');
+try {
+  Number.prototype.toString(28);
+  $FAIL('#1: "Number.prototype.toString(28);" lead to throwing exception. Actual: '+Number.prototype.toString(28));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(28)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T27.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T27.js
index 46181050a38a2f8166aff4188349edd9f347b304..793ed9cd30b103937e71b6a31221a17689e2bb00 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T27.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T27.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T27
 description: radix is 29
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(29) !== "0"){
-  $ERROR('#1: Number.prototype.toString(29) === "0"');
+try {
+  Number.prototype.toString(29);
+  $FAIL('#1: "Number.prototype.toString(29);" lead to throwing exception. Actual: '+Number.prototype.toString(29));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(29)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T28.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T28.js
index 20cbfbf0a7ad78599059e1c9294adf55c38b3258..18f96d6f7823acce8ac529f81b553d717f528b20 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T28.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T28.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T28
 description: radix is 30
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(30) !== "0"){
-  $ERROR('#1: Number.prototype.toString(30) === "0"');
+try {
+  Number.prototype.toString(30);
+  $FAIL('#1: "Number.prototype.toString(30);" lead to throwing exception. Actual: '+Number.prototype.toString(30));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(30)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T29.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T29.js
index 27ba3de869b251dfb319313b008738cb059fa65d..4814a7c6f401b8127987909cb53744faab656e04 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T29.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T29.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T29
 description: radix is 31
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(31) !== "0"){
-  $ERROR('#1: Number.prototype.toString(31) === "0"');
+try {
+  Number.prototype.toString(31);
+  $FAIL('#1: "Number.prototype.toString(31);" lead to throwing exception. Actual: '+Number.prototype.toString(31));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(31)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T30.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T30.js
index 1cf762a35c0b393888b0414286d2fd5a3b42c999..d74683210185efb06a15a2461d69bb6f544b8341 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T30.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T30.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T30
 description: radix is 32
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(32) !== "0"){
-  $ERROR('#1: Number.prototype.toString(32) === "0"');
+try {
+  Number.prototype.toString(32);
+  $FAIL('#1: "Number.prototype.toString(32);" lead to throwing exception. Actual: '+Number.prototype.toString(32));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(32)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T31.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T31.js
index d3b4a0f2912d098763f91f996315be04616cc874..29c856202a707f6c091a5a937d216f6ed3eabd4b 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T31.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T31.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T31
 description: radix is 33
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(33) !== "0"){
-  $ERROR('#1: Number.prototype.toString(33) === "0"');
+try {
+  Number.prototype.toString(33);
+  $FAIL('#1: "Number.prototype.toString(33);" lead to throwing exception. Actual: '+Number.prototype.toString(33));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(33)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T32.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T32.js
index bab5115d3ada6cf9f337bba97ad69e8562bfc31d..8067fc2618e783e1e8a8ff8506726decf48098d1 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T32.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T32.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T32
 description: radix is 34
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(34) !== "0"){
-  $ERROR('#1: Number.prototype.toString(34) === "0"');
+try {
+  Number.prototype.toString(34);
+  $FAIL('#1: "Number.prototype.toString(34);" lead to throwing exception. Actual: '+Number.prototype.toString(34));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(34)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T33.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T33.js
index 7433850375ec14b016fe3c4f5514d29756c1affc..fc3c34ef82c622a9923b86c45bada169bb996a58 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T33.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T33.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T33
 description: radix is 35
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(35) !== "0"){
-  $ERROR('#1: Number.prototype.toString(35) === "0"');
+try {
+  Number.prototype.toString(35);
+  $FAIL('#1: "Number.prototype.toString(35);" lead to throwing exception. Actual: '+Number.prototype.toString(35));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(35)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T34.js b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T34.js
index aa1cdebbe709f40700b8fef74dd13aaa52d8bde6..091e4903747a660a5e9f642ba8c5e6d0bbc2f8dd 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T34.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T34.js
@@ -7,11 +7,17 @@ info: >
     the result is a string, the choice of which is implementation-dependent
 es5id: 15.7.4.2_A2_T34
 description: radix is 36
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toString(36) !== "0"){
-  $ERROR('#1: Number.prototype.toString(36) === "0"');
+try {
+  Number.prototype.toString(36);
+  $FAIL('#1: "Number.prototype.toString(36);" lead to throwing exception. Actual: '+Number.prototype.toString(36));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toString(36)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T01.js b/test/suite/ch15/15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T01.js
index e6fc4d41deabc080eff5fd0fe87c27b680555012..2c218e3683e7cf881db95f5d3d6a0c664a5e9b36 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T01.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T01.js
@@ -5,11 +5,17 @@
 info: Number.prototype.valueOf() returns this number value
 es5id: 15.7.4.4_A1_T01
 description: Call without argument
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.valueOf() !== 0){
-  $ERROR('#1: Number.prototype.valueOf() === 0');
+try {
+  Number.prototype.valueOf();
+  $FAIL('#1: "Number.prototype.valueOf();" lead to throwing exception. Actual: '+Number.prototype.valueOf());
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.valueOf()" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T02.js b/test/suite/ch15/15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T02.js
index ce82e1f0c95ae61f8303b47ac47f2f1dd9f42476..b1e6cbf1e60b3c3640d97cdcf2c0341b956720cb 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T02.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T02.js
@@ -5,11 +5,17 @@
 info: Number.prototype.valueOf() returns this number value
 es5id: 15.7.4.4_A1_T02
 description: calling with argument
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.valueOf("argument") !== 0){
-  $ERROR('#1: Number.prototype.valueOf("argument") === 0');
+try {
+  Number.prototype.valueOf("argument");
+  $FAIL('#1: "Number.prototype.valueOf("argument");" lead to throwing exception. Actual: '+Number.prototype.valueOf("argument"));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.valueOf("argument")" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
diff --git a/test/suite/ch15/15.7/15.7.4/15.7.4.5/S15.7.4.5_A1.1_T01.js b/test/suite/ch15/15.7/15.7.4/15.7.4.5/S15.7.4.5_A1.1_T01.js
index 628a88eaea3904c2e25299ae2de96b7d82728cf9..d91c64221137789b835c36c69fb4f6c414335b42 100644
--- a/test/suite/ch15/15.7/15.7.4/15.7.4.5/S15.7.4.5_A1.1_T01.js
+++ b/test/suite/ch15/15.7/15.7.4/15.7.4.5/S15.7.4.5_A1.1_T01.js
@@ -7,64 +7,115 @@ info: >
     is undefined, this step produces the value 0)
 es5id: 15.7.4.5_A1.1_T01
 description: calling on Number prototype object
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
-if(Number.prototype.toFixed() !== "0"){
-  $ERROR('#1: Number.prototype.toFixed() === "0"');
+try {
+  Number.prototype.toFixed();
+  $FAIL('#1: "Number.prototype.toFixed();" lead to throwing exception. Actual: '+Number.prototype.toFixed());
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#1.1: "Number.prototype.toFixed()" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#2
-if(Number.prototype.toFixed(0) !== "0"){
-  $ERROR('#2: Number.prototype.toFixed(0) === "0"');
+try {
+  Number.prototype.toFixed(0);
+  $FAIL('#2: "Number.prototype.toFixed(0);" lead to throwing exception. Actual: '+Number.prototype.toFixed(0));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#2.1: "Number.prototype.toFixed(0)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#3
-if(Number.prototype.toFixed(1) !== "0.0"){
-  $ERROR('#3: Number.prototype.toFixed(1) === "0.0"');
+try {
+  Number.prototype.toFixed(1);
+  $FAIL('#3: "Number.prototype.toFixed(1);" lead to throwing exception. Actual: '+Number.prototype.toFixed(1));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#3.1: "Number.prototype.toFixed(1)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#4
-if(Number.prototype.toFixed(1.1) !== "0.0"){
-  $ERROR('#4: Number.prototype.toFixed(1.1) === "0.0"');
+try {
+  Number.prototype.toFixed(1.1);
+  $FAIL('#4: "Number.prototype.toFixed(1.1);" lead to throwing exception. Actual: '+Number.prototype.toFixed(1.1));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#4.1: "Number.prototype.toFixed(1.1)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#5
-if(Number.prototype.toFixed(0.9) !== "0"){
-  $ERROR('#5: Number.prototype.toFixed(0.9) === "0"');
+try {
+  Number.prototype.toFixed(0.9);
+  $FAIL('#5: "Number.prototype.toFixed(0.9);" lead to throwing exception. Actual: '+Number.prototype.toFixed(0.9));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#5.1: "Number.prototype.toFixed(0.9)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#6
-if(Number.prototype.toFixed("1") !== "0.0"){
-  $ERROR('#6: Number.prototype.toFixed("1") === "0.0"');
+try {
+  Number.prototype.toFixed("1");
+  $FAIL('#6: "Number.prototype.toFixed("1");" lead to throwing exception. Actual: '+Number.prototype.toFixed("1"));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#6.1: "Number.prototype.toFixed("1")" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#7
-if(Number.prototype.toFixed("1.1") !== "0.0"){
-  $ERROR('#7: Number.prototype.toFixed("1.1") === "0.0"');
+try {
+  Number.prototype.toFixed("1.1");
+  $FAIL('#7: "Number.prototype.toFixed("1.1");" lead to throwing exception. Actual: '+Number.prototype.toFixed("1.1"));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#7.1: "Number.prototype.toFixed("1.1")" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#8
-if(Number.prototype.toFixed("0.9") !== "0"){
-  $ERROR('#8: Number.prototype.toFixed("0.9") === "0"');
+try {
+  Number.prototype.toFixed("0.9");
+  $FAIL('#8: "Number.prototype.toFixed("0.9");" lead to throwing exception. Actual: '+Number.prototype.toFixed("0.9"));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#8.1: "Number.prototype.toFixed("0.9")" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#9
-if(Number.prototype.toFixed(Number.NaN) !== "0"){
-  $ERROR('#9: Number.prototype.toFixed(Number.NaN) === "0"');
+try {
+  Number.prototype.toFixed(Number.NaN);
+  $FAIL('#9: "Number.prototype.toFixed(Number.NaN);" lead to throwing exception. Actual: '+Number.prototype.toFixed(Number.NaN));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#9.1: "Number.prototype.toFixed(Number.NaN)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 //CHECK#10
-if(Number.prototype.toFixed("some string") !== "0"){
-  $ERROR('#9: Number.prototype.toFixed("some string") === "0"');
+try {
+  Number.prototype.toFixed("some string");
+  $FAIL('#10: "Number.prototype.toFixed("some string");" lead to throwing exception. Actual: '+Number.prototype.toFixed("some string"));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#10.1: "Number.prototype.toFixed("some string")" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
-//CHECK#10
-try{
-  if(Number.prototype.toFixed(-0.1) !== "0"){
-    $ERROR('#10: Number.prototype.toFixed(-0.1) === "0"');
+//CHECK#11
+try {
+  Number.prototype.toFixed(-0.1);
+  $FAIL('#11: "Number.prototype.toFixed(-0.1);" lead to throwing exception. Actual: '+Number.prototype.toFixed(-0.1));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#11.1: "Number.prototype.toFixed(-0.1)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
   }
 }
-catch(e){
-  $ERROR('#10: Number.prototype.toFixed(-0.1) should not throw '+e);
-}
diff --git a/test/suite/ch15/15.7/15.7.4/S15.7.4_A1.js b/test/suite/ch15/15.7/15.7.4/S15.7.4_A1.js
index 6b69865b7a61c7ba1a21c551abf21706bb048f8f..957be71eeda0ff59262b4b9c814fc29a81874158 100644
--- a/test/suite/ch15/15.7/15.7.4/S15.7.4_A1.js
+++ b/test/suite/ch15/15.7/15.7.4/S15.7.4_A1.js
@@ -3,10 +3,11 @@
 
 /*---
 info: >
-    The Number prototype object is itself a Number object
+    The Number prototype object is itself a not Number object
     (its [[Class]] is "Number") whose value is +0
 es5id: 15.7.4_A1
 description: Checking type and value of Number.prototype property
+includes: [$FAIL.js]
 ---*/
 
 //CHECK#1
@@ -15,14 +16,17 @@ if (typeof Number.prototype !== "object") {
 }
 
 //CHECK#2
-if (Number.prototype != 0) {
-  $ERROR('#2: Number.prototype == +0');
-} else if( 1/Number.prototype != Number.POSITIVE_INFINITY){
-  $ERROR('#2: Number.prototype == +0');
+try {
+  (Number.prototype != 0);
+  $FAIL('#2: "(Number.prototype != 0);" lead to throwing exception. Actual: '+(Number.prototype != 0));
+} catch (e) {
+  if (!(e instanceof TypeError)) {
+    $ERROR('#2.1: "(Number.prototype != 0)" lead to throwing exception. Exception is instance of TypeError. Actual: exception is '+e);
+  }
 }
 
 delete Number.prototype.toString;
 
-if (Number.prototype.toString() !== "[object Number]") {
-  $ERROR('#3: The [[Class]] property of the Number prototype object is set to "Number"');
+if (Number.prototype.toString() !== "[object Object]") {
+  $ERROR('#3: The [[Class]] property of the Number prototype object is set to "Object"');
 }
diff --git a/test/suite/ch15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.js b/test/suite/ch15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.js
index 2153f8e817a0bb6770971e2e9b2e03d54e164ad9..d4f4f199892e575be865ad3c400fa81ecf9006c0 100644
--- a/test/suite/ch15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.js
+++ b/test/suite/ch15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.js
@@ -15,7 +15,7 @@ includes: [runTestCase.js]
 
 function testcase() {
         var result = false;
-        var expectedDateTimeStr = "1970-01-01T00:00:00.000Z";
+        var expectedDateTimeStr = new Date(1970, 0, 1, 0, 0, 0, 0).toISOString();
         var dateObj = new Date("1970");
         var dateStr = dateObj.toISOString();
         result = dateStr === expectedDateTimeStr;
diff --git a/test/suite/ch15/15.9/15.9.4/15.9.4.2/S15.9.4.2_A3_T2.js b/test/suite/ch15/15.9/15.9.4/15.9.4.2/S15.9.4.2_A3_T2.js
index 8dbbaa064cac4ccf9aac33616dff2c40cfdec006..672a83baff7fc35d1ae38c8d86f21d37195cb19f 100644
--- a/test/suite/ch15/15.9/15.9.4/15.9.4.2/S15.9.4.2_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.4/15.9.4.2/S15.9.4.2_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.parse property "length" has { ReadOnly, DontDelete, DontEnum }
+    The Date.parse property "length" has { ReadOnly, ! DontDelete, DontEnum }
     attributes
 es5id: 15.9.4.2_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.parse.length  !== false) {
-  $ERROR('#1: The Date.parse.length property has the attributes DontDelete');
+if (delete Date.parse.length  !== true) {
+  $ERROR('#1: The Date.parse.length property does not have the attributes DontDelete');
 }
 
-if (!Date.parse.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.parse.length property has the attributes DontDelete');
+if (Date.parse.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.parse.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.4/15.9.4.3/S15.9.4.3_A3_T2.js b/test/suite/ch15/15.9/15.9.4/15.9.4.3/S15.9.4.3_A3_T2.js
index 45096a18b39e4735c87bb3992454a6f9b46c5b0c..b2b705b362065c815fcccf7db8b1612e7801ccfd 100644
--- a/test/suite/ch15/15.9/15.9.4/15.9.4.3/S15.9.4.3_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.4/15.9.4.3/S15.9.4.3_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.UTC property "length" has { ReadOnly, DontDelete, DontEnum }
+    The Date.UTC property "length" has { ReadOnly, ! DontDelete, DontEnum }
     attributes
 es5id: 15.9.4.3_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.UTC.length  !== false) {
-  $ERROR('#1: The Date.UTC.length property has the attributes DontDelete');
+if (delete Date.UTC.length  !== true) {
+  $ERROR('#1: The Date.UTC.length property does not have the attributes DontDelete');
 }
 
-if (!Date.UTC.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.UTC.length property has the attributes DontDelete');
+if (Date.UTC.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.UTC.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.1/S15.9.5.1_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.1/S15.9.5.1_A3_T2.js
index 706cc63bbe77ae8670eb9d2b1be4f5723411da99..bd3a007b4ad4055316a238a97e93bb43d95c4a37 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.1/S15.9.5.1_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.1/S15.9.5.1_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.constructor property "length" has { ReadOnly,
+    The Date.prototype.constructor property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.1_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.constructor.length  !== false) {
-  $ERROR('#1: The Date.prototype.constructor.length property has the attributes DontDelete');
+if (delete Date.prototype.constructor.length  !== true) {
+  $ERROR('#1: The Date.prototype.constructor.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.constructor.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.constructor.length property has the attributes DontDelete');
+if (Date.prototype.constructor.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.constructor.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.10/S15.9.5.10_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.10/S15.9.5.10_A3_T2.js
index bc879d78a250f4b5c9fb9d0622db6077f85c76f1..c67a54531ff4732beedded5df64043fa79eea0f1 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.10/S15.9.5.10_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.10/S15.9.5.10_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getFullYear property "length" has { ReadOnly,
+    The Date.prototype.getFullYear property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.10_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getFullYear.length  !== false) {
-  $ERROR('#1: The Date.prototype.getFullYear.length property has the attributes DontDelete');
+if (delete Date.prototype.getFullYear.length  !== true) {
+  $ERROR('#1: The Date.prototype.getFullYear.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getFullYear.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getFullYear.length property has the attributes DontDelete');
+if (Date.prototype.getFullYear.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getFullYear.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.11/S15.9.5.11_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.11/S15.9.5.11_A3_T2.js
index adc02e921c16546fec23c382125626998ddb2f6c..bc85f9486a0cc4ad88884d70198610015ff501e8 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.11/S15.9.5.11_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.11/S15.9.5.11_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getUTCFullYear property "length" has { ReadOnly,
+    The Date.prototype.getUTCFullYear property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.11_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getUTCFullYear.length  !== false) {
-  $ERROR('#1: The Date.prototype.getUTCFullYear.length property has the attributes DontDelete');
+if (delete Date.prototype.getUTCFullYear.length  !== true) {
+  $ERROR('#1: The Date.prototype.getUTCFullYear.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getUTCFullYear.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getUTCFullYear.length property has the attributes DontDelete');
+if (Date.prototype.getUTCFullYear.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getUTCFullYear.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.12/S15.9.5.12_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.12/S15.9.5.12_A3_T2.js
index c463f052579704bc50eb11ab1be193f67398d07c..0b8f16ddc35ea43a61ec725bbd402b60764a75da 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.12/S15.9.5.12_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.12/S15.9.5.12_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getMonth property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.getMonth property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.12_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getMonth.length  !== false) {
-  $ERROR('#1: The Date.prototype.getMonth.length property has the attributes DontDelete');
+if (delete Date.prototype.getMonth.length  !== true) {
+  $ERROR('#1: The Date.prototype.getMonth.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getMonth.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getMonth.length property has the attributes DontDelete');
+if (Date.prototype.getMonth.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getMonth.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.13/S15.9.5.13_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.13/S15.9.5.13_A3_T2.js
index 36f25432e35fb3f04337e5b0de1ea4c96a2a1f3b..03923b56e9e9230c56682ff38a8bd1b2bd95eb77 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.13/S15.9.5.13_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.13/S15.9.5.13_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getUTCMonth property "length" has { ReadOnly,
+    The Date.prototype.getUTCMonth property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.13_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getUTCMonth.length  !== false) {
-  $ERROR('#1: The Date.prototype.getUTCMonth.length property has the attributes DontDelete');
+if (delete Date.prototype.getUTCMonth.length  !== true) {
+  $ERROR('#1: The Date.prototype.getUTCMonth.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getUTCMonth.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getUTCMonth.length property has the attributes DontDelete');
+if (Date.prototype.getUTCMonth.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getUTCMonth.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.14/S15.9.5.14_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.14/S15.9.5.14_A3_T2.js
index 6438930cb1dd14b94ad24d0389a3a4a1e3ab89c3..339ac47c2b19385422a4cd50c2eed779c65791a3 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.14/S15.9.5.14_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.14/S15.9.5.14_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getDate property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.getDate property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.14_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getDate.length  !== false) {
-  $ERROR('#1: The Date.prototype.getDate.length property has the attributes DontDelete');
+if (delete Date.prototype.getDate.length  !== true) {
+  $ERROR('#1: The Date.prototype.getDate.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getDate.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getDate.length property has the attributes DontDelete');
+if (Date.prototype.getDate.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getDate.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.15/S15.9.5.15_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.15/S15.9.5.15_A3_T2.js
index 689b9d7672c9a81a869ca612c2dc0cd7558a4a92..722eb61320b6572056d282e0e6fd197dff2026fe 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.15/S15.9.5.15_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.15/S15.9.5.15_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getUTCDate property "length" has { ReadOnly,
+    The Date.prototype.getUTCDate property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.15_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getUTCDate.length  !== false) {
-  $ERROR('#1: The Date.prototype.getUTCDate.length property has the attributes DontDelete');
+if (delete Date.prototype.getUTCDate.length  !== true) {
+  $ERROR('#1: The Date.prototype.getUTCDate.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getUTCDate.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getUTCDate.length property has the attributes DontDelete');
+if (Date.prototype.getUTCDate.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getUTCDate.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.16/S15.9.5.16_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.16/S15.9.5.16_A3_T2.js
index a0b0343f398793c6c36fcb681f273f062a54effb..0400a9a25ba1ba826f20b66bad824c4268a74eb4 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.16/S15.9.5.16_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.16/S15.9.5.16_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getDay property "length" has { ReadOnly, DontDelete,
+    The Date.prototype.getDay property "length" has { ReadOnly, ! DontDelete,
     DontEnum } attributes
 es5id: 15.9.5.16_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getDay.length  !== false) {
-  $ERROR('#1: The Date.prototype.getDay.length property has the attributes DontDelete');
+if (delete Date.prototype.getDay.length  !== true) {
+  $ERROR('#1: The Date.prototype.getDay.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getDay.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getDay.length property has the attributes DontDelete');
+if (Date.prototype.getDay.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getDay.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.17/S15.9.5.17_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.17/S15.9.5.17_A3_T2.js
index 5b2730dcf67ca2650a52f753563b7be2419aa417..65ae79f935ee24f178afd93fd3438a12481c20fe 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.17/S15.9.5.17_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.17/S15.9.5.17_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getUTCDay property "length" has { ReadOnly,
+    The Date.prototype.getUTCDay property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.17_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getUTCDay.length  !== false) {
-  $ERROR('#1: The Date.prototype.getUTCDay.length property has the attributes DontDelete');
+if (delete Date.prototype.getUTCDay.length  !== true) {
+  $ERROR('#1: The Date.prototype.getUTCDay.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getUTCDay.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getUTCDay.length property has the attributes DontDelete');
+if (Date.prototype.getUTCDay.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getUTCDay.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.18/S15.9.5.18_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.18/S15.9.5.18_A3_T2.js
index 5ce42713c12f7936e46396bc35f7d218eac91358..fbd9265a4443afffd024c7b09452e31cb3a869e9 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.18/S15.9.5.18_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.18/S15.9.5.18_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getHours property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.getHours property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.18_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getHours.length  !== false) {
-  $ERROR('#1: The Date.prototype.getHours.length property has the attributes DontDelete');
+if (delete Date.prototype.getHours.length  !== true) {
+  $ERROR('#1: The Date.prototype.getHours.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getHours.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getHours.length property has the attributes DontDelete');
+if (Date.prototype.getHours.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getHours.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.19/S15.9.5.19_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.19/S15.9.5.19_A3_T2.js
index c1e26ef8d9e20d844ec412e0d4c8f8fa7445c516..e850716e7d3f92b7b61da803a3e0163543c5204e 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.19/S15.9.5.19_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.19/S15.9.5.19_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getUTCHours property "length" has { ReadOnly,
+    The Date.prototype.getUTCHours property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.19_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getUTCHours.length  !== false) {
-  $ERROR('#1: The Date.prototype.getUTCHours.length property has the attributes DontDelete');
+if (delete Date.prototype.getUTCHours.length  !== true) {
+  $ERROR('#1: The Date.prototype.getUTCHours.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getUTCHours.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getUTCHours.length property has the attributes DontDelete');
+if (Date.prototype.getUTCHours.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getUTCHours.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.2/S15.9.5.2_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.2/S15.9.5.2_A3_T2.js
index a6a31a3bc1082fe502436c314cf0c3e946771cb8..c2be0b2af00664ff2cc2ad70f8afc19714bc083b 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.2/S15.9.5.2_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.2/S15.9.5.2_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.toString property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.toString property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.2_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.toString.length  !== false) {
-  $ERROR('#1: The Date.prototype.toString.length property has the attributes DontDelete');
+if (delete Date.prototype.toString.length  !== true) {
+  $ERROR('#1: The Date.prototype.toString.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.toString.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.toString.length property has the attributes DontDelete');
+if (Date.prototype.toString.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.toString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.20/S15.9.5.20_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.20/S15.9.5.20_A3_T2.js
index 95845eb9504b0a0727a260d64f36b7d343c22dd2..064ea8f81bd73cd7c62a75e2418b00f0403fe3fc 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.20/S15.9.5.20_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.20/S15.9.5.20_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getMinutes property "length" has { ReadOnly,
+    The Date.prototype.getMinutes property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.20_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getMinutes.length  !== false) {
-  $ERROR('#1: The Date.prototype.getMinutes.length property has the attributes DontDelete');
+if (delete Date.prototype.getMinutes.length  !== true) {
+  $ERROR('#1: The Date.prototype.getMinutes.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getMinutes.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getMinutes.length property has the attributes DontDelete');
+if (Date.prototype.getMinutes.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getMinutes.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.21/S15.9.5.21_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.21/S15.9.5.21_A3_T2.js
index a76667d3f661fd33faee02087426980db934f1a1..a7806830bd2b83163fdd2a775500578c6ba871a3 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.21/S15.9.5.21_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.21/S15.9.5.21_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getUTCMinutes property "length" has { ReadOnly,
+    The Date.prototype.getUTCMinutes property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.21_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getUTCMinutes.length  !== false) {
-  $ERROR('#1: The Date.prototype.getUTCMinutes.length property has the attributes DontDelete');
+if (delete Date.prototype.getUTCMinutes.length  !== true) {
+  $ERROR('#1: The Date.prototype.getUTCMinutes.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getUTCMinutes.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getUTCMinutes.length property has the attributes DontDelete');
+if (Date.prototype.getUTCMinutes.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getUTCMinutes.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.22/S15.9.5.22_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.22/S15.9.5.22_A3_T2.js
index 72ee328c16aec2a438993ae5780509d48dc5f6c3..6477272b39ea30855f89cb5e5e350ce6f04fcd21 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.22/S15.9.5.22_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.22/S15.9.5.22_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getSeconds property "length" has { ReadOnly,
+    The Date.prototype.getSeconds property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.22_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getSeconds.length  !== false) {
-  $ERROR('#1: The Date.prototype.getSeconds.length property has the attributes DontDelete');
+if (delete Date.prototype.getSeconds.length  !== true) {
+  $ERROR('#1: The Date.prototype.getSeconds.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getSeconds.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getSeconds.length property has the attributes DontDelete');
+if (Date.prototype.getSeconds.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getSeconds.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.23/S15.9.5.23_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.23/S15.9.5.23_A3_T2.js
index bfe0b51acc69dd6e472c37c99dc7e0b8752dae74..033e80c1a46d6755e5c1ac30a022536d732da660 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.23/S15.9.5.23_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.23/S15.9.5.23_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getUTCSeconds property "length" has { ReadOnly,
+    The Date.prototype.getUTCSeconds property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.23_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getUTCSeconds.length  !== false) {
-  $ERROR('#1: The Date.prototype.getUTCSeconds.length property has the attributes DontDelete');
+if (delete Date.prototype.getUTCSeconds.length  !== true) {
+  $ERROR('#1: The Date.prototype.getUTCSeconds.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getUTCSeconds.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getUTCSeconds.length property has the attributes DontDelete');
+if (Date.prototype.getUTCSeconds.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getUTCSeconds.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.24/S15.9.5.24_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.24/S15.9.5.24_A3_T2.js
index 90ca44188eab3d58110923b2f171dc3ff2e0028e..d833652f48cb3784b1c6eddfc895bd6da0b83cd2 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.24/S15.9.5.24_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.24/S15.9.5.24_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getMilliseconds property "length" has { ReadOnly,
+    The Date.prototype.getMilliseconds property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.24_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getMilliseconds.length  !== false) {
-  $ERROR('#1: The Date.prototype.getMilliseconds.length property has the attributes DontDelete');
+if (delete Date.prototype.getMilliseconds.length  !== true) {
+  $ERROR('#1: The Date.prototype.getMilliseconds.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getMilliseconds.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getMilliseconds.length property has the attributes DontDelete');
+if (Date.prototype.getMilliseconds.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getMilliseconds.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.25/S15.9.5.25_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.25/S15.9.5.25_A3_T2.js
index b3e1c288d86596263664f524dae3f86f0d8acaea..5b1608e11fda4f8059877cbf1e2107f5393642c4 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.25/S15.9.5.25_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.25/S15.9.5.25_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getUTCMilliseconds property "length" has { ReadOnly,
+    The Date.prototype.getUTCMilliseconds property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.25_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getUTCMilliseconds.length  !== false) {
-  $ERROR('#1: The Date.prototype.getUTCMilliseconds.length property has the attributes DontDelete');
+if (delete Date.prototype.getUTCMilliseconds.length  !== true) {
+  $ERROR('#1: The Date.prototype.getUTCMilliseconds.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getUTCMilliseconds.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getUTCMilliseconds.length property has the attributes DontDelete');
+if (Date.prototype.getUTCMilliseconds.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getUTCMilliseconds.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.26/S15.9.5.26_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.26/S15.9.5.26_A3_T2.js
index 81c9c0a7a30d425669b503ff0dfa5860259848fa..92e4ad15ee0da8158ebbb2bcf6b5a8c162d13cb3 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.26/S15.9.5.26_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.26/S15.9.5.26_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getTimezoneOffset property "length" has { ReadOnly,
+    The Date.prototype.getTimezoneOffset property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.26_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getTimezoneOffset.length  !== false) {
-  $ERROR('#1: The Date.prototype.getTimezoneOffset.length property has the attributes DontDelete');
+if (delete Date.prototype.getTimezoneOffset.length  !== true) {
+  $ERROR('#1: The Date.prototype.getTimezoneOffset.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getTimezoneOffset.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getTimezoneOffset.length property has the attributes DontDelete');
+if (Date.prototype.getTimezoneOffset.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getTimezoneOffset.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.27/S15.9.5.27_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.27/S15.9.5.27_A3_T2.js
index d0378174971e059778a8a49deb043abde390e386..c9f6de29609529902de04f6d6a04fd8820183d58 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.27/S15.9.5.27_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.27/S15.9.5.27_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setTime property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.setTime property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.27_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setTime.length  !== false) {
-  $ERROR('#1: The Date.prototype.setTime.length property has the attributes DontDelete');
+if (delete Date.prototype.setTime.length  !== true) {
+  $ERROR('#1: The Date.prototype.setTime.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setTime.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setTime.length property has the attributes DontDelete');
+if (Date.prototype.setTime.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setTime.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.28/S15.9.5.28_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.28/S15.9.5.28_A3_T2.js
index 892a329b6226870f58084c1951d4824d51251e0f..e24fa1705794d9839caa36dbaf2566d260f5b0ff 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.28/S15.9.5.28_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.28/S15.9.5.28_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setMilliseconds property "length" has { ReadOnly,
+    The Date.prototype.setMilliseconds property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.28_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setMilliseconds.length  !== false) {
-  $ERROR('#1: The Date.prototype.setMilliseconds.length property has the attributes DontDelete');
+if (delete Date.prototype.setMilliseconds.length  !== true) {
+  $ERROR('#1: The Date.prototype.setMilliseconds.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setMilliseconds.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setMilliseconds.length property has the attributes DontDelete');
+if (Date.prototype.setMilliseconds.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setMilliseconds.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.29/S15.9.5.29_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.29/S15.9.5.29_A3_T2.js
index 828b60157c1f8c3a7a0fb1210a63559829c817f0..7282c3915302ed0035539b3961a0be93bc248e83 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.29/S15.9.5.29_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.29/S15.9.5.29_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setUTCMilliseconds property "length" has { ReadOnly,
+    The Date.prototype.setUTCMilliseconds property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.29_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setUTCMilliseconds.length  !== false) {
-  $ERROR('#1: The Date.prototype.setUTCMilliseconds.length property has the attributes DontDelete');
+if (delete Date.prototype.setUTCMilliseconds.length  !== true) {
+  $ERROR('#1: The Date.prototype.setUTCMilliseconds.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setUTCMilliseconds.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setUTCMilliseconds.length property has the attributes DontDelete');
+if (Date.prototype.setUTCMilliseconds.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setUTCMilliseconds.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.3/S15.9.5.3_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.3/S15.9.5.3_A3_T2.js
index 3935ff2a360c14df65f8a11ddd32ef75e66355ef..d297f959a2f40b4aae37be1c9b3dabfde0959063 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.3/S15.9.5.3_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.3/S15.9.5.3_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.toDateString property "length" has { ReadOnly,
+    The Date.prototype.toDateString property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.3_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.toDateString.length  !== false) {
-  $ERROR('#1: The Date.prototype.toDateString.length property has the attributes DontDelete');
+if (delete Date.prototype.toDateString.length  !== true) {
+  $ERROR('#1: The Date.prototype.toDateString.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.toDateString.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.toDateString.length property has the attributes DontDelete');
+if (Date.prototype.toDateString.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.toDateString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.30/S15.9.5.30_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.30/S15.9.5.30_A3_T2.js
index dcf03523dcff7fe2babe0d5a17a19da29e2f63a0..9ddb4d8d172a30c78e210f87ac7099019238ae99 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.30/S15.9.5.30_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.30/S15.9.5.30_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setSeconds property "length" has { ReadOnly,
+    The Date.prototype.setSeconds property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.30_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setSeconds.length  !== false) {
-  $ERROR('#1: The Date.prototype.setSeconds.length property has the attributes DontDelete');
+if (delete Date.prototype.setSeconds.length  !== true) {
+  $ERROR('#1: The Date.prototype.setSeconds.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setSeconds.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setSeconds.length property has the attributes DontDelete');
+if (Date.prototype.setSeconds.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setSeconds.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.31/S15.9.5.31_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.31/S15.9.5.31_A3_T2.js
index f57fbff3aff7871510c4fa9e45280852e2d12366..823fc9a808760bb38e36d5615505d6f612de2324 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.31/S15.9.5.31_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.31/S15.9.5.31_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setUTCSeconds property "length" has { ReadOnly,
+    The Date.prototype.setUTCSeconds property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.31_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setUTCSeconds.length  !== false) {
-  $ERROR('#1: The Date.prototype.setUTCSeconds.length property has the attributes DontDelete');
+if (delete Date.prototype.setUTCSeconds.length  !== true) {
+  $ERROR('#1: The Date.prototype.setUTCSeconds.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setUTCSeconds.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setUTCSeconds.length property has the attributes DontDelete');
+if (Date.prototype.setUTCSeconds.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setUTCSeconds.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.32/S15.9.5.32_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.32/S15.9.5.32_A3_T2.js
index 0af064acb8de97fcf66d19f10f8337443e88ed8c..1577b743f927558e87016472ee677d14679c4965 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.32/S15.9.5.32_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.32/S15.9.5.32_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setMinutes property "length" has { ReadOnly,
+    The Date.prototype.setMinutes property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.32_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setMinutes.length  !== false) {
-  $ERROR('#1: The Date.prototype.setMinutes.length property has the attributes DontDelete');
+if (delete Date.prototype.setMinutes.length  !== true) {
+  $ERROR('#1: The Date.prototype.setMinutes.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setMinutes.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setMinutes.length property has the attributes DontDelete');
+if (Date.prototype.setMinutes.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setMinutes.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.33/S15.9.5.33_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.33/S15.9.5.33_A3_T2.js
index 32bfde6966e09d08b7126b1967e5ac6b45759990..e46973d2774b256528ebe131b445846417856e48 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.33/S15.9.5.33_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.33/S15.9.5.33_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setUTCMinutes property "length" has { ReadOnly,
+    The Date.prototype.setUTCMinutes property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.33_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setUTCMinutes.length  !== false) {
-  $ERROR('#1: The Date.prototype.setUTCMinutes.length property has the attributes DontDelete');
+if (delete Date.prototype.setUTCMinutes.length  !== true) {
+  $ERROR('#1: The Date.prototype.setUTCMinutes.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setUTCMinutes.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setUTCMinutes.length property has the attributes DontDelete');
+if (Date.prototype.setUTCMinutes.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setUTCMinutes.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.34/S15.9.5.34_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.34/S15.9.5.34_A3_T2.js
index a713516d1b527e390cd981bf7f6052d0221b468e..2237d13d662628bd345a045322f49c87525115fe 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.34/S15.9.5.34_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.34/S15.9.5.34_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setHours property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.setHours property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.34_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setHours.length  !== false) {
-  $ERROR('#1: The Date.prototype.setHours.length property has the attributes DontDelete');
+if (delete Date.prototype.setHours.length  !== true) {
+  $ERROR('#1: The Date.prototype.setHours.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setHours.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setHours.length property has the attributes DontDelete');
+if (Date.prototype.setHours.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setHours.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.35/S15.9.5.35_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.35/S15.9.5.35_A3_T2.js
index 4028217595e83f9814b7a851768726491a6f7a85..282025d152430304399eb46c92fa4c7a3e9a6515 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.35/S15.9.5.35_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.35/S15.9.5.35_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setUTCHours property "length" has { ReadOnly,
+    The Date.prototype.setUTCHours property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.35_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setUTCHours.length  !== false) {
-  $ERROR('#1: The Date.prototype.setUTCHours.length property has the attributes DontDelete');
+if (delete Date.prototype.setUTCHours.length  !== true) {
+  $ERROR('#1: The Date.prototype.setUTCHours.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setUTCHours.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setUTCHours.length property has the attributes DontDelete');
+if (Date.prototype.setUTCHours.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setUTCHours.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.36/S15.9.5.36_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.36/S15.9.5.36_A3_T2.js
index 7ab08c183991a9fcf6d68afd46b10a7401200f4c..1633c3df3296ab2cad5c6977555df531ecf56971 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.36/S15.9.5.36_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.36/S15.9.5.36_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setDate property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.setDate property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.36_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setDate.length  !== false) {
-  $ERROR('#1: The Date.prototype.setDate.length property has the attributes DontDelete');
+if (delete Date.prototype.setDate.length  !== true) {
+  $ERROR('#1: The Date.prototype.setDate.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setDate.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setDate.length property has the attributes DontDelete');
+if (Date.prototype.setDate.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setDate.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.37/S15.9.5.37_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.37/S15.9.5.37_A3_T2.js
index f4175be7a53cb7a261177566887cd96d9e9e6f61..ad6ba00b38a2d41238c6753acc7f1b4d70de3f44 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.37/S15.9.5.37_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.37/S15.9.5.37_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setUTCDate property "length" has { ReadOnly,
+    The Date.prototype.setUTCDate property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.37_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setUTCDate.length  !== false) {
-  $ERROR('#1: The Date.prototype.setUTCDate.length property has the attributes DontDelete');
+if (delete Date.prototype.setUTCDate.length  !== true) {
+  $ERROR('#1: The Date.prototype.setUTCDate.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setUTCDate.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setUTCDate.length property has the attributes DontDelete');
+if (Date.prototype.setUTCDate.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setUTCDate.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.38/S15.9.5.38_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.38/S15.9.5.38_A3_T2.js
index c4e513a620153856e1af01c368739d71b3884f4b..194ebaa6c57c6dad9f48a3bc68bc9b65326ddf31 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.38/S15.9.5.38_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.38/S15.9.5.38_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setMonth property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.setMonth property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.38_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setMonth.length  !== false) {
-  $ERROR('#1: The Date.prototype.setMonth.length property has the attributes DontDelete');
+if (delete Date.prototype.setMonth.length  !== true) {
+  $ERROR('#1: The Date.prototype.setMonth.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setMonth.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setMonth.length property has the attributes DontDelete');
+if (Date.prototype.setMonth.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setMonth.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.39/S15.9.5.39_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.39/S15.9.5.39_A3_T2.js
index 80e6a69c94a6d5fc626ed8eb3a8507b2bdbe960e..fdb4dbad71f853aba05156824d10ad351ae8b5b1 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.39/S15.9.5.39_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.39/S15.9.5.39_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setUTCMonth property "length" has { ReadOnly,
+    The Date.prototype.setUTCMonth property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.39_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setUTCMonth.length  !== false) {
-  $ERROR('#1: The Date.prototype.setUTCMonth.length property has the attributes DontDelete');
+if (delete Date.prototype.setUTCMonth.length  !== true) {
+  $ERROR('#1: The Date.prototype.setUTCMonth.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setUTCMonth.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setUTCMonth.length property has the attributes DontDelete');
+if (Date.prototype.setUTCMonth.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setUTCMonth.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.4/S15.9.5.4_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.4/S15.9.5.4_A3_T2.js
index 6cb3aa040112a26ef3559a2edb858b2b4cfbf4ad..2a8fe4a9da5e20fe223f8825e1ff513c703c2f2a 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.4/S15.9.5.4_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.4/S15.9.5.4_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.toTimeString property "length" has { ReadOnly,
+    The Date.prototype.toTimeString property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.4_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.toTimeString.length  !== false) {
-  $ERROR('#1: The Date.prototype.toTimeString.length property has the attributes DontDelete');
+if (delete Date.prototype.toTimeString.length  !== true) {
+  $ERROR('#1: The Date.prototype.toTimeString.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.toTimeString.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.toTimeString.length property has the attributes DontDelete');
+if (Date.prototype.toTimeString.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.toTimeString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.40/15.9.5.40_1.js b/test/suite/ch15/15.9/15.9.5/15.9.5.40/15.9.5.40_1.js
index b34a2c6facf2c051bed43aa2f63b1669a5e5a0d0..732cc8481083e9fb95c95f783121795a96a33adf 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.40/15.9.5.40_1.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.40/15.9.5.40_1.js
@@ -7,18 +7,19 @@
 /*---
 es5id: 15.9.5.40_1
 description: >
-    Date.prototype.setFullYear - Date.prototype is itself an instance
-    of Date
+    Date.prototype.setFullYear - Date.prototype is itself not an
+    instance of Date
 includes: [runTestCase.js]
 ---*/
 
 function testcase() {
     try {
-        var origYear = Date.prototype.getFullYear();
         Date.prototype.setFullYear(2012);
-        return Date.prototype.getFullYear()===2012;
-    } finally {
-        Date.prototype.setFullYear(origYear);
+    } catch (e) {
+        if (e instanceof TypeError) {
+            return true;
+        }
     }
+    return false;
 }
 runTestCase(testcase);
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.40/S15.9.5.40_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.40/S15.9.5.40_A3_T2.js
index e389b41a9a525a229ae60661aab72efab758e9d5..2eafc662ea0a1fc3d8e35116663860606683bed4 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.40/S15.9.5.40_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.40/S15.9.5.40_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setFullYear property "length" has { ReadOnly,
+    The Date.prototype.setFullYear property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.40_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setFullYear.length  !== false) {
-  $ERROR('#1: The Date.prototype.setFullYear.length property has the attributes DontDelete');
+if (delete Date.prototype.setFullYear.length  !== true) {
+  $ERROR('#1: The Date.prototype.setFullYear.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setFullYear.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setFullYear.length property has the attributes DontDelete');
+if (Date.prototype.setFullYear.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setFullYear.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.41/S15.9.5.41_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.41/S15.9.5.41_A3_T2.js
index faa1ddb5f257c0b331d43645f3917fe4f3632f2f..3b8a0bea371f257d0d19130ab53ab2bc4fafa6f8 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.41/S15.9.5.41_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.41/S15.9.5.41_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.setUTCFullYear property "length" has { ReadOnly,
+    The Date.prototype.setUTCFullYear property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.41_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.setUTCFullYear.length  !== false) {
-  $ERROR('#1: The Date.prototype.setUTCFullYear.length property has the attributes DontDelete');
+if (delete Date.prototype.setUTCFullYear.length  !== true) {
+  $ERROR('#1: The Date.prototype.setUTCFullYear.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.setUTCFullYear.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.setUTCFullYear.length property has the attributes DontDelete');
+if (Date.prototype.setUTCFullYear.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.setUTCFullYear.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.42/S15.9.5.42_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.42/S15.9.5.42_A3_T2.js
index d0361613180c994dfc52777c7dc31232e47db8a3..05ec9df91cc364edd28365f7271d8b1c4c8108a1 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.42/S15.9.5.42_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.42/S15.9.5.42_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.toUTCString property "length" has { ReadOnly,
+    The Date.prototype.toUTCString property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.42_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.toUTCString.length  !== false) {
-  $ERROR('#1: The Date.prototype.toUTCString.length property has the attributes DontDelete');
+if (delete Date.prototype.toUTCString.length  !== true) {
+  $ERROR('#1: The Date.prototype.toUTCString.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.toUTCString.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.toUTCString.length property has the attributes DontDelete');
+if (Date.prototype.toUTCString.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.toUTCString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.5/S15.9.5.5_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.5/S15.9.5.5_A3_T2.js
index 1c25c04bb43c3a56b5fb0dab15d266a3fa777083..52febd120159bdd7627e6c6a2bf9a913cfbe1371 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.5/S15.9.5.5_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.5/S15.9.5.5_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.toLocaleString property "length" has { ReadOnly,
+    The Date.prototype.toLocaleString property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.5_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.toLocaleString.length  !== false) {
-  $ERROR('#1: The Date.prototype.toLocaleString.length property has the attributes DontDelete');
+if (delete Date.prototype.toLocaleString.length  !== true) {
+  $ERROR('#1: The Date.prototype.toLocaleString.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.toLocaleString.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.toLocaleString.length property has the attributes DontDelete');
+if (Date.prototype.toLocaleString.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.toLocaleString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.6/S15.9.5.6_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.6/S15.9.5.6_A3_T2.js
index 512bcdf0b5be7ade4a5c14fbe694b67c0db66154..c190415c83265d05198877846da3b41aa14da083 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.6/S15.9.5.6_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.6/S15.9.5.6_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.toLocaleDateString property "length" has { ReadOnly,
+    The Date.prototype.toLocaleDateString property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.6_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.toLocaleDateString.length  !== false) {
-  $ERROR('#1: The Date.prototype.toLocaleDateString.length property has the attributes DontDelete');
+if (delete Date.prototype.toLocaleDateString.length  !== true) {
+  $ERROR('#1: The Date.prototype.toLocaleDateString.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.toLocaleDateString.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.toLocaleDateString.length property has the attributes DontDelete');
+if (Date.prototype.toLocaleDateString.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.toLocaleDateString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.7/S15.9.5.7_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.7/S15.9.5.7_A3_T2.js
index 45a82a00323d7c47298225da41fc17fa386bd65c..c08572b292f871989625f67364b6f7ee7e9c6e38 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.7/S15.9.5.7_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.7/S15.9.5.7_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.toLocaleTimeString property "length" has { ReadOnly,
+    The Date.prototype.toLocaleTimeString property "length" has { ReadOnly, !
     DontDelete, DontEnum } attributes
 es5id: 15.9.5.7_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.toLocaleTimeString.length  !== false) {
-  $ERROR('#1: The Date.prototype.toLocaleTimeString.length property has the attributes DontDelete');
+if (delete Date.prototype.toLocaleTimeString.length  !== true) {
+  $ERROR('#1: The Date.prototype.toLocaleTimeString.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.toLocaleTimeString.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.toLocaleTimeString.length property has the attributes DontDelete');
+if (Date.prototype.toLocaleTimeString.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.toLocaleTimeString.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.8/S15.9.5.8_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.8/S15.9.5.8_A3_T2.js
index dba8e21922405018b8c66b5a9478d8e1778bd0ed..2279e196e8bce2b9d9145ac8383410ef01bf2cb0 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.8/S15.9.5.8_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.8/S15.9.5.8_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.valueOf property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.valueOf property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.8_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.valueOf.length  !== false) {
-  $ERROR('#1: The Date.prototype.valueOf.length property has the attributes DontDelete');
+if (delete Date.prototype.valueOf.length  !== true) {
+  $ERROR('#1: The Date.prototype.valueOf.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.valueOf.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.valueOf.length property has the attributes DontDelete');
+if (Date.prototype.valueOf.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.valueOf.length property does not have the attributes DontDelete');
 }
diff --git a/test/suite/ch15/15.9/15.9.5/15.9.5.9/S15.9.5.9_A3_T2.js b/test/suite/ch15/15.9/15.9.5/15.9.5.9/S15.9.5.9_A3_T2.js
index f8a93b50d1d2e85c086175d4cded82fb8dcaf03d..29f714300c7d73d8cb653840bf8b8535fd3f20df 100644
--- a/test/suite/ch15/15.9/15.9.5/15.9.5.9/S15.9.5.9_A3_T2.js
+++ b/test/suite/ch15/15.9/15.9.5/15.9.5.9/S15.9.5.9_A3_T2.js
@@ -3,17 +3,17 @@
 
 /*---
 info: >
-    The Date.prototype.getTime property "length" has { ReadOnly, DontDelete,
-    DontEnum } attributes
+    The Date.prototype.getTime property "length" has { ReadOnly, !
+    DontDelete, DontEnum } attributes
 es5id: 15.9.5.9_A3_T2
 description: Checking DontDelete attribute
 includes: [$FAIL.js]
 ---*/
 
-if (delete Date.prototype.getTime.length  !== false) {
-  $ERROR('#1: The Date.prototype.getTime.length property has the attributes DontDelete');
+if (delete Date.prototype.getTime.length  !== true) {
+  $ERROR('#1: The Date.prototype.getTime.length property does not have the attributes DontDelete');
 }
 
-if (!Date.prototype.getTime.hasOwnProperty('length')) {
-  $FAIL('#2: The Date.prototype.getTime.length property has the attributes DontDelete');
+if (Date.prototype.getTime.hasOwnProperty('length')) {
+  $FAIL('#2: The Date.prototype.getTime.length property does not have the attributes DontDelete');
 }