summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/bug765454.js
blob: d91bd87b67edb5cd7da74d22edb4bbd2347bacec (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
var seen = -1;

// Test to make sure the jits get the number of calls, and return value
// of setters correct. We should not be affected by whether the setter
// modifies its argument or returns some value.
function setter(x) {
    this.val = x;
    x = 255;
    bailout();
    seen++;
    assertEq(seen, this.val);
    return 5;
}

function F(){}
Object.defineProperty(F.prototype, "value" , ({set: setter}));

function test() {
    var obj = new F();
    var itrCount = 10000;
    for(var i = 0; i < itrCount; i++) {
        assertEq(obj.value = i, i);
        assertEq(obj.val, i);
    }
}
test();