Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
161
rated 0 times [  166] [ 5]  / answers: 1 / hits: 65333  / 13 Years ago, wed, october 19, 2011, 12:00:00

I am getting some client-side Javascript stack overflow issues specifically in IE browser,
this is happening inside a third party library that makes some function calls and for some reason they occasionally brake in IE only due to it's low stack limit.



I then coded a small test HTML to test the stack size limit for some browsers and found that IE8 has actually a small stack limit if compared to FF 7 or Chrome 14 running on a Laptop with Windows 7 OS, 8Gb RAM:



<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 raises stack overflow when the values are around 3200, Firefox and Chrome can handle a very deep recursion if compared to IE.



I would like to know if there's a way to tie the stack-overflow exception with the Javascript function that raised it during runtime in IE or any other browser and if it could give the stacktrace with the chain of function in the stack at the moment the error was raised.


More From » browser

 Answers
30

Using a simple test:




var i = 0;
function inc() {
i++;
inc();
}

try {
inc();
}
catch(e) {
// The StackOverflow sandbox adds one frame that is not being counted by this code
// Incrementing once manually
i++;
console.log('Maximum stack size is', i, 'in your current browser');
}




Internet Explorer



  • IE6: 1130

  • IE7: 2553

  • IE8: 1475

  • IE9: 20678

  • IE10: 20677


Mozilla Firefox



  • 3.6: 3000

  • 4.0: 9015

  • 5.0: 9015

  • 6.0: 9015

  • 7.0: 65533

  • 8b3: 63485

  • 17: 50762

  • 18: 52596

  • 19: 52458

  • 42: 281810

  • 89: 10746

  • 91: 26441


Google Chrome



  • 14: 26177

  • 15: 26168

  • 16: 26166

  • 25: 25090

  • 47: 20878

  • 51: 41753

  • 93: 13903


Safari



  • 4: 52426

  • 5: 65534

  • 9: 63444

  • 14: 45606


Safari iOS



  • 15: 7909


Opera



  • 10.10: 9999

  • 10.62: 32631

  • 11: 32631

  • 12: 32631

  • 78: 13908


Edge



  • 87: 13970

  • 93: 13903


Yandex



  • 21: 13909




In regard to your question, use your browser's developer tools to see the stack. In IE 8+, hit F12, go to the Script tab, and click Start Debugging. It will break when an exception is thrown, and you can see the call stack. You can also use Chrome's developer tools, Ctrl+Shift+J.


[#89525] Tuesday, October 18, 2011, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
alorac

Total Points: 262
Total Questions: 82
Total Answers: 97

Location: Libya
Member since Mon, Dec 7, 2020
4 Years ago
alorac questions
Sat, Oct 10, 20, 00:00, 4 Years ago
Tue, Sep 22, 20, 00:00, 4 Years ago
Wed, Jul 1, 20, 00:00, 4 Years ago
Wed, Jun 3, 20, 00:00, 4 Years ago
Sun, May 17, 20, 00:00, 4 Years ago
;