Usar uma variável, apenas no scopo da função hasNext(), chamada 'next' para receber como conteúdo, o valor do próximo frame, para então fazer comparar com o último, ajuda na semântica do código ou seria preciosismo demais?
function hasNext(){
var next = current + 1;
return next <= last;
}
Ao inves de
function hasNext(){
return current + 1 <= last;
}