# Copyright 2009 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.

prefix es5conform
def UNIMPLEMENTED = PASS || FAIL
def FAIL_OK = FAIL, OKAY

chapter07: UNIMPLEMENTED
chapter08: UNIMPLEMENTED
chapter10: UNIMPLEMENTED
chapter11: UNIMPLEMENTED
chapter12: UNIMPLEMENTED
chapter13: UNIMPLEMENTED
chapter14: UNIMPLEMENTED
chapter15/15.1: UNIMPLEMENTED
chapter15/15.2/15.2.3/15.2.3.1: UNIMPLEMENTED
chapter15/15.2/15.2.3/15.2.3.5: UNIMPLEMENTED
chapter15/15.2/15.2.3/15.2.3.8: UNIMPLEMENTED
chapter15/15.2/15.2.3/15.2.3.9: UNIMPLEMENTED
chapter15/15.2/15.2.3/15.2.3.10: UNIMPLEMENTED
chapter15/15.2/15.2.3/15.2.3.11: UNIMPLEMENTED
chapter15/15.2/15.2.3/15.2.3.12: UNIMPLEMENTED
chapter15/15.2/15.2.3/15.2.3.13: UNIMPLEMENTED

# NOT IMPLEMENTED: seal
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-20: FAIL_OK

# NOT IMPLEMENTED: freeze
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-21: FAIL_OK

# NOT IMPLEMENTED: preventExtensions
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-22: FAIL_OK

# NOT IMPLEMENTED: isSealed
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-23: FAIL_OK

# NOT IMPLEMENTED: isFrozen
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-24: FAIL_OK

# NOT IMPLEMENTED: isExtensible
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-25: FAIL_OK

# NOT IMPLEMENTED: bind
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-38: FAIL_OK

# NaN is writable
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178: FAIL_OK
# Infinity is writable
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179: FAIL_OK
# undefined is writable
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180: FAIL_OK

# Our Function object has a "arguments" property which is used as a non
# property in in the test
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-183: FAIL_OK

# Our Function object has a "caller" property which is used as a non
# property in in the test
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-184: FAIL_OK

# Our function object has a name property which is used as a non
# property in the test
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188: FAIL_OK

# NOT IMPLEMENTED: RegExp.prototype.source
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212: FAIL_OK

# NOT IMPLEMENTED: RegExp.prototype.global
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213: FAIL_OK

# NOT IMPLEMENTED: RegExp.prototype.ignoreCase
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214: FAIL_OK

# NOT IMPLEMENTED: RegExp.prototype.multiline
chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215: FAIL_OK

# All of the tests below marked SUBSETFAIL (in 15.2.3.4) fail because 
# the tests assumes that objects can not have more properties
# than those described in the spec - but according to spec they can 
# have additional properties.
# All compareArray calls in these tests could be exchanged with a 
# isSubsetOfArray call (I will upload a path to the es5conform site)

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-1: FAIL_OK

# SUBSETFAIL + we do not implement all methods on Object
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-2: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-3: FAIL_OK

# SUBSETFAIL + we do not implement Function.prototype.bind
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-4: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-5: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-6: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-7: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-8: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-9: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-11: FAIL_OK

# We do not implement all methods on RegExp
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-13: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-14: FAIL_OK

# EvalError.prototype does not have message property
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-15: FAIL_OK

# Rangeerror.prototype does not have message property
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-16: FAIL_OK

# ReferenceError.prototype does not have message property
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-17: FAIL_OK

# SyntaxError.prototype does not have message property
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-18: FAIL_OK

# TypeError.prototype does not have message property
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-19: FAIL_OK

# URIError.prototype does not have message property
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-20: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-22: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-23: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-24: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-25: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-26: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-27: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-28: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-29: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-30: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-31: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-32: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-33: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-34: FAIL_OK

# SUBSETFAIL
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-35: FAIL_OK

# getOwnPropertyDescriptor not implemented on array indices
chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-1: FAIL_OK




# We fail this because Object.keys returns numbers for element indices
# rather than strings.
#chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-3: FAIL_OK

chapter15/15.3: UNIMPLEMENTED

chapter15/15.4/15.4.4/15.4.4.14: UNIMPLEMENTED
chapter15/15.4/15.4.4/15.4.4.15: UNIMPLEMENTED
chapter15/15.4/15.4.4/15.4.4.20: UNIMPLEMENTED
chapter15/15.4/15.4.4/15.4.4.21: UNIMPLEMENTED
chapter15/15.4/15.4.4/15.4.4.22: UNIMPLEMENTED

# Wrong test - because this is not given as argument to arr.every
# this._15_4_4_16_5_1 evaluates to undefined
chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1: FAIL_OK

# In test case the element is not appended - it is added in the middle of 
# the array
chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1: FAIL_OK

# We fail because the test assumes that if the reference to array is deleted it
# is not longer traversed
chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7: FAIL_OK

# if (val>1) in test should be if (val>2)
chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10: FAIL_OK

# Wrong assumption - according to spec some returns a Boolean, not a number
chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9: FAIL_OK

# Same as 15.4.4.16-5-1
chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1: FAIL_OK

# Same as 15.4.4.16-7-1
chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1: FAIL_OK

# Same as 15.4.4.16-7-7
chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-7: FAIL_OK

# Same as 15.4.4.16-10-8
chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10: FAIL_OK

# Same as 15.4.4.16-5-1
chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1: FAIL_OK

# Same as 15.4.4.16-7-7
chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-6: FAIL_OK

# Same as 15.4.4.16-5-1
chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1: FAIL_OK

# Same as 15.4.4.16-7-7
chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7: FAIL_OK

# Uses a array index number as a property
chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1: FAIL_OK


chapter15/15.5: UNIMPLEMENTED
chapter15/15.6: UNIMPLEMENTED
chapter15/15.7: UNIMPLEMENTED
chapter15/15.9: UNIMPLEMENTED
chapter15/15.10: UNIMPLEMENTED
chapter15/15.12: UNIMPLEMENTED

[ $arch == mips ]

# Skip all tests on MIPS.
*: SKIP