Browser Javascript Stack size limit
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.
This is browser specific, not only the stack size, but also optimizations, things like tail recursion optimization and stuff. I guess the only reliable thing here is to code in a way that doesn't put tons of stuff into the stack, or manually testing(reading deep into the documentation of) each browser. After all, when you see the "too much recursion" error or similar you already know there's something really wrong with your code.