···5454- ✅ Recommended option to use
5555- ✅ No pre-transpile step. Test files can be executed as-is.
5656- ✅ Faster execute times than Istanbul.
5757-- ✅ Lower memory usagethan Istanbul.
5757+- ✅ Lower memory usage than Istanbul.
5858- ✅ Coverage report accuracy is as good as with Istanbul ([since Vitest `v3.2.0`](/blog/vitest-3-2#coverage-v8-ast-aware-remapping)).
5959- ⚠️ In some cases can be slower than Istanbul, e.g. when loading lots of different modules. V8 does not support limiting coverage collection to specific modules.
6060-- ⚠️ There are some minor limitations set by V8 engine. See [`ast-v8-to-istanbl` | Limitations](https://github.com/AriPerkkio/ast-v8-to-istanbul?tab=readme-ov-file#limitations).
6060+- ⚠️ There are some minor limitations set by V8 engine. See [`ast-v8-to-istanbul` | Limitations](https://github.com/AriPerkkio/ast-v8-to-istanbul?tab=readme-ov-file#limitations).
6161- ❌ Does not work on environments that don't use V8, such as Firefox or Bun. Or on environments that don't expose V8 coverage via profiler, such as Cloudflare Workers.
62626363<div style="display: flex; flex-direction: column; align-items: center; padding: 2rem 0; max-width: 20rem;">
···282282Both coverage providers have their own ways how to ignore code from coverage reports:
283283284284- [`v8`](https://github.com/istanbuljs/v8-to-istanbul#ignoring-uncovered-lines)
285285-- [`ìstanbul`](https://github.com/istanbuljs/nyc#parsing-hints-ignoring-lines)
285285+- [`istanbul`](https://github.com/istanbuljs/nyc#parsing-hints-ignoring-lines)
286286- `v8` with [`experimentalAstAwareRemapping: true`](https://vitest.dev/config/#coverage-experimentalAstAwareRemapping) see [ast-v8-to-istanbul | Ignoring code](https://github.com/AriPerkkio/ast-v8-to-istanbul?tab=readme-ov-file#ignoring-code)
287287288288When using TypeScript the source codes are transpiled using `esbuild`, which strips all comments from the source codes ([esbuild#516](https://github.com/evanw/esbuild/issues/516)).