(tokens)
| 258 | let queue = []; // resident contributions, oldest first |
| 259 | let evicted = 0; |
| 260 | const evict = (tokens) => { |
| 261 | let left = tokens; |
| 262 | while (left > 0 && queue.length) { |
| 263 | const head = queue[0]; |
| 264 | if (head.tokens <= left) { left -= head.tokens; evicted += head.tokens; queue.shift(); } |
| 265 | else { head.tokens -= left; evicted += left; left = 0; } |
| 266 | } |
| 267 | }; |
| 268 | |
| 269 | for (const g of gaps) { |
| 270 | if (g.compacted) { |