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

KDE JS Test

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS !undefined is true
PASS !null is true
PASS !!true is true
PASS !false is true
PASS !!1 is true
PASS !0 is true
PASS !!'a' is true
PASS !'' is true
PASS nonSpeculativeNot(undefined) is true
PASS nonSpeculativeNot(null) is true
PASS nonSpeculativeNot(!true) is true
PASS nonSpeculativeNot(false) is true
PASS nonSpeculativeNot(!1) is true
PASS nonSpeculativeNot(0) is true
PASS nonSpeculativeNot(!'a') is true
PASS nonSpeculativeNot('') is true
PASS +9 is 9
PASS var i = 10; +i is 10
PASS -11 is -11
PASS var i = 12; -i is -12
PASS var i = 0; ++i; is 1
PASS var i = 0; ++i; i is 1
PASS var i = 0; i++; is 0
PASS var i = 0; i++; i is 1
PASS var i = true; i++ is 1
PASS var i = true; i++; i is 2
PASS var i = 0; --i; is -1
PASS var i = 0; --i; i is -1
PASS var i = 0; i--; is 0
PASS var i = 0; i--; i is -1
PASS var i = true; i-- is 1
PASS var i = true; i--; i is 0
PASS ~0 is -1
PASS ~1 is -2
PASS ~NaN is -1
PASS ~Infinity is -1
PASS ~Math.pow(2, 33) is -1
PASS ~(Math.pow(2, 32) + Math.pow(2, 31) + 2) is 2147483645
PASS ~null is -1
PASS 3 & 1 is 1
PASS 2 | true is 3
PASS '3' ^ 1 is 2
PASS 3^4&5 is 7
PASS 2|4^5 is 3
PASS 1 << 2 is 4
PASS 8 >> 1 is 4
PASS 1 >> 2 is 0
PASS -8 >> 24 is -1
PASS 8 >>> 2 is 2
PASS -8 >>> 24 is 255
PASS (-2200000000 >> 1) << 1 is 2094967296
PASS Infinity >> 1 is 0
PASS Infinity << 1 is 0
PASS Infinity >>> 1 is 0
PASS NaN >> 1 is 0
PASS NaN << 1 is 0
PASS NaN >>> 1 is 0
PASS 8.1 >> 1 is 4
PASS 8.1 << 1 is 16
PASS 8.1 >>> 1 is 4
PASS 8.9 >> 1 is 4
PASS 8.9 << 1 is 16
PASS 8.9 >>> 1 is 4
PASS Math.pow(2, 32) >> 1 is 0
PASS Math.pow(2, 32) << 1 is 0
PASS Math.pow(2, 32) >>> 1 is 0
PASS 1 << two is 4
PASS 8 >> one is 4
PASS 1 >> two is 0
PASS -8 >> twentyFour is -1
PASS 8 >>> two is 2
PASS -8 >>> twentyFour is 255
PASS (-2200000000 >> one) << one is 2094967296
PASS Infinity >> one is 0
PASS Infinity << one is 0
PASS Infinity >>> one is 0
PASS NaN >> one is 0
PASS NaN << one is 0
PASS NaN >>> one is 0
PASS 888.1 >> one is 444
PASS 888.1 << one is 1776
PASS 888.1 >>> one is 444
PASS 888.9 >> one is 444
PASS 888.9 << one is 1776
PASS 888.9 >>> one is 444
PASS Math.pow(2, 32) >> one is 0
PASS Math.pow(2, 32) << one is 0
PASS Math.pow(2, 32) >>> one is 0
PASS 1+2 is 3
PASS 'a'+'b' is 'ab'
PASS 'a'+2 is 'a2'
PASS '2'+'-1' is '2-1'
PASS true+'a' is 'truea'
PASS 'a' + null is 'anull'
PASS true+1 is 2
PASS false+null is 0
PASS 1-3 is -2
PASS isNaN('a'-3) is true
PASS '3'-'-1' is 4
PASS '4'-2 is 2
PASS true-false is 1
PASS false-1 is -1
PASS null-true is -1
PASS 2 * 3 is 6
PASS true * 3 is 3
PASS 2 * '3' is 6
PASS 6 / 4 is 1.5
PASS '6' / '2' is 3
PASS isNaN('x' / 1) is true
PASS isNaN(1 / NaN) is true
PASS isNaN(Infinity / Infinity) is true
PASS Infinity / 0 is Infinity
PASS -Infinity / 0 is -Infinity
PASS Infinity / 1 is Infinity
PASS -Infinity / 1 is -Infinity
PASS 1 / Infinity == +0 is true
PASS 1 / -Infinity == -0 is true
PASS isNaN(0/0) is true
PASS 0 / 1 === 0 is true
PASS 0 / -1 === -0 is true
PASS 1 / 0 is Infinity
PASS -1 / 0 is -Infinity
PASS 6 % 4 is 2
PASS '-6' % 4 is -2
PASS 2==2 is true
PASS 1==2 is false
PASS nonSpeculativeEqual(2,2) is true
PASS nonSpeculativeEqual(1,2) is false
PASS 1<2 is true
PASS 1<=2 is true
PASS 2<1 is false
PASS 2<=1 is false
PASS nonSpeculativeLess(1,2) is true
PASS nonSpeculativeLessEq(1,2) is true
PASS nonSpeculativeLess(2,1) is false
PASS nonSpeculativeLessEq(2,1) is false
PASS 2>1 is true
PASS 2>=1 is true
PASS 1>=2 is false
PASS 1>2 is false
PASS nonSpeculativeGreater(2,1) is true
PASS nonSpeculativeGreaterEq(2,1) is true
PASS nonSpeculativeGreaterEq(1,2) is false
PASS nonSpeculativeGreater(1,2) is false
PASS 'abc' == 'abc' is true
PASS 'abc' != 'xyz' is true
PASS true == true is true
PASS false == false is true
PASS true != false is true
PASS 'a' != null is true
PASS 'a' != undefined is true
PASS null == null is true
PASS null == undefined is true
PASS undefined == undefined is true
PASS NaN != NaN is true
PASS true != undefined is true
PASS true != null is true
PASS false != undefined is true
PASS false != null is true
PASS '0' == 0 is true
PASS 1 == '1' is true
PASS NaN != NaN is true
PASS NaN != 0 is true
PASS NaN != undefined is true
PASS true == 1 is true
PASS true != 2 is true
PASS 1 == true is true
PASS false == 0 is true
PASS 0 == false is true
PASS nonSpeculativeEqual('abc', 'abc') is true
PASS nonSpeculativeNotEqual('abc', 'xyz') is true
PASS nonSpeculativeEqual(true, true) is true
PASS nonSpeculativeEqual(false, false) is true
PASS nonSpeculativeNotEqual(true, false) is true
PASS nonSpeculativeNotEqual('a', null) is true
PASS nonSpeculativeNotEqual('a', undefined) is true
PASS nonSpeculativeEqual(null, null) is true
PASS nonSpeculativeEqual(null, undefined) is true
PASS nonSpeculativeEqual(undefined, undefined) is true
PASS nonSpeculativeNotEqual(NaN, NaN) is true
PASS nonSpeculativeNotEqual(true, undefined) is true
PASS nonSpeculativeNotEqual(true, null) is true
PASS nonSpeculativeNotEqual(false, undefined) is true
PASS nonSpeculativeNotEqual(false, null) is true
PASS nonSpeculativeEqual('0', 0) is true
PASS nonSpeculativeEqual(1, '1') is true
PASS nonSpeculativeNotEqual(NaN, NaN) is true
PASS nonSpeculativeNotEqual(NaN, 0) is true
PASS nonSpeculativeNotEqual(NaN, undefined) is true
PASS nonSpeculativeEqual(true, 1) is true
PASS nonSpeculativeNotEqual(true, 2) is true
PASS nonSpeculativeEqual(1, true) is true
PASS nonSpeculativeEqual(false, 0) is true
PASS nonSpeculativeEqual(0, false) is true
PASS 'abc' < 'abx' is true
PASS 'abc' < 'abcd' is true
PASS 'abc' < 'abc' is false
PASS 'abcd' < 'abcd' is false
PASS 'abx' < 'abc' is false
PASS nonSpeculativeLess('abc', 'abx') is true
PASS nonSpeculativeLess('abc', 'abcd') is true
PASS nonSpeculativeLess('abc', 'abc') is false
PASS nonSpeculativeLess('abcd', 'abcd') is false
PASS nonSpeculativeLess('abx', 'abc') is false
PASS 'abc' <= 'abc' is true
PASS 'abc' <= 'abx' is true
PASS 'abx' <= 'abc' is false
PASS 'abcd' <= 'abc' is false
PASS 'abc' <= 'abcd' is true
PASS nonSpeculativeLessEq('abc', 'abc') is true
PASS nonSpeculativeLessEq('abc', 'abx') is true
PASS nonSpeculativeLessEq('abx', 'abc') is false
PASS nonSpeculativeLessEq('abcd', 'abc') is false
PASS nonSpeculativeLessEq('abc', 'abcd') is true
PASS 'abc' > 'abx' is false
PASS 'abc' > 'abc' is false
PASS 'abcd' > 'abc' is true
PASS 'abx' > 'abc' is true
PASS 'abc' > 'abcd' is false
PASS nonSpeculativeGreater('abc', 'abx') is false
PASS nonSpeculativeGreater('abc', 'abc') is false
PASS nonSpeculativeGreater('abcd', 'abc') is true
PASS nonSpeculativeGreater('abx', 'abc') is true
PASS nonSpeculativeGreater('abc', 'abcd') is false
PASS 'abc' >= 'abc' is true
PASS 'abcd' >= 'abc' is true
PASS 'abx' >= 'abc' is true
PASS 'abc' >= 'abx' is false
PASS 'abc' >= 'abx' is false
PASS 'abc' >= 'abcd' is false
PASS nonSpeculativeGreaterEq('abc', 'abc') is true
PASS nonSpeculativeGreaterEq('abcd', 'abc') is true
PASS nonSpeculativeGreaterEq('abx', 'abc') is true
PASS nonSpeculativeGreaterEq('abc', 'abx') is false
PASS nonSpeculativeGreaterEq('abc', 'abx') is false
PASS nonSpeculativeGreaterEq('abc', 'abcd') is false
PASS 'abc' <= 0 is false
PASS '' <= 0 is true
PASS ' ' <= 0 is true
PASS null <= 0 is true
PASS 0 <= 'abc' is false
PASS 0 <= '' is true
PASS 0 <= null is true
PASS null <= null is true
PASS 6 < '52' is true
PASS 6 < '72' is true
PASS NaN < 0 is false
PASS NaN <= 0 is false
PASS NaN > 0 is false
PASS NaN >= 0 is false
PASS nonSpeculativeLessEq('abc', 0) is false
PASS nonSpeculativeLessEq('', 0) is true
PASS nonSpeculativeLessEq(' ', 0) is true
PASS nonSpeculativeLessEq(null, 0) is true
PASS nonSpeculativeLessEq(0, 'abc') is false
PASS nonSpeculativeLessEq(0, '') is true
PASS nonSpeculativeLessEq(0, null) is true
PASS nonSpeculativeLessEq(null, null) is true
PASS nonSpeculativeLess(6, '52') is true
PASS nonSpeculativeLess(6, '72') is true
PASS nonSpeculativeLess(NaN, 0) is false
PASS nonSpeculativeLessEq(NaN, 0) is false
PASS nonSpeculativeGreater(NaN, 0) is false
PASS nonSpeculativeGreaterEq(NaN, 0) is false
PASS 0 === false is false
PASS null === null is true
PASS NaN === NaN is false
PASS 0.0 === 0 is true
PASS 'abc' === 'abc' is true
PASS 'a' === 'x' is false
PASS 1 === '1' is false
PASS '1' === 1 is false
PASS true === true is true
PASS false === false is true
PASS true === false is false
PASS Math === Math is true
PASS Math === Boolean is false
PASS Infinity === Infinity is true
PASS nonSpeculativeStrictEqual(0, false) is false
PASS nonSpeculativeStrictEqual(null, null) is true
PASS nonSpeculativeStrictEqual(NaN, NaN) is false
PASS nonSpeculativeStrictEqual(0.0, 0) is true
PASS nonSpeculativeStrictEqual('abc', 'abc') is true
PASS nonSpeculativeStrictEqual('a', 'x') is false
PASS nonSpeculativeStrictEqual(1, '1') is false
PASS nonSpeculativeStrictEqual('1', 1) is false
PASS nonSpeculativeStrictEqual(true, true) is true
PASS nonSpeculativeStrictEqual(false, false) is true
PASS nonSpeculativeStrictEqual(true, false) is false
PASS nonSpeculativeStrictEqual(Math, Math) is true
PASS nonSpeculativeStrictEqual(Math, Boolean) is false
PASS nonSpeculativeStrictEqual(Infinity, Infinity) is true
PASS 0 !== 0 is false
PASS 0 !== 1 is true
PASS nonSpeculativeStrictNotEqual(0, 0) is false
PASS nonSpeculativeStrictNotEqual(0, 1) is true
PASS typeof undefined is 'undefined'
PASS typeof null is 'object'
PASS typeof true is 'boolean'
PASS typeof false is 'boolean'
PASS typeof 1 is 'number'
PASS typeof 'a' is 'string'
PASS typeof shouldBe is 'function'
PASS typeof Number.NaN is 'number'
PASS 11 && 22 is 22
PASS null && true is null
PASS 11 || 22 is 11
PASS null || 'a' is 'a'
PASS void 1 is undefined.
PASS 1 in [1, 2] is true
PASS 3 in [1, 2] is false
PASS 'a' in { a:1, b:2 } is true
PASS (new Boolean()) instanceof Boolean is true
PASS (new Boolean()) instanceof Number is false
PASS successfullyParsed is true

TEST COMPLETE

