js/src/jit-test/tests/basic/spread-call-not-iterable.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/spread-call-not-iterable.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,28 @@
     1.4 +load(libdir + "asserts.js");
     1.5 +load(libdir + "iteration.js");
     1.6 +
     1.7 +assertThrowsInstanceOf(() => Math.sin(...true), TypeError);
     1.8 +assertThrowsInstanceOf(() => Math.sin(...false), TypeError);
     1.9 +assertThrowsInstanceOf(() => Math.sin(...new Date()), TypeError);
    1.10 +assertThrowsInstanceOf(() => Math.sin(...Function("")), TypeError);
    1.11 +assertThrowsInstanceOf(() => Math.sin(...function () {}), TypeError);
    1.12 +assertThrowsInstanceOf(() => Math.sin(...(x => x)), TypeError);
    1.13 +assertThrowsInstanceOf(() => Math.sin(...1), TypeError);
    1.14 +assertThrowsInstanceOf(() => Math.sin(...{}), TypeError);
    1.15 +var foo = {}
    1.16 +
    1.17 +foo[std_iterator] = 10;
    1.18 +assertThrowsInstanceOf(() => Math.sin(...foo), TypeError);
    1.19 +
    1.20 +foo[std_iterator] = function() undefined;
    1.21 +assertThrowsInstanceOf(() => Math.sin(...foo), TypeError);
    1.22 +
    1.23 +foo[std_iterator] = function() this;
    1.24 +assertThrowsInstanceOf(() => Math.sin(...foo), TypeError);
    1.25 +
    1.26 +foo[std_iterator] = function() this;
    1.27 +foo.next = function() { throw 10; };
    1.28 +assertThrowsValue(() => Math.sin(...foo), 10);
    1.29 +
    1.30 +assertThrowsInstanceOf(() => Math.sin(.../a/), TypeError);
    1.31 +assertThrowsInstanceOf(() => Math.sin(...new Error()), TypeError);

mercurial