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