// jsdom doesn't have support for requestAnimationFrame so we just make it work.
global.requestAnimationFrame = function (func) {
  var args = Array.prototype.slice.call(arguments).slice(1);
  return func.apply(this, args);
};

@@ -59,169 +59,988 @@
  we 
-just make it work.%0Aglobal.requestAnimationFrame = function (func) %7B%0A  var args = Array.prototype.slice.call(arguments).slice(1);%0A  return func.apply(this, args);%0A%7D
+polyfill it.%0A// https://gist.github.com/paulirish/1579671%0A(function() %7B%0A  var lastTime = 0;%0A  var vendors = %5B'ms', 'moz', 'webkit', 'o'%5D;%0A%0A  for (var x = 0; x %3C vendors.length && !global.requestAnimationFrame; ++x) %7B%0A    global.requestAnimationFrame = global%5Bvendors%5Bx%5D + 'RequestAnimationFrame'%5D;%0A    global.cancelAnimationFrame = global%5Bvendors%5Bx%5D + 'CancelAnimationFrame'%5D%0A      %7C%7C global%5Bvendors%5Bx%5D + 'CancelRequestAnimationFrame'%5D;%0A  %7D%0A%0A  if (!global.requestAnimationFrame)%0A    global.requestAnimationFrame = function (callback, element) %7B%0A      var currTime = new Date().getTime();%0A      var timeToCall = Math.max(0, 16 - (currTime - lastTime));%0A      var id = global.setTimeout(%0A        function () %7B%0A          callback(currTime + timeToCall);%0A        %7D,%0A        timeToCall%0A      );%0A%0A      lastTime = currTime + timeToCall;%0A      return id;%0A    %7D;%0A%0A  if (!global.cancelAnimationFrame) %7B%0A    global.cancelAnimationFrame = function(id) %7B%0A      clearTimeout(id);%0A    %7D;%0A  %7D%0A%7D())
 ;%0A

Implement a better requestAnimationFrame polyfill