using requestAnimationFrame with fallback to setTimeout. should fix upst...

...ream issue #21