1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
{
"testCollection": {
"name": "9.5_ToInt32",
"numTests": 13,
"tests": [
{
"section": "9.5, 11.7.1",
"description": "For testing use operator <<0",
"test": "// CHECK#1\nif ((Number.NaN << 0) !== +0) {\n $ERROR('#1.1: (Number.NaN << 0) === 0. Actual: ' + ((Number.NaN << 0)));\n} else if (1/(Number.NaN << 0) !== Number.POSITIVE_INFINITY) {\n $ERROR('#1.2: (Number.NaN << 0) === +0. Actual: -0');\n}\n\n// CHECK#2\nif ((Number(\"abc\") << 0) !== +0) {\n $ERROR('#2.1: (Number(\"abc\") << 0) === 0. Actual: ' + ((Number(\"abc\") << 0)));\n} else if (1/(0 << 0) !== Number.POSITIVE_INFINITY) {\n $ERROR('#2.2: (0 << 0) === +0. Actual: -0');\n}\n\n// CHECK#3\nif ((0 << 0) !== +0) {\n $ERROR('#3.1: (0 << 0) === 0. Actual: ' + ((0 << 0)));\n} else if (1/(0 << 0) !== Number.POSITIVE_INFINITY) {\n $ERROR('#3.2: (0 << 0) === +0. Actual: -0');\n}\n\n// CHECK#4\nif ((-0 << 0) !== +0) {\n $ERROR(\"#4.1: (-0 << 0) === 0\");\n} else if (1/(-0 << 0) !== Number.POSITIVE_INFINITY) {\n $ERROR(\"#4.2: (-0 << 0) === +0. Actual: -0\");\n}\n\n// CHECK#5\nif ((Number.POSITIVE_INFINITY << 0) !== +0) {\n $ERROR('#5.1: (Number.POSITIVE_INFINITY << 0) === 0. Actual: ' + ((Number.POSITIVE_INFINITY << 0)));\n} else if (1/(Number.POSITIVE_INFINITY << 0) !== Number.POSITIVE_INFINITY) {\n $ERROR('#5.2: (Number.POSITIVE_INFINITY << 0) === +0. Actual: -0');\n}\n\n// CHECK#6\nif ((Number.NEGATIVE_INFINITY << 0) !== +0) {\n $ERROR(\"#6.1: (Number.NEGATIVE_INFINITY << 0) === 0\");\n} else if (1/(Number.NEGATIVE_INFINITY << 0) !== Number.POSITIVE_INFINITY) {\n $ERROR(\"#6.2: (Number.NEGATIVE_INFINITY << 0) === +0. Actual: -0\");\n}\n",
"id": "S9.5_A1_T1"
},
{
"section": "9.5, 11.7.1",
"description": "Converting some numbers, which are in\\outside of Int32 scopes, with <<0 operator",
"test": "// CHECK#1\nif ((-2147483647 << 0) !== -2147483647) {\n $ERROR('#1: (-2147483647 << 0) === -2147483647. Actual: ' + ((-2147483647 << 0)));\n}\n\n// CHECK#2\nif ((-2147483648 << 0) !== -2147483648) {\n $ERROR('#2: (-2147483648 << 0) === -2147483648. Actual: ' + ((-2147483648 << 0)));\n}\n\n// CHECK#3\nif ((-2147483649 << 0) !== 2147483647) {\n $ERROR('#3: (-2147483649 << 0) === 2147483647. Actual: ' + ((-2147483649 << 0)));\n}\n\n// CHECK#4\nif ((-4294967296 << 0) !== 0) {\n $ERROR('#4: (-4294967296 << 0) === 0. Actual: ' + ((-4294967296 << 0)));\n}\n\n// CHECK#5\nif ((2147483646 << 0) !== 2147483646) {\n $ERROR('#5: (2147483646 << 0) === 2147483646. Actual: ' + ((2147483646 << 0)));\n}\n\n// CHECK#6\nif ((2147483647 << 0) !== 2147483647) {\n $ERROR('#6: (2147483647 << 0) === 2147483647. Actual: ' + ((2147483647 << 0)));\n}\n\n// CHECK#7\nif ((2147483648 << 0) !== -2147483648) {\n $ERROR('#7: (2147483648 << 0) === -2147483648. Actual: ' + ((2147483648 << 0)));\n}\n\n// CHECK#8\nif ((4294967296 << 0) !== 0) {\n $ERROR('#8: (4294967296 << 0) === 0. Actual: ' + ((4294967296 << 0)));\n}\n",
"id": "S9.5_A2.1_T1"
},
{
"section": "9.5, 11.4.8",
"description": "Converting some numbers, which are in\\outside of Int32 scopes, with ~ operator",
"test": "// CHECK#1\nif (~-2147483649 !== ~2147483647) {\n $ERROR('#1: ~-2147483649 === ~2147483647');\n}\n\n// CHECK#2\nif (~-4294967296 !== ~0) {\n $ERROR('#2: ~-4294967296 === ~0');\n}\n\n// CHECK#3\nif (~2147483648 !== ~-2147483648) {\n $ERROR('#3: ~2147483648 === ~-2147483648');\n}\n\n// CHECK#4\nif (~4294967296 !== ~0) {\n $ERROR('#4: ~4294967296 === ~0');\n}\n",
"id": "S9.5_A2.1_T2"
},
{
"section": "9.5, 11.7.1",
"description": "Use operator <<0",
"test": "// CHECK#1\nif ((-2147483647 << 0) !== -2147483647) {\n $ERROR('#1: (-2147483647 << 0) === -2147483647. Actual: ' + ((-2147483647 << 0)));\n}\n\n// CHECK#2\nif ((-2147483648 << 0) !== -2147483648) {\n $ERROR('#2: (-2147483648 << 0) === -2147483648. Actual: ' + ((-2147483648 << 0)));\n}\n\n// CHECK#3\nif ((-2147483649 << 0) !== 2147483647) {\n $ERROR('#3: (-2147483649 << 0) === 2147483647. Actual: ' + ((-2147483649 << 0)));\n}\n\n// CHECK#4\nif ((4294967295 << 0) !== -1) {\n $ERROR('#4: (4294967295 << 0) === -1. Actual: ' + ((4294967295 << 0)));\n}\n\n// CHECK#5\nif ((4294967296 << 0) !== 0) {\n $ERROR('#5: (4294967296 << 0) === 0. Actual: ' + ((4294967296 << 0)));\n}\n\n// CHECK#6\nif ((4294967297 << 0) !== 1) {\n $ERROR('#6: (4294967297 << 0) === 1. Actual: ' + ((4294967297 << 0)));\n}\n\n// CHECK#7\nif ((-4294967295 << 0) !== 1) {\n $ERROR('#7: (-4294967295 << 0) === 1. Actual: ' + ((-4294967295 << 0)));\n}\n\n// CHECK#8\nif ((-4294967296 << 0) !== 0) {\n $ERROR('#8: (-4294967296 << 0) === 0. Actual: ' + ((-4294967296 << 0)));\n}\n\n// CHECK#9\nif ((-4294967297 << 0) !== -1) {\n $ERROR('#9: (-4294967297 << 0) === -1. Actual: ' + ((-4294967297 << 0)));\n}\n\n// CHECK#10\nif ((8589934591 << 0) !== -1) {\n $ERROR('#10: (8589934591 << 0) === -1. Actual: ' + ((8589934591 << 0)));\n}\n\n// CHECK#11\nif ((8589934592 << 0) !== 0) {\n $ERROR('#11: (8589934592 << 0) === 0. Actual: ' + ((8589934592 << 0)));\n}\n\n// CHECK#12\nif ((8589934593 << 0) !== 1) {\n $ERROR('#12: (8589934593 << 0) === 1. Actual: ' + ((8589934593 << 0)));\n}\n",
"id": "S9.5_A2.2_T1"
},
{
"section": "9.5, 11.4.8",
"description": "Use operator ~",
"test": "// CHECK#1\nif (~-2147483647 !== 2147483646) {\n $ERROR('#1: ~-2147483647 === 2147483646)');\n}\n\n// CHECK#2\nif (~-2147483648 !== ~-2147483648) {\n $ERROR('#2: ~-2147483648 ==== ~-2147483648)');\n}\n\n// CHECK#3\nif (~-2147483649 !== ~2147483647) {\n $ERROR('#3: ~-2147483649 ==== ~2147483647)');\n}\n\n// CHECK#4\nif ((~4294967295 << 0) !== ~-1) {\n $ERROR('#4: (~4294967295 << 0) === ~-1)');\n}\n\n// CHECK#5\nif ((~4294967296 << 0) !== ~0) {\n $ERROR('#5: (~4294967296 << 0) === ~0)');\n}\n\n// CHECK#6\nif ((~4294967297 << 0) !== ~1) {\n $ERROR('#6: (~4294967297 << 0) === ~1)');\n}\n\n// CHECK#7\nif ((~-4294967295 << 0) !== ~1) {\n $ERROR('#7: (~-4294967295 << 0) === ~1)');\n}\n\n// CHECK#8\nif ((~-4294967296 << 0) !== ~0) {\n $ERROR('#8: (~-4294967296 << 0) === ~0)');\n}\n\n// CHECK#9\nif ((~-4294967297 << 0) !== ~-1) {\n $ERROR('#9: (~-4294967297 << 0) === ~-1)');\n}\n\n// CHECK#10\nif ((~8589934591 << 0) !== ~-1) {\n $ERROR('#10: (~8589934591 << 0) === ~-1)');\n}\n\n// CHECK#11\nif ((~8589934592 << 0) !== ~0) {\n $ERROR('#11: (~8589934592 << 0) === ~0)');\n}\n\n// CHECK#12\nif ((~8589934593 << 0) !== ~1) {\n $ERROR('#12: (~8589934593 << 0) === ~1)');\n}\n",
"id": "S9.5_A2.2_T2"
},
{
"section": "9.5, 11.7.1",
"description": "Use operator <<0",
"test": "// CHECK#1\nif ((2147483647 << 0) !== 2147483647) {\n $ERROR('#1: (2147483647 << 0) === 2147483647. Actual: ' + ((2147483647 << 0)));\n}\n\n// CHECK#2\nif ((2147483648 << 0) !== -2147483648) {\n $ERROR('#2: (2147483648 << 0) === -2147483648. Actual: ' + ((2147483648 << 0)));\n}\n\n// CHECK#3\nif ((2147483649 << 0) !== -2147483647) {\n $ERROR('#3: (2147483649 << 0) === -2147483647. Actual: ' + ((2147483649 << 0)));\n}\n\n// CHECK#4\nif ((4294967295 << 0) !== -1) {\n $ERROR('#4: (4294967295 << 0) === -1. Actual: ' + ((4294967295 << 0)));\n}\n\n// CHECK#5\nif ((4294967296 << 0) !== 0) {\n $ERROR('#5: (4294967296 << 0) === 0. Actual: ' + ((4294967296 << 0)));\n}\n\n// CHECK#6\nif ((4294967297 << 0) !== 1) {\n $ERROR('#6: (4294967297 << 0) === 1. Actual: ' + ((4294967297 << 0)));\n}\n\n\n",
"id": "S9.5_A2.3_T1"
},
{
"section": "9.5, 11.4.8",
"description": "Use operator ~",
"test": "// CHECK#1\nif (~2147483647 !== -2147483648) {\n $ERROR('#1: ~2147483647 ==== -2147483648)');\n}\n\n// CHECK#2\nif (~2147483648 !== ~-2147483648) {\n $ERROR('#2: ~2147483648 ==== ~-2147483648)');\n}\n\n// CHECK#3\nif (~2147483649 !== ~-2147483647) {\n $ERROR('#3: ~2147483649 ==== ~-2147483647)');\n}\n\n// CHECK#4\nif (~4294967295 !== ~-1) {\n $ERROR('#4: ~4294967295 ==== ~-1)');\n}\n\n// CHECK#5\nif (~4294967296 !== ~0) {\n $ERROR('#5: ~4294967296 ==== ~0)');\n}\n\n// CHECK#6\nif (~4294967297 !== ~1) {\n $ERROR('#6: ~4294967297 ==== ~1)');\n}\n",
"id": "S9.5_A2.3_T2"
},
{
"section": "9.5",
"description": "Type(x) is Boolean",
"test": "// CHECK#1\nif ((new Boolean(true) << 0) !== 1) {\n $ERROR('#1: (new Boolean(true) << 0) === 1. Actual: ' + ((new Boolean(true) << 0)));\n}\n\n// CHECK#2\nif ((false << 0) !== 0) {\n $ERROR('#2: (false << 0) === 0. Actual: ' + ((false << 0)));\n}\n",
"id": "S9.5_A3.1_T1"
},
{
"section": "9.5",
"description": "Type(x) is Number",
"test": "// CHECK#1\nif ((new Number(1) << 0) !== 1) {\n $ERROR('#1: (new Number(1) << 0) === 1. Actual: ' + ((new Number(1) << 0)));\n}\n\n// CHECK#2\nif ((-1.234 << 0) !== -1) {\n $ERROR('#2: (-1.234 << 0) === -1. Actual: ' + ((-1.234 << 0)));\n}\n",
"id": "S9.5_A3.1_T2"
},
{
"section": "9.5",
"description": "Type(x) is String",
"test": "// CHECK#1\nif ((new String(1) << 0) !== 1) {\n $ERROR('#1: (new String(1) << 0) === 1. Actual: ' + ((new String(1) << 0)));\n}\n\n// CHECK#2\nif ((\"-1.234\" << 0) !== -1) {\n $ERROR('#2: (\"-1.234\" << 0) === -1. Actual: ' + ((\"-1.234\" << 0)));\n}\n",
"id": "S9.5_A3.1_T3"
},
{
"section": "9.5",
"description": "Type(x) is Object",
"test": "//CHECK#1\nvar object = {valueOf: function() {return 1}};\nif (~object !== ~1) {\n $ERROR('#1: var object = {valueOf: function() {return 1}}; ~object === ~1');\n}\n\n//CHECK#2\nvar object = {valueOf: function() {return 1}, toString: function() {return 0}};\nif (~object !== ~1) {\n $ERROR('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; ~object === ~1');\n} \n\n//CHECK#3\nvar object = {valueOf: function() {return 1}, toString: function() {return {}}};\nif (~object !== ~1) {\n $ERROR('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; ~object === ~1');\n}\n\n//CHECK#4\ntry {\n var object = {valueOf: function() {return 1}, toString: function() {throw \"error\"}};\n if (~object !== ~1) {\n $ERROR('#4.1: var object = {valueOf: function() {return 1}, toString: function() {throw \"error\"}}; ~object === ~1');\n }\n}\ncatch (e) {\n if (e === ~\"error\") {\n $ERROR('#4.2: var object = {valueOf: function() {return 1}, toString: function() {throw \"error\"}}; ~object not throw \"error\"');\n } else {\n $ERROR('#4.3: var object = {valueOf: function() {return 1}, toString: function() {throw \"error\"}}; ~object not throw Error. Actual: ' + (e));\n }\n}\n\n//CHECK#5\nvar object = {toString: function() {return 1}};\nif (~object !== ~1) {\n $ERROR('#5: var object = {toString: function() {return 1}}; ~object === ~1');\n}\n\n//CHECK#6\nvar object = {valueOf: function() {return {}}, toString: function() {return 1}}\nif (~object !== ~1) {\n $ERROR('#6: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; ~object === ~1');\n}\n\n//CHECK#7\ntry {\n var object = {valueOf: function() {throw \"error\"}, toString: function() {return 1}};\n ~object;\n $ERROR('#7.1: var object = {valueOf: function() {throw \"error\"}, toString: function() {return 1}}; ~object throw \"error\". Actual: ' + (~object));\n} \ncatch (e) {\n if (e !== \"error\") {\n $ERROR('#7.2: var object = {valueOf: function() {throw \"error\"}, toString: function() {return 1}}; ~object throw \"error\". Actual: ' + (e));\n } \n}\n\n//CHECK#8\ntry {\n var object = {valueOf: function() {return {}}, toString: function() {return {}}};\n ~object;\n $ERROR('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; ~object throw TypeError. Actual: ' + (~object));\n} \ncatch (e) {\n if ((e instanceof TypeError) !== true) {\n $ERROR('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; ~object throw TypeError. Actual: ' + (e));\n } \n}\n",
"id": "S9.5_A3.1_T4"
},
{
"section": "9.5",
"description": "Use operator <<0",
"test": "// CHECK#1\nif ((1.2345 << 0) !== 1) {\n $ERROR('#1: (1.2345 << 0) === 1. Actual: ' + ((1.2345 << 0)));\n}\n\n// CHECK#2\nif ((-5.4321 << 0) !== -5) {\n $ERROR('#2: (-5.4321 << 0) === -5. Actual: ' + ((-5.4321 << 0)));\n}\n",
"id": "S9.5_A3.2_T1"
},
{
"section": "9.5",
"description": "Use operator ~",
"test": "// CHECK#1\nif (~1.2345 !== ~1) {\n $ERROR('#1: ~1.2345 === ~1)');\n}\n\n// CHECK#2\nif (~-5.4321 !== ~-5) {\n $ERROR('#2: ~-5.4321 === ~-5)');\n}\n",
"id": "S9.5_A3.2_T2"
}
]
}
}
|