             @static[propertyName] = attribute.value
           else
             @binders[propertyName] = attribute.value
-
+      
       unless @bound
-        for key, declaration of @binders
+        Object.keys(@binders).forEach (key) =>
           binder = 
             routine: (el, value) => scope?[key] = value
             getValue: () => scope?[key]
 
-          @binders[key] = @view.addBinding null, binder, declaration
+          @binders[key] = @view.addBinding null, binder, @binders[key]
 
         @bound = true
 

      result[key] = value

    for key, binder of @binders
      result[key] = binder.formattedValue binder.observer.value()

    result



      for key, binder of @binders
        @upstreamObservers[key] = @observe scope, key, ((key, binder) => =>
          unless typeof binder.observer?.value() == 'function'
            binder.publish()
        ).call(@, key, binder)

  # Intercept `Rivets.Binding::unbind` to be called on `@componentView`.
