Я получаю некоторые проблемы с переполнением стека на стороне Javascript на стороне клиента, особенно в браузере IE, это происходит внутри сторонней библиотеки, которая вызывает некоторые вызовы функций, и по какой-то причине они время от времени торгуют в IE только из-за низкого предела стека.
Затем я закодировал небольшой тестовый HTML для проверки ограничения размера стека для некоторых браузеров и обнаружил, что IE8 имеет минимальное ограничение по стеку по сравнению с FF 7 или Chrome 14, работающим на ноутбуке с ОС Windows 7, оперативной памяти 8 ГБ:
<html>
<body>
<!-- begin Script: -->
<script type="text/javascript">
function doSomething(){
var i = 3200;
doSomethingElse(i);
}
function doSomethingElse(i){
if (i == 0) return -1;
doSomethingElse(i-1);
}
doSomething();
</script>
<!-- END OF PAGE -->
</body>
</html>
IE повышает переполнение стека при значениях около 3200, Firefox и Chrome могут обрабатывать очень глубокую рекурсию по сравнению с IE.
Я хотел бы знать, есть ли способ связать исключение с функцией Javascript, которая повышала его во время выполнения в IE или в любом другом браузере, и если бы он мог дать stacktrace с цепочкой функций в стеке в момент возникновения ошибки.