code: function(name, observable, oneTime) {
        var property = this.propertyForAttribute(name);
        if (!property) {
          // TODO(sjmiles): this mixin method must use the special form
          // of `super` installed by `mixinMethod` in declaration/prototype.js
          return this.mixinSuper(arguments);
        } else {
          // use n-way Polymer binding
          var observer = this.bindProperty(property, observable, oneTime);
          // NOTE: reflecting binding information is typically required only for
          // tooling. It has a performance cost so it's opt-in in Node.bind.
          if (Platform.enableBindingsReflection && observer) {
            observer.path = observable.path_;
            this._recordBinding(property, observer);
          }
          if (this.reflect[property]) {
            this.reflectPropertyToAttribute(property);
          }
          return observer;
        }
      }
docs: Called by TemplateBinding/NodeBind to setup a binding to the given property. It's overridden here to support property bindings in addition to attribute bindings that are supported by default.