···81818282## Istanbul Provider
83838484-[Istanbul code coverage tooling](https://istanbul.js.org/) has existed since 2012 and is very well battle-tested.
8585-This provider works on any Javascript runtime as coverage tracking is done by instrumenting user's source files.
8686-8787-In practice, instrumenting source files means adding additional Javascript in user's files:
8484+[Istanbul code coverage tooling](https://istanbul.js.org/) has existed since 2012 and is very well battle-tested. This provider works on any JavaScript runtime as coverage tracking works by transforming your source code to add instrumentation logic. In practice, the code Vitest will end up running looks something like this:
88858986```js
9087// Simplified example of branch and function coverage counters
···116113- ✅ Works on any Javascript runtime
117114- ✅ Widely used and battle-tested for over 13 years.
118115- ✅ In some cases faster than V8. Coverage instrumentation can be limited to specific files, as opposed to V8 where all modules are instrumented.
119119-- ❌ Requires pre-instrumentation step
116116+- ❌ Source code is transformed to add instrumentation before running
120117- ❌ Execution speed is slower than V8 due to instrumentation overhead
121121-- ❌ Instrumentation increases file sizes
122118- ❌ Memory usage is higher than V8
123119124120<div style="display: flex; flex-direction: column; align-items: center; padding: 2rem 0; max-width: 20rem;">