У меня проблемы с переполнением стека Javascript на стороне клиента, особенно в браузере IE,
это происходит внутри сторонней библиотеки, которая делает некоторые вызовы функций, и по некоторым причинам они иногда тормозят в IE только из-за низкого предела стека.
Затем я написал небольшой тестовый HTML, чтобы проверить ограничение размера стека для некоторых браузеров, и обнаружил, что IE8 имеет небольшой предел стека по сравнению с FF 7 или Chrome 14, работающими на ноутбуке с ОС Windows 7, 8 ГБ ОЗУ: 1003 *
<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 или любом другом браузере, и может ли оно дать трассировку стека цепочкой функций в стеке по адресу момент возникновения ошибки.