Agregar argumentos adicionales a una función devuelta por requestAnimationFrame

Estoy buscando crear una función que desplaza un elemento de imagen x píxeles a lo largo del tiempo en un lienzo HTML5, usando requestAnimationFrame y delta time. Lo que no puedo entender es cómo agregar más argumentos a mi función, cuando requestAnimationFrame ya llama a mi función con un argumento (un DOMHighResTimeStamp). Estoy bastante seguro de que el siguiente código no funciona:

function scroll(timestamp, distanceToScroll, secondsToScroll) {
  //delta = how many milliseconds have passed between this and last draw
  if (!lastDraw) {var lastDraw = timestamp;};
  delta = (0.5 + (timestamp - lastDraw)) << 0; //bitwise hack for rounding integers
  lastDraw = timestamp;

  //speed (pixels per millisecond) = amount of pixels to move / length of animation (in milliseconds)
  speed = distanceToScroll / secondsToScroll;

  //new position = current position + (speed * delta)
  position += (speed * delta);

  context.drawImage(myImage,0,position,50,50/*of 200*/,0,0,100,100);
  requestAnimationFrame(scroll(timestamp, distanceToScroll, secondsToScroll));
};

//later...
scroll(timestamp, 100, 5)
scroll(timestamp, 10, 20)

Mi pregunta es que no tengo idea de cómo forzar requestAnimationFrame para continuar para llamar a mi función de desplazamiento con mis parámetros adicionales, cuando todo lo que hace de manera predeterminada es pasar solo un argumento (una marca de tiempo) en la devolución de llamada. Entonces, ¿cómo hago para agregar más parámetros (u obligar a rAF a poner la marca de tiempo en mi argumento de 'marca de tiempo')?