• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jstedfast / HtmlKit / 1.3.0.379
98%

Build:
DEFAULT BRANCH: master
Ran 08 Oct 2026 09:37PM UTC
Jobs 1
Files 14
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Oct 2026 09:34PM UTC coverage: 97.955% (-0.4%) from 98.348%
1.3.0.379

push

coveralls.net

jstedfast
Bulk-scan more HtmlTokenizer states and stop breaking scans at newlines

The Data, RCDATA, RAWTEXT, script data, comment and bogus comment states
now use TryReadDataUntil/TryReadNameUntil (SearchValues<char> on net8+) to
scan in bulk instead of reading one character at a time.

The bulk scanners no longer require '\n' to be in the set of special
characters. Instead, line numbers and positions are updated for each
consumed run using LastIndexOf('\n') and Count('\n'), so newline-heavy
input no longer forces a scan restart on every line.

Tag names, attribute names and unquoted attribute values still use
per-character reads; they are short enough that bulk scanning measured
the same or slower.

Token output (kinds, names, attributes, data, line numbers and positions)
is identical to the previous implementation across all of the HTML test
data plus a synthetic edge-case input.

Best-of-N tokenizer timings (net10.0, interleaved A/B):

  test.html: 472-496 us -> 355-388 us (~20-25% faster)
  Gimhae:    201-204 us -> 179-195 us (~5-12% faster)

Pathological 4 MB inputs (before -> after):

  all '\n'                30.2 ms -> 4.6 ms
  "\r\n" lines            22.7 ms -> 5.7 ms
  "<p>\n" repeated       102.5 ms -> 53.3 ms
  '\n' in a comment       28.1 ms -> 12.0 ms
  '\n' in an attr value   37.0 ms -> 13.7 ms
  '\n' in <plaintext>     23.6 ms -> 7.3 ms

Inputs made only of special characters ("&&&", "<<<") are within noise
of the previous implementation, and every case scales linearly.

3448 of 3520 relevant lines covered (97.95%)

0.98 hits per line

Coverage Regressions

Lines Coverage ∆ File
22
98.29
-0.76% D/a/HtmlKit/HtmlKit/HtmlKit/HtmlTokenizer.cs
Jobs
ID Job ID Ran Files Coverage
1 1.3.0.379.1 08 Oct 2026 09:37PM UTC 14
97.95
Source Files on build 1.3.0.379
  • Tree
  • List 14
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • d99481be on github
  • Prev Build on master (#1.3.0.378)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc