     Bacon.later(delay(context)).filter(false).concat(Bacon.once().flatMap(delayedRetry))
 
   withDescription(Bacon, "retry", options, source().flatMapError (e) ->
-    if isRetryable(e) && retries > 0
+    if isRetryable(e) and retries > 0
       retry(error: e, retriesDone: maxRetries - retries)
     else
       Bacon.once(new Error(e)))

    f = true if !f?
    convertArgsToFunction this, f, args, (f) ->
      withDescription(this, "endOnError", @withHandler (event) ->
        if event.isError() && f(event.error)
          @push event
          @push end()
        else

        # should bounce init value
        dispatchingId = UpdateBarrier.currentEventId()
        valId = currentValueRootId
        if !ended and valId and dispatchingId and dispatchingId != valId
          # when subscribing while already dispatching a value and this property hasn't been updated yet
          # we cannot bounce before this property is up to date.
          #console.log "bouncing with possibly stale value", event.value(), "root at", valId, "vs", dispatchingId
