Код {}
совершенно допустим в JavaScript, поскольку представляет блок.
Тем не менее, я заметил, что в Chrome * появляется множество блоков ({{...}}
) внутри другого:
Uncaught RangeError: превышен максимальный размер стека вызовов
Почему здесь происходит переполнение стека?
Вот кодовая ручка, иллюстрирующая проблему (jsfiddle вылетает).
При запросе в JSRoom Зирак обнаружил, что магическое число составляет 3913 блоков в Chrome и 2555 в Firefox.
Что выталкивается в стек? Зачем?
(*) Я проверил, и это также происходит в IE и Firefox
Обновление: я проверил и ненадежно IE может избежать исключения. Он бросил его два раза, но не третий. Если у кого-то из читателей есть IE, и он тоже хочет протестировать его более старые версии (например, IE8 и 9) и сообщить мне, что произойдет, я буду очень признателен.