     timer.stop() if timer
     return
 
-  # Used when window goes out of focus, prevents timers from firing
-  suspend: ->
-    for timer in @timers
-      timer.suspend() if timer
-
-  # Used when window goes back in focus, resumes timers
-  resume: ->
-    for timer in @timers
-      timer.resume() if timer
-
   # Returns the timestamp of the next timer event
   next: ->
     next = Infinity

  # handle  - Node.js interval handle
  constructor: (@queue, @fn, @interval, @remove)->
    @interval =  Math.max(@interval || 0)
    @resume()

  # Resume (also start) this timer
  resume: ->
    return if @handle # already resumed
    fire = =>
      @queue.enqueue =>
        @queue.browser.emit("interval", @fn, @interval)
        @queue.window._evaluate(@fn)
      @next = Date.now() + @interval
    @handle = global.setInterval(fire, @interval)
    @next = Date.now() + @interval

  # Make sure timer doesn't fire until we're ready for it again
  suspend: ->
    global.clearInterval(@handle)
    @handle = null

  # clearTimeout
  stop: ->

  # handle  - Node.js timeout handle
  constructor: (@queue, @fn, @delay, @remove)->
    @delay = Math.max(@delay || 0, 0)
    # When timeout fires, queue event for processing during a wait.
    fire = =>
      @queue.enqueue =>
        @queue.browser.emit("timeout", @fn, @delay)
