summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/symbol-equality.js
blob: 1b56273a7c098247291791b0124c4d8db265064a (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
setJitCompilerOption("ion.warmup.trigger", 10);

function simpleEquality() {
    for (var i = 0; i < 150; i++) {
        var x = Symbol();
        var y = Symbol();
        assertEq(x === y, false);
        assertEq(x !== y, true);
        assertEq(x == y, false);
        assertEq(x != y, true);
    }
}

function equalOperands() {
    for (var i = 0; i < 150; i++) {
        var x = Symbol();
        assertEq(x === x, true);
        assertEq(x !== x, false);
    }
}

function bitwiseCompare() {
    var ar = [true, false, Symbol(), null, undefined];
    var s = Symbol();
    ar.push(s);

    for (var i = 0; i < 150; i++) {
        for (var j = 0; j < ar.length; j++) {
            var equal = (j == ar.indexOf(s));

            assertEq(ar[j] === s, equal);
            assertEq(ar[j] !== s, !equal);
            assertEq(ar[j] == s, equal);
            assertEq(ar[j] != s, !equal);
        }
    }
}

equalOperands();
simpleEquality();
bitwiseCompare();