bound shims to correct scope, otherwise shimmed global methods would have
been called in window scope instead of created AnimationFrame object scope