the `while` block looks fishy to me. why not just have
```javascript
if (item.accumulator >= item.delay) {
   item.repeat--;
   item.callback.call(this);
}
```
If `dt > delay` it will pass the condition because `accumulator + dt >= delay`