HTML-парсер на чистом JavaScript

Автор небезызвестной JavaScript-библиотеки jQuery Джон Резиг написал HTML-парсер на чистом JavaScript.

Обработка всех возможных ошибок HTML не заявляется, однако в большинстве случаев библиотека даёт на выходе вполне корректный XHTML, отлично справляясь с наиболее частыми и очевидными из них, например:

отсутствие закрывающих тегов:
<p><b>Hello → <p><b>Hello</b></p>
отсутствие закрывающего слэша в «самозакрывающихся» элементах:
<img src=test.jpg> → <img src="test.jpg"/>
незакрытый строчный элемент перед блочным:
<b>Hello <p>John → <b>Hello </b><p>John</p>
отсутствие закрывающих тегов у элементов, для которых это допустимо в HTML4:
<p>Hello<p>World → <p>Hello</p><p>World</p>
булевы атрибуты (флаги):
<input disabled> → <input disabled="disabled"/>
ошибочный порядок закрывающих тегов вложенных элементов:
<b><i>example</b></i> → <b><i>example</i></b>

Попробовать библиотеку в действии можно на демо-странице.

Размер JS-файла без сжатия — чуть более 8 КБ.