Дело в том, что перед ошибкой я делаю проверку и вижу, что JSON переопределён, а после выполнения всех скриптов JSON стандартный.
window.JSON  проверяю в контексте window
if (!JSON.stringify) {
   if (JSON.encode) {
        JSON.stringify = JSON.encode;
    }
}
Так очень страшно?