OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 constants() { | 5 constants() { |
6 Expect.equals(0x80000000, 0x80000000 | 0); | 6 Expect.equals(0x80000000, 0x80000000 | 0); |
7 Expect.equals(0x80000001, 0x80000000 | 1); | 7 Expect.equals(0x80000001, 0x80000000 | 1); |
8 Expect.equals(0x80000000, 0x80000000 | 0x80000000); | 8 Expect.equals(0x80000000, 0x80000000 | 0x80000000); |
9 Expect.equals(0xFFFFFFFF, 0xFFFF0000 | 0xFFFF); | 9 Expect.equals(0xFFFFFFFF, 0xFFFF0000 | 0xFFFF); |
10 Expect.equals(0x80000000, 0x80000000 & 0xFFFFFFFF); | 10 Expect.equals(0x80000000, 0x80000000 & 0xFFFFFFFF); |
11 Expect.equals(0x80000000, 0x80000000 & 0x80000000); | 11 Expect.equals(0x80000000, 0x80000000 & 0x80000000); |
12 Expect.equals(0x80000000, 0x80000000 & 0xF0000000); | 12 Expect.equals(0x80000000, 0x80000000 & 0xF0000000); |
13 Expect.equals(0x80000000, 0xFFFFFFFF & 0x80000000); | 13 Expect.equals(0x80000000, 0xFFFFFFFF & 0x80000000); |
14 Expect.equals(0x80000000, 0x80000000 ^ 0); | 14 Expect.equals(0x80000000, 0x80000000 ^ 0); |
15 Expect.equals(0xFFFFFFFF, 0x80000000 ^ 0x7FFFFFFF); | 15 Expect.equals(0xFFFFFFFF, 0x80000000 ^ 0x7FFFFFFF); |
16 Expect.equals(0xFFFFFFFF, 0x7FFFFFFF ^ 0x80000000); | 16 Expect.equals(0xFFFFFFFF, 0x7FFFFFFF ^ 0x80000000); |
17 Expect.equals(0xF0000000, 0x70000000 ^ 0x80000000); | 17 Expect.equals(0xF0000000, 0x70000000 ^ 0x80000000); |
18 Expect.equals(0x80000000, 1 << 31); | 18 Expect.equals(0x80000000, 1 << 31); |
19 Expect.equals(0xFFFFFFF0, 0xFFFFFFF << 4); | 19 Expect.equals(0xFFFFFFF0, 0xFFFFFFF << 4); |
20 Expect.equals(0x7FFFFFFF, 0xFFFFFFFF >> 1); | 20 Expect.equals(0x7FFFFFFF, 0xFFFFFFFF >> 1); |
21 Expect.equals(0xFFFF0000, (-1 >> 16) & 0xFFFF0000); | |
22 Expect.equals(0xFFFFFFFF, (-1 >> 33) & 0xFFFFFFFF); | |
23 Expect.equals(0xFFFFFFFC, | 21 Expect.equals(0xFFFFFFFC, |
24 ((((((0xFFFFFFF << 4) // 0xFFFFFFF0 | 22 ((((((0xFFFFFFF << 4) // 0xFFFFFFF0 |
25 >> 1) // 0x7FFFFFF8 | 23 >> 1) // 0x7FFFFFF8 |
26 | 0x80000000) // 0xFFFFFFF8 | 24 | 0x80000000) // 0xFFFFFFF8 |
27 >> 2) // 0x3FFFFFFE | 25 >> 2) // 0x3FFFFFFE |
28 ^ 0x40000000) // 0x7FFFFFFE | 26 ^ 0x40000000) // 0x7FFFFFFE |
29 << 1)); | 27 << 1)); |
30 } | 28 } |
31 | 29 |
32 foo(i) { | 30 foo(i) { |
(...skipping 22 matching lines...) Expand all Loading... |
55 Expect.equals(0x80000000, id(0x80000000) & id(0x80000000)); | 53 Expect.equals(0x80000000, id(0x80000000) & id(0x80000000)); |
56 Expect.equals(0x80000000, id(0x80000000) & id(0xF0000000)); | 54 Expect.equals(0x80000000, id(0x80000000) & id(0xF0000000)); |
57 Expect.equals(0x80000000, id(0xFFFFFFFF) & id(0x80000000)); | 55 Expect.equals(0x80000000, id(0xFFFFFFFF) & id(0x80000000)); |
58 Expect.equals(0x80000000, id(0x80000000) ^ id(0)); | 56 Expect.equals(0x80000000, id(0x80000000) ^ id(0)); |
59 Expect.equals(0xFFFFFFFF, id(0x80000000) ^ id(0x7FFFFFFF)); | 57 Expect.equals(0xFFFFFFFF, id(0x80000000) ^ id(0x7FFFFFFF)); |
60 Expect.equals(0xFFFFFFFF, id(0x7FFFFFFF) ^ id(0x80000000)); | 58 Expect.equals(0xFFFFFFFF, id(0x7FFFFFFF) ^ id(0x80000000)); |
61 Expect.equals(0xF0000000, id(0x70000000) ^ id(0x80000000)); | 59 Expect.equals(0xF0000000, id(0x70000000) ^ id(0x80000000)); |
62 Expect.equals(0x80000000, id(1) << id(31)); | 60 Expect.equals(0x80000000, id(1) << id(31)); |
63 Expect.equals(0xFFFFFFF0, id(0xFFFFFFF) << id(4)); | 61 Expect.equals(0xFFFFFFF0, id(0xFFFFFFF) << id(4)); |
64 Expect.equals(0x7FFFFFFF, id(0xFFFFFFFF) >> id(1)); | 62 Expect.equals(0x7FFFFFFF, id(0xFFFFFFFF) >> id(1)); |
65 Expect.equals(0xFFFF0000, (id(-1) >> 16) & 0xFFFF0000); | |
66 Expect.equals(0xFFFFFFFF, (id(-1) >> 33) & 0xFFFFFFFF); | |
67 Expect.equals(0xFFFFFFFC, | 63 Expect.equals(0xFFFFFFFC, |
68 ((((((id(0xFFFFFFF) << 4) // 0xFFFFFFF0 | 64 ((((((id(0xFFFFFFF) << 4) // 0xFFFFFFF0 |
69 >> 1) // 0x7FFFFFF8 | 65 >> 1) // 0x7FFFFFF8 |
70 | 0x80000000) // 0xFFFFFFF8 | 66 | 0x80000000) // 0xFFFFFFF8 |
71 >> 2) // 0x3FFFFFFE | 67 >> 2) // 0x3FFFFFFE |
72 ^ 0x40000000) // 0x7FFFFFFE | 68 ^ 0x40000000) // 0x7FFFFFFE |
73 << 1)); | 69 << 1)); |
74 } | 70 } |
75 | 71 |
76 speculative() { | 72 speculative() { |
77 var a = id(0x80000000); | 73 var a = id(0x80000000); |
78 var b = id(0); | 74 var b = id(0); |
79 var c = id(1); | 75 var c = id(1); |
80 var d = id(0xFFFF0000); | 76 var d = id(0xFFFF0000); |
81 var e = id(0xFFFF); | 77 var e = id(0xFFFF); |
82 var f = id(0xFFFFFFFF); | 78 var f = id(0xFFFFFFFF); |
83 var g = id(0xF0000000); | 79 var g = id(0xF0000000); |
84 var h = id(0x7FFFFFFF); | 80 var h = id(0x7FFFFFFF); |
85 var j = id(0x70000000); | 81 var j = id(0x70000000); |
86 var k = id(31); | 82 var k = id(31); |
87 var l = id(4); | 83 var l = id(4); |
88 var m = id(0xFFFFFFF); | 84 var m = id(0xFFFFFFF); |
89 var n = id(-1); | |
90 for (int i = 0; i < 1; i++) { | 85 for (int i = 0; i < 1; i++) { |
91 Expect.equals(0x80000000, a | b); | 86 Expect.equals(0x80000000, a | b); |
92 Expect.equals(0x80000001, a | c); | 87 Expect.equals(0x80000001, a | c); |
93 Expect.equals(0x80000000, a | a); | 88 Expect.equals(0x80000000, a | a); |
94 Expect.equals(0xFFFFFFFF, d | e); | 89 Expect.equals(0xFFFFFFFF, d | e); |
95 Expect.equals(0x80000000, a & f); | 90 Expect.equals(0x80000000, a & f); |
96 Expect.equals(0x80000000, a & a); | 91 Expect.equals(0x80000000, a & a); |
97 Expect.equals(0x80000000, a & g); | 92 Expect.equals(0x80000000, a & g); |
98 Expect.equals(0x80000000, f & a); | 93 Expect.equals(0x80000000, f & a); |
99 Expect.equals(0x80000000, a ^ b); | 94 Expect.equals(0x80000000, a ^ b); |
100 Expect.equals(0xFFFFFFFF, a ^ h); | 95 Expect.equals(0xFFFFFFFF, a ^ h); |
101 Expect.equals(0xFFFFFFFF, h ^ a); | 96 Expect.equals(0xFFFFFFFF, h ^ a); |
102 Expect.equals(0xF0000000, j ^ a); | 97 Expect.equals(0xF0000000, j ^ a); |
103 Expect.equals(0x80000000, c << k); | 98 Expect.equals(0x80000000, c << k); |
104 Expect.equals(0xFFFFFFF0, m << l); | 99 Expect.equals(0xFFFFFFF0, m << l); |
105 Expect.equals(0x7FFFFFFF, f >> c); | 100 Expect.equals(0x7FFFFFFF, f >> c); |
106 Expect.equals(0xFFFF0000, (n >> 16) & 0xFFFF0000); | |
107 Expect.equals(0xFFFFFFFF, (n >> 33) & 0xFFFFFFFF); | |
108 Expect.equals(0xFFFFFFFC, | 101 Expect.equals(0xFFFFFFFC, |
109 ((((((m << 4) // 0xFFFFFFF0 | 102 ((((((m << 4) // 0xFFFFFFF0 |
110 >> 1) // 0x7FFFFFF8 | 103 >> 1) // 0x7FFFFFF8 |
111 | 0x80000000) // 0xFFFFFFF8 | 104 | 0x80000000) // 0xFFFFFFF8 |
112 >> 2) // 0x3FFFFFFE | 105 >> 2) // 0x3FFFFFFE |
113 ^ 0x40000000) // 0x7FFFFFFE | 106 ^ 0x40000000) // 0x7FFFFFFE |
114 << 1)); | 107 << 1)); |
115 } | 108 } |
116 } | 109 } |
117 | 110 |
118 // Due to bad precedence rules this example was broken in Dart2Js. | 111 // Due to bad precedence rules this example was broken in Dart2Js. |
119 precedence() { | 112 precedence() { |
120 Expect.equals(0x80000000, -1 & 0x80000000); | 113 Expect.equals(0x80000000, -1 & 0x80000000); |
121 Expect.equals(0x80000000, id(-1) & 0x80000000); | 114 Expect.equals(0x80000000, id(-1) & 0x80000000); |
122 Expect.equals(0x80000000, ~(~(0x80000000))); | 115 Expect.equals(0x80000000, ~(~(0x80000000))); |
123 Expect.equals(0x80000000, ~(~(id(0x80000000)))); | 116 Expect.equals(0x80000000, ~(~(id(0x80000000)))); |
124 } | 117 } |
125 | 118 |
126 main() { | 119 main() { |
127 constants(); | 120 constants(); |
128 interceptors(); | 121 interceptors(); |
129 speculative(); | 122 speculative(); |
130 precedence(); | 123 precedence(); |
131 } | 124 } |
OLD | NEW |