DOM NodeList (возвращаемый, например, element.getElementsByTagName) — интересный объект, поскольку он не является снимком, а отражает изменения в документе, сделанные после того, как вы создали NodeList.
Мне было интересно, как можно реализовать такую коллекцию: полностью ленивое вычисление должно быть ужасно медленным, но сохранение согласованности кэшированной версии требует большого внутреннего учета.
Я попытался поискать в блоге статьи на эту тему в Google, а также попытался найти соответствующие файлы исходного кода для Mozilla, но сразу ничего не нашел (а когда я не могу найти что-то сразу, я прихожу сюда...).
Так как же Firefox, Safari, Internet Explorer (и другие небраузерные реализации DOM) обрабатывают NodeList?