why do we need this? It doesn't look right to me.

we recreate $interval for each spec, after we get rid of $browser, we should just ensure that mock Window is used by $interval and recreated for each spec. With those changes, there is no cleanup needed as the state will be reset before each spec instead of after.