setTimeout(), setInterval(), and requestAnimationFrame()

What does this code measure?
let fps = 0;
let lastSecond = performance.now();

requestAnimationFrame(function measure(now) {
  fps++;
  if (now - lastSecond >= 1000) {
    console.log(`FPS: ${fps}`);
    fps = 0;
    lastSecond = now;
  }
  requestAnimationFrame(measure);
});
Next Question (17/20)