summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/testSetPropertyFail.js
blob: 0ca6257609b8af77f61fc4232c4b8405c4e5e9ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function test(name, fn, val) {
    gc();
    var ok = {}, bad = {};
    bad.__defineSetter__(name, fn);
    var arr = [ok, ok, ok, ok, ok, bad];

    var log = '';
    try {
        for (var i = 0; i < arr.length; i++) {
            arr[i][name] = val;
            log += '.';
        }
    } catch (exc) {
        log += 'E';
    }
    assertEq(log, '.....E');
}

test("x", Function.prototype.call, null);  // TypeError: Function.prototype.call called on incompatible [object Object]
test("y", Array, 0.1);                     // RangeError: invalid array length
test(1, Function.prototype.call, null);  // TypeError: Function.prototype.call called on incompatible [object Object]
test(1, Array, 0.1);                     // RangeError: invalid array length