From 5c5dffce8b825404e6ebf73e20b06a57a5742a10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bargull?= <andre.bargull@gmail.com>
Date: Tue, 4 Feb 2014 20:37:40 +0100
Subject: [PATCH] es6 compatability updates

See also: https://github.com/tc39/test262/pull/29
---
 test/suite/ch11/11.2/11.2.1/S11.2.1_A4_T5.js  |   4 +-
 .../suite/ch11/11.4/11.4.1/11.4.1-5-a-28-s.js |  10 +-
 test/suite/ch12/12.1/S12.1_A4_T2.js           |   2 +-
 test/suite/ch12/12.14/12.14-1.js              |   7 +-
 test/suite/ch12/12.14/12.14-2.js              |   7 +-
 test/suite/ch13/13.2/13.2-15-1.js             |   2 +-
 .../15.1/15.1.2/15.1.2.1/S15.1.2.1_A4.2.js    |   6 +-
 .../15.1/15.1.2/15.1.2.2/S15.1.2.2_A9.2.js    |   6 +-
 .../15.1/15.1.2/15.1.2.3/S15.1.2.3_A7.2.js    |   6 +-
 .../15.1/15.1.2/15.1.2.4/S15.1.2.4_A2.2.js    |   6 +-
 .../15.1/15.1.2/15.1.2.5/S15.1.2.5_A2.2.js    |   6 +-
 .../15.1/15.1.3/15.1.3.1/S15.1.3.1_A5.2.js    |   6 +-
 .../15.1/15.1.3/15.1.3.2/S15.1.3.2_A5.2.js    |   8 +-
 .../15.1/15.1.3/15.1.3.3/S15.1.3.3_A5.2.js    |   6 +-
 .../15.1/15.1.3/15.1.3.4/S15.1.3.4_A5.2.js    |   8 +-
 .../15.10/15.10.6/15.10.6.2/S15.10.6.2_A9.js  |  12 +-
 .../15.10/15.10.6/15.10.6.3/S15.10.6.3_A9.js  |  12 +-
 .../15.10/15.10.6/15.10.6.4/S15.10.6.4_A9.js  |  12 +-
 test/suite/ch15/15.10/15.10.6/15.10.6.js      |   4 +-
 .../15.10/15.10.7/15.10.7.1/15.10.7.1-1.js    |  13 ++-
 .../15.10/15.10.7/15.10.7.1/15.10.7.1-2.js    |   9 +-
 .../15.10/15.10.7/15.10.7.1/S15.10.7.1_A10.js |  15 +--
 .../15.10/15.10.7/15.10.7.1/S15.10.7.1_A8.js  |  12 +-
 .../15.10/15.10.7/15.10.7.1/S15.10.7.1_A9.js  |  18 +--
 .../15.10/15.10.7/15.10.7.2/15.10.7.2-1.js    |  13 ++-
 .../15.10/15.10.7/15.10.7.2/15.10.7.2-2.js    |   9 +-
 .../15.10/15.10.7/15.10.7.2/S15.10.7.2_A10.js |  15 +--
 .../15.10/15.10.7/15.10.7.2/S15.10.7.2_A8.js  |  12 +-
 .../15.10/15.10.7/15.10.7.2/S15.10.7.2_A9.js  |  18 +--
 .../15.10/15.10.7/15.10.7.3/15.10.7.3-1.js    |  13 ++-
 .../15.10/15.10.7/15.10.7.3/15.10.7.3-2.js    |   9 +-
 .../15.10/15.10.7/15.10.7.3/S15.10.7.3_A10.js |  15 +--
 .../15.10/15.10.7/15.10.7.3/S15.10.7.3_A8.js  |  14 +--
 .../15.10/15.10.7/15.10.7.3/S15.10.7.3_A9.js  |  18 +--
 .../15.10/15.10.7/15.10.7.4/15.10.7.4-1.js    |  13 ++-
 .../15.10/15.10.7/15.10.7.4/15.10.7.4-2.js    |   9 +-
 .../15.10/15.10.7/15.10.7.4/S15.10.7.4_A10.js |  15 +--
 .../15.10/15.10.7/15.10.7.4/S15.10.7.4_A8.js  |  12 +-
 .../15.10/15.10.7/15.10.7.4/S15.10.7.4_A9.js  |  18 +--
 .../15.10/15.10.7/15.10.7.5/15.10.7.5-1.js    |   4 +-
 .../15.10/15.10.7/15.10.7.5/15.10.7.5-2.js    |  11 +-
 test/suite/ch15/15.11/15.11.4/S15.11.4_A2.js  |   6 +-
 .../15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js    |  13 +--
 .../15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js    |  11 +-
 .../15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js    |  13 +--
 .../15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js    |  13 +--
 .../ch15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.js |  16 +--
 .../ch15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.js |  16 +--
 .../15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js    |  13 +--
 .../15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js    |  13 +--
 .../15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js    |  13 +--
 .../15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js    |  13 +--
 .../ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.js |  16 +--
 .../15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.js    |  12 +-
 .../15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.js    |  12 +-
 .../15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.js    |  12 +-
 .../15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.js    |  12 +-
 .../ch15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.js |  16 +--
 .../15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.js    |  14 +--
 .../15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.js    |  14 +--
 .../15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js    |  14 +--
 .../ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.js |  11 +-
 .../ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.js |  11 +-
 .../ch15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.js   |  15 +--
 .../15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js     |   2 +-
 .../15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js     |   2 +-
 .../15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js     |   2 +-
 .../15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js     |   2 +-
 .../15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js     |   2 +-
 .../15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js     |   2 +-
 .../ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js |  13 +--
 .../ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js |  13 +--
 .../ch15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.js   |  14 +--
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js    |   6 +-
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js    |   6 +-
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js    |   6 +-
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js    |   6 +-
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js    |   6 +-
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js    |  12 +-
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js    |  12 +-
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js    |  12 +-
 .../15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js    |  12 +-
 .../ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js |  14 ++-
 .../ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js |  14 ++-
 .../ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js   |  14 ++-
 .../15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-3.js |   9 +-
 .../15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-4.js |   9 +-
 .../ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.js |  14 +--
 .../ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.js |  12 +-
 .../ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.js |  14 +--
 .../ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.js |  14 +--
 .../ch15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.js   |  16 +--
 .../ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.js |  14 +--
 .../ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.js |  14 +--
 .../ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js |  24 +---
 .../ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.js |  14 +--
 .../ch15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.js   |  14 +--
 .../ch15/15.2/15.2.4/15.2.4.2/S15.2.4.2_A9.js |  12 +-
 .../ch15/15.2/15.2.4/15.2.4.3/S15.2.4.3_A9.js |  12 +-
 .../ch15/15.2/15.2.4/15.2.4.4/S15.2.4.4_A9.js |  12 +-
 .../ch15/15.2/15.2.4/15.2.4.5/S15.2.4.5_A9.js |  12 +-
 .../ch15/15.2/15.2.4/15.2.4.6/S15.2.4.6_A9.js |   8 +-
 .../ch15/15.2/15.2.4/15.2.4.7/S15.2.4.7_A9.js |   8 +-
 .../ch15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js   |   2 +-
 .../ch15/15.3/15.3.4/15.3.4.2/S15.3.4.2_A9.js |  12 +-
 .../ch15/15.3/15.3.4/15.3.4.3/S15.3.4.3_A9.js |  12 +-
 .../ch15/15.3/15.3.4/15.3.4.4/S15.3.4.4_A9.js |  12 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-39gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-40gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-41gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-42gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-43gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-44gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-45gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-46gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-47gs.js   |   3 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-56gs.js   |   2 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-58gs.js   |   2 +-
 .../15.3/15.3.5/15.3.5.4/15.3.5.4_2-59gs.js   |   2 +-
 .../suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T1.js |  16 +--
 .../suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T2.js |  12 +-
 .../suite/ch15/15.3/15.3.5/S15.3.5.1_A2_T3.js |  12 +-
 .../ch15/15.4/15.4.3/15.4.3.1/S15.4.3.1_A5.js |  12 +-
 .../ch15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js |   4 +-
 test/suite/ch15/15.4/15.4.3/S15.4.3_A2.2.js   |   6 +-
 .../15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T1.js |  24 ++--
 .../15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T2.js |  24 ++--
 .../15.4/15.4.4/15.4.4.10/S15.4.4.10_A3_T3.js |   8 +-
 .../15.4/15.4.4/15.4.4.10/S15.4.4.10_A5.2.js  |   6 +-
 .../15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T1.js |  34 ------
 .../15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T2.js |  40 -------
 .../15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T3.js |  10 +-
 .../15.4/15.4.4/15.4.4.11/S15.4.4.11_A7.2.js  |   6 +-
 .../15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T1.js |  19 ++--
 .../15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T2.js |  34 ------
 .../15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T3.js |  18 +--
 .../15.4/15.4.4/15.4.4.12/S15.4.4.12_A5.2.js  |   6 +-
 .../15.4/15.4.4/15.4.4.13/S15.4.4.13_A2_T2.js |  17 ---
 .../15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T1.js |  53 ---------
 .../15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T2.js |  14 +--
 .../15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T3.js |  44 --------
 .../15.4/15.4.4/15.4.4.13/S15.4.4.13_A5.2.js  |   6 +-
 .../15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js   |   4 +-
 .../15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js   |   6 +-
 .../15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js   |   2 +-
 .../15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js   |   2 +-
 .../15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js    |   2 +-
 .../15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js    |   2 +-
 .../15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js   |   8 +-
 .../15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js   |   4 +-
 .../15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js   |   2 +-
 .../15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js   |  27 -----
 .../15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js    |   2 +-
 .../15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js    |  21 ----
 .../15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js   |   6 +-
 .../15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js   |   6 +-
 .../15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js   |  29 -----
 .../15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js   |   2 +-
 .../15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js    |   4 +-
 .../15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js    |   2 +-
 .../15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js   |   6 +-
 .../15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js   |   6 +-
 .../15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js   |   2 +-
 .../15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js   |   2 +-
 .../15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js    |   2 +-
 .../15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js    |   2 +-
 .../15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js   |  20 +---
 .../15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js   |   4 +-
 .../15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js   |  32 ------
 .../15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js   |  33 ------
 .../15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js    |   2 +-
 .../15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js    |  29 -----
 .../15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js   |  10 +-
 .../15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js   |   6 +-
 .../15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js   |  10 +-
 .../15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js   |   9 +-
 .../15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js    |   2 +-
 .../15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js    |  10 +-
 .../15.4/15.4.4/15.4.4.2/S15.4.4.2_A4.2.js    |   6 +-
 .../15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js   |  24 +---
 .../15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js   |   4 +-
 .../15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js   |  30 -----
 .../15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js   |  31 ------
 .../15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js    |   2 +-
 .../15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js    |  28 -----
 .../15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js   |  24 +---
 .../15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js   |   4 +-
 .../15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js   |  29 -----
 .../15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js   |  29 -----
 .../15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js    |   2 +-
 .../15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js    |  28 -----
 .../15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js   |   2 +-
 .../15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js   |  20 +---
 .../15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js   |   4 +-
 .../15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js   |  30 -----
 .../15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js   |  39 -------
 .../15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js    |   2 +-
 .../15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js    |  27 -----
 .../15.4/15.4.4/15.4.4.3/S15.4.4.3_A4.2.js    |   8 +-
 .../15.4/15.4.4/15.4.4.4/S15.4.4.4_A4.2.js    |   6 +-
 .../15.4/15.4.4/15.4.4.5/S15.4.4.5_A2_T2.js   |  11 --
 .../15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T1.js   |  24 ----
 .../15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T2.js   |  25 -----
 .../15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T3.js   |   6 +-
 .../15.4/15.4.4/15.4.4.5/S15.4.4.5_A6.2.js    |   6 +-
 .../15.4/15.4.4/15.4.4.6/S15.4.4.6_A2_T2.js   |   4 +-
 .../15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T1.js   |  14 +--
 .../15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T2.js   |  18 +--
 .../15.4/15.4.4/15.4.4.6/S15.4.4.6_A3_T3.js   |  14 +--
 .../15.4/15.4.4/15.4.4.6/S15.4.4.6_A5.2.js    |   6 +-
 .../15.4/15.4.4/15.4.4.7/S15.4.4.7_A2_T2.js   |  12 +-
 .../ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A3.js |   2 +-
 .../15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T1.js   |  49 +++++---
 .../15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T2.js   |   2 +-
 .../15.4/15.4.4/15.4.4.7/S15.4.4.7_A4_T3.js   |  37 ++++--
 .../15.4/15.4.4/15.4.4.7/S15.4.4.7_A6.2.js    |   6 +-
 .../15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T1.js   |  35 ------
 .../15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T2.js   |  41 -------
 .../15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T3.js   |  10 +-
 .../15.4/15.4.4/15.4.4.8/S15.4.4.8_A5.2.js    |   6 +-
 .../15.4/15.4.4/15.4.4.9/S15.4.4.9_A2_T2.js   |  12 --
 .../15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T1.js   |  35 ------
 .../15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T2.js   |  41 -------
 .../15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T3.js   |  18 +--
 .../15.4/15.4.4/15.4.4.9/S15.4.4.9_A5.2.js    |   6 +-
 .../suite/ch15/15.4/15.4.4/S15.4.4_A1.1_T2.js |  10 +-
 .../suite/ch15/15.4/15.4.4/S15.4.4_A1.2_T1.js |   6 +-
 .../suite/ch15/15.4/15.4.4/S15.4.4_A1.3_T1.js |  12 +-
 .../15.5/15.5.4/15.5.4.10/S15.5.4.10_A9.js    |  12 +-
 .../15.5/15.5.4/15.5.4.11/S15.5.4.11_A9.js    |  12 +-
 .../15.5/15.5.4/15.5.4.12/S15.5.4.12_A9.js    |  12 +-
 .../15.5/15.5.4/15.5.4.13/S15.5.4.13_A9.js    |  12 +-
 .../15.5.4/15.5.4.14/S15.5.4.14_A2_T37.js     |   2 +-
 .../15.5/15.5.4/15.5.4.14/S15.5.4.14_A9.js    |  12 +-
 .../15.5/15.5.4/15.5.4.15/S15.5.4.15_A9.js    |  12 +-
 .../15.5/15.5.4/15.5.4.16/S15.5.4.16_A9.js    |  12 +-
 .../15.5/15.5.4/15.5.4.17/S15.5.4.17_A9.js    |  12 +-
 .../15.5/15.5.4/15.5.4.18/S15.5.4.18_A9.js    |  12 +-
 .../15.5/15.5.4/15.5.4.19/S15.5.4.19_A9.js    |  12 +-
 .../ch15/15.5/15.5.4/15.5.4.4/S15.5.4.4_A9.js |  12 +-
 .../ch15/15.5/15.5.4/15.5.4.5/S15.5.4.5_A9.js |  12 +-
 .../ch15/15.5/15.5.4/15.5.4.6/S15.5.4.6_A9.js |  12 +-
 .../ch15/15.5/15.5.4/15.5.4.7/S15.5.4.7_A9.js |  12 +-
 .../ch15/15.5/15.5.4/15.5.4.8/S15.5.4.8_A9.js |  12 +-
 .../ch15/15.5/15.5.4/15.5.4.9/S15.5.4.9_A9.js |  12 +-
 test/suite/ch15/15.5/15.5.4/S15.5.4_A1.js     |   8 +-
 test/suite/ch15/15.5/15.5.4/S15.5.4_A2.js     |  15 ++-
 test/suite/ch15/15.5/15.5.4/S15.5.4_A3.js     |   4 +-
 .../ch15/15.6/15.6.3/15.6.3.1/S15.6.3.1_A1.js |  14 ++-
 .../suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T1.js |  10 +-
 .../suite/ch15/15.6/15.6.4/S15.6.4.2_A1_T2.js |  10 +-
 .../suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T1.js |  10 +-
 .../suite/ch15/15.6/15.6.4/S15.6.4.3_A1_T2.js |  10 +-
 test/suite/ch15/15.6/15.6.4/S15.6.4_A1.js     |  18 ++-
 .../15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T1.js   |   6 +-
 .../15.7/15.7.3/15.7.3.1/S15.7.3.1_A2_T2.js   |   6 +-
 .../ch15/15.7/15.7.3/15.7.3.1/S15.7.3.1_A3.js |  14 ++-
 test/suite/ch15/15.7/15.7.4/15.7.4-1.js       |   4 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T01.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T02.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A1_T03.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T01.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T02.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T03.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T04.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T05.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T06.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T07.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T08.js  |  11 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T09.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T10.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T11.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T12.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T13.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T14.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T15.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T16.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T17.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T18.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T19.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T20.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T21.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T22.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T23.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T24.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T25.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T26.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T27.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T28.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T29.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T30.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T31.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T32.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T33.js  |  10 +-
 .../15.7/15.7.4/15.7.4.2/S15.7.4.2_A2_T34.js  |  10 +-
 .../15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T01.js  |  10 +-
 .../15.7/15.7.4/15.7.4.4/S15.7.4.4_A1_T02.js  |  10 +-
 .../15.7.4/15.7.4.5/S15.7.4.5_A1.1_T01.js     | 105 +++++++++++++-----
 test/suite/ch15/15.7/15.7.4/S15.7.4_A1.js     |  18 +--
 .../ch15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.js |   2 +-
 .../15.9/15.9.4/15.9.4.2/S15.9.4.2_A3_T2.js   |  10 +-
 .../15.9/15.9.4/15.9.4.3/S15.9.4.3_A3_T2.js   |  10 +-
 .../15.9/15.9.5/15.9.5.1/S15.9.5.1_A3_T2.js   |  10 +-
 .../15.9/15.9.5/15.9.5.10/S15.9.5.10_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.11/S15.9.5.11_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.12/S15.9.5.12_A3_T2.js |  12 +-
 .../15.9/15.9.5/15.9.5.13/S15.9.5.13_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.14/S15.9.5.14_A3_T2.js |  12 +-
 .../15.9/15.9.5/15.9.5.15/S15.9.5.15_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.16/S15.9.5.16_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.17/S15.9.5.17_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.18/S15.9.5.18_A3_T2.js |  12 +-
 .../15.9/15.9.5/15.9.5.19/S15.9.5.19_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.2/S15.9.5.2_A3_T2.js   |  12 +-
 .../15.9/15.9.5/15.9.5.20/S15.9.5.20_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.21/S15.9.5.21_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.22/S15.9.5.22_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.23/S15.9.5.23_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.24/S15.9.5.24_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.25/S15.9.5.25_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.26/S15.9.5.26_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.27/S15.9.5.27_A3_T2.js |  12 +-
 .../15.9/15.9.5/15.9.5.28/S15.9.5.28_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.29/S15.9.5.29_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.3/S15.9.5.3_A3_T2.js   |  10 +-
 .../15.9/15.9.5/15.9.5.30/S15.9.5.30_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.31/S15.9.5.31_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.32/S15.9.5.32_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.33/S15.9.5.33_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.34/S15.9.5.34_A3_T2.js |  12 +-
 .../15.9/15.9.5/15.9.5.35/S15.9.5.35_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.36/S15.9.5.36_A3_T2.js |  12 +-
 .../15.9/15.9.5/15.9.5.37/S15.9.5.37_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.38/S15.9.5.38_A3_T2.js |  12 +-
 .../15.9/15.9.5/15.9.5.39/S15.9.5.39_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.4/S15.9.5.4_A3_T2.js   |  10 +-
 .../ch15/15.9/15.9.5/15.9.5.40/15.9.5.40_1.js |  13 ++-
 .../15.9/15.9.5/15.9.5.40/S15.9.5.40_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.41/S15.9.5.41_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.42/S15.9.5.42_A3_T2.js |  10 +-
 .../15.9/15.9.5/15.9.5.5/S15.9.5.5_A3_T2.js   |  10 +-
 .../15.9/15.9.5/15.9.5.6/S15.9.5.6_A3_T2.js   |  10 +-
 .../15.9/15.9.5/15.9.5.7/S15.9.5.7_A3_T2.js   |  10 +-
 .../15.9/15.9.5/15.9.5.8/S15.9.5.8_A3_T2.js   |  12 +-
 .../15.9/15.9.5/15.9.5.9/S15.9.5.9_A3_T2.js   |  12 +-
 353 files changed, 1727 insertions(+), 2380 deletions(-)
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T1.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.11/S15.4.4.11_A4_T2.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.12/S15.4.4.12_A3_T2.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T1.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.13/S15.4.4.13_A3_T3.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T1.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.5/S15.4.4.5_A4_T2.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T1.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.8/S15.4.4.8_A3_T2.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T1.js
 delete mode 100644 test/suite/ch15/15.4/15.4.4/15.4.4.9/S15.4.4.9_A3_T2.js

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 3038847735..cc9cd5cdd7 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 845599fa7b..60383f4114 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 10cfb43aa6..2a6a56ffe5 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 052f4aec50..413261c7e0 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 1a2f303096..911c101f4d 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 3824798895..0e2952a34e 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 1ea8575466..7e120fc6b6 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 f37f028ced..6e6be2f6b5 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 b21e19a826..e5a00f1bde 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 a40d15462a..cb9c5bb849 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 c8916b22c5..d29d44118f 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 cf06185cf8..aa1d3b266e 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 f048e015ed..3f4673858e 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 7b451e8679..f9302dcc87 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 cb303eff7d..086e65ac99 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 0dd0ff35b2..90957d4c42 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 2b647b2a9c..1fea4a6668 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 9fcc3a5c49..19482128fa 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 bdf799db4f..85ee842d8e 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 532d6b9b47..5bc0c793f6 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 c51672f800..4a58cbbd7a 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 f174cd6ac4..eef7c8c7cd 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 149693e347..d94eaddc31 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 22d70e2aba..fa8241fae8 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 b5b837c66b..09dee32b5b 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 9d14ce8bc8..69ba5ad9be 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 afa6a60c2c..497d871618 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 3061d40075..c6eb777de1 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 9601d8715a..a04a55816a 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 4e71e6f7dc..1aad19b989 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 ebc125de24..1b9a36fdc7 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 0da4368385..1972836787 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 121f3bbace..42f4eb9a3b 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 1364f69629..796d2b3bff 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 8fe735687e..de0b1c4e7b 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 6df1859d65..059d232069 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 bd811c9eb2..51ef99f81b 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 9484802702..65c0183bf3 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 1593447d28..c045847e82 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 a7f61f0ed4..b3d7796f53 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 46011c9744..ca184328db 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 85eecb41ea..7c100386c0 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 96fa087ce0..b238b21057 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 21e22d208a..6a2fd8ab68 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 861adb31ba..0f524bb0fc 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 480de023c4..29e7f45c90 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 2a5cde4557..993a070ec2 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 59d4830b0a..891dcdd39a 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 eb487d61d9..a9f558f140 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 018df97e23..931f7154ee 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 8aa8f4b162..91dbb82ccd 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 10daea66c1..127b69f884 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 d5d8613d5e..5e7abce7da 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 d2e08fd877..b3b3fc725f 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 fa3ae98f2a..528552255e 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 9316d317c8..e626bd9657 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 92ec1162be..f00f6889bf 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 fa43536bec..d4c94bd83b 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 0bb775e506..38768d1bf8 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 dee6257973..65f53a9a17 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 33a1eedfbc..6c9ef6ded4 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 3e1d7cee71..d441d17b4e 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 747e26450e..a637dcc1bb 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 c5a56bf96f..b3e435d88a 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 78776ab2ad..ce6a8b78a5 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 7026c49610..06e41803c0 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 beb50836c5..8107751e53 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 376230d5f3..482e4c4d33 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 bd0afb4b8c..b9cde71da4 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 aa24d91361..370b9f1af5 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 3929540223..b8c8a53bd2 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 c1943dd090..1ac7505d63 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 89a2375a9e..85d46a90f0 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 2e99c0b754..655a10dbc4 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 da1b05695b..ff2459298d 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 57c4faa1f3..0630192fcf 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 a5cd5bb8c4..9b93998072 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 a42debf857..3a701203ac 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 23675eb088..4f21b75cd4 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 b2602753f9..d25f745d39 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 fd61133fe2..8ffc506d78 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 144f8c8043..302916c867 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 2fdda1531f..85663b5e18 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 74f66d60d7..f533057f2d 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 5d3f9748ef..88bf21949c 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 971bfc98ea..bb2d61cf19 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 76b7ff71ba..151a5f8393 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 1ad1153274..25cdf45f5a 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 033eee71d1..88bb8b7b46 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 bd5aed4438..5e20bc92bd 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 6e3aca140e..21d41eef03 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 769c927f8e..465bad95e7 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 fddc2f49ca..cf94443655 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 51673ac3b1..e5838965fb 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 84a6f56901..04386a2598 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 191e29f1b2..5280d71fa4 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 f884d20a38..0a6a42e71c 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 5517272613..bb8300ac86 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 1eb87555b8..b00e8597a1 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 c1dc9e1b27..539ab6308e 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 59e3eeb71c..661ca20afe 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 640b2d1ddf..463510bcb9 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 54b3ff4a5f..3ac3248d1d 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 28c9d733bd..e63abae918 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 421345f46c..d5373305da 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 3aaca1ff5c..5d578503bc 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 607a7fdad8..a94a21255e 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 d6136d3928..0693406ed3 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 e101888c7d..96c73d20ae 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 4a27308687..6a1137b990 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 c3aa7954db..a2ee301066 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 4f7c3f279b..8febd8c451 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 f3cdde554a..eb1a6974a1 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 d5144c7ffd..2659a6b06f 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 e946f1cb21..26d486fe04 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 856cc23685..6b9e4b3097 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 1b580cc0e0..8e2ce201b9 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 83d4eb2def..80326c9b26 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 fec005f16b..134f23f5b4 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 c17d11d494..0a4b99e1c7 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 de3e38087f..4fdb0c08e6 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 bbaedacccc..7bbea1d78f 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 e0f25204c0..9d07b93cf1 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 2434737072..f7659b6002 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 173e08a0d9..28ea0c13c9 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 5656f89983..85a3526076 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 520ae9b920..699318b199 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 2071530ffa..991e0d1819 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 0237712b39..e764b1a217 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 0d6524abf8..0000000000
--- 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 94e4d5074b..0000000000
--- 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 dd018a4ad7..a47594f9fd 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 edb2de70b1..101ee5365a 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 eedc9fddc6..b5a4d5a329 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 7d30b3b0ea..0000000000
--- 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 11d1daa206..fb5fc1fcec 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 d9247a03cc..20ec46bf89 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 69724423ab..af7899ad4e 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 4878af2fca..0000000000
--- 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 9aacd01148..aae17e9d99 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 4faa900c52..0000000000
--- 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 db99253442..5dc23d845e 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 d3579368da..5e13941469 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 7d8fef351d..8f21269098 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 5b37a18966..6c2ea8f5f8 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 7bc0b8b5b3..7885166769 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 407655eb58..68336d3054 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 045d80ae75..77232173df 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 9f9f16d9c9..52f837e7cb 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 967680c500..8a76977d6c 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 4bd755f3ef..8ff6537b3c 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 e22cc2b061..26ada3f97c 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 4e9748739a..ba2a1c37a4 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 65ddbb1fe2..0000000000
--- 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 b72126cfc8..a170f4e13a 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 93d4f2523b..0000000000
--- 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 694c1ad522..e6ddec460f 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 d3a0d67652..00e461852b 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 d2d8b62ab0..0ab7e09314 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 a3bd124bd6..0000000000
--- 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 b3a932779f..cb3f74098c 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 55cf938894..0dbdbef86a 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 79c313e35d..55770cf7ea 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 1816512861..2a8bcc622e 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 0756b321ca..274cd984e2 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 840c21c99e..6c5d1e4b2c 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 3cc8f859b5..24b9ddad2a 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 3b35e122e2..d636da80a2 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 9070335b1b..6dfa99b4e4 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 e1ca567c91..1d98b97f88 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 8d7d518dcf..5020e73d13 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 d478a0e3a2..25dd46606f 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 badd055c4b..19f07890f0 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 3fc30f7ac6..0000000000
--- 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 59f569cba8..0000000000
--- 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 3302cc14cf..575753e492 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 882030d7d0..0000000000
--- 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 e689cb64c0..81ecdf4754 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 86fe75c6f3..3b8a4b6da6 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 56ee74f0f2..d28b92b8a8 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 a0e4121b47..d033f36de1 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 235cb8068a..73dddc53f5 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 c74b39246e..d70fcb31da 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 0c419594ae..05d0d5d816 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 1d0e6439fa..63e9b9cf17 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 186f1a8555..8f487a7948 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 96310362e2..e9e964bc13 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 2f1dd3d1f2..7642ad1be2 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 eeba0b85b4..0000000000
--- 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 cc85138907..0000000000
--- 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 ff0843aad2..bb6dc6971d 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 b298e3905b..0000000000
--- 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 8652b73232..07df74b484 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 518ad1ac62..a71b6a4480 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 3eccdc997f..2e9ec79aea 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 e40a3e0d85..0000000000
--- 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 79c7554fd7..0000000000
--- 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 7e5a6db2dc..cc15672867 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 f7f8d9085e..0000000000
--- 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 d088a4a1ad..893615b21c 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 4c4ac7796b..3dd76bc295 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 b366c10922..2ebd7aeb9d 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 84095c94e8..0000000000
--- 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 158d574fc0..0000000000
--- 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 8163f38974..89f1d867bf 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 30b7ff5e9c..0000000000
--- 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 a19e4b57b7..9b001445b2 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 58d7bc4829..ed25769227 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 c6800a2e6d..2081d3133d 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 ebecfbd05b..0000000000
--- 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 ac72d73545..0000000000
--- 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 c13a68b757..ed16dd8f8c 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 e1fc43c9d9..3b80f2ce1c 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 211dd12927..eb7cb6f169 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 f7657f024b..7e84f3cb8e 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 46ccd95d26..eef4c9ffba 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 97a96425d2..bc7328bec9 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 99e3f32782..f1167771b8 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 565aa3c6b7..00683a8fd1 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 ea9118947b..d40582cd96 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 ab47ba918b..08e6d0d42e 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 5a9d23619c..605ef629ee 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 045f4d1bcd..b0862b55d7 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 8131b033dd..15ab62b680 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 197736e5ca..0000000000
--- 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 308b292f08..0000000000
--- 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 9851e09b1a..7edd94a6d9 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 fce5b261c9..0c4365d795 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 5bf7090b6a..089330a3be 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 0d0ad97da3..0000000000
--- 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 d504fe515b..0000000000
--- 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 92bd9acf94..6bc350a40b 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 c6dcd5e48c..1bd71a76f6 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 e726ff8e12..cfdd8f8dbe 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 0c9cccb559..e048cf764d 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 d8b242c816..d812e56934 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 9cfee781d7..868d5007e1 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 e9bfdd91f1..c116d554ab 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 688c7e94cb..90bb0c1fd5 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 437249f7fc..5d12784db2 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 8983b061a5..85a4bf128e 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 645e77d1f8..532cd97f19 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 cb9bd3a3b2..9d710f1065 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 bac6729b6a..ff157981b5 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 6fe0ae45c8..5efe5d9d03 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 372c062626..2409b5417c 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 87b467287d..b17b2d8a2b 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 df532070d8..20ddd5f0c2 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 19dedc3fb4..104e94654b 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 bb17f12c06..f381eccf79 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 f7ae5eb7dd..b09575db91 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 0eba9ee622..63f376f36c 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 6898301060..82e853105a 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 2f202199dd..1b69a4ebd7 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 8d28ad383f..e3efd8db95 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 6633499f45..433ce049b2 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 abdd3fb88a..9daeede972 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 e81cacc799..ecf174bfd3 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 310256bf6f..2fcc7e3855 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 27e0a89360..6d75e1c21b 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 9300d4e856..1e059bcafe 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 dcec08f4e0..87f5ff017e 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 a953798339..08a68e1274 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 c69df9a8b2..1e6eaacfbc 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 5f86ce5fa5..d0bcc47dcc 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 6adee31338..df609fe50a 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 7fcef1cb9d..536c5ace33 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 03aacb9a7b..8545bca233 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 2b701765e4..7b4ae2df0a 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 bf2534bb61..c17441d064 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 a9b2ef733f..54c52b8f38 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 00761b262c..0197cbea3d 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 27f30f4eae..55a8ad851b 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 fd022b515b..2e554f7441 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 4ddf517df3..796a9aba84 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 ff85a71490..abbacb3e30 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 6f673ab013..ee631bf884 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 f9e5852baa..cef78b15be 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 5d53c2bef2..133cb94768 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 abd79ee344..9b2deca9f5 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 4b9dcd6301..464191e078 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 f134115029..dd0cb89a3e 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 f78fe04dd5..362a67568d 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 bf5cfe27f3..17573e5242 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 002e0cfeb4..aa523c21ea 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 90773b31e5..cbee3f1e11 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 e521f4e04e..fcf4aafe45 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 85265d53b0..55f6a0f25b 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 038e832ce0..0a9df39c4e 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 e82878b19c..5718426493 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 ead76b2fe2..a64a164eb1 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 d8f277e50c..407adef04e 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 8bac6eff94..fe9b4c86da 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 3bdff1ea9c..7985d0920b 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 3f918a3460..36d9851e1f 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 46181050a3..793ed9cd30 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 20cbfbf0a7..18f96d6f78 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 27ba3de869..4814a7c6f4 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 1cf762a35c..d746832101 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 d3b4a0f291..29c856202a 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 bab5115d3a..8067fc2618 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 7433850375..fc3c34ef82 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 aa1cdebbe7..091e490374 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 e6fc4d41de..2c218e3683 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 ce82e1f0c9..b1e6cbf1e6 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 628a88eaea..d91c642211 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 6b69865b7a..957be71eed 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 2153f8e817..d4f4f19989 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 8dbbaa064c..672a83baff 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 45096a18b3..b2b705b362 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 706cc63bbe..bd3a007b4a 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 bc879d78a2..c67a54531f 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 adc02e921c..bc85f9486a 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 c463f05257..0b8f16ddc3 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 36f25432e3..03923b56e9 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 6438930cb1..339ac47c2b 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 689b9d7672..722eb61320 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 a0b0343f39..0400a9a25b 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 5b2730dcf6..65ae79f935 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 5ce42713c1..fbd9265a44 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 c1e26ef8d9..e850716e7d 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 a6a31a3bc1..c2be0b2af0 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 95845eb950..064ea8f81b 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 a76667d3f6..a7806830bd 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 72ee328c16..6477272b39 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 bfe0b51acc..033e80c1a4 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 90ca44188e..d833652f48 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 b3e1c288d8..5b1608e11f 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 81c9c0a7a3..92e4ad15ee 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 d037817497..c9f6de2960 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 892a329b62..e24fa17057 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 828b60157c..7282c39153 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 3935ff2a36..d297f959a2 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 dcf03523dc..9ddb4d8d17 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 f57fbff3af..823fc9a808 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 0af064acb8..1577b743f9 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 32bfde6966..e46973d277 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 a713516d1b..2237d13d66 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 4028217595..282025d152 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 7ab08c1839..1633c3df32 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 f4175be7a5..ad6ba00b38 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 c4e513a620..194ebaa6c5 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 80e6a69c94..fdb4dbad71 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 6cb3aa0401..2a8fe4a9da 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 b34a2c6fac..732cc84810 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 e389b41a9a..2eafc662ea 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 faa1ddb5f2..3b8a0bea37 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 d036161318..05ec9df91c 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 1c25c04bb4..52febd1201 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 512bcdf0b5..c190415c83 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 45a82a0032..c08572b292 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 dba8e21922..2279e196e8 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 f8a93b50d1..29f714300c 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');
 }
-- 
GitLab