rem: a.__defineGetter__(N - 1, function() { var tmp = []; tmp[N - 2] = 0; if (typeof gc == 'function') gc(); for (var i = 0; i != 50000; ++i) { var tmp = 1 / 3; tmp /= 10; } for (var i = 0; i != 1000; ++i) {    var tmp2 = Array(12).join(' '); } return 10; }); 
add: a.__defineGetter__(N - 1, function() { var tmp = []; tmp[N - 2] = 0; if (typeof gc == 'function') gc(); for (var i = 0; i != 50000; ++i) { var tmp = 1 / 3; tmp /= 10; } for (var i = 0; i != 1000; ++i) {    var tmp2 = Array(12).join(' '); } return 10; }); 
context: function test(){  enterFunc ('test');  printBugNumber (bug);  printStatus (summary);    var N = 0xFFFFFFFF;  var a = [];  a[N - 1] = 1;  a.__defineGetter__(N - 1, function() {       var tmp = [];      tmp[N - 2] = 0;      if (typeof gc == 'function')        gc();      for (var i = 0; i != 50000; ++i) {        var tmp = 1 / 3;        tmp /= 10;      }      for (var i = 0; i != 1000; ++i) {        // Make string with 11 characters that would take        // (11 + 1) * 2 bytes or sizeof(JSAtom) so eventually        // malloc will ovewrite just freed atoms.         var tmp2 = Array(12).join(' ');      }      return 10;     });// The following always-throw getter is to stop unshift from doing// 2^32 iterations.  var toStop = "stringToStop";  a[N - 3] = 0;  a.__defineGetter__(N - 3, function() { throw toStop; });  var good = false;  try {    a.unshift(1);  } catch (e) {    if (e === toStop)      good = true;  }  expect = true;  actual = good;  reportCompare(expect, actual, summary);  print('Done');  exitFunc ('test');}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10234/3703c3c05f398a63e55992f7687ef65273b26d6a/regress-341956-01.js/buggy/js/tests/js1_5/extensions/regress-341956-01.js