summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/monomorphic-property-access.js
blob: 54066a8d891858bc87b860e65ccfbce46560c4e4 (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
function Foo() {
    for (var i=0; i<10; i++) {
        this["p" + i] = i;
    }
}

function test1(foo) {
    for (var i=0; i<10400; i++) {
        foo.p1 = i;
        foo.p9 = i;
        var x = foo.p0 + foo.p1 + foo.p2 + foo.p8 + foo.p4 +
            foo.p5 + foo.p6 + foo.p7 + foo.p3 + foo.p9;
        assertEq(x, i + i + 35);
    }
}

test1(new Foo);

function Bar(arg) {
    if (arg) { // Thwart definite-property analysis.
        this.x = 1;
        this.y = 2;
        this.z = 3;
    }
}

function test2(bar) {
    for (var i=0; i<10400; i++) {
        bar.x++;
        bar.y++;
        bar.z++;
    }
    assertEq(bar.x, 10401);
    assertEq(bar.y, 10402);
    assertEq(bar.z, 10403);
}

test2(new Bar(true));