hunk.code_window:     expect(subscriptions).toBe(1);
       done();
     });
     it('should allow you to reconnect by subscribing again', function (done) {
       var expected = [1, 2, 3, 4];
       var i = 0;
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit:   it('To match RxJS 4 behavior, it should NOT allow you to reconnect by subscribing again', function (done) {
  
hunk.file_path: spec/operators/publish-spec.js
hunk.type: replace
file: var RxOld = require('rx');
  var RxNew = require('../../../../index');
  
  module.exports = function (suite) {
    var oldCatchWithCurrentThreadScheduler = RxOld.Observable.throw(new Error('error'), RxOld.Scheduler.currentThread)
      .catch(function () { return RxOld.Observable.of(25, RxOld.Scheduler.currentThread); });
    var newCatchWithCurrentThreadScheduler = RxNew.Observable.throw(new Error('error'), RxNew.Scheduler.immediate)
      .catch(function () { return RxNew.Observable.of(25, RxNew.Scheduler.immediate); });
  
    function _next(x) { }
    function _error(e) { }
    function _complete() { }
    return suite
      .add('old catch with current thread scheduler', function () {
        oldCatchWithCurrentThreadScheduler.subscribe(_next, _error, _complete);
      })
      .add('new catch with current thread scheduler', function () {
        newCatchWithCurrentThreadScheduler.subscribe(_next, _error, _complete);
      });
  };