summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/bound-function-proto.js
blob: a69238171701d6477aa75d16a48e01bb1f71f4d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// When allocating a bound function in JIT code, ensure it ends up with the
// correct proto.
function f() {
    var arr = [function(){}, function(){}];

    arr[0].bind = Function.prototype.bind;
    arr[1].bind = Function.prototype.bind;

    var proto = {};
    Object.setPrototypeOf(arr[1], proto);

    for (var i = 0; i < 2000; i++) {
        var fun = arr[Number(i > 1000)];
        var bound = fun.bind(null);
        assertEq(Object.getPrototypeOf(bound), i > 1000 ? proto : Function.prototype);
    }
}
f();