summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/mathMinMax.js
blob: dc3e5df9e18966dccd39a1b818ee9309f8952b39 (plain)
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
var nan = Number.NaN;
var negative_zero = -0;

function max(a, b) {
    return Math.max(a, b);
}
function min(a, b) {
    return Math.min(a, b);
}

function main() {
    for (var i = 0; i < 100; i++) {
        assertEq(max(negative_zero, 0), 0);
        assertEq(max(0, negative_zero), 0);
        assertEq(min(0, negative_zero), negative_zero);
        assertEq(min(negative_zero, 0), negative_zero);

        assertEq(min(negative_zero, negative_zero), negative_zero);
        assertEq(max(negative_zero, negative_zero), negative_zero);

        assertEq(max(nan, 0), nan);
        assertEq(min(nan, 0), nan);

        assertEq(max(0, nan), nan);
        assertEq(max(nan, 0), nan);

        assertEq(max(3, 5), 5);
        assertEq(max(5, 3), 5);

        assertEq(min(3, 5), 3);
        assertEq(min(5, 3), 3);

        assertEq(max(Infinity, -Infinity), Infinity);
        assertEq(min(Infinity, -Infinity), -Infinity);
        assertEq(max(Infinity, nan), nan);

        assertEq(max(negative_zero, -5), negative_zero);
        assertEq(min(negative_zero, -5), -5);
    }
}

main();