rem: function underDeepRecursion() { return F.toSource(); 
add: });  if (n == 0) throw "unexpected";  writeLineToLog("Max nested function leveles:"+n);  n = findActionMax(function(n) { try { callAfterConsumingCStack(n, function() {}); return true; } catch (e) { if (!(e instanceof InternalError)) throw e; return false; } });  writeLineToLog("Max callAfterConsumingCStack levels:"+n);      n = Math.max(0, n - 10); try { var src = callAfterConsumingCStack(n, function() { return deepestFunction.toSource(); }); throw "Test failed to hit the recursion limit."; } catch (e) { if (!(e instanceof InternalError)) throw e; 
context: function test(){  enterFunc ('test');  printBugNumber (bug);  printStatus (summary);  // Number of nested function f(){function f(){function f(){...}}}  var N = 700;  var prefix="function f(){";  var suffix="}";  var source = Array(N+1).join(prefix) + Array(N+1).join(suffix);  var F = Function(source);// We successfully parsed the source, now call F.toSource() from a deeply// recursive code when already consumed C stack plus the stack to perform// F.toSource() would exceed the stack required to parse F.  var testObj = { 		recursionLevel: N*0.7,	get propertyWithGetter() {      if (this.recursionLevel <= 0)        return underDeepRecursion();      this.recursionLevel--;      return this.propertyWithGetter;    }   };  function underDeepRecursion()  {    return F.toSource();  }  var success = false;  try {    testObj.propertyWithGetter;    success = true;  } catch (e) {    success = (e instanceof InternalError);  }  writeLineToLog("success="+success);  expect = true;  actual = success;  reportCompare(expect, actual, summary);  exitFunc ('test');}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/0cd3a1605af988aa8ddad104b5fd5a1a20272470/regress-348986.js/clean/js/tests/js1_5/Function/regress-348986.js