# Copyright 2011 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
#       copyright notice, this list of conditions and the following
#       disclaimer in the documentation and/or other materials provided
#       with the distribution.
#     * Neither the name of Google Inc. nor the names of its
#       contributors may be used to endorse or promote products derived
#       from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


#
# ietestcenter tests.
#

prefix ietestcenter


#
# Deliberate differences for compatibility with other browsers
#
# 15.9.5.43-0-9 and 15.9.5.43-0-10. V8 doesn't throw RangeError
# from Date.prototype.toISOString when string is not a finite number.
# This is compatible with Firefox and Safari.
15.9.5.43-0-9: PASS || FAIL
15.9.5.43-0-10: PASS || FAIL

#
# Unanalyzed failures which may be bugs or deliberate differences
#

# Bug? Strict Mode - TypeError is thrown when changing the value of a Value
#      Property of the Global Object under strict mode (NaN)
10.2.1.1.3-4-16-s: FAIL
# Bug? Strict Mode - TypeError is thrown when changing the value of a Value
#      Property of the Global Object under strict mode (undefined)
10.2.1.1.3-4-18-s: FAIL
# Invalid test: https://bugs.ecmascript.org/show_bug.cgi?id=76
10.4.2-2-c-1: FAIL
# BUG: 11.8.2 Greater-than Operator - Partial left to right order enforced
#      when using Greater-than operator: valueOf > valueOf
11.8.2-1: FAIL
# BUG: 11.8.2 Greater-than Operator - Partial left to right order enforced
#      when using Greater-than operator: valueOf > toString
11.8.2-2: FAIL
# BUG: 11.8.2 Greater-than Operator - Partial left to right order enforced
#      when using Greater-than operator: toString > valueOf
11.8.2-3: FAIL
# BUG: 11.8.2 Greater-than Operator - Partial left to right order enforced
#       when using Greater-than operator: toString > toString
11.8.2-4: FAIL
# BUG: 11.8.3 Less-than-or-equal Operator - Partial left to right order
#      enforced when using Less-than-or-equal operator: valueOf <= valueOf
11.8.3-1: FAIL
# BUG: 11.8.3 Less-than-or-equal Operator - Partial left to right order
#      enforced when using Less-than-or-equal operator: valueOf <= toString
11.8.3-2: FAIL
# BUG: 11.8.3 Less-than-or-equal Operator - Partial left to right order
#      enforced when using Less-than-or-equal operator: toString <= valueOf
11.8.3-3: FAIL
# BUG: 11.8.3 Less-than-or-equal Operator - Partial left to right order
#      enforced when using Less-than-or-equal operator: toString <= toString
11.8.3-4: FAIL
# BUG: 11.8.3 Less-than-or-equal Operator - Partial left to right order
#      enforced when using Less-than-or-equal operator: valueOf <= valueOf
11.8.3-5: FAIL
# Bug? simple assignment throws TypeError if LeftHandSide is a readonly property
#      in strict mode (Global.undefined)
11.13.1-4-27-s: FAIL
# Bug? simple assignment throws TypeError if LeftHandSide is a readonly property
#      in strict mode (Global.Infinity)
11.13.1-4-3-s: FAIL
# BUG: Global.NaN is a data property with default attribute values
15.1.1.1-0: FAIL
# BUG: Global.Infinity is a data property with default attribute values
15.1.1.2-0: FAIL
# BUG: Global.undefined is a data property with default attribute values
15.1.1.3-0: FAIL
# BUG: Object.getOwnPropertyDescriptor returns data desc (all false)
#      for properties on built-ins (Global.NaN)
15.2.3.3-4-178: FAIL
# BUG: Object.getOwnPropertyDescriptor returns data desc (all false)
#      for properties on built-ins (Global.Infinity)
15.2.3.3-4-179: FAIL
# BUG: Object.getOwnPropertyDescriptor returns data desc (all false)
#      for properties on built-ins (Global.undefined)
15.2.3.3-4-180: FAIL
# BUG: Object.getOwnPropertyDescriptor returns data desc (all false)
#      for properties on built-ins (RegExp.prototype.source)
# There is no RegExp.prototype.source
15.2.3.3-4-212: FAIL
# BUG: Object.getOwnPropertyDescriptor returns data desc (all false)
#      for properties on built-ins (RegExp.prototype.global)
# There is no RegExp.prototype.global
15.2.3.3-4-213: FAIL
# BUG: Object.getOwnPropertyDescriptor returns data desc (all false)
#      for properties on built-ins (RegExp.prototype.ignoreCase)
# There is no RegExp.prototype.ignoreCase
15.2.3.3-4-214: FAIL
# BUG: Object.getOwnPropertyDescriptor returns data desc (all false)
#      for properties on built-ins (RegExp.prototype.multiline)
15.2.3.3-4-215: FAIL
# Bug? Object.defineProperty - Update [[Enumerable]] attribute of 'name'
#      property to true successfully when [[Enumerable]] attribute of 'name'
#      is false and [[Configurable]] attribute of 'name' is true,  the 'desc'
#      is a generic descriptor which only contains [[Enumerable]] attribute
#      as true, 'name' property is an index data property (8.12.9 step 8)
15.2.3.6-4-82-18: FAIL
# Bug? Object.defineProperty - Update [[Enumerable]] attribute of 'name'
#      property to false successfully when [[Enumerable]] and [[Configurable]]
#      attributes of 'name' property are true,  the 'desc' is a generic
#      descriptor which only contains [Enumerable]] attribute as false and
#      'name' property is an index accessor property (8.12.9 step 8)
15.2.3.6-4-82-19: FAIL
# Bug? Object.defineProperty - Update [[Enumerable]] attribute of 'name'
#      property to false successfully when [[Enumerable]] and [[Configurable]]
#      attributes of 'name' property are true,  the 'desc' is a generic
#      descriptor which contains [Enumerable]] attribute as false and
#      [[Configurable]] property is true, 'name' property is an index accessor
#      property (8.12.9 step 8)
15.2.3.6-4-82-20: FAIL
# Bug? Object.defineProperty - Update [[Configurable]] attribute of 'name'
#      property to false successfully when [[Enumerable]] and [[Configurable]]
#      attributes of 'name' property are true, the 'desc' is a generic
#      descriptor which only contains [[Configurable]] attribute as false,
#      'name' property is an index accessor property (8.12.9 step 8)
15.2.3.6-4-82-21: FAIL
# Bug? Object.defineProperty - Update [[Configurable]] attribute of 'name'
#      property to false successfully when [[Enumerable]] and [[Configurable]]
#      attributes of 'name' property are true, the 'desc' is a generic
#      descriptor which contains [[Enumerable]] attribute as true and
#      [[Configurable]] attribute is false, 'name' property is an index accessor
#      property (8.12.9 step 8)
15.2.3.6-4-82-22: FAIL
# Bug? Object.defineProperty - Update [[Enumerable]] and [[Configurable]]
#      attributes of 'name' property to false successfully when [[Enumerable]]
#      and [[Configurable]] attributes of 'name' property are true, the 'desc'
#      is a generic descriptor which contains [[Enumerable]] and
#      [[Configurable]] attributes as false, 'name' property is an index
#      accessor property (8.12.9 step 8)
15.2.3.6-4-82-23: FAIL
# Bug? Object.defineProperty - Update [[Enumerable]] attributes of 'name'
#      property to true successfully when [[Enumerable]] attribute of 'name' is
#      false and [[Configurable]] attribute of 'name' is true, the 'desc' is a
#      generic descriptor which only contains [[Enumerable]] attribute as true,
#      'name' property is an index accessor property (8.12.9 step 8)
15.2.3.6-4-82-24: FAIL
# Bug? Object.defineProperty - 'O' is an Array, test the length property of 'O'
#      is own data property (15.4.5.1 step 1)
15.2.3.6-4-116: FAIL
# Bug? Object.defineProperty - 'O' is an Array, test the length property of 'O'
#      is own data property that overrides an inherited data property (15.4.5.1
#      step 1)
15.2.3.6-4-117: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test that RangeError exception is thrown when [[Value]] field of
#      'desc' is undefined (15.4.5.1 step 3.c)
15.2.3.6-4-125: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is null (15.4.5.1 step 3.c)
15.2.3.6-4-126: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is a boolean with value false
#      (15.4.5.1 step 3.c)
15.2.3.6-4-127: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is a boolean with value true
#      (15.4.5.1 step 3.c)
15.2.3.6-4-128: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is not thrown when the [[Value]] field of
#      'desc' is 0 (15.4.5.1 step 3.c)
15.2.3.6-4-129: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is not thrown when the [[Value]] field of
#      'desc' is +0 (15.4.5.1 step 3.c)
15.2.3.6-4-130: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is not thrown when the [[Value]] field of
#      'desc' is -0 (15.4.5.1 step 3.c)
15.2.3.6-4-131: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is not thrown when the [[Value]] field of
#      'desc' is a positive number (15.4.5.1 step 3.c)
15.2.3.6-4-132: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is a negative number (15.4.5.1 step 3.c)
15.2.3.6-4-133: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is +Infinity (15.4.5.1 step 3.c)
15.2.3.6-4-134: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is -Infinity (15.4.5.1 step 3.c)
15.2.3.6-4-135: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is NaN (15.4.5.1 step 3.c)
15.2.3.6-4-136: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is not thrown when the [[Value]] field of
#      'desc' is a string containing a positive number (15.4.5.1 step 3.c)
15.2.3.6-4-137: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is a string containing a negative number (15.4.5.1 step 3.c)
15.2.3.6-4-138: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is a string containing a decimal number (15.4.5.1 step 3.c)
15.2.3.6-4-139: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is a string containing +Infinity (15.4.5.1 step 3.c)
15.2.3.6-4-140: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is a string containing -Infinity (15.4.5.1 step 3.c)
15.2.3.6-4-141: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is a string containing an
#      exponential number (15.4.5.1 step 3.c)
15.2.3.6-4-142: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is a string containing a hex
#      number (15.4.5.1 step 3.c)
15.2.3.6-4-143: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is a string containing a number
#      with leading zeros (15.4.5.1 step 3.c)
15.2.3.6-4-144: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError exception is thrown when the [[Value]] field of
#      'desc' is a string which doesn't convert to a number (15.4.5.1 step 3.c)
15.2.3.6-4-145: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is an object which has an own
#      toString method (15.4.5.1 step 3.c)
15.2.3.6-4-146: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is an Object which has an own
#      valueOf method (15.4.5.1 step 3.c)
15.2.3.6-4-147: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is an Object which has an own
#      valueOf method that returns an object and toString method that returns a
#      string (15.4.5.1 step 3.c)
15.2.3.6-4-148: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is an Object which has an own
#      toString and valueOf method (15.4.5.1 step 3.c)
15.2.3.6-4-149: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test TypeError is thrown when the [[Value]] field of 'desc' is an
#      Object that both toString and valueOf wouldn't return primitive value
#      (15.4.5.1 step 3.c)
15.2.3.6-4-150: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', and the [[Value]] field of 'desc' is an Object with an own toString
#      method and an inherited valueOf method (15.4.5.1 step 3.c), test that the
#      inherited valueOf method is used
15.2.3.6-4-151: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError is thrown when the [[Value]] field of 'desc' is a
#      positive non-integer values (15.4.5.1 step 3.c)
15.2.3.6-4-152: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length prosperty
#      of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is a
#      negative non-integer values (15.4.5.1 step 3.c)
15.2.3.6-4-153: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is boundary value 2^32 - 2
#      (15.4.5.1 step 3.c)
15.2.3.6-4-154: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test the [[Value]] field of 'desc' is boundary value 2^32 - 1
#      (15.4.5.1 step 3.c)
15.2.3.6-4-155: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError is thrown when the [[Value]] field of 'desc' is
#      boundary value 2^32 (15.4.5.1 step 3.c)
15.2.3.6-4-156: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', test RangeError is thrown when the [[Value]] field of 'desc' is
#      boundary value 2^32 + 1 (15.4.5.1 step 3.c)
15.2.3.6-4-157: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', set the [[Value]] field of 'desc' to a value greater than the
#      existing value of length (15.4.5.1 step 3.f)
15.2.3.6-4-159: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', set the [[Value]] field of 'desc' to a value lesser than the
#      existing value of length and test that indexes beyond the new length are
#      deleted(15.4.5.1 step 3.f)
15.2.3.6-4-161: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to true after deleting properties with large index named if the
#      [[Writable]] field of 'desc' is absent (15.4.5.1 step 3.h)
15.2.3.6-4-165: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to true after deleting properties with large index named if the
#      [[Writable]] field of 'desc' is true (15.4.5.1 step 3.h)
15.2.3.6-4-166: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to false after deleting properties with large index named if the
#      [[Writable]] field of 'desc' is false (15.4.5.1 step 3.i.ii)
15.2.3.6-4-167: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', whose writable attribute is being changed to false and the [[Value]]
#      field of 'desc' is less than value of the length property and also lesser
#      than an index of the array which is set to configurable:false, test that
#      new length is set to a value greater than the non-deletable index by 1,
#      writable attribute of length is set to false and TypeError exception is
#      thrown (15.4.5.1 step 3.i.iii)
15.2.3.6-4-168: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property and also lesser than an index of the array which is set to
#      configurable: false, test that new length is set to a value greater than
#      the non-deletable index by 1, and TypeError is thrown (15.4.5.1 step
#      3.l.i)
15.2.3.6-4-169: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property and also lesser than an index of the array which is set to
#      configurable: false, test that new length is set to a value greater than
#      the non-deletable index by 1, writable attribute of length is set to
#      false and TypeError exception is thrown (15.4.5.1 step 3.l.ii)
15.2.3.6-4-170: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of an inherited data
#      property with large index named in 'O' can't stop deleting index named
#      properties (15.4.5.1 step 3.l.ii)
15.2.3.6-4-171: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own data property with
#      large index named in 'O' that overrides an inherited data property can
#      stop deleting index named properties (15.4.5.1 step 3.l.ii)
15.2.3.6-4-172: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own data property with
#      large index named in 'O' that overrides an inherited accessor property
#      can stop deleting index named properties (15.4.5.1 step 3.l.ii)
15.2.3.6-4-173: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own accessor property
#      with large index named in 'O' can stop deleting index named properties
#      (15.4.5.1 step 3.l.ii)
15.2.3.6-4-174: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of an inherited accessor
#      property with large index named in 'O' can't stop deleting index named
#      properties (15.4.5.1 step 3.l.ii)
15.2.3.6-4-175: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own accessor property
#      with large index named in 'O' that overrides an inherited data property
#      can stop deleting index named properties (15.4.5.1 step 3.l.ii)
15.2.3.6-4-176: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own accessor property
#      with large index named in 'O' that overrides an inherited accessor
#      property can stop deleting index named properties (15.4.5.1 step 3.l.ii)
15.2.3.6-4-177: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the configurable large index named property of 'O' is
#      deleted (15.4.5.1 step 3.l.ii)
15.2.3.6-4-178: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is greater than value of the length
#      property, test value of the length property is same as [[Value]]
#      (15.4.5.1 step 3.l.iii.1)
15.2.3.6-4-179-1: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to false at last when the [[Writable]] field of 'desc' is false and 'O'
#      doesn't contain non-configurable large index named property (15.4.5.1
#      step 3.m)
15.2.3.6-4-181: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, 'name' is boundary value 2^32 - 2 (15.4.5.1 step 4.a)
15.2.3.6-4-183: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, test TypeError is thrown if the [[Writable]] attribute of the
#      length property in 'O' is false and value of 'name' equals to value of
#      the length property (15.4.5.1 step 4.b)
15.2.3.6-4-188: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, test TypeError is thrown if the [[Writable]] attribute of the
#      length property in 'O' is false and value of 'name' is greater than value
#      of the length property (15.4.5.1 step 4.b)
15.2.3.6-4-189: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, 'desc' is accessor descriptor, test updating all attribute
#      values of 'name' (15.4.5.1 step 4.c)
15.2.3.6-4-209: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, name is accessor property and 'desc' is accessor descriptor,
#      test updating the [[Enumerable]] attribute value of 'name' (15.4.5.1 step
#      4.c)
15.2.3.6-4-271: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, name is accessor property and 'desc' is accessor descriptor,
#      test updating the [[Configurable]] attribute value of 'name' (15.4.5.1
#      step 4.c)
15.2.3.6-4-272: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, name is accessor property and 'desc' is accessor descriptor,
#      test updating multiple attribute values of 'name' (15.4.5.1 step 4.c)
15.2.3.6-4-273: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, test the length property of 'O' is set as ToUint32('name') + 1
#      if ToUint32('name') equals to value of the length property in 'O'
#      (15.4.5.1 step 4.e.ii)
15.2.3.6-4-275: FAIL
# Bug? Object.defineProperty - 'O' is an Array, 'name' is an array index named
#      property, test the length property of 'O' is set as ToUint32('name') + 1
#      if ToUint32('name') is greater than value of the length property in 'O'
#      (15.4.5.1 step 4.e.ii)
15.2.3.6-4-276: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is own accessor property of 'O' which is also
#      defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor,
#      test updating multiple attribute values of 'name' (10.6
#      [[DefineOwnProperty]] step 3 and 5.a.i)
15.2.3.6-4-291-1: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object, 'name' is own
#      accessor property of 'O', and 'desc' is accessor descriptor, test
#      updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]]
#      step 3)
15.2.3.6-4-291: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is own property of 'O' which is also defined in
#      [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating
#      multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3
#      and 5.b)
15.2.3.6-4-292-1: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is own data property of 'O' which is also
#      defined in [[ParameterMap]] of 'O', test TypeError is thrown when
#      updating the [[Value]] attribute value of 'name' which is defined as
#      unwritable and non-configurable (10.6 [[DefineOwnProperty]] step 4 and
#      step 5b)
15.2.3.6-4-293-2: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is own data property of 'O' which is also
#      defined in [[ParameterMap]] of 'O', test TypeError is not thrown when
#      updating the [[Value]] attribute value of 'name' which is defined as
#      non-writable and configurable (10.6 [[DefineOwnProperty]] step 3 and step
#      5.b)
15.2.3.6-4-293-3: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is own data property of 'O' which is also
#      defined in [[ParameterMap]] of 'O', test TypeError is thrown when
#      updating the [[Writable]] attribute value of 'name' which is defined as
#      non-configurable (10.6 [[DefineOwnProperty]] step 4 and 5b)
15.2.3.6-4-294-1: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is own data property of 'O' which is also
#      defined in [[ParameterMap]] of 'O', test TypeError is thrown when
#      updating the [[Enumerable]] attribute value of 'name' which is defined as
#      non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5b)
15.2.3.6-4-295-1: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is own data property of 'O' which is also
#      defined in [[ParameterMap]] of 'O', test TypeError is thrown when
#      updating the [[Configurable]] attribute value of 'name' which is defined
#      as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5b)
15.2.3.6-4-296-1: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object, 'name' is an index
#      named accessor property of 'O' but not defined in [[ParameterMap]] of
#      'O', and 'desc' is accessor descriptor, test updating multiple attribute
#      values of 'name' (10.6 [[DefineOwnProperty]] step 3)
15.2.3.6-4-303: FAIL
# Bug? ES5 Attributes - indexed property 'P' with attributes [[Writable]]: true,
#      [[Enumerable]]: true, [[Configurable]]: false is writable using simple
#      assignment, 'O' is an Arguments object
15.2.3.6-4-333-11: FAIL
# Bug? ES5 Attributes - Updating indexed data property 'P' whose attributes are
#      [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true to an
#      accessor property, 'A' is an Array object (8.12.9 - step 9.b.i)
15.2.3.6-4-360-1: FAIL
# Bug? ES5 Attributes - Updating indexed data property 'P' whose attributes are
#      [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true to an
#      accessor property, 'O' is an Arguments object (8.12.9 - step 9.b.i)
15.2.3.6-4-360-6: FAIL
# Bug? ES5 Attributes - Updating indexed data property 'P' whose attributes are
#      [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true to an
#      accessor property, 'O' is the global object (8.12.9 - step 9.b.i)
15.2.3.6-4-360-7: FAIL
# Bug? ES5 Attributes - [[Value]] attribute of data property is the activex host
#      object
15.2.3.6-4-401: FAIL
# Bug? ES5 Attributes - Failed to add a property to an object when the object's
#      object has a property with same name and [[Writable]] attribute is set to
#      false (Number instance)
15.2.3.6-4-405: FAIL
# Bug? ES5 Attributes - Failed to add a property to an object when the object's
#      prototype has a property with the same name and [[Writable]] set to false
#      (JSON)
15.2.3.6-4-410: FAIL
# Bug? ES5 Attributes - Failed to add properties to an object when the object's
#      prototype has properties with the same name and [[Writable]] set to false
#      (Object.create)
15.2.3.6-4-415: FAIL
# Bug? ES5 Attributes - Failed to add a property to an object when the object's
#      prototype has a property with the same name and [[Writable]] set to
#      false(Function.prototype.bind)
15.2.3.6-4-420: FAIL
# Bug? ES5 Attributes - all attributes in Array.prototype.indexOf are correct
15.2.3.6-4-612: FAIL
# Bug? ES5 Attributes - all attributes in Object.lastIndexOf are correct
15.2.3.6-4-613: FAIL
# Bug? ES5 Attributes - all attributes in Array.prototype.every are correct
15.2.3.6-4-614: FAIL
# Bug? ES5 Attributes - all attributes in Array.prototype.some are correct
15.2.3.6-4-615: FAIL
# Bug? ES5 Attributes - all attributes in Array.prototype.forEach are correct
15.2.3.6-4-616: FAIL
# Bug? ES5 Attributes - all attributes in Array.prototype.map are correct
15.2.3.6-4-617: FAIL
# Bug? ES5 Attributes - all attributes in Array.prototype.filter are correct
15.2.3.6-4-618: FAIL
# Bug? ES5 Attributes - all attributes in Array.prototype.reduce are correct
15.2.3.6-4-619: FAIL
# Bug? ES5 Attributes - all attributes in Array.prototype.reduceRight are
#      correct
15.2.3.6-4-620: FAIL
# Bug? ES5 Attributes - all attributes in String.prototype.trim are correct
15.2.3.6-4-621: FAIL
# Bug? ES5 Attributes - all attributes in Date.prototype.toISOString are correct
15.2.3.6-4-623: FAIL
# Bug? ES5 Attributes - all attributes in Date.prototype.toJSON are correct
15.2.3.6-4-624: FAIL
# Bug? Object.defineProperties - 'O' is an Array, test the length property of
#      'O' is own data property (15.4.5.1 step 1)
15.2.3.7-6-a-112: FAIL
# Bug? Object.defineProperties - 'O' is an Array, test the length property of
#      'O' is own data property that overrides an inherited data property
#      (15.4.5.1 step 1)
15.2.3.7-6-a-113: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', test RangeError is thrown when setting the [[Value]] field of 'desc'
#      to undefined (15.4.5.1 step 3.c)
15.2.3.7-6-a-121: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', test setting the [[Value]] field of 'desc' to null actuall is set to
#      0 (15.4.5.1 step 3.c)
15.2.3.7-6-a-122: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a boolean with value false
#      (15.4.5.1 step 3.c)
15.2.3.7-6-a-123: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a boolean with value true
#      (15.4.5.1 step 3.c)
15.2.3.7-6-a-124: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is 0 (15.4.5.1 step 3.c)
15.2.3.7-6-a-125: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is +0 (15.4.5.1 step 3.c)
15.2.3.7-6-a-126: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is -0 (15.4.5.1 step 3.c)
15.2.3.7-6-a-127: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is positive number (15.4.5.1
#      step 3.c)
15.2.3.7-6-a-128: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is negative number (15.4.5.1
#      step 3.c)
15.2.3.7-6-a-129: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is +Infinity (15.4.5.1 step
#      3.c)
15.2.3.7-6-a-130: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is -Infinity (15.4.5.1 step
#      3.c)
15.2.3.7-6-a-131: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is NaN (15.4.5.1 step 3.c)
15.2.3.7-6-a-132: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a string containing a
#      positive number (15.4.5.1 step 3.c)
15.2.3.7-6-a-133: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a string containing a
#      negative number (15.4.5.1 step 3.c)
15.2.3.7-6-a-134: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a string containing a
#      decimal number (15.4.5.1 step 3.c)
15.2.3.7-6-a-135: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a string containing
#      +Infinity (15.4.5.1 step 3.c)
15.2.3.7-6-a-136: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a string containing
#      -Infinity (15.4.5.1 step 3.c)
15.2.3.7-6-a-137: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a string containing an
#      exponential number (15.4.5.1 step 3.c)
15.2.3.7-6-a-138: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a string containing an hex
#      number (15.4.5.1 step 3.c)
15.2.3.7-6-a-139: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is a string containing an
#      leading zero number (15.4.5.1 step 3.c)
15.2.3.7-6-a-140: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', test the [[Value]] field of 'desc' is a string which doesn't convert
#      to a number (15.4.5.1 step 3.c)
15.2.3.7-6-a-141: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', test the [[Value]] field of 'desc' is an Object which has an own
#      toString method (15.4.5.1 step 3.c)
15.2.3.7-6-a-142: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is an Object which has an own
#      valueOf method (15.4.5.1 step 3.c)
15.2.3.7-6-a-143: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is an Object which has an own
#      valueOf method that returns an object and toString method that returns a
#      string (15.4.5.1 step 3.c)
15.2.3.7-6-a-144: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is an Object which has an own
#      toString and valueOf method (15.4.5.1 step 3.c)
15.2.3.7-6-a-145: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test TypeError is thrown when the [[Value]] field of 'desc' is an
#      Object that both toString and valueOf wouldn't return primitive value
#      (15.4.5.1 step 3.c)
15.2.3.7-6-a-146: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test using inherited valueOf method when the [[Value]] field of
#      'desc' is an Objec with an own toString and inherited valueOf methods
#      (15.4.5.1 step 3.c)
15.2.3.7-6-a-147: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is
#      positive non-integer values (15.4.5.1 step 3.c)
15.2.3.7-6-a-148: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is
#      negative non-integer values (15.4.5.1 step 3.c)
15.2.3.7-6-a-149: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is boundary value 2^32 - 2
#      (15.4.5.1 step 3.c)
15.2.3.7-6-a-150: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test the [[Value]] field of 'desc' is boundary value 2^32 - 1
#      (15.4.5.1 step 3.c)
15.2.3.7-6-a-151: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is
#      boundary value 2^32 (15.4.5.1 step 3.c)
15.2.3.7-6-a-152: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'name' is the length property
#      of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is
#      boundary value 2^32 + 1 (15.4.5.1 step 3.c)
15.2.3.7-6-a-153: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', test the [[Value]] field of 'desc' which is greater than value of
#      the length property is defined into 'O' without deleting any property
#      with large index named (15.4.5.1 step 3.f)
15.2.3.7-6-a-155: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', test the [[Value]] field of 'desc' which is less than value of the
#      length property is defined into 'O' with deleting properties with large
#      index named (15.4.5.1 step 3.f)
15.2.3.7-6-a-157: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to true at last after deleting properties with large index named if the
#      [[Writable]] field of 'desc' is absent (15.4.5.1 step 3.h)
15.2.3.7-6-a-161: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to true at last after deleting properties with large index named if the
#      [[Writable]] field of 'desc' is true (15.4.5.1 step 3.h)
15.2.3.7-6-a-162: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to false at last after deleting properties with large index named if the
#      [[Writable]] field of 'desc' is false (15.4.5.1 step 3.i.ii)
15.2.3.7-6-a-163: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property in 'O'
#      is set as true before deleting properties with large index named
#      (15.4.5.1 step 3.i.iii)
15.2.3.7-6-a-164: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the length property is decreased by 1 (15.4.5.1 step
#      3.l.i)
15.2.3.7-6-a-165: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own data property with
#      large index named in 'O' can stop deleting index named properties
#      (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-166: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of inherited data property
#      with large index named in 'O' can't stop deleting index named properties
#      (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-167: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own data property with
#      large index named in 'O' that overrides inherited data property can stop
#      deleting index named properties (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-168: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own data property with
#      large index named in 'O' that overrides inherited accessor property can
#      stop deleting index named properties (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-169: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own accessor property
#      with large index named in 'O' can stop deleting index named properties
#      (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-170: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of inherited accessor
#      property with large index named in 'O' can't stop deleting index named
#      properties (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-171: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own accessor property
#      with large index named in 'O' that overrides inherited data property can
#      stop deleting index named properties (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-172: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Configurable]] attribute of own accessor property
#      with large index named in 'O' that overrides inherited accessor property
#      can stop deleting index named properties (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-173: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the configurable large index named property of 'O' can be
#      deleted (15.4.5.1 step 3.l.ii)
15.2.3.7-6-a-174: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test value of the length property is set to the last
#      non-configurable index named property of 'O' plus 1 (15.4.5.1 step
#      3.l.iii.1)
15.2.3.7-6-a-175: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to false at last when the [[Writable]] field of 'desc' is false and 'O'
#      contains non-configurable large index named property (15.4.5.1 step
#      3.l.iii.2)
15.2.3.7-6-a-176: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is the length property of
#      'O', the [[Value]] field of 'desc' is less than value of the length
#      property, test the [[Writable]] attribute of the length property is set
#      to false at last when the [[Writable]] field of 'desc' is false and 'O'
#      doesn't contain non-configurable large index named property (15.4.5.1
#      step 3.m)
15.2.3.7-6-a-177: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is an array index named
#      property, 'P' is boundary value 2^32 - 2 (15.4.5.1 step 4.a)
15.2.3.7-6-a-179: FAIL
# Bug? Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is
#      an array index named property,[[Writable]] attribute of the length
#      property in 'O' is false, value of 'P' is equal to value of the length
#      property in 'O' (15.4.5.1 step 4.b)
15.2.3.7-6-a-184: FAIL
# Bug? Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is
#      an array index named property,[[Writable]] attribute of the length
#      property in 'O' is false, value of 'P' is bigger than value of the length
#      property in 'O' (15.4.5.1 step 4.b)
15.2.3.7-6-a-185: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is an array index named
#      property, 'desc' is accessor descriptor, test updating all attribute
#      values of 'P' (15.4.5.1 step 4.c)
15.2.3.7-6-a-205: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is an array index named
#      property that already exists on 'O' is accessor property and 'desc' is
#      accessor descriptor, test updating the [[Enumerable]] attribute value of
#      'P' (15.4.5.1 step 4.c)
15.2.3.7-6-a-260: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is an array index named
#      property that already exists on 'O' is accessor property and 'desc' is
#      accessor descriptor, test updating the [[Configurable]] attribute value
#      of 'P' (15.4.5.1 step 4.c)
15.2.3.7-6-a-261: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is an array index named
#      property that already exists on 'O' is accessor property and 'desc' is
#      accessor descriptor, test updating multiple attribute values of 'P'
#      (15.4.5.1 step 4.c)
15.2.3.7-6-a-262: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is an array index named
#      property, test the length property of 'O' is set as ToUint32('P') + 1 if
#      ToUint32('P') equals to value of the length property in 'O' (15.4.5.1
#      step 4.e.ii)
15.2.3.7-6-a-264: FAIL
# Bug? Object.defineProperties - 'O' is an Array, 'P' is an array index named
#      property, test the length property of 'O' is set as ToUint32('P') + 1 if
#      ToUint32('P') is greater than value of the length property in 'O'
#      (15.4.5.1 step 4.e.ii)
15.2.3.7-6-a-265: FAIL
# Bug? Object.defineProperties - 'O' is an Arguments object, 'P' is own accessor
#      property of 'O' which is also defined in [[ParameterMap]] of 'O', and
#      'desc' is accessor descriptor, test updating multiple attribute values of
#      'P' (10.6 [[DefineOwnProperty]] step 3)
15.2.3.7-6-a-280: FAIL
# Bug? Object.defineProperties - 'O' is an Arguments object, 'P' is own data
#      property of 'O' which is also defined in [[ParameterMap]] of 'O', and
#      'desc' is data descriptor, test updating multiple attribute values of 'P'
#      (10.6 [[DefineOwnProperty]] step 3)
15.2.3.7-6-a-281: FAIL
# Bug? Object.defineProperties - 'O' is an Arguments object, 'P' is own data
#      property of 'O' which is also defined in [[ParameterMap]] of 'O', test
#      TypeError is thrown when updating the [[Value]] attribute value of 'P'
#      whose writable and configurable attributes are false (10.6
#      [[DefineOwnProperty]] step 4)
15.2.3.7-6-a-282: FAIL
# Bug? Object.defineProperties - 'O' is an Arguments object, 'P' is own data
#      property of 'O' which is also defined in [[ParameterMap]] of 'O', test
#      TypeError is thrown when updating the [[Writable]] attribute value of 'P'
#      which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)
15.2.3.7-6-a-283: FAIL
# Bug? Object.defineProperties - 'O' is an Arguments object, 'P' is own data
#      property of 'O' which is also defined in [[ParameterMap]] of 'O', test
#      TypeError is thrown when updating the [[Enumerable]] attribute value of
#      'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step
#      4)
15.2.3.7-6-a-284: FAIL
# Bug? Object.defineProperties - 'O' is an Arguments object, 'P' is own data
#      property of 'O' which is also defined in [[ParameterMap]] of 'O', test
#      TypeError is thrown when updating the [[Configurable]] attribute value of
#      'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step
#      4)
15.2.3.7-6-a-285: FAIL
# Bug? Object.defineProperties - 'O' is an Arguments object, 'P' is an array
#      index named accessor property of 'O' but not defined in [[ParameterMap]]
#      of 'O', and 'desc' is accessor descriptor, test updating multiple
#      attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)
15.2.3.7-6-a-292: FAIL
# Bug? Strict Mode - 'this' value is a string which cannot be converted to
#      wrapper objects when the function is called with an array of arguments
15.3.4.3-1-s: FAIL
# Bug? Strict Mode - 'this' value is a number which cannot be converted to
#      wrapper objects when the function is called with an array of arguments
15.3.4.3-2-s: FAIL
# Bug? Strict Mode - 'this' value is a boolean which cannot be converted to
#      wrapper objects when the function is called with an array of arguments
15.3.4.3-3-s: FAIL
# Bug? Function.prototype.bind - [[Get]] attribute of 'caller' property in 'F'
#      is thrower
15.3.4.5-20-2: FAIL
# Bug? Function.prototype.bind - [[Set]] attribute of 'caller' property in 'F'
#      is thrower
15.3.4.5-20-3: FAIL
# Bug? Function.prototype.bind - [[Get]] attribute of 'arguments' property in
#      'F' is thrower
15.3.4.5-21-2: FAIL
# Bug? Function.prototype.bind - [[Set]] attribute of 'arguments' property in
#      'F' is thrower
15.3.4.5-21-3: FAIL
# Bug? Array.prototype.indexOf - decreasing length of array does not delete
#      non-configurable properties
15.4.4.14-9-a-19: FAIL
# Bug? Array.prototype.indexOf - element to be retrieved is own accessor
#      property that overrides an inherited data property on an Array
15.4.4.14-9-b-i-11: FAIL
# Bug? Array.prototype.indexOf - element to be retrieved is own accessor
#      property that overrides an inherited accessor property on an Array
15.4.4.14-9-b-i-13: FAIL
# Bug? Array.prototype.indexOf - element to be retrieved is own accessor
#      property without a get function on an Array
15.4.4.14-9-b-i-17: FAIL
# Bug? Array.prototype.indexOf - element to be retrieved is own accessor
#      property without a get function that overrides an inherited accessor
#      property on an Array
15.4.4.14-9-b-i-19: FAIL
# Bug? Array.prototype.indexOf - side-effects are visible in subsequent
#      iterations on an Array
15.4.4.14-9-b-i-28: FAIL
# Bug? Array.prototype.indexOf - terminates iteration on unhandled exception on
#      an Array
15.4.4.14-9-b-i-30: FAIL
# Bug? Array.prototype.lastIndexOf - deleting property of prototype causes
#      prototype index property not to be visited on an Array
15.4.4.15-8-a-14: FAIL
# Bug? Array.prototype.lastIndexOf - decreasing length of array does not delete
#      non-configurable properties
15.4.4.15-8-a-19: FAIL
# Bug? Array.prototype.lastIndexOf - element to be retrieved is own accessor
#      property that overrides an inherited data property on an Array
15.4.4.15-8-b-i-11: FAIL
# Bug? Array.prototype.lastIndexOf - element to be retrieved is own accessor
#      property that overrides an inherited accessor property on an Array
15.4.4.15-8-b-i-13: FAIL
# Bug? Array.prototype.lastIndexOf - element to be retrieved is own accessor
#      property without a get function on an Array
15.4.4.15-8-b-i-17: FAIL
# Bug? Array.prototype.lastIndexOf - side-effects are visible in subsequent
#      iterations on an Array
15.4.4.15-8-b-i-28: FAIL
# Bug? Array.prototype.lastIndexOf terminates iteration on unhandled exception
#      on an Array
15.4.4.15-8-b-i-30: FAIL
# Bug? Array.prototype.every applied to boolean primitive
15.4.4.16-1-3: FAIL
# Bug? Array.prototype.every applied to number primitive
15.4.4.16-1-5: FAIL
# Bug? Array.prototype.every applied to string primitive
15.4.4.16-1-7: FAIL
# Bug? Array.prototype.every - side effects produced by step 2 are visible when
#      an exception occurs
15.4.4.16-4-8: FAIL
# Bug? Array.prototype.every - side effects produced by step 3 are visible when
#      an exception occurs
15.4.4.16-4-9: FAIL
# Bug? Array.prototype.every - the exception is not thrown if exception was
#      thrown by step 2
15.4.4.16-4-10: FAIL
# Bug? Array.prototype.every - the exception is not thrown if exception was
#      thrown by step 3
15.4.4.16-4-11: FAIL
# Bug? Array.prototype.every - calling with no callbackfn is the same as passing
#      undefined for callbackfn
15.4.4.16-4-15: FAIL
# Bug? Array.prototype.every - decreasing length of array does not delete
#      non-configurable properties
15.4.4.16-7-b-16: FAIL
# Bug? Array.prototype.every - element to be retrieved is own accessor property
#      on an Array
15.4.4.16-7-c-i-10: FAIL
# Bug? Array.prototype.every - element to be retrieved is own accessor property
#      that overrides an inherited data property on an Array
15.4.4.16-7-c-i-12: FAIL
# Bug? Array.prototype.every - element to be retrieved is own accessor property
#      that overrides an inherited accessor property on an Array
15.4.4.16-7-c-i-14: FAIL
# Bug? Array.prototype.every - element to be retrieved is own accessor property
#      without a get function on an Array
15.4.4.16-7-c-i-18: FAIL
# Bug? Array.prototype.every - element to be retrieved is own accessor property
#      without a get function that overrides an inherited accessor property on
#      an Array
15.4.4.16-7-c-i-20: FAIL
# Bug? Array.prototype.every - element changed by getter on previous iterations
#      is observed on an Array
15.4.4.16-7-c-i-28: FAIL
# Bug? Array.prototype.some applied to boolean primitive
15.4.4.17-1-3: FAIL
# Bug? Array.prototype.some applied to number primitive
15.4.4.17-1-5: FAIL
# Bug? Array.prototype.some applied to applied to string primitive
15.4.4.17-1-7: FAIL
# Bug? Array.prototype.some - side effects produced by step 2 are visible when
#      an exception occurs
15.4.4.17-4-8: FAIL
# Bug? Array.prototype.some - side effects produced by step 3 are visible when
#      an exception occurs
15.4.4.17-4-9: FAIL
# Bug? Array.prototype.some - the exception is not thrown if exception was
#      thrown by step 2
15.4.4.17-4-10: FAIL
# Bug? Array.prototype.some - the exception is not thrown if exception was
#      thrown by step 3
15.4.4.17-4-11: FAIL
# Bug? Array.prototype.some - calling with no callbackfn is the same as passing
#      undefined for callbackfn
15.4.4.17-4-15: FAIL
# Bug? Array.prototype.some - decreasing length of array does not delete
#      non-configurable properties
15.4.4.17-7-b-16: FAIL
# Bug? Array.prototype.some - element to be retrieved is own accessor property
#      on an Array
15.4.4.17-7-c-i-10: FAIL
# Bug? Array.prototype.some - element to be retrieved is own accessor property
#      that overrides an inherited data property on an Array
15.4.4.17-7-c-i-12: FAIL
# Bug? Array.prototype.some - element to be retrieved is own accessor property
#      that overrides an inherited accessor property on an Array
15.4.4.17-7-c-i-14: FAIL
# Bug? Array.prototype.some - element to be retrieved is own accessor property
#      without a get function on an Array
15.4.4.17-7-c-i-18: FAIL
# Bug? Array.prototype.some - element to be retrieved is own accessor property
#      without a get function that overrides an inherited accessor property on
#      an Array
15.4.4.17-7-c-i-20: FAIL
# Bug? Array.prototype.some - element changed by getter on previous iterations
#      is observed on an Array
15.4.4.17-7-c-i-28: FAIL
# Bug? Array.prototype.forEach applied to boolean primitive
15.4.4.18-1-3: FAIL
# Bug? Array.prototype.forEach applied to number primitive
15.4.4.18-1-5: FAIL
# Bug? Array.prototype.forEach applied to string primitive
15.4.4.18-1-7: FAIL
# Bug? Array.prototype.forEach - side effects produced by step 2 are visible
#      when an exception occurs
15.4.4.18-4-8: FAIL
# Bug? Array.prototype.forEach - side effects produced by step 3 are visible
#      when an exception occurs
15.4.4.18-4-9: FAIL
# Bug? Array.prototype.forEach - the exception is not thrown if exception was
#      thrown by step 2
15.4.4.18-4-10: FAIL
# Bug? Array.prototype.forEach - the exception is not thrown if exception was
#      thrown by step 3
15.4.4.18-4-11: FAIL
# Bug? Array.prototype.forEach - calling with no callbackfn is the same as
#      passing undefined for callbackfn
15.4.4.18-4-15: FAIL
# Bug? Array.prototype.forEach - decreasing length of array does not delete
#      non-configurable properties
15.4.4.18-7-b-16: FAIL
# Bug? Array.prototype.forEach - element to be retrieved is own accessor
#      property on an Array
15.4.4.18-7-c-i-10: FAIL
# Bug? Array.prototype.forEach - element to be retrieved is own accessor
#      property that overrides an inherited data property on an Array
15.4.4.18-7-c-i-12: FAIL
# Bug? Array.prototype.forEach - element to be retrieved is own accessor
#      property that overrides an inherited accessor property on an Array
15.4.4.18-7-c-i-14: FAIL
# Bug? Array.prototype.forEach - element to be retrieved is own accessor
#      property without a get function on an Array
15.4.4.18-7-c-i-18: FAIL
# Bug? Array.prototype.forEach - element to be retrieved is own accessor
#      property without a get function that overrides an inherited accessor
#      property on an Array
15.4.4.18-7-c-i-20: FAIL
# Bug? Array.prototype.forEach - element changed by getter on previous
#      iterations is observed on an Array
15.4.4.18-7-c-i-28: FAIL
# Bug? Array.prototype.map - applied to boolean primitive
15.4.4.19-1-3: FAIL
# Bug? Array.prototype.map - applied to number primitive
15.4.4.19-1-5: FAIL
# Bug? Array.prototype.map - applied to string primitive
15.4.4.19-1-7: FAIL
# Bug? Array.prototype.map - Side effects produced by step 2 are visible when an
#      exception occurs
15.4.4.19-4-8: FAIL
# Bug? Array.prototype.map - Side effects produced by step 3 are visible when an
#      exception occurs
15.4.4.19-4-9: FAIL
# Bug? Array.prototype.map - the exception is not thrown if exception was thrown
#      by step 2
15.4.4.19-4-10: FAIL
# Bug? Array.prototype.map - the exception is not thrown if exception was thrown
#      by step 3
15.4.4.19-4-11: FAIL
# Bug? Array.prototype.map - calling with no callbackfn is the same as passing
#      undefined for callbackfn
15.4.4.19-4-15: FAIL
# Bug? Array.prototype.map - decreasing length of array does not delete
#      non-configurable properties
15.4.4.19-8-b-16: FAIL
# Bug? Array.prototype.map - element to be retrieved is own accessor property on
#      an Array
15.4.4.19-8-c-i-10: FAIL
# Bug? Array.prototype.map - element to be retrieved is own accessor property
#      that overrides an inherited data property on an Array
15.4.4.19-8-c-i-12: FAIL
# Bug? Array.prototype.map - element to be retrieved is own accessor property
#      that overrides an inherited accessor property on an Array
15.4.4.19-8-c-i-14: FAIL
# Bug? Array.prototype.map - element to be retrieved is own accessor property
#      without a get function on an Array
15.4.4.19-8-c-i-18: FAIL
# Bug? Array.prototype.map - element to be retrieved is own accessor property
#      without a get function that overrides an inherited accessor property on
#      an Array
15.4.4.19-8-c-i-19: FAIL
# Bug? Array.prototype.map - element changed by getter on previous iterations is
#      observed on an Array
15.4.4.19-8-c-i-28: FAIL
# Bug? Array.prototype.filter applied to boolean primitive
15.4.4.20-1-3: FAIL
# Bug? Array.prototype.filter applied to number primitive
15.4.4.20-1-5: FAIL
# Bug? Array.prototype.filter applied to string primitive
15.4.4.20-1-7: FAIL
# Bug? Array.prototype.filter - side effects produced by step 2 are visible when
#      an exception occurs
15.4.4.20-4-8: FAIL
# Bug? Array.prototype.filter - side effects produced by step 3 are visible when
#      an exception occurs
15.4.4.20-4-9: FAIL
# Bug? Array.prototype.filter - the exception is not thrown if exception was
#      thrown by step 2
15.4.4.20-4-10: FAIL
# Bug? Array.prototype.filter - the exception is not thrown if exception was
#      thrown by step 3
15.4.4.20-4-11: FAIL
# Bug? Array.prototype.filter - calling with no callbackfn is the same as
#      passing undefined for callbackfn
15.4.4.20-4-15: FAIL
# Bug? Array.prototype.filter - properties can be added to prototype after
#      current position are visited on an Array-like object
15.4.4.20-9-b-6: FAIL
# Bug? Array.prototype.filter - decreasing length of array does not delete
#      non-configurable properties
15.4.4.20-9-b-16: FAIL
# Bug? Array.prototype.filter - element to be retrieved is own data property
#      that overrides an inherited accessor property on an Array
15.4.4.20-9-c-i-6: FAIL
# Bug? Array.prototype.filter - element to be retrieved is own accessor property
#      on an Array
15.4.4.20-9-c-i-10: FAIL
# Bug? Array.prototype.filter - element to be retrieved is own accessor property
#      that overrides an inherited data property on an Array
15.4.4.20-9-c-i-12: FAIL
# Bug? Array.prototype.filter - element to be retrieved is own accessor property
#      that overrides an inherited accessor property on an Array
15.4.4.20-9-c-i-14: FAIL
# Bug? Array.prototype.filter - element to be retrieved is inherited accessor
#      property on an Array
15.4.4.20-9-c-i-16: FAIL
# Bug? Array.prototype.filter - element to be retrieved is own accessor property
#      without a get function on an Array
15.4.4.20-9-c-i-18: FAIL
# Bug? Array.prototype.filter - element to be retrieved is own accessor property
#      without a get function that overrides an inherited accessor property on
#      an Array
15.4.4.20-9-c-i-20: FAIL
# Bug? Array.prototype.filter - element to be retrieved is inherited accessor
#      property without a get function on an Array
15.4.4.20-9-c-i-22: FAIL
# Bug? Array.prototype.filter - element changed by getter on previous iterations
#      is observed on an Array
15.4.4.20-9-c-i-28: FAIL
# Bug? Array.prototype.reduce applied to boolean primitive
15.4.4.21-1-3: FAIL
# Bug? Array.prototype.reduce applied to number primitive
15.4.4.21-1-5: FAIL
# Bug? Array.prototype.reduce applied to string primitive
15.4.4.21-1-7: FAIL
# Bug? Array.prototype.reduce - side effects produced by step 2 are visible when
#      an exception occurs
15.4.4.21-4-8: FAIL
# Bug? Array.prototype.reduce - side effects produced by step 3 are visible when
#      an exception occurs
15.4.4.21-4-9: FAIL
# Bug? Array.prototype.reduce - the exception is not thrown if exception was
#      thrown by step 2
15.4.4.21-4-10: FAIL
# Bug? Array.prototype.reduce - the exception is not thrown if exception was
#      thrown by step 3
15.4.4.21-4-11: FAIL
# Bug? Array.prototype.reduce - calling with no callbackfn is the same as
#      passing undefined for callbackfn
15.4.4.21-4-15: FAIL
# Bug? Array.prototype.reduce - decreasing length of array in step 8 does not
#      delete non-configurable properties
15.4.4.21-9-b-16: FAIL
# Bug? Array.prototype.reduce - decreasing length of array does not delete
#      non-configurable properties
15.4.4.21-9-b-29: FAIL
# Bug? Array.prototype.reduceRight applied to boolean primitive
15.4.4.22-1-3: FAIL
# Bug? Array.prototype.reduceRight applied to number primitive
15.4.4.22-1-5: FAIL
# Bug? Array.prototype.reduceRight applied to string primitive
15.4.4.22-1-7: FAIL
# Bug? Array.prototype.reduceRight - side effects produced by step 2 are visible
#      when an exception occurs
15.4.4.22-4-8: FAIL
# Bug? Array.prototype.reduceRight - side effects produced by step 3 are visible
#      when an exception occurs
15.4.4.22-4-9: FAIL
# Bug? Array.prototype.reduceRight - the exception is not thrown if exception
#      was thrown by step 2
15.4.4.22-4-10: FAIL
# Bug? Array.prototype.reduceRight - the exception is not thrown if exception
#      was thrown by step 3
15.4.4.22-4-11: FAIL
# Bug? Array.prototype.reduceRight - calling with no callbackfn is the same as
#      passing undefined for callbackfn
15.4.4.22-4-15: FAIL
# Bug? Array.prototype.reduceRight - element to be retrieved is own accessor
#      property that overrides an inherited data property on an Array
15.4.4.22-8-b-iii-1-12: FAIL
# Bug? Array.prototype.reduceRight - element to be retrieved is own accessor
#      property without a get function on an Array
15.4.4.22-8-b-iii-1-18: FAIL
# Bug? Array.prototype.reduceRight - element to be retrieved is own accessor
#      property without a get function that overrides an inherited accessor
#      property on an Array
15.4.4.22-8-b-iii-1-20: FAIL
# Bug? Array.prototype.reduceRight - element changed by getter on current
#      iteration is observed in subsequent iterations on an Array
15.4.4.22-8-b-iii-1-30: FAIL
# Bug? Array.prototype.reduceRight - Exception in getter terminate iteration on
#      an Array
15.4.4.22-8-b-iii-1-33: FAIL
# Bug? Array.prototype.reduceRight - modifications to length don't change number
#      of iterations in step 9
15.4.4.22-8-b-2: FAIL
# Bug? Array.prototype.reduceRight - deleting own property in step 8 causes
#      deleted index property not to be visited on an Array
15.4.4.22-9-b-9: FAIL
# Bug? Array.prototype.reduceRight - deleting own property with prototype
#      property in step 8 causes prototype index property to be visited on an
#      Array
15.4.4.22-9-b-13: FAIL
# Bug? Array.prototype.reduceRight - decreasing length of array in step 8 does
#      not delete non-configurable properties
15.4.4.22-9-b-16: FAIL
# Bug? Array.prototype.reduceRight - deleting property of prototype causes
#      deleted index property not to be visited on an Array
15.4.4.22-9-b-24: FAIL
# Bug? Array.prototype.reduceRight - deleting own property with prototype
#      property causes prototype index property to be visited on an Array
15.4.4.22-9-b-26: FAIL
# Bug? Array.prototype.reduceRight - decreasing length of array does not delete
#      non-configurable properties
15.4.4.22-9-b-29: FAIL
# Bug? Array.prototype.reduceRight - element changed by getter on previous
#      iterations is observed on an Array
15.4.4.22-9-c-i-30: FAIL
# Bug? Array.prototype.reduceRight - modifications to length will change number
#      of iterations
15.4.4.22-9-9: FAIL
# Bug? String.prototype.trim - 'S' is a string with all WhiteSpace
15.5.4.20-3-2: FAIL
# Bug? String.prototype.trim - 'S' is a string with all union of WhiteSpace and
#      LineTerminator
15.5.4.20-3-3: FAIL
# Bug? String.prototype.trim - 'S' is a string start with union of all
#      LineTerminator and all WhiteSpace
15.5.4.20-3-4: FAIL
# Bug? String.prototype.trim - 'S' is a string end with union of all
#      LineTerminator and all WhiteSpace
15.5.4.20-3-5: FAIL
# Bug? String.prototype.trim - 'S' is a string start with union of all
#      LineTerminator and all WhiteSpace and end with union of all
#      LineTerminator and all WhiteSpace
15.5.4.20-3-6: FAIL
# Bug? String.prototype.trim handles whitepace and lineterminators (\\uFEFFabc)
15.5.4.20-4-10: FAIL
# Bug? String.prototype.trim handles whitepace and lineterminators (abc\\uFEFF)
15.5.4.20-4-18: FAIL
# Bug? String.prototype.trim handles whitepace and lineterminators
#      (\\uFEFF\\uFEFF)
15.5.4.20-4-34: FAIL
# Bug? Date.prototype.toISOString - RangeError is thrown when value of date is
#      Date(1970, 0, -99999999, 0, 0, 0, -1), the time zone is UTC(0)
15.9.5.43-0-8: FAIL
# Bug? Date.prototype.toISOString - RangeError is not thrown when value of date
#      is Date(1970, 0, 100000001, 0, 0, 0, -1), the time zone is UTC(0)
15.9.5.43-0-11: FAIL
# Bug? Date.prototype.toISOString - RangeError is not thrown when value of date
#      is Date(1970, 0, 100000001, 0, 0, 0, 0), the time zone is UTC(0)
15.9.5.43-0-12: FAIL
# Bug? Date.prototype.toISOString - RangeError is thrown when value of date is
#      Date(1970, 0, 100000001, 0, 0, 0, 1), the time zone is UTC(0)
15.9.5.43-0-13: FAIL
# Bug? Date.prototype.toISOString - when value of year is -Infinity
#      Date.prototype.toISOString throw the RangeError
15.9.5.43-0-14: FAIL
# Bug? Date.prototype.toISOString - value of year is Infinity
#      Date.prototype.toISOString throw the RangeError
15.9.5.43-0-15: FAIL
# Bug? RegExp - the thrown error is SyntaxError instead of RegExpError when 'F'
#      contains any character other than 'g', 'i', or 'm'
15.10.4.1-3: FAIL
# Bug? RegExp.prototype is itself a RegExp
15.10.6: FAIL
# Bug? RegExp.prototype.source is of type String
15.10.7.1-1: FAIL
# Bug? RegExp.prototype.source is a data property with default attribute values
#      (false)
15.10.7.1-2: FAIL
# Bug? RegExp.prototype.global is of type Boolean
15.10.7.2-1: FAIL
# Bug? RegExp.prototype.global is a data property with default attribute values
#      (false)
15.10.7.2-2: FAIL
# Bug? RegExp.prototype.ignoreCase is of type Boolean
15.10.7.3-1: FAIL
# Bug? RegExp.prototype.ignoreCase is a data property with default attribute
#      values (false)
15.10.7.3-2: FAIL
# Bug? RegExp.prototype.multiline is of type Boolean
15.10.7.4-1: FAIL
# Bug? RegExp.prototype.multiline is a data property with default attribute
#      values (false)
15.10.7.4-2: FAIL
# Bug? RegExp.prototype.lastIndex is of type Number
15.10.7.5-1: FAIL
# Bug? RegExp.prototype.lastIndex is a data property with specified attribute
#      values
15.10.7.5-2: FAIL
# Bug? Error.prototype.toString return the value of 'msg' when 'name' is empty
#      string and 'msg' isn't undefined
15.11.4.4-8-1: FAIL
