fix: V8 coverage innermost-wins across FunctionCoverage entries#116
Conversation
Flatten and sort all ranges per script before writing line hits so outer entries cannot overwrite narrower inner ranges when V8 lists the outer function last.
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🦋 Changeset detectedLatest commit: 999d86c The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Summary
V8 can emit nested functions as separate
FunctionCoverageentries. Innermost-wins was applied per entry, so an outer whole-file range listed after an inner range could mark nested lines as covered incorrectly.Fix: flatten all ranges for a script, sort globally by descending byte span, then write line hits (smallest range wins).
Test plan
count: 0entry before outer whole-filecount: 2—innerstays uncoveredbun test src/application/coverage-engine.test.tsbun run typecheck