1. 原文
JavaScript code coverage
2. 摘要翻译
What is it?
Why is it useful?
JavaScript code coverage in V8
- 5.9版本开始,V8加入了native的代码覆盖率支持,当时是函数粒度的
- 6.2版本,该功能拓展到代码块粒度
For JavaScript developers
JavaScript开发者可以使用Chrome开发者工具的Coverage tab来查看代码覆盖率和未使用到的代码。
For embedders
对嵌入式和框架作者来说,可以使用API来获得数据,并有两种模式可供选择:
- 性能模式:对性能影响最小,但可能在垃圾回收函数上丢失数据
- 精确模式:不会因GC而丢失数据,但可能对性能造成影响
API如下:
类似的,性能模式覆盖率数据可以使用API:Profiler.getBestEffortCoverage()
Behind the scenes
下面是大量的篇幅介绍性能模式和精确模式的一些设计和细节,就不翻译了,感兴趣的可以看原文。
Best-effort coverage
Precise coverage (function granularity)
Precise coverage (block granularity)
Conclusion
EOF