Inside requestAnimationFrame loop, step() is called, which: calculates current FPS (throttling loop if it is over limit set in setFPSCap), emits dataless 'prerender' event on start of loop, calls in order any one-shot functions registered by nextTick on last loop, calls Context.update on all Context objects registered, and emits dataless 'postrender' event on end of loop.