2013-07-25 19:54:24 +00:00
|
|
|
# Copyright 2013 the V8 project authors. All rights reserved.
|
|
|
|
# Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
|
|
|
|
#
|
|
|
|
# Redistribution and use in source and binary forms, with or without
|
|
|
|
# modification, are permitted provided that the following conditions
|
|
|
|
# are met:
|
|
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
|
|
# notice, this list of conditions and the following disclaimer.
|
|
|
|
# 2. 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.
|
|
|
|
#
|
|
|
|
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
|
|
|
|
|
|
|
|
This test thoroughly checks the behaviour of the 'arguments' object.
|
|
|
|
|
|
|
|
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
|
|
|
|
|
|
|
|
|
|
|
|
PASS access_1(1, 2, 3) is 1
|
|
|
|
PASS access_2(1, 2, 3) is 2
|
|
|
|
PASS access_3(1, 2, 3) is 3
|
|
|
|
PASS access_4(1, 2, 3) is undefined
|
|
|
|
PASS access_5(1, 2, 3) is undefined
|
|
|
|
PASS access_1(1) is 1
|
|
|
|
PASS access_2(1) is undefined
|
|
|
|
PASS access_3(1) is undefined
|
|
|
|
PASS access_4(1) is undefined
|
|
|
|
PASS access_5(1) is undefined
|
|
|
|
PASS access_1(1, 2, 3, 4, 5) is 1
|
|
|
|
PASS access_2(1, 2, 3, 4, 5) is 2
|
|
|
|
PASS access_3(1, 2, 3, 4, 5) is 3
|
|
|
|
PASS access_4(1, 2, 3, 4, 5) is 4
|
|
|
|
PASS access_5(1, 2, 3, 4, 5) is 5
|
|
|
|
PASS argumentLengthIs5() is 5
|
|
|
|
PASS argumentLengthIs5(1,2,3,4,5) is 5
|
|
|
|
PASS argumentLengthIs5(1,2,3,4,5,6,7,8,9,10) is 5
|
|
|
|
PASS duplicateArgumentAndReturnLast_call(1) is 1
|
|
|
|
PASS duplicateArgumentAndReturnFirst_call(1) is 1
|
|
|
|
PASS duplicateArgumentAndReturnLast_apply(1) is 1
|
|
|
|
PASS duplicateArgumentAndReturnFirst_apply(1) is 1
|
|
|
|
PASS tear_off_equal_access_1(1, 2, 3) is 1
|
|
|
|
PASS tear_off_equal_access_2(1, 2, 3) is 2
|
|
|
|
PASS tear_off_equal_access_3(1, 2, 3) is 3
|
|
|
|
PASS tear_off_equal_access_4(1, 2, 3) is undefined
|
|
|
|
PASS tear_off_equal_access_5(1, 2, 3) is undefined
|
|
|
|
PASS tear_off_too_few_access_1(1) is 1
|
|
|
|
PASS tear_off_too_few_access_2(1) is undefined
|
|
|
|
PASS tear_off_too_few_access_3(1) is undefined
|
|
|
|
PASS tear_off_too_few_access_4(1) is undefined
|
|
|
|
PASS tear_off_too_few_access_5(1) is undefined
|
|
|
|
PASS tear_off_too_many_access_1(1, 2, 3, 4, 5) is 1
|
|
|
|
PASS tear_off_too_many_access_2(1, 2, 3, 4, 5) is 2
|
|
|
|
PASS tear_off_too_many_access_3(1, 2, 3, 4, 5) is 3
|
|
|
|
PASS tear_off_too_many_access_4(1, 2, 3, 4, 5) is 4
|
|
|
|
PASS tear_off_too_many_access_5(1, 2, 3, 4, 5) is 5
|
|
|
|
PASS live_1(0, 2, 3) is 1
|
|
|
|
PASS live_2(1, 0, 3) is 2
|
|
|
|
PASS live_3(1, 2, 0) is 3
|
|
|
|
PASS live_1(0) is 1
|
|
|
|
PASS live_2(1) is undefined
|
|
|
|
PASS live_3(1) is undefined
|
|
|
|
PASS live_1(0, 2, 3, 4, 5) is 1
|
|
|
|
PASS live_2(1, 0, 3, 4, 5) is 2
|
|
|
|
PASS live_3(1, 2, 0, 4, 5) is 3
|
|
|
|
PASS extra_args_modify_4(1, 2, 3, 0, 5) is 4
|
|
|
|
PASS extra_args_modify_5(1, 2, 3, 4, 0) is 5
|
|
|
|
PASS tear_off_live_1(0, 2, 3)() is 1
|
|
|
|
PASS tear_off_live_2(1, 0, 3)() is 2
|
|
|
|
PASS tear_off_live_3(1, 2, 0)() is 3
|
|
|
|
PASS tear_off_live_1(0)() is 1
|
|
|
|
PASS tear_off_live_2(1)() is undefined
|
|
|
|
PASS tear_off_live_3(1)() is undefined
|
|
|
|
PASS tear_off_live_1(0, 2, 3, 4, 5)() is 1
|
|
|
|
PASS tear_off_live_2(1, 0, 3, 4, 5)() is 2
|
|
|
|
PASS tear_off_live_3(1, 2, 0, 4, 5)() is 3
|
|
|
|
PASS tear_off_extra_args_modify_4(1, 2, 3, 0, 5)() is 4
|
|
|
|
PASS tear_off_extra_args_modify_5(1, 2, 3, 4, 0)() is 5
|
|
|
|
PASS delete_1(1, 2, 3) is undefined
|
|
|
|
PASS delete_2(1, 2, 3) is undefined
|
|
|
|
PASS delete_3(1, 2, 3) is undefined
|
|
|
|
PASS delete_4(1, 2, 3) is undefined
|
|
|
|
PASS delete_5(1, 2, 3) is undefined
|
|
|
|
PASS delete_1(1) is undefined
|
|
|
|
PASS delete_2(1) is undefined
|
|
|
|
PASS delete_3(1) is undefined
|
|
|
|
PASS delete_4(1) is undefined
|
|
|
|
PASS delete_5(1) is undefined
|
|
|
|
PASS delete_1(1, 2, 3, 4, 5) is undefined
|
|
|
|
PASS delete_2(1, 2, 3, 4, 5) is undefined
|
|
|
|
PASS delete_3(1, 2, 3, 4, 5) is undefined
|
|
|
|
PASS delete_4(1, 2, 3, 4, 5) is undefined
|
|
|
|
PASS delete_5(1, 2, 3, 4, 5) is undefined
|
|
|
|
PASS tear_off_delete_1(1, 2, 3)() is undefined
|
|
|
|
PASS tear_off_delete_2(1, 2, 3)() is undefined
|
|
|
|
PASS tear_off_delete_3(1, 2, 3)() is undefined
|
|
|
|
PASS tear_off_delete_4(1, 2, 3)() is undefined
|
|
|
|
PASS tear_off_delete_5(1, 2, 3)() is undefined
|
|
|
|
PASS tear_off_delete_1(1)() is undefined
|
|
|
|
PASS tear_off_delete_2(1)() is undefined
|
|
|
|
PASS tear_off_delete_3(1)() is undefined
|
|
|
|
PASS tear_off_delete_4(1)() is undefined
|
|
|
|
PASS tear_off_delete_5(1)() is undefined
|
|
|
|
PASS tear_off_delete_1(1, 2, 3, 4, 5)() is undefined
|
|
|
|
PASS tear_off_delete_2(1, 2, 3, 4, 5)() is undefined
|
|
|
|
PASS tear_off_delete_3(1, 2, 3, 4, 5)() is undefined
|
|
|
|
PASS tear_off_delete_4(1, 2, 3, 4, 5)() is undefined
|
|
|
|
PASS tear_off_delete_5(1, 2, 3, 4, 5)() is undefined
|
|
|
|
PASS delete_not_live_1(1, 2, 3) is 1
|
|
|
|
PASS delete_not_live_2(1, 2, 3) is 2
|
|
|
|
PASS delete_not_live_3(1, 2, 3) is 3
|
|
|
|
PASS delete_not_live_1(1) is 1
|
|
|
|
PASS delete_not_live_2(1) is undefined
|
|
|
|
PASS delete_not_live_3(1) is undefined
|
|
|
|
PASS delete_not_live_1(1, 2, 3, 4, 5) is 1
|
|
|
|
PASS delete_not_live_2(1, 2, 3, 4, 5) is 2
|
|
|
|
PASS delete_not_live_3(1, 2, 3, 4, 5) is 3
|
|
|
|
PASS tear_off_delete_not_live_1(1, 2, 3)() is 1
|
|
|
|
PASS tear_off_delete_not_live_2(1, 2, 3)() is 2
|
|
|
|
PASS tear_off_delete_not_live_3(1, 2, 3)() is 3
|
|
|
|
PASS tear_off_delete_not_live_1(1)() is 1
|
|
|
|
PASS tear_off_delete_not_live_2(1)() is undefined
|
|
|
|
PASS tear_off_delete_not_live_3(1)() is undefined
|
|
|
|
PASS tear_off_delete_not_live_1(1, 2, 3, 4, 5)() is 1
|
|
|
|
PASS tear_off_delete_not_live_2(1, 2, 3, 4, 5)() is 2
|
|
|
|
PASS tear_off_delete_not_live_3(1, 2, 3, 4, 5)() is 3
|
|
|
|
PASS access_after_delete_named_2(1, 2, 3) is 2
|
|
|
|
PASS access_after_delete_named_3(1, 2, 3) is 3
|
|
|
|
PASS access_after_delete_named_4(1, 2, 3) is undefined
|
|
|
|
PASS access_after_delete_named_2(1) is undefined
|
|
|
|
PASS access_after_delete_named_3(1) is undefined
|
|
|
|
PASS access_after_delete_named_4(1) is undefined
|
|
|
|
PASS access_after_delete_named_2(1, 2, 3, 4) is 2
|
|
|
|
PASS access_after_delete_named_3(1, 2, 3, 4) is 3
|
|
|
|
PASS access_after_delete_named_4(1, 2, 3, 4) is 4
|
|
|
|
PASS access_after_delete_extra_1(1, 2, 3) is 1
|
|
|
|
PASS access_after_delete_extra_2(1, 2, 3) is 2
|
|
|
|
PASS access_after_delete_extra_3(1, 2, 3) is 3
|
|
|
|
PASS access_after_delete_extra_5(1, 2, 3) is undefined
|
|
|
|
PASS access_after_delete_extra_1(1) is 1
|
|
|
|
PASS access_after_delete_extra_2(1) is undefined
|
|
|
|
PASS access_after_delete_extra_3(1) is undefined
|
|
|
|
PASS access_after_delete_extra_5(1) is undefined
|
|
|
|
PASS access_after_delete_extra_1(1, 2, 3, 4, 5) is 1
|
|
|
|
PASS access_after_delete_extra_2(1, 2, 3, 4, 5) is 2
|
|
|
|
PASS access_after_delete_extra_3(1, 2, 3, 4, 5) is 3
|
|
|
|
PASS access_after_delete_extra_5(1, 2, 3, 4, 5) is 5
|
|
|
|
PASS argumentsParam(true) is true
|
|
|
|
PASS argumentsFunctionConstructorParam(true) is true
|
|
|
|
PASS argumentsVarUndefined() is '[object Arguments]'
|
2015-06-22 12:06:55 +00:00
|
|
|
FAIL argumentsConstUndefined() should be [object Arguments]. Threw exception SyntaxError: Identifier 'arguments' has already been declared
|
2013-07-25 19:54:24 +00:00
|
|
|
PASS argumentCalleeInException() is argumentCalleeInException
|
|
|
|
PASS shadowedArgumentsApply([true]) is true
|
|
|
|
PASS shadowedArgumentsLength([]) is 0
|
|
|
|
PASS shadowedArgumentsLength() threw exception TypeError: Cannot read property 'length' of undefined.
|
|
|
|
PASS shadowedArgumentsCallee([]) is undefined.
|
|
|
|
PASS shadowedArgumentsIndex([true]) is true
|
|
|
|
PASS descriptor.value is "one"
|
|
|
|
PASS descriptor.writable is true
|
|
|
|
PASS descriptor.enumerable is true
|
|
|
|
PASS descriptor.configurable is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS true is true
|
|
|
|
PASS false is false
|
|
|
|
PASS true is true
|
|
|
|
PASS false is false
|
|
|
|
PASS false is false
|
|
|
|
PASS undefined is undefined.
|
|
|
|
PASS true is true
|
|
|
|
PASS false is false
|
|
|
|
PASS successfullyParsed is true
|
|
|
|
|
|
|
|
TEST COMPLETE
|
|
|
|
|