1# Copyright 2013 the V8 project authors. All rights reserved. 2# Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 1. Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. 9# 2. Redistributions in binary form must reproduce the above copyright 10# notice, this list of conditions and the following disclaimer in the 11# documentation and/or other materials provided with the distribution. 12# 13# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY 14# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY 17# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 20# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 22# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 24This test checks the behavior of the every() method on Array objects. 25 26On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". 27 28 291.0 Single Argument Testing 30PASS [12, 5, 8, 130, 44].every(isBigEnough) is false 31PASS [12, 54, 18, 130, 44].every(isBigEnough) is true 32 332.0 Two Argument Testing 34PASS [12, 5, 10, 130, 44].every(isBigEnough, predicate) is false 35PASS [12, 54, 18, 130, 44].every(isBigEnough, predicate) is true 36 373.0 Array Mutation Tests 38 393.1 Array Element Removal 40PASS [12, 5, 8, 130, 44].every(isBigEnoughAndPop) is false 41PASS [12, 54, 18, 130, 44].every(isBigEnoughAndPop) is true 42 433.2 Array Element Changing 44PASS [12, 5, 8, 130, 44].every(isBigEnoughAndChange) is false 45PASS [12, 54, 18, 130, 44].every(isBigEnoughAndChange) is false 46 473.3 Array Element Addition 48PASS [12, 5, 8, 130, 44].every(isBigEnoughAndPush) is false 49PASS [12, 54, 18, 130, 44].every(isBigEnoughAndPush) is false 50 514.0 Exception Test 52PASS [12, 5, 8, 130, 44].every(isBigEnoughAndException) threw exception exception from function. 53PASS [12, 54, 18, 130, 44].every(isBigEnoughAndException) threw exception exception from function. 54 555.0 Wrong Type for Callback Test 56PASS [12, 5, 8, 130, 44].every(5) threw exception TypeError: 5 is not a function. 57PASS [12, 5, 8, 130, 44].every('wrong') threw exception TypeError: wrong is not a function. 58PASS [12, 5, 8, 130, 44].every(new Object()) threw exception TypeError: #<Object> is not a function. 59PASS [12, 5, 8, 130, 44].every(null) threw exception TypeError: null is not a function. 60PASS [12, 5, 8, 130, 44].every(undefined) threw exception TypeError: undefined is not a function. 61PASS [12, 5, 8, 130, 44].every() threw exception TypeError: undefined is not a function. 62 636.0 Early Exit ("Short Circuiting") 64PASS [12, 5, 8, 130, 44].every(isBigEnoughShortCircuit) is false 65PASS accumulator.toString() is [12, 5].toString() 66PASS [12, 54, 18, 130, 44].every(isBigEnoughShortCircuit) is true 67PASS accumulator.toString() is [12, 54, 18, 130, 44].toString() 68 697.0 Behavior for Holes in Arrays 70PASS arr.every(isNotUndefined) is true 71PASS arr.every(isNotUndefined) is true 72PASS successfullyParsed is true 73 74TEST COMPLETE 75 76