js/src/jit-test/tests/basic/testSetPropertyFail.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/basic/testSetPropertyFail.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,22 @@
     1.4 +function test(name, fn, val) {
     1.5 +    gc();
     1.6 +    var ok = {}, bad = {};
     1.7 +    bad.__defineSetter__(name, fn);
     1.8 +    var arr = [ok, ok, ok, ok, ok, bad];
     1.9 +
    1.10 +    var log = '';
    1.11 +    try {
    1.12 +        for (var i = 0; i < arr.length; i++) {
    1.13 +            arr[i][name] = val;
    1.14 +            log += '.';
    1.15 +        }
    1.16 +    } catch (exc) {
    1.17 +        log += 'E';
    1.18 +    }
    1.19 +    assertEq(log, '.....E');
    1.20 +}
    1.21 +
    1.22 +test("x", Function.prototype.call, null);  // TypeError: Function.prototype.call called on incompatible [object Object]
    1.23 +test("y", Array, 0.1);                     // RangeError: invalid array length
    1.24 +test(1, Function.prototype.call, null);  // TypeError: Function.prototype.call called on incompatible [object Object]
    1.25 +test(1, Array, 0.1);                     // RangeError: invalid array length

mercurial