   oldTailBufferPosition: null
   oldTailScreenPosition: null
   wasValid: true
+  hasChangeObservers: false
 
   ###
   Section: Construction and Destruction

  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidChange: (callback) ->
    @emitter.on 'did-change', callback

  # Essential: Invoke the given callback when the marker is destroyed.

    @emitter = new Emitter
    @disposables = new CompositeDisposable
    @id = @bufferMarker.id

    @disposables.add @bufferMarker.onDidDestroy => @destroyed()

  # Essential: Destroys the marker, causing it to emit the 'destroyed' event. Once
  # destroyed, a marker cannot be restored by undo/redo operations.
