ply-mutants

ply has 100% line coverage. When a line is wrong, does a test notice? mutant changes one operator and runs the tests.
Survivor reproduced by hand: src/objects.js:24 parseTree
if (sp < 0 || nul < 0 || nul + 20 > data.length) throw fail('pack_corrupt', ...)
A tree entry 1 byte short should throw pack_corrupt. Live result of repro/truncated-tree.mjs:

  
Fix: nul + 21. Low severity: network objects are hash-checked before parseTree sees them.

Score by module and test suite

Survivors (a line a test runs but does not check)