Bucle para siempre y proporciona tiempo delta

Estoy escribiendo un framework de Javascript de desarrollo de juegos HTML5 y quiero proporcionarle al usuario la diferencia en el tiempo entre el último tick y el actual.

setInterval(tick, 16.6666666);

function tick() {
  update();
  draw();
}

Eso es lo que tengo, pero quiero tener:

while (true) {
  /* Calculate delta time */

  tick(dt);
}

function tick(dt) {
  update(dt);
  draw();
}

Intenté eso, usando date.getTime (); para calcular el tiempo delta, pero Firefox dijo que el script se bloqueó. Obviamente, un bucle infinito se estrellará. ¿Tienes alguna sugerencia de cómo puedo hacer esto?

Quiero un bucle infinito, que se puede detener conbreak. Quiero pasar el tiempo delta también, pero eso sé cómo hacerlo.

Respuestas a la pregunta(4)

Su respuesta a la pregunta