code: function() {
        var n$ = this._observeNames;
        if (n$ && n$.length) {
          var o = this._propertyObserver = new CompoundObserver(true);
          this.registerObserver(o);
          // TODO(sorvell): may not be kosher to access the value here (this[n]);
          // previously we looked at the descriptor on the prototype
          // this doesn't work for inheritance and not for accessors without
          // a value property
          for (var i=0, l=n$.length, n; (i<l) && (n=n$[i]); i++) {
            o.addPath(this, n);
            this.observeArrayValue(n, this[n], null);
          }
        }
      }
docs: creates a CompoundObserver to observe property changes NOTE, this is only done there are any properties in the `observe` object