         @_running = true
         @
     stop: ->
-        if not @_running then return
+        if not @_running then return @
         Date.Timer._onCheck.unbind(@_checker)
         @_running = false
         @

    @_endOfTime: new Date("9999-12-30T00:00:00Z")
    @_precision: null
    @enable: (precision = 30) ->
        Date.Timer._precision = precision
        @_internalTimer = setInterval(=>
            Date.Timer._onCheck.fire()
        , precision)
        undefined
    @disable: ->
        clearInterval(@_internalTimer)
        Date.Timer._precision = null
        undefined

        @_running = false
        @onArrive = eventField()
    run: ->
        if @_running then return @
        @_checker = =>
            nowTime = new Date()
            if (if @allowsEqual then nowTime >= @targetTime else nowTime > @targetTime)
