~ubuntu-branches/ubuntu/trusty/mozjs24/trusty-proposed

« back to all changes in this revision

Viewing changes to js/src/jit-test/tests/ion/bug681185.js

  • Committer: Package Import Robot
  • Author(s): Tim Lunn
  • Date: 2014-02-11 21:55:34 UTC
  • Revision ID: package-import@ubuntu.com-20140211215534-m1zyq5aj59md3y07
Tags: upstream-24.2.0
ImportĀ upstreamĀ versionĀ 24.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
function test_lsh(x, y) {
 
2
    return x << y;
 
3
}
 
4
 
 
5
function test_ursh(x, y) {
 
6
    return x >>> y;
 
7
}
 
8
 
 
9
function test_rsh(x, y) {
 
10
    return x >> y;
 
11
}
 
12
 
 
13
var x = 1;
 
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);
 
86
 
 
87
var x = 0;
 
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);
 
160
 
 
161
var 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);
 
234
 
 
235
 
 
236
 
 
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);
 
249
 
 
250
 
 
251
 
 
252
function test1() {
 
253
    var i = 0;
 
254
    return 2147483647 >>> i;
 
255
}
 
256
assertEq(test1(), 2147483647);
 
257
function test2() {
 
258
    var i = 1;
 
259
    return 2147483647 >>> i;
 
260
}
 
261
assertEq(test2(), 1073741823);
 
262
function test3() {
 
263
    var i = 0;
 
264
    return -1 >>> i;
 
265
}
 
266
assertEq(test3(), 4294967295);
 
267
function test4() {
 
268
    var i = 3;
 
269
    return -1 >>> i;
 
270
}
 
271
assertEq(test4(), 536870911);
 
272
function test5() {
 
273
    var i = 0;
 
274
    return -3648 >>> i;
 
275
}
 
276
assertEq(test5(), 4294963648);