Dart port of html5lib