This test checks whether funky scope chains created by catch blocks | |
are properly protected from GC. It should not crash. | |
<script> | |
if (window.testRunner) | |
testRunner.dumpAsText(); | |
function Test_Error() { | |
for( var i = 0; i <= 5000; i++ ) { | |
try { | |
throw new Error("Ungraceful Error"); | |
} | |
catch (e) { | |
try { | |
throw new Error("Graceful Error"); | |
} | |
catch (e) { | |
Test_Error_isPrime(147457); //Do something CPU-intensive | |
} | |
finally{ | |
Test_Error_isPrime(147457); //Do something CPU-intensive | |
} | |
} | |
} | |
} | |
function Test_Error_isPrime(PrimeTest) { | |
for(i=2;i<=Math.sqrt(147457)+1;i++) { | |
if (PrimeTest % i == 0) { | |
return false; | |
} | |
} | |
return true; | |
} | |
Test_Error(); | |
</script> |