diff options
Diffstat (limited to 'external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator')
29 files changed, 1048 insertions, 0 deletions
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A1.js new file mode 100644 index 000000000..637f50ef9 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A1.js @@ -0,0 +1,59 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** +* @name: S11.9.1_A1; +* @section: 11.9.1, 7.2, 7.3; +* @assertion: White Space and Line Terminator between EqualityExpression and "==" or between "==" and RelationalExpression are allowed; +* @description: Checking by using eval; +*/ + +//CHECK#1 +if (eval("true\u0009==\u00091") !== true) { + $ERROR('#1: (true\\u0009==\\u00091) === true'); +} + +//CHECK#2 +if (eval("true\u000B==\u000B1") !== true) { + $ERROR('#2: (true\\u000B==\\u000B1) === true'); +} + +//CHECK#3 +if (eval("true\u000C==\u000C1") !== true) { + $ERROR('#3: (true\\u000C==\\u000C1) === true'); +} + +//CHECK#4 +if (eval("true\u0020==\u00201") !== true) { + $ERROR('#4: (true\\u0020==\\u00201) === true'); +} + +//CHECK#5 +if (eval("true\u00A0==\u00A01") !== true) { + $ERROR('#5: (true\\u00A0==\\u00A01) === true'); +} + +//CHECK#6 +if (eval("true\u000A==\u000A1") !== true) { + $ERROR('#6: (true\\u000A==\\u000A1) === true'); +} + +//CHECK#7 +if (eval("true\u000D==\u000D1") !== true) { + $ERROR('#7: (true\\u000D==\\u000D1) === true'); +} + +//CHECK#8 +if (eval("true\u2028==\u20281") !== true) { + $ERROR('#8: (true\\u2028==\\u20281) === true'); +} + +//CHECK#9 +if (eval("true\u2029==\u20291") !== true) { + $ERROR('#9: (true\\u2029==\\u20291) === true'); +} + +//CHECK#10 +if (eval("true\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029==\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u20291") !== true) { + $ERROR('#10: (true\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029==\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u20291) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T1.js new file mode 100644 index 000000000..8a751c0b3 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T1.js @@ -0,0 +1,42 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A2.1_T1; + * @section: 11.9.1; + * @assertion: Operator x == y uses GetValue; + * @description: Either Type is not Reference or GetBase is not null; +*/ + +//CHECK#1 +if ((1 == 1) !== true) { + $ERROR('#1: (1 == 1) === true'); +} + +//CHECK#2 +var x = 1; +if ((x == 1) !== true) { + $ERROR('#2: var x = 1; (x == 1) === true'); +} + +//CHECK#3 +var y = 1; +if ((1 == y) !== true) { + $ERROR('#3: var y = 1; (1 == y) === true'); +} + +//CHECK#4 +var x = 1; +var y = 1; +if ((x == y) !== true) { + $ERROR('#4: var x = 1; var y = 1; (x == y) === true'); +} + +//CHECK#5 +var objectx = new Object(); +var objecty = new Object(); +objectx.prop = 1; +objecty.prop = 1; +if ((objectx.prop == objecty.prop) !== true) { + $ERROR('#5: var objectx = new Object(); var objecty = new Object(); objectx.prop = 1; objecty.prop = 1; (objectx.prop == objecty.prop) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T2.js new file mode 100644 index 000000000..e631cf4a0 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T2.js @@ -0,0 +1,21 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A2.1_T2; + * @section: 11.9.1; + * @assertion: Operator x == y uses GetValue; + * @description: If GetBase(x) is null, throw ReferenceError; +*/ + +//CHECK#1 +try { + x == 1; + $ERROR('#1.1: x == 1 throw ReferenceError. Actual: ' + (x == 1)); +} +catch (e) { + if ((e instanceof ReferenceError) !== true) { + $ERROR('#1.2: x == 1 throw ReferenceError. Actual: ' + (e)); + } +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T3.js new file mode 100644 index 000000000..87dfd3630 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.1_T3.js @@ -0,0 +1,21 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A2.1_T3; + * @section: 11.9.1; + * @assertion: Operator x == y uses GetValue; + * @description: If GetBase(y) is null, throw ReferenceError; +*/ + +//CHECK#1 +try { + 1 == y; + $ERROR('#1.1: 1 == y throw ReferenceError. Actual: ' + (1 == y)); +} +catch (e) { + if ((e instanceof ReferenceError) !== true) { + $ERROR('#1.2: 1 == y throw ReferenceError. Actual: ' + (e)); + } +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T1.js new file mode 100644 index 000000000..e712df117 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T1.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A2.4_T1; + * @section: 11.9.1; + * @assertion: First expression is evaluated first, and then second expression; + * @description: Checking with "="; +*/ + +//CHECK#1 +var x = 0; +if (((x = 1) == x) !== true) { + $ERROR('#1: var x = 0; ((x = 1) == x) === true'); +} + +//CHECK#2 +var x = 0; +if ((x == (x = 1)) !== false) { + $ERROR('#2: var x = 0; (x == (x = 1)) === false'); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T2.js new file mode 100644 index 000000000..7f9642a5f --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T2.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A2.4_T2; + * @section: 11.9.1; + * @assertion: First expression is evaluated first, and then second expression; + * @description: Checking with "throw"; +*/ + +//CHECK#1 +var x = function () { throw "x"; }; +var y = function () { throw "y"; }; +try { + x() == y(); + $ERROR('#1.1: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() == y() throw "x". Actual: ' + (x() == y())); +} catch (e) { + if (e === "y") { + $ERROR('#1.2: First expression is evaluated first, and then second expression'); + } else { + if (e !== "x") { + $ERROR('#1.3: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() == y() throw "x". Actual: ' + (e)); + } + } +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T3.js new file mode 100644 index 000000000..ee4f3cc27 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A2.4_T3.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A2.4_T3; + * @section: 11.9.1; + * @assertion: First expression is evaluated first, and then second expression; + * @description: Checking with undeclarated variables; +*/ + +//CHECK#1 +try { + x == (x = 1); + $ERROR('#1.1: x == (x = 1) throw ReferenceError. Actual: ' + (x == (x = 1))); +} +catch (e) { + if ((e instanceof ReferenceError) !== true) { + $ERROR('#1.2: x == (x = 1) throw ReferenceError. Actual: ' + (e)); + } +} + +//CHECK#2 +if (((y = 1) == y) !== true) { + $ERROR('#2: ((y = 1) == y) === true'); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.1.js new file mode 100644 index 000000000..c9ca2a415 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.1.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A3.1; + * @section: 11.9.1, 11.9.3; + * @assertion: Return true, if x and y are both true or both false; otherwise, return false; + * @description: x and y are boolean primitives; + */ + +//CHECK#1 +if ((true == true) !== true) { + $ERROR('#1: (true == true) === true'); +} + +//CHECK#2 +if ((false == false) !== true) { + $ERROR('#2: (false == false) === true'); +} + +//CHECK#3 +if ((true == false) !== false) { + $ERROR('#3: (true == false) === false'); +} + +//CHECK#4 +if ((false == true) !== false) { + $ERROR('#4: (false == true) === false'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.2.js new file mode 100644 index 000000000..9306cefd8 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.2.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A3.2; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is Boolean and Type(y) is Number, + * return the result of comparison ToNumber(x) == y; + * @description: x is primitive boolean, y is primitive number; + */ + +//CHECK#1 +if ((true == 1) !== true) { + $ERROR('#1: (true == 1) === true'); +} + +//CHECK#2 +if ((false == "0") !== true) { + $ERROR('#2: (false == "0") === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.3.js new file mode 100644 index 000000000..2548c4b2e --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A3.3.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A3.3; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(y) is Number and Type(y) is Boolean, + * return the result of comparison x == ToNumber(y); + * @description: x is primitive number, y is primitive boolean; + */ + +//CHECK#1 +if ((0 == false) !== true) { + $ERROR('#1: (0 == false) === true'); +} + +//CHECK#2 +if (("1" == true) !== true) { + $ERROR('#2: ("1" == true) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.1_T1.js new file mode 100644 index 000000000..16e798bb1 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.1_T1.js @@ -0,0 +1,55 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A4.1_T1; + * @section: 11.9.1, 11.9.3; + * @assertion: If x or y is NaN, return false; + * @description: x is NaN; +*/ + +//CHECK#1 +if ((Number.NaN == true) !== false) { + $ERROR('#1: (NaN == true) === false'); +} + +//CHECK#2 +if ((Number.NaN == 1) !== false) { + $ERROR('#2: (NaN == 1) === false'); +} + +//CHECK#3 +if ((Number.NaN == Number.NaN) !== false) { + $ERROR('#3: (NaN == NaN) === false'); +} + +//CHECK#4 +if ((Number.NaN == Number.POSITIVE_INFINITY) !== false) { + $ERROR('#4: (NaN == +Infinity) === false'); +} + +//CHECK#5 +if ((Number.NaN == Number.NEGATIVE_INFINITY) !== false) { + $ERROR('#5: (NaN == -Infinity) === false'); +} + +//CHECK#6 +if ((Number.NaN == Number.MAX_VALUE) !== false) { + $ERROR('#6: (NaN == Number.MAX_VALUE) === false'); +} + +//CHECK#7 +if ((Number.NaN == Number.MIN_VALUE) !== false) { + $ERROR('#7: (NaN == Number.MIN_VALUE) === false'); +} + +//CHECK#8 +if ((Number.NaN == "string") !== false) { + $ERROR('#8: (NaN == "string") === false'); +} + +//CHECK#9 +if ((Number.NaN == new Object()) !== false) { + $ERROR('#9: (NaN == new Object()) === false'); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.1_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.1_T2.js new file mode 100644 index 000000000..78d0dd8be --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.1_T2.js @@ -0,0 +1,54 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A4.1_T2; + * @section: 11.9.1, 11.9.3; + * @assertion: If x or y is NaN, return false; + * @description: y is NaN; +*/ + +//CHECK#1 +if ((true == Number.NaN) !== false) { + $ERROR('#1: (true == NaN) === false'); +} + +//CHECK#2 +if ((-1 == Number.NaN) !== false) { + $ERROR('#2: (-1 == NaN) === false'); +} + +//CHECK#3 +if ((Number.NaN == Number.NaN) !== false) { + $ERROR('#3: (NaN == NaN) === false'); +} + +//CHECK#4 +if ((Number.POSITIVE_INFINITY == Number.NaN) !== false) { + $ERROR('#4: (+Infinity == NaN) === false'); +} + +//CHECK#5 +if ((Number.NEGATIVE_INFINITY == Number.NaN) !== false) { + $ERROR('#5: (-Infinity == NaN) === false'); +} + +//CHECK#6 +if ((Number.MAX_VALUE == Number.NaN) !== false) { + $ERROR('#6: (Number.MAX_VALUE == NaN) === false'); +} + +//CHECK#7 +if ((Number.MIN_VALUE == Number.NaN) !== false) { + $ERROR('#7: (Number.MIN_VALUE == NaN) === false'); +} + +//CHECK#8 +if (("string" == Number.NaN) !== false) { + $ERROR('#8: ("string" == NaN) === false'); +} + +//CHECK#9 +if ((new Object() == Number.NaN) !== false) { + $ERROR('#9: (new Object() == NaN) === false'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.2.js new file mode 100644 index 000000000..303505e0d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.2.js @@ -0,0 +1,19 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A4.2; + * @section: 11.9.1, 11.9.3; + * @assertion: If x is +0(-0) and y is -0(+0), return true; + * @description: Checking all combinations; +*/ + +//CHECK#1 +if ((+0 == -0) !== true) { + $ERROR('#1: (+0 == -0) === true'); +} + +//CHECK#2 +if ((-0 == +0) !== true) { + $ERROR('#2: (-0 == +0) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.3.js new file mode 100644 index 000000000..5ed26d722 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A4.3.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A4.3; + * @section: 11.9.1, 11.9.3; + * @assertion: Type(x) and Type(y) are Number-s minus NaN, +0, -0. + * Return true, if x is the same number value as y; otherwise, return false; + * @description: x and y are primitive numbers; +*/ + +//CHECK#1 +if ((Number.POSITIVE_INFINITY == Number.POSITIVE_INFINITY) !== true) { + $ERROR('#1: (+Infinity == +Infinity) === true'); +} + +//CHECK#2 +if ((Number.NEGATIVE_INFINITY == Number.NEGATIVE_INFINITY) !== true) { + $ERROR('#2: (-Infinity == -Infinity) === true'); +} + +//CHECK#3 +if ((Number.POSITIVE_INFINITY == -Number.NEGATIVE_INFINITY) !== true) { + $ERROR('#3: (+Infinity == -(-Infinity)) === true'); +} + +//CHECK#4 +if ((1 == 0.999999999999) !== false) { + $ERROR('#4: (1 == 0.999999999999) === false'); +} + +//CHECK#5 +if ((1.0 == 1) !== true) { + $ERROR('#5: (1.0 == 1) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.1.js new file mode 100644 index 000000000..6e2c34006 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.1.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A5.1; + * @section: 11.9.1, 11.9.3; + * @assertion: Type(x) and Type(y) are String-s. + * Return true, if x and y are exactly the same sequence of characters; otherwise, return false; + * @description: x and y are primitive string; + */ + +//CHECK#1 +if (("" == "") !== true) { + $ERROR('#1: ("" == "") === true'); +} + +//CHECK#2 +if ((" " == " ") !== true) { + $ERROR('#2: " (" == " ") === true'); +} + +//CHECK#3 +if ((" " == "") !== false) { + $ERROR('#3: " (" == "") === false'); +} + +//CHECK#4 +if (("string" == "string") !== true) { + $ERROR('#4: ("string" == "string") === true'); +} + +//CHECK#5 +if ((" string" == "string ") !== false) { + $ERROR('#5: (" string" == "string ") === false'); +} + +//CHECK#6 +if (("1.0" == "1") !== false) { + $ERROR('#6: ("1.0" == "1") === false'); +} + +//CHECK#7 +if (("0xff" == "255") !== false) { + $ERROR('#7: ("0xff" == "255") === false'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.2.js new file mode 100644 index 000000000..c9357227e --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.2.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A5.2; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is Number and Type(y) is String, + * return the result of comparison x == ToNumber(y); + * @description: x is primitive number, y is primitive string; + */ + +//CHECK#1 +if ((1 == "1") !== true) { + $ERROR('#1: (1 == "1") === true'); +} + +//CHECK#2 +if ((1.100 == "+1.10") !== true) { + $ERROR('#2: (1.100 == "+1.10") === true'); +} + +//CHECK#3 +if ((1 == "true") !== false) { + $ERROR('#3: (1 == "true") === false'); +} + +//CHECK#4 +if ((255 == "0xff") !== true) { + $ERROR('#4: (255 == "0xff") === true'); +} + +//CHECK#5 +if ((0 == "") !== true) { + $ERROR('#5: (0 == "") === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.3.js new file mode 100644 index 000000000..c947908e9 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A5.3.js @@ -0,0 +1,31 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A5.3; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is String and Type(y) is Number, + * return the result of comparison ToNumber(x) == y; + * @description: x is primitive string, y is primitive number; + */ + +//CHECK#1 +if (("-1" == -1) !== true) { + $ERROR('#1: ("-1" == -1) === true'); +} + +//CHECK#2 +if (("-1.100" == -1.10) !== true) { + $ERROR('#2: ("-1.100" == -1.10) === true'); +} + +//CHECK#3 +if (("false" == 0) !== false) { + $ERROR('#3: ("false" == 0) === false'); +} + +//CHECK#4 +if (("5e-324" == 5e-324) !== true) { + $ERROR('#4: ("5e-324" == 5e-324) === true'); +} + diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.1.js new file mode 100644 index 000000000..6d59e89b6 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.1.js @@ -0,0 +1,39 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A6.1; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) as well as Type(y) is undefined or null, return true; + * @description: Checking all combinations; +*/ + +//CHECK#1 +if ((undefined == undefined) !== true) { + $ERROR('#1: (undefined == undefined) === true'); +} + +//CHECK#2 +if ((void 0 == undefined) !== true) { + $ERROR('#2: (void 0 == undefined) === true'); +} + +//CHECK#3 +if ((undefined == eval("var x")) !== true) { + $ERROR('#3: (undefined == eval("var x")) === true'); +} + +//CHECK#4 +if ((undefined == null) !== true) { + $ERROR('#4: (undefined == null) === true'); +} + +//CHECK#5 +if ((null == void 0) !== true) { + $ERROR('#5: (null == void 0) === true'); +} + +//CHECK#6 +if ((null == null) !== true) { + $ERROR('#6: (null == null) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.2_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.2_T1.js new file mode 100644 index 000000000..2d8e77275 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.2_T1.js @@ -0,0 +1,49 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A6.2_T1; + * @section: 11.9.1, 11.9.3; + * @assertion: If one expression is undefined or null and another is not, return false; + * @description: x is null or undefined, y is not; +*/ + +//CHECK#1 +if ((undefined == true) !== false) { + $ERROR('#1: (undefined == true) === false'); +} + +//CHECK#2 +if ((undefined == 0) !== false) { + $ERROR('#2: (undefined == 0) === false'); +} + +//CHECK#3 +if ((undefined == "undefined") !== false) { + $ERROR('#3: (undefined == "undefined") === false'); +} + +//CHECK#4 +if ((undefined == {}) !== false) { + $ERROR('#4: (undefined == {}) === false'); +} + +//CHECK#5 +if ((null == false) !== false) { + $ERROR('#5: (null == false) === false'); +} + +//CHECK#6 +if ((null == 0) !== false) { + $ERROR('#6: (null == 0) === false'); +} + +//CHECK#7 +if ((null == "null") !== false) { + $ERROR('#7: (null == "null") === false'); +} + +//CHECK#8 +if ((null == {}) !== false) { + $ERROR('#8: (null == {}) === false'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.2_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.2_T2.js new file mode 100644 index 000000000..f0de41ae1 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A6.2_T2.js @@ -0,0 +1,49 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A6.2_T2; + * @section: 11.9.1, 11.9.3; +* @assertion: If one expression is undefined or null and another is not, return false; + * @description: y is null or undefined, x is not; +*/ + +//CHECK#1 +if ((false == undefined) !== false) { + $ERROR('#1: (false == undefined) === false'); +} + +//CHECK#2 +if ((Number.NaN == undefined) !== false) { + $ERROR('#2: (Number.NaN == undefined) === false'); +} + +//CHECK#3 +if (("undefined" == undefined) !== false) { + $ERROR('#3: ("undefined" == undefined) === false'); +} + +//CHECK#4 +if (({} == undefined) !== false) { + $ERROR('#4: ({} == undefined) === false'); +} + +//CHECK#5 +if ((false == null) !== false) { + $ERROR('#5: (false == null) === false'); +} + +//CHECK#6 +if ((0 == null) !== false) { + $ERROR('#6: (0 == null) === false'); +} + +//CHECK#7 +if (("null" == null) !== false) { + $ERROR('#7: ("null" == null) === false'); +} + +//CHECK#8 +if (({} == null) !== false) { + $ERROR('#8: ({} == null) === false'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.1.js new file mode 100644 index 000000000..f416f2ea9 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.1.js @@ -0,0 +1,52 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.1; + * @section: 11.9.1, 11.9.3; + * @assertion: Type(x) and Type(y) are Object-s. + * Return true, if x and y are references to the same Object; otherwise, return false; + * @description: Checking Boolean object, Number object, String object, Object object; + */ + +//CHECK#1 +if ((new Boolean(true) == new Boolean(true)) !== false) { + $ERROR('#1: (new Boolean(true) == new Boolean(true)) === false'); +} + +//CHECK#2 +if ((new Number(1) == new Number(1)) !== false) { + $ERROR('#2: (new Number(1) == new Number(1)) === false'); +} + +//CHECK#3 +if ((new String("x") == new String("x")) !== false) { + $ERROR('#3: (new String("x") == new String("x")) === false'); +} + +//CHECK#4 +if ((new Object() == new Object()) !== false) { + $ERROR('#4: (new Object() == new Object()) === false'); +} + +//CHECK#5 +x = {}; +y = x; +if ((x == y) !== true) { + $ERROR('#5: x = {}; y = x; (x == y) === true'); +} + +//CHECK#6 +if ((new Boolean(true) == new Number(1)) !== false) { + $ERROR('#6 (new Boolean(true) == new Number(1)) === false'); +} + +//CHECK#7 +if ((new Number(1) == new String("1")) !== false) { + $ERROR('#7: (new Number(1) == new String("1")) === false'); +} + +//CHECK#8 +if ((new String("1") == new Boolean(true)) !== false) { + $ERROR('#8: (new String("x") == new Boolean(true)) === false'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.2.js new file mode 100644 index 000000000..dabd9d1f9 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.2.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.2; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is Object and Type(y) is Boolean, + * return ToPrimitive(x) == y; + * @description: x is object, y is primitive boolean; +*/ + +//CHECK#1 +if ((new Boolean(true) == true) !== true) { + $ERROR('#1: (new Boolean(true) == true) === true'); +} + +//CHECK#2 +if ((new Number(1) == true) !== true) { + $ERROR('#2: (new Number(1) == true) === true'); +} + +//CHECK#3 +if ((new String("1") == true) !== true) { + $ERROR('#3: (new String("1") == true) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.3.js new file mode 100644 index 000000000..efc959768 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.3.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.3; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is Boolean and Type(y) is Object, + * return x == ToPrimitive(y); + * @description: y is object, x is primitive boolean; + */ + +//CHECK#1 +if ((true == new Boolean(true)) !== true) { + $ERROR('#1: (true == new Boolean(true)) === true'); +} + +//CHECK#2 +if ((true == new Number(1)) !== true) { + $ERROR('#2: (true == new Number(1)) === true'); +} + +//CHECK#3 +if ((true == new String("+1")) !== true) { + $ERROR('#3: (true == new String("+1")) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.4.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.4.js new file mode 100644 index 000000000..229fe3859 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.4.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.4; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is Object and Type(y) is Number, + * return ToPrimitive(x) == y; + * @description: x is object, y is primitive number; +*/ + +//CHECK#1 +if ((new Boolean(true) == 1) !== true) { + $ERROR('#1: (new Boolean(true) == 1) === true'); +} + +//CHECK#2 +if ((new Number(-1) == -1) !== true) { + $ERROR('#2: (new Number(-1) == -1) === true'); +} + +//CHECK#3 +if ((new String("-1") == -1) !== true) { + $ERROR('#3: (new String("-1") == -1) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.5.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.5.js new file mode 100644 index 000000000..e87efbf77 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.5.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.5; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is Number and Type(y) is Object, + * return x == ToPrimitive(y); + * @description: y is object, x is primitive number; + */ + +//CHECK#1 +if ((1 == new Boolean(true)) !== true) { + $ERROR('#1: (1 == new Boolean(true)) === true'); +} + +//CHECK#2 +if ((-1 == new Number(-1)) !== true) { + $ERROR('#2: (-1 == new Number(-1)) === true'); +} + +//CHECK#3 +if ((-1 == new String("-1")) !== true) { + $ERROR('#3: (-1 == new String("-1")) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.6.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.6.js new file mode 100644 index 000000000..092a50f5d --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.6.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.6; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is Object and Type(y) is String, + * return ToPrimitive(x) == y; + * @description: x is object, y is primitive string; + */ + +//CHECK#1 +if ((new Boolean(true) == "1") !== true) { + $ERROR('#1: (new Boolean(true) == "1") === true'); +} + +//CHECK#2 +if ((new Number(-1) == "-1") !== true) { + $ERROR('#2: (new Number(-1) == "-1") === true'); +} + +//CHECK#3 +if ((new String("x") == "x") !== true) { + $ERROR('#3: (new String("x") == "x") === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.7.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.7.js new file mode 100644 index 000000000..77d8d4847 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.7.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.7; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is String and Type(y) is Object, + * return x == ToPrimitive(y); + * @description: y is object, x is primitive string; + */ + +//CHECK#1 +if (("1" == new Boolean(true)) !== true) { + $ERROR('#1: ("1" == new Boolean(true)) === true'); +} + +//CHECK#2 +if (("-1" == new Number(-1)) !== true) { + $ERROR('#2: ("-1" == new Number(-1)) === true'); +} + +//CHECK#3 +if (("x" == new String("x")) !== true) { + $ERROR('#3: ("x" == new String("x")) === true'); +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.8.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.8.js new file mode 100644 index 000000000..586f09748 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.8.js @@ -0,0 +1,75 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.8; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is Object and Type(y) is primitive type, + * return ToPrimitive(x) == y; + * @description: x is object, y is primtitive; + */ + +//CHECK#1 +if (({valueOf: function() {return 1}} == true) !== true) { + $ERROR('#1: ({valueOf: function() {return 1}} == true) === true'); +} + +//CHECK#2 +if (({valueOf: function() {return 1}, toString: function() {return 0}} == 1) !== true) { + $ERROR('#2: ({valueOf: function() {return 1}, toString: function() {return 0}} == 1) === true'); +} + +//CHECK#3 +if (({valueOf: function() {return 1}, toString: function() {return {}}} == "+1") !== true) { + $ERROR('#3: ({valueOf: function() {return 1}, toString: function() {return {}}} == "+1") === true'); +} + +//CHECK#4 +try { + if (({valueOf: function() {return "+1"}, toString: function() {throw "error"}} == true) !== true) { + $ERROR('#4.1: ({valueOf: function() {return "+1"}, toString: function() {throw "error"}} == true) === true'); + } +} +catch (e) { + if (e === "error") { + $ERROR('#4.2: ({valueOf: function() {return "+1"}, toString: function() {throw "error"}} == true) not throw "error"'); + } else { + $ERROR('#4.3: ({valueOf: function() {return "+1"}, toString: function() {throw "error"}} == true) not throw Error. Actual: ' + (e)); + } +} + +//CHECK#5 +if (({toString: function() {return "+1"}} == 1) !== true) { + $ERROR('#5: ({toString: function() {return "+1"}} == 1) === true'); +} + +//CHECK#6 +if (({valueOf: function() {return {}}, toString: function() {return "+1"}} == "1") !== false) { + $ERROR('#6.1: ({valueOf: function() {return {}}, toString: function() {return "+1"}} == "1") === false'); +} else { + if (({valueOf: function() {return {}}, toString: function() {return "+1"}} == "+1") !== true) { + $ERROR('#6.2: ({valueOf: function() {return {}}, toString: function() {return "+1"}} == "+1") === true'); + } +} + +//CHECK#7 +try { + ({valueOf: function() {throw "error"}, toString: function() {return 1}} == 1); + $ERROR('#7.1: ({valueOf: function() {throw "error"}, toString: function() {return 1}} == 1) throw "error". Actual: ' + (({valueOf: function() {throw "error"}, toString: function() {return 1}} == 1))); +} +catch (e) { + if (e !== "error") { + $ERROR('#7.2: ({valueOf: function() {throw "error"}, toString: function() {return 1}} == 1) throw "error". Actual: ' + (e)); + } +} + +//CHECK#8 +try { + ({valueOf: function() {return {}}, toString: function() {return {}}} == 1); + $ERROR('#8.1: ({valueOf: function() {return {}}, toString: function() {return {}}} == 1) throw TypeError. Actual: ' + (({valueOf: function() {return {}}, toString: function() {return {}}} == 1))); +} +catch (e) { + if ((e instanceof TypeError) !== true) { + $ERROR('#8.2: ({valueOf: function() {return {}}, toString: function() {return {}}} == 1) throw TypeError. Actual: ' + (e)); + } +} diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.9.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.9.js new file mode 100644 index 000000000..d20fdb5a5 --- /dev/null +++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.9_Equality_Operators/11.9.1_The_Equals_Operator/S11.9.1_A7.9.js @@ -0,0 +1,75 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @name: S11.9.1_A7.9; + * @section: 11.9.1, 11.9.3; + * @assertion: If Type(x) is primitive type and Type(y) is Object, + * return x == ToPrimitive(y); + * @description: y is object, x is primtitive; + */ + +//CHECK#1 +if ((true == {valueOf: function() {return 1}}) !== true) { + $ERROR('#1: (true == {valueOf: function() {return 1}}) === true'); +} + +//CHECK#2 +if ((1 == {valueOf: function() {return 1}, toString: function() {return 0}}) !== true) { + $ERROR('#2: (1 == {valueOf: function() {return 1}, toString: function() {return 0}}) === true'); +} + +//CHECK#3 +if (("+1" == {valueOf: function() {return 1}, toString: function() {return {}}}) !== true) { + $ERROR('#3: ("+1" == {valueOf: function() {return 1}, toString: function() {return {}}}) === true'); +} + +//CHECK#4 +try { + if ((true == {valueOf: function() {return "+1"}, toString: function() {throw "error"}}) !== true) { + $ERROR('#4.1: (true == {valueOf: function() {return "+1"}, toString: function() {throw "error"}}) === true'); + } +} +catch (e) { + if (e === "error") { + $ERROR('#4.2: (true == {valueOf: function() {return "+1"}, toString: function() {throw "error"}}) not throw "error"'); + } else { + $ERROR('#4.3: (true == {valueOf: function() {return "+1"}, toString: function() {throw "error"}}) not throw Error. Actual: ' + (e)); + } +} + +//CHECK#5 +if ((1 == {toString: function() {return "+1"}}) !== true) { + $ERROR('#5: (1 == {toString: function() {return "+1"}}) === true'); +} + +//CHECK#6 +if (("1" == {valueOf: function() {return {}}, toString: function() {return "+1"}}) !== false) { + $ERROR('#6.1: ("1" == {valueOf: function() {return {}}, toString: function() {return "+1"}}) === false'); +} else { + if (("+1" == {valueOf: function() {return {}}, toString: function() {return "+1"}}) !== true) { + $ERROR('#6.2: ("+1" == {valueOf: function() {return {}}, toString: function() {return "+1"}}) === true'); + } +} + +//CHECK#7 +try { + (1 == {valueOf: function() {throw "error"}, toString: function() {return 1}}); + $ERROR('#7.1: (1 == {valueOf: function() {throw "error"}, toString: function() {return 1}}) throw "error". Actual: ' + ((1 == {valueOf: function() {throw "error"}, toString: function() {return 1}}))); +} +catch (e) { + if (e !== "error") { + $ERROR('#7.2: (1 == {valueOf: function() {throw "error"}, toString: function() {return 1}}) throw "error". Actual: ' + (e)); + } +} + +//CHECK#8 +try { + (1 == {valueOf: function() {return {}}, toString: function() {return {}}}); + $ERROR('#8.1: (1 == {valueOf: function() {return {}}, toString: function() {return {}}}) throw TypeError. Actual: ' + ((1 == {valueOf: function() {return {}}, toString: function() {return {}}}))); +} +catch (e) { + if ((e instanceof TypeError) !== true) { + $ERROR('#8.2: (1 == {valueOf: function() {return {}}, toString: function() {return {}}}) throw TypeError. Actual: ' + (e)); + } +} |