bound = function () {

		// Join the already applied arguments to the now called ones (after converting to an array again).
		var args = ( boundArgs || [] ).concat(Array.prototype.slice.call(arguments, 0));

		// If not being called as a constructor
		if (!(this instanceof bound)){
			// return the result of the function called bound to target and partially applied.
			return fn.apply(context, args);
		}
		// If being called as a constructor, apply the function bound to self.
		fn.apply(this, args);
	}
This is based on Paul Irish's shim, but looks quite odd in comparison. Why?
Because 
a) it shouldn't affect the global requestAnimationFrame function
b) it shouldn't pass on the time that has passed

@param   {Function} fn

@returns {void}