# 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: 7.6 - SyntaxError expected: reserved words used as Identifier
#      Names in UTF8: class (class)
7.6-30: FAIL
# BUG: 7.6 - SyntaxError expected: reserved words used as Identifier
#      Names in UTF8: extends (extends)
7.6-31: FAIL
# BUG: 7.6 - SyntaxError expected: reserved words used as Identifier
#      Names in UTF8: \u0065\u006e\u0075\u006d (enum)
7.6-32: FAIL
# BUG: 7.6 - SyntaxError expected: reserved words used as Identifier
#      Names in UTF8: \u0073uper (super)
7.6-33: FAIL
# BUG: 7.6 - SyntaxError expected: reserved words used as Identifier
#      Names in UTF8: expor\u0074 (export)
7.6-35: FAIL
# BUG: 7.6 - SyntaxError expected: reserved words used as Identifier
#      Names in UTF8: \u0069\u006d\u0070\u006f\u0072\u0074 (import)
7.6-36: 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: 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.create - 'set' property of one property in 'Properties'
#      is not present (8.10.5 step 8)
# V8 throws.
15.2.3.5-4-267: FAIL
# Bug? Object.create - 'set' property of one property in 'Properties'
#      is undefined (8.10.5 step 8.b)
# V8 throws.
15.2.3.5-4-292: FAIL
# Bug? Object.defineProperty - 'set' property in 'Attributes' is not
#      present (8.10.5 step 8)
# V8 throws.
15.2.3.6-3-236: FAIL
# Bug? Object.defineProperty - 'set' property in 'Attributes' is own
#      accessor property without a get function (8.10.5 step 8.a)
# V8 throws.
15.2.3.6-3-245: FAIL
# Bug? Object.defineProperty - 'set' property in 'Attributes' is own
#      accessor property(without a get function) that overrides an inherited
#      accessor property (8.10.5 step 8.a)
# V8 throws.
15.2.3.6-3-246: FAIL
# Bug? Object.defineProperty - 'set' property in 'Attributes' is an
#      inherited accessor property without a get function (8.10.5 step 8.a)
# V8 throws.
15.2.3.6-3-247: FAIL
# Bug? Object.defineProperty - value of 'set' property in 'Attributes'
#      is undefined (8.10.5 step 8.b)
# V8 throws.
15.2.3.6-3-261: 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 assignment to the accessor
#      property, fails to convert accessor property from accessor property to
#      data property (15.4.5.1 step 4.c)
15.2.3.6-4-243-1: 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 property which is defined in both
#      [[ParameterMap]] of 'O' and 'O', and is deleted afterwards, and 'desc' is
#      data descriptor, test 'name' is redefined in 'O' with all correct
#      attribute values (10.6 [[DefineOwnProperty]] step 3)
15.2.3.6-4-289-1: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is own property which is defined in both
#      [[ParameterMap]] of 'O' and 'O', is deleted afterwards, and 'desc' is
#      accessor descriptor, test 'name' is redefined in 'O' with all correct
#      attribute values (10.6 [[DefineOwnProperty]] step 3)
15.2.3.6-4-290-1: 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 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 accessor property of 'O' which is also
#      defined in [[ParameterMap]] of 'O', test TypeError is thrown when
#      updating the [[Get]] attribute value of 'name' which is defined as
#      non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5a)
15.2.3.6-4-297-1: 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', test TypeError is thrown when
#      updating the [[Set]] attribute value of 'name' which is defined as
#      non-configurable (10.6 [[DefineOwnProperty]] steps 4 and 5a)
15.2.3.6-4-298-1: 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', test TypeError is thrown when
#      updating the [[Enumerable]] attribute value of 'name' which is defined as
#      non-configurable (10.6 [[DefineOwnProperty]] steps 4 and 5a)
15.2.3.6-4-299-1: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is an index named property of 'O', and 'desc'
#      is data descriptor, test 'name' is defined in 'O' with all correct
#      attribute values (10.6 [[DefineOwnProperty]] step 3)
15.2.3.6-4-301-1: FAIL
# Bug? Object.defineProperty - 'O' is an Arguments object of a function that has
#      formal parameters, 'name' is an index named property of 'O' but not
#      defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor,
#      test 'name' is defined in 'O' with all correct attribute values (10.6
#      [[DefineOwnProperty]] step 3 and step 5a)
15.2.3.6-4-302-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 - [[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 - Fail to add property into object (Number instance)
15.2.3.6-4-581: FAIL
# Bug? ES5 Attributes - Fail to update value of property into of [[Proptotype]]
#      internal property (JSON)
15.2.3.6-4-586: FAIL
# Bug? ES5 Attributes - Fail to update value of property of [[Proptotype]]
#      internal property (Object.create)
15.2.3.6-4-591: FAIL
# Bug? ES5 Attributes - Fail to update value of property into of [[Proptotype]]
#      internal property (Function.prototype.bind)
15.2.3.6-4-596: 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 - argument 'Properties' is an Error object
#      props.description = obj1;
15.2.3.7-2-15: FAIL
# Bug? Object.defineProperties - 'Properties' is an Error object which
#      implements its own [[Get]] method to get enumerable own property
#      props.description = obj1;
15.2.3.7-5-a-16: FAIL
# Bug? Object.defineProperties - 'set' property of 'descObj' is not present
#      (8.10.5 step 8)
15.2.3.7-5-b-227: FAIL
# Bug? Object.defineProperties - 'descObj' is an Error object which implements
#      its own [[Get]] method to get 'set' property (8.10.5 step 8.a)
#      descObj.description = { value: 11 };
15.2.3.7-5-b-248: 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 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? Object.prototype.toString - '[object Undefined]' will be returned when
#      'this' value is undefined
15.2.4.2-1-1: FAIL
# Bug? Object.prototype.toString - '[object Undefined]' will be returned when
#      'this' value is undefined
15.2.4.2-1-2: FAIL
# Bug? Object.prototype.toString - '[object Null]' will be returned when 'this'
#      value is null
15.2.4.2-2-1: FAIL
# Bug? Object.prototype.toString - '[object Null]' will be returned when 'this'
#      value is null
15.2.4.2-2-2: 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.concat will concat an Array when index property
#      (read-only) exists in Array.prototype (Step 5.c.i)
15.4.4.4-5-c-i-1: FAIL
# Bug? Array.prototype.indexOf applied to undefined throws a TypeError
15.4.4.14-1-1: FAIL
# Bug? Array.prototype.indexOf applied to null throws a TypeError
15.4.4.14-1-2: FAIL
# Bug? Array.prototype.indexOf - side effects produced by step 1 are visible
#      when an exception occurs
15.4.4.14-5-28: 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 applied to undefined throws a TypeError
15.4.4.15-1-1: FAIL
# Bug? Array.prototype.lastIndexOf applied to null throws a TypeError
15.4.4.15-1-2: FAIL
# Bug? Array.prototype.lastIndexOf - side effects produced by step 1 are visible
#      when an exception occurs
15.4.4.15-5-28: 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 - 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 - 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 - 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 Array-like object, 'length' is an own
#      data property that overrides an inherited accessor property
15.4.4.19-2-5: 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 - value of 'length' is a number (value is
#      negative)
15.4.4.20-3-7: FAIL
# Bug? Array.prototype.filter - value of 'length' is a number (value is
#      Infinity)
# V8 timeout
15.4.4.20-3-8: SKIP
# Bug? Array.prototype.filter - 'length' is a string containing a negative
#      number
15.4.4.20-3-12: FAIL
# Bug? Array.prototype.filter - 'length' is a string containing a decimal number
15.4.4.20-3-13: FAIL
# Bug? Array.prototype.filter - 'length' is a string containing +/-Infinity
15.4.4.20-3-14: SKIP
# Bug? Array.prototype.filter - value of 'length' is a positive non-integer,
#      ensure truncation occurs in the proper direction
# V8 timeout
15.4.4.20-3-24: FAIL
# Bug? Array.prototype.filter - value of 'length' is a negative non-integer,
#      ensure truncation occurs in the proper direction
15.4.4.20-3-25: FAIL
# Bug? Array.prototype.filter - value of 'length' is boundary value (2^32)
# V8 timeout
15.4.4.20-3-28: SKIP
# Bug? Array.prototype.filter - value of 'length' is boundary value (2^32 + 1)
# V8 timeout
15.4.4.20-3-29: SKIP
# 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 - properties can be added to prototype after
#      current position are visited on an Array
15.4.4.20-9-b-7: 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 - value of 'length' is a number (value is
#      negative)
15.4.4.21-3-7: FAIL
# Bug? Array.prototype.reduce - value of 'length' is a number (value is
#      Infinity)
# V8 timeout.
15.4.4.21-3-8: SKIP
# Bug? Array.prototype.reduce - 'length' is a string containing a negative
#      number
15.4.4.21-3-12: FAIL
# Bug? Array.prototype.reduce - 'length' is a string containing a decimal number
15.4.4.21-3-13: FAIL
# Bug? Array.prototype.reduce - 'length' is a string containing +/-Infinity
# V8 timeout.
15.4.4.21-3-14: SKIP
# Bug? Array.prototype.reduce - value of 'length' is a positive non-integer,
#      ensure truncation occurs in the proper direction
15.4.4.21-3-24: FAIL
# Bug? Array.prototype.reduce - value of 'length' is a negative non-integer,
#      ensure truncation occurs in the proper direction
15.4.4.21-3-25: FAIL
# Bug? Array.prototype.reduce - value of 'length' is boundary value (2^32)
# V8 timeout.
15.4.4.21-3-28: SKIP
# Bug? Array.prototype.reduce - value of 'length' is boundary value (2^32 + 1)
# V8 timeout.
15.4.4.21-3-29: SKIP
# 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 - value of 'length' is a number (value is
#      negative)
15.4.4.22-3-7: FAIL
# Bug? Array.prototype.reduceRight - value of 'length' is a number (value is
#      Infinity)
# V8 timeout.
15.4.4.22-3-8: SKIP
# Bug? Array.prototype.reduceRight - value of 'length' is a string containing a
#      negative number
15.4.4.22-3-12: FAIL
# Bug? Array.prototype.reduceRight - value of 'length' is a string containing a
#      decimal number
15.4.4.22-3-13: FAIL
# Bug? Array.prototype.reduceRight - value of 'length' is a string containing
#      +/-Infinity
# V8 timeout.
15.4.4.22-3-14: SKIP
# Bug? Array.prototype.reduceRight - value of 'length' is a positive
#      non-integer, ensure truncation occurs in the proper direction
15.4.4.22-3-24: FAIL
# Bug? Array.prototype.reduceRight - value of 'length' is a negative
#      non-integer, ensure truncation occurs in the proper direction
15.4.4.22-3-25: FAIL
# Bug? Array.prototype.reduceRight - value of 'length' is boundary value (2^32)
# V8 timeout.
15.4.4.22-3-28: SKIP
# Bug? Array.prototype.reduceRight - value of 'length' is boundary value (2^32 +
#      1)
# V8 timeout.
15.4.4.22-3-29: SKIP
# 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 throws TypeError when string is undefined
15.5.4.20-1-1: FAIL
# Bug? String.prototype.trim throws TypeError when string is null
15.5.4.20-1-2: 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 Time String Format - specified default values will be set for all
#      optional fields(MM, DD, mm, ss and time zone) when they are absent
15.9.1.15-1: 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
