testSetPropertyFail.js (759B)
1 function test(name, fn, val) { 2 gc(); 3 var ok = {}, bad = {}; 4 bad.__defineSetter__(name, fn); 5 var arr = [ok, ok, ok, ok, ok, bad]; 6 7 var log = ''; 8 try { 9 for (var i = 0; i < arr.length; i++) { 10 arr[i][name] = val; 11 log += '.'; 12 } 13 } catch (exc) { 14 log += 'E'; 15 } 16 assertEq(log, '.....E'); 17 } 18 19 test("x", Function.prototype.call, null); // TypeError: Function.prototype.call called on incompatible [object Object] 20 test("y", Array, 0.1); // RangeError: invalid array length 21 test(1, Function.prototype.call, null); // TypeError: Function.prototype.call called on incompatible [object Object] 22 test(1, Array, 0.1); // RangeError: invalid array length