TL;DR: Adding any non-built-in functions to Array.prototype AND Function.prototype will cause the IE8 native JSON parser to get a stack overflow when parsing any JSO
A solution is to remove the native JSON.parse on IE8 and replace it with the JSON.parse from the json2.js lib:
Add:
This will trigger json2 to replace the JSON.parse with its own version
// json2.js
...
if (typeof JSON.parse !== 'function') {
JSON.parse = function (text, reviver) {
...
After that the parse should work again.
One problem with this approach is that the json2.js parse method is slower than the native one.