Coverage matrix
Two different things live on this page, and it's worth not confusing them. First: how much of each targeted feature area works. Second: how the compiler scores against full external test suites — a much harsher, much lower number.
Targeted feature areas
These count a feature that works for its core, documented case, mirrored from the project's own status matrix (the repository tracks a stricter “zero-caveat” number per page too). They say “the paths this compiler targets work” — not “it runs all TypeScript.”
External conformance
Run unfiltered against the public suites, the numbers are low — and shown anyway, because hiding them would be dishonest. This is a typed subset compiler: most of Test262 uses eval as its own assertion mechanism, and Node's tests are dynamic, untyped JavaScript against the entire platform. Those files don't fail so much as fall outside what this project set out to compile.
- Test262 — 5,858 / 53,578 (10.9%) of the whole corpus; 5,067 / 34,334 (14.8%) once the out-of-scope tags (Intl, Temporal, dynamic
import(), Proxy/Reflect, module/async/eval flags) are filtered out. The core-language category alone runs at ~21%. - TypeScript — accept/reject agreement with
tscover ~9.3k single-file cases; disagreements are dominated by valid TS features this narrow subset doesn't implement. - Node.js — of Node's full
test/parallelsuite, ~1,195 files compile far enough to run and 21 pass. It's a floor on “how much of Node's own suite runs verbatim,” not a module-correctness score.
Language
| Area | Coverage |
|---|---|
| Async / Promise | 100% |
| Classes / OOP | 100% |
| Array methods | 100% |
| Number / Math | 100% |
| Type primitives | 100% |
| Object & collections | 97% |
| Modules | 94% |
| String methods | 93% |
| JSON | 87% |
| Type system features | 82% |
Web platform
| Area | Coverage |
|---|---|
| Networking (fetch, WS, SSE) | 100% |
| Streams | 100% |
| Web Crypto | 100% |
| Workers / Concurrency | 100% |
| Binary data & Typed Arrays | 100% |
| URL | 100% |
| Timers | 100% |
Node.js
| Area | Coverage |
|---|---|
| HTTP Server | 100% |
| events (EventEmitter) | 100% |
| path | 100% |
| os | 100% |
| File System (fs) | 93% |
| Process / CLI I/O | 92% |
| Other core modules | 92% |
Known sharp edges
- A bare
: numberis a JS-faithful IEEE-754 double — use a sizedint8…uint64type (or a JSDoc width) for integer semantics. - Concurrency is cooperative — one fiber at a time per thread, no preemption.
- Nothing is dynamic — no
Proxy, no runtime property add/delete. - Whole-program compile only — there's no separate compilation or link step.
Figures as of 2026-08-25. The repository's status pages are the source of truth.