The implementation of requestAnimFrame is quite barebones.
Not all events need to be triggered at 60fps and handling these updates with events has a performance overhead.
Instead use something more lightweight like Tick.js
https://github.com/makesites/tick