anchor.diff:    /**
      * TODO:
      */
  -  Stream<JobManagerEvent> get onChange => _stream;
  +  Stream<JobManagerEvent> get onChange => _controller.stream;
   
     void _scheduleNextJob() {
       if (!_waitingJobs.isEmpty) {
  
positive.code:  * This class is available as a singleton.
   */
  class JobManager {
    StreamController<JobManagerEvent> _streamController =
        new StreamController<JobManagerEvent>();
    Stream<JobManagerEvent> _stream;
  
    Job _runningJob;
    List<Job> _waitingJobs = new List<Job>();
  
    JobManager() {
      _stream = _streamController.stream.asBroadcastStream();
    }
  
    /**
     * Will schedule a [job] after all other queued jobs.  If no [Job] is
     * currently waiting, it run [job].
  
negative.code:   }
  
    _jobStarted(Job job) {
      _controller.add(new JobManagerEvent(this, job, started: true));
    }
  
    _monitorWorked(_ProgressMonitorImpl monitor, Job job) {
      _controller.add(new JobManagerEvent(this, job,
          indeterminate: monitor.indeterminate, progress: monitor.progress));
    }
  
    _monitorDone(_ProgressMonitorImpl monitor, Job job) {
      _controller.add(new JobManagerEvent(this, job,
          indeterminate: monitor.indeterminate, progress: monitor.progress));
    }
  
    _jobFinished(Job job) {
      _controller.add(new JobManagerEvent(this, job, finished: true));
    }
  }
  
  