Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / jit-test / tests / jaeger / floatTypedArrays.js
1 // vim: set ts=4 sw=4 tw=99 et:
2
3 function testFloat32Array(L) {
4     var f = new Float32Array(8);
5     assertEq(f[0], 0);
6     assertEq(f[L], 0);
7     assertEq(f[L+8], undefined);
8     assertEq(f[8], undefined);
9     f[0] = 12;
10     f[L+1] = 13.5;
11     f[2] = f[1];
12     f[L+3] = 4294967295;
13     f[L+4] = true;
14     f[L+5] = L;
15     assertEq(f[0], 12);
16     assertEq(f[1], 13.5);
17     assertEq(f[2], 13.5);
18     assertEq(f[3], 4294967296);
19     assertEq(f[4], 1);
20     assertEq(f[5], 0);
21 }
22
23 function testFloat64Array(L) {
24     var f = new Float64Array(8);
25     assertEq(f[0], 0);
26     assertEq(f[L], 0);
27     assertEq(f[L+8], undefined);
28     assertEq(f[8], undefined);
29     f[0] = 12;
30     f[L+1] = 13.5;
31     f[2] = f[1];
32     f[L+3] = 4294967295;
33     f[L+4] = true;
34     f[L+5] = L;
35     assertEq(f[0], 12);
36     assertEq(f[1], 13.5);
37     assertEq(f[2], 13.5);
38     assertEq(f[3], 4294967295);
39     assertEq(f[4], 1);
40     assertEq(f[5], 0);
41 }
42
43 function testNaNCanonicalization() {
44     var buf = new ArrayBuffer(128);
45
46     var u8 = new Uint8Array(buf);
47     for (var i = 0; i < 128; i++)
48         u8[i] = 0xFF;
49
50     var dblarr = new Float64Array(buf);
51     var asstr = dblarr[0] + "";
52     var asnum = dblarr[0] + 0.0;
53     assertEq(asstr, "NaN");
54     assertEq(asnum, NaN);
55 }
56
57 for (var i = 0; i < 10; i++) {
58     //testFloat32Array(0);
59     //testFloat64Array(0);
60     testNaNCanonicalization();
61     if (i == 5)
62         gc();
63 }
64