Редактировать: Это неправильно, Ник прав. Хотя мне бы очень хотелось убедиться, что IE на самом деле правильно реализует NodeList, поскольку все равно звучит так, как будто вы работаете с бесконечным циклом в IE.
Спасибо за внимание, Ник, сегодня я узнал что-то новое. Javascript не перестает меня удивлять:)
Простое переименование элемента в массиве не приведет к его удалению из массива - getElementsByName не запускается постоянно, только в начальный момент его вызова. Так что IE застрял в бесконечном цикле, где он продолжает проверять один и тот же проверенный элемент снова и снова. Я, честно говоря, не уверен, почему Firefox также не застревает в одном и том же бесконечном цикле.
Насколько я понимаю, строка i=i-1
совершенно не нужна.