code: function Observable (subject, parent, prefix) {
    if ('object' != typeof subject)
      throw new TypeError('object expected. got: ' + typeof subject);
  
    if (!(this instanceof Observable))
      return new Observable(subject, parent, prefix);
  
    debug('new', subject, !!parent, prefix);
  
    Emitter.call(this);
    this._bind(subject, parent, prefix);
  }
docs: Observable constructor.
  
  The passed `subject` will be observed for changes to
  all properties, included nested objects and arrays.
  
  An `EventEmitter` will be returned. This emitter will
  emit the following events:
  
  - add
  - update
  - delete
  - reconfigure
  
  // - setPrototype?
  
  @param {Object} subject
  @param {Observable} [parent] (internal use)
  @param {String} [prefix] (internal use)
  @return {EventEmitter}