Use `Function.prototype.apply` to call `setTimeout` on older IE

In older IE, the host object like a `setTimeout` has no methods that
defined in `Function.prototype`.
for setTimeout with negative wait for older IE