       else
         assertFunction sink
         subscription = { sink: sink }
-        subscriptions = subscriptions.concat(subscription)
+        subscriptions.push(subscription)
         if subscriptions.length == 1
           unsubSrc = subscribe @handleEvent
           unsubscribeFromSource = ->

            unsubscribeFromSource()
            Bacon.noMore
        else
          queue = (queue or []).concat([event])
          Bacon.more
    @push = (event) =>
      UpdateBarrier.inTransaction event, this, pushIt, [event]

  constructor: (subscribe, handleEvent) ->
    subscribe ?= -> nop
    subscriptions = []
    queue = []
    pushing = false
    ended = false
    @hasSubscribers = -> subscriptions.length > 0
