1
function test_lsh(x, y) {
5
function test_ursh(x, y) {
9
function test_rsh(x, y) {
14
assertEq(test_rsh(x, -1), 0);
15
assertEq(test_rsh(-1, x), -1);
16
assertEq(test_ursh(x, -1), 0);
17
assertEq(test_ursh(-1, x), 2147483647);
18
assertEq(test_lsh(x, -1), -2147483648);
19
assertEq(test_lsh(-1, x), -2);
20
assertEq(test_rsh(x, 1), 0);
21
assertEq(test_rsh(1, x), 0);
22
assertEq(test_ursh(x, 1), 0);
23
assertEq(test_ursh(1, x), 0);
24
assertEq(test_lsh(x, 1), 2);
25
assertEq(test_lsh(1, x), 2);
26
assertEq(test_rsh(x, 0), 1);
27
assertEq(test_rsh(0, x), 0);
28
assertEq(test_ursh(x, 0), 1);
29
assertEq(test_ursh(0, x), 0);
30
assertEq(test_lsh(x, 0), 1);
31
assertEq(test_lsh(0, x), 0);
32
assertEq(test_rsh(x, 0xffffffff), 0);
33
assertEq(test_rsh(0xffffffff, x), -1);
34
assertEq(test_ursh(x, 0xffffffff), 0);
35
assertEq(test_ursh(0xffffffff, x), 2147483647);
36
assertEq(test_lsh(x, 0xffffffff), -2147483648);
37
assertEq(test_lsh(0xffffffff, x), -2);
38
assertEq(test_rsh(x, "10.6"), 0);
39
assertEq(test_rsh("10.6", x), 5);
40
assertEq(test_ursh(x, "10.6"), 0);
41
assertEq(test_ursh("10.6", x), 5);
42
assertEq(test_lsh(x, "10.6"), 1024);
43
assertEq(test_lsh("10.6", x), 20);
44
assertEq(test_rsh(x, 2147483648), 1);
45
assertEq(test_rsh(2147483648, x), -1073741824);
46
assertEq(test_ursh(x, 2147483648), 1);
47
assertEq(test_ursh(2147483648, x), 1073741824);
48
assertEq(test_lsh(x, 2147483648), 1);
49
assertEq(test_lsh(2147483648, x), 0);
50
assertEq(test_rsh(x, 4294967296), 1);
51
assertEq(test_rsh(4294967296, x), 0);
52
assertEq(test_ursh(x, 4294967296), 1);
53
assertEq(test_ursh(4294967296, x), 0);
54
assertEq(test_lsh(x, 4294967296), 1);
55
assertEq(test_lsh(4294967296, x), 0);
56
assertEq(test_rsh(x, undefined), 1);
57
assertEq(test_rsh(undefined, x), 0);
58
assertEq(test_ursh(x, undefined), 1);
59
assertEq(test_ursh(undefined, x), 0);
60
assertEq(test_lsh(x, undefined), 1);
61
assertEq(test_lsh(undefined, x), 0);
62
assertEq(test_rsh(x, null), 1);
63
assertEq(test_rsh(null, x), 0);
64
assertEq(test_ursh(x, null), 1);
65
assertEq(test_ursh(null, x), 0);
66
assertEq(test_lsh(x, null), 1);
67
assertEq(test_lsh(null, x), 0);
68
assertEq(test_rsh(x, false), 1);
69
assertEq(test_rsh(false, x), 0);
70
assertEq(test_ursh(x, false), 1);
71
assertEq(test_ursh(false, x), 0);
72
assertEq(test_lsh(x, false), 1);
73
assertEq(test_lsh(false, x), 0);
74
assertEq(test_rsh(x, true), 0);
75
assertEq(test_rsh(true, x), 0);
76
assertEq(test_ursh(x, true), 0);
77
assertEq(test_ursh(true, x), 0);
78
assertEq(test_lsh(x, true), 2);
79
assertEq(test_lsh(true, x), 2);
80
assertEq(test_rsh(x, -1.5), 0);
81
assertEq(test_rsh(-1.5, x), -1);
82
assertEq(test_ursh(x, -1.5), 0);
83
assertEq(test_ursh(-1.5, x), 2147483647);
84
assertEq(test_lsh(x, -1.5), -2147483648);
85
assertEq(test_lsh(-1.5, x), -2);
88
assertEq(test_rsh(x, -1), 0);
89
assertEq(test_rsh(-1, x), -1);
90
assertEq(test_ursh(x, -1), 0);
91
assertEq(test_ursh(-1, x), 4294967295);
92
assertEq(test_lsh(x, -1), 0);
93
assertEq(test_lsh(-1, x), -1);
94
assertEq(test_rsh(x, 1), 0);
95
assertEq(test_rsh(1, x), 1);
96
assertEq(test_ursh(x, 1), 0);
97
assertEq(test_ursh(1, x), 1);
98
assertEq(test_lsh(x, 1), 0);
99
assertEq(test_lsh(1, x), 1);
100
assertEq(test_rsh(x, 0), 0);
101
assertEq(test_rsh(0, x), 0);
102
assertEq(test_ursh(x, 0), 0);
103
assertEq(test_ursh(0, x), 0);
104
assertEq(test_lsh(x, 0), 0);
105
assertEq(test_lsh(0, x), 0);
106
assertEq(test_rsh(x, 0xffffffff), 0);
107
assertEq(test_rsh(0xffffffff, x), -1);
108
assertEq(test_ursh(x, 0xffffffff), 0);
109
assertEq(test_ursh(0xffffffff, x), 4294967295);
110
assertEq(test_lsh(x, 0xffffffff), 0);
111
assertEq(test_lsh(0xffffffff, x), -1);
112
assertEq(test_rsh(x, "10.6"), 0);
113
assertEq(test_rsh("10.6", x), 10);
114
assertEq(test_ursh(x, "10.6"), 0);
115
assertEq(test_ursh("10.6", x), 10);
116
assertEq(test_lsh(x, "10.6"), 0);
117
assertEq(test_lsh("10.6", x), 10);
118
assertEq(test_rsh(x, 2147483648), 0);
119
assertEq(test_rsh(2147483648, x), -2147483648);
120
assertEq(test_ursh(x, 2147483648), 0);
121
assertEq(test_ursh(2147483648, x), 2147483648);
122
assertEq(test_lsh(x, 2147483648), 0);
123
assertEq(test_lsh(2147483648, x), -2147483648);
124
assertEq(test_rsh(x, 4294967296), 0);
125
assertEq(test_rsh(4294967296, x), 0);
126
assertEq(test_ursh(x, 4294967296), 0);
127
assertEq(test_ursh(4294967296, x), 0);
128
assertEq(test_lsh(x, 4294967296), 0);
129
assertEq(test_lsh(4294967296, x), 0);
130
assertEq(test_rsh(x, undefined), 0);
131
assertEq(test_rsh(undefined, x), 0);
132
assertEq(test_ursh(x, undefined), 0);
133
assertEq(test_ursh(undefined, x), 0);
134
assertEq(test_lsh(x, undefined), 0);
135
assertEq(test_lsh(undefined, x), 0);
136
assertEq(test_rsh(x, null), 0);
137
assertEq(test_rsh(null, x), 0);
138
assertEq(test_ursh(x, null), 0);
139
assertEq(test_ursh(null, x), 0);
140
assertEq(test_lsh(x, null), 0);
141
assertEq(test_lsh(null, x), 0);
142
assertEq(test_rsh(x, false), 0);
143
assertEq(test_rsh(false, x), 0);
144
assertEq(test_ursh(x, false), 0);
145
assertEq(test_ursh(false, x), 0);
146
assertEq(test_lsh(x, false), 0);
147
assertEq(test_lsh(false, x), 0);
148
assertEq(test_rsh(x, true), 0);
149
assertEq(test_rsh(true, x), 1);
150
assertEq(test_ursh(x, true), 0);
151
assertEq(test_ursh(true, x), 1);
152
assertEq(test_lsh(x, true), 0);
153
assertEq(test_lsh(true, x), 1);
154
assertEq(test_rsh(x, -1.5), 0);
155
assertEq(test_rsh(-1.5, x), -1);
156
assertEq(test_ursh(x, -1.5), 0);
157
assertEq(test_ursh(-1.5, x), 4294967295);
158
assertEq(test_lsh(x, -1.5), 0);
159
assertEq(test_lsh(-1.5, x), -1);
162
assertEq(test_rsh(x, -1), -1);
163
assertEq(test_rsh(-1, x), -1);
164
assertEq(test_ursh(x, -1), 1);
165
assertEq(test_ursh(-1, x), 1);
166
assertEq(test_lsh(x, -1), -2147483648);
167
assertEq(test_lsh(-1, x), -2147483648);
168
assertEq(test_rsh(x, 1), -1);
169
assertEq(test_rsh(1, x), 0);
170
assertEq(test_ursh(x, 1), 2147483647);
171
assertEq(test_ursh(1, x), 0);
172
assertEq(test_lsh(x, 1), -2);
173
assertEq(test_lsh(1, x), -2147483648);
174
assertEq(test_rsh(x, 0), -1);
175
assertEq(test_rsh(0, x), 0);
176
assertEq(test_ursh(x, 0), 4294967295);
177
assertEq(test_ursh(0, x), 0);
178
assertEq(test_lsh(x, 0), -1);
179
assertEq(test_lsh(0, x), 0);
180
assertEq(test_rsh(x, 0xffffffff), -1);
181
assertEq(test_rsh(0xffffffff, x), -1);
182
assertEq(test_ursh(x, 0xffffffff), 1);
183
assertEq(test_ursh(0xffffffff, x), 1);
184
assertEq(test_lsh(x, 0xffffffff), -2147483648);
185
assertEq(test_lsh(0xffffffff, x), -2147483648);
186
assertEq(test_rsh(x, "10.6"), -1);
187
assertEq(test_rsh("10.6", x), 0);
188
assertEq(test_ursh(x, "10.6"), 4194303);
189
assertEq(test_ursh("10.6", x), 0);
190
assertEq(test_lsh(x, "10.6"), -1024);
191
assertEq(test_lsh("10.6", x), 0);
192
assertEq(test_rsh(x, 2147483648), -1);
193
assertEq(test_rsh(2147483648, x), -1);
194
assertEq(test_ursh(x, 2147483648), 4294967295);
195
assertEq(test_ursh(2147483648, x), 1);
196
assertEq(test_lsh(x, 2147483648), -1);
197
assertEq(test_lsh(2147483648, x), 0);
198
assertEq(test_rsh(x, 4294967296), -1);
199
assertEq(test_rsh(4294967296, x), 0);
200
assertEq(test_ursh(x, 4294967296), 4294967295);
201
assertEq(test_ursh(4294967296, x), 0);
202
assertEq(test_lsh(x, 4294967296), -1);
203
assertEq(test_lsh(4294967296, x), 0);
204
assertEq(test_rsh(x, undefined), -1);
205
assertEq(test_rsh(undefined, x), 0);
206
assertEq(test_ursh(x, undefined), 4294967295);
207
assertEq(test_ursh(undefined, x), 0);
208
assertEq(test_lsh(x, undefined), -1);
209
assertEq(test_lsh(undefined, x), 0);
210
assertEq(test_rsh(x, null), -1);
211
assertEq(test_rsh(null, x), 0);
212
assertEq(test_ursh(x, null), 4294967295);
213
assertEq(test_ursh(null, x), 0);
214
assertEq(test_lsh(x, null), -1);
215
assertEq(test_lsh(null, x), 0);
216
assertEq(test_rsh(x, false), -1);
217
assertEq(test_rsh(false, x), 0);
218
assertEq(test_ursh(x, false), 4294967295);
219
assertEq(test_ursh(false, x), 0);
220
assertEq(test_lsh(x, false), -1);
221
assertEq(test_lsh(false, x), 0);
222
assertEq(test_rsh(x, true), -1);
223
assertEq(test_rsh(true, x), 0);
224
assertEq(test_ursh(x, true), 2147483647);
225
assertEq(test_ursh(true, x), 0);
226
assertEq(test_lsh(x, true), -2);
227
assertEq(test_lsh(true, x), -2147483648);
228
assertEq(test_rsh(x, -1.5), -1);
229
assertEq(test_rsh(-1.5, x), -1);
230
assertEq(test_ursh(x, -1.5), 1);
231
assertEq(test_ursh(-1.5, x), 1);
232
assertEq(test_lsh(x, -1.5), -2147483648);
233
assertEq(test_lsh(-1.5, x), -2147483648);
237
assertEq(test_ursh(0, -2147483648), 0);
238
assertEq(test_ursh(0, 2147483648), 0);
239
assertEq(test_ursh(0, 45), 0);
240
assertEq(test_ursh(0, -45), 0);
241
assertEq(test_ursh(100, -2147483648), 100);
242
assertEq(test_ursh(100, 2147483648), 100);
243
assertEq(test_ursh(100, 45), 0);
244
assertEq(test_ursh(100, -45), 0);
245
assertEq(test_ursh(-100, -2147483648), 4294967196);
246
assertEq(test_ursh(-100, 2147483648), 4294967196);
247
assertEq(test_ursh(-100, 45), 524287);
248
assertEq(test_ursh(-100, -45), 8191);
254
return 2147483647 >>> i;
256
assertEq(test1(), 2147483647);
259
return 2147483647 >>> i;
261
assertEq(test2(), 1073741823);
266
assertEq(test3(), 4294967295);
271
assertEq(test4(), 536870911);
276
assertEq(test5(), 4294963648);