Index: test/webkit/fast/js/kde/operators-expected.txt |
diff --git a/test/webkit/fast/js/kde/operators-expected.txt b/test/webkit/fast/js/kde/operators-expected.txt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..def78c0643d3e97583b7a0a03ac35140efa316f9 |
--- /dev/null |
+++ b/test/webkit/fast/js/kde/operators-expected.txt |
@@ -0,0 +1,346 @@ |
+# 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 |
+ |