code: function removeListeners(viewData) {
      var cleanup = viewData[TVIEW].cleanup;
      if (cleanup != null) {
          for (var i = 0; i < cleanup.length - 1; i += 2) {
              if (typeof cleanup[i] === 'string') {
                  // This is a listener with the native renderer
                  var native = readElementValue(viewData[cleanup[i + 1]]).native;
                  var listener = viewData[CLEANUP][cleanup[i + 2]];
                  native.removeEventListener(cleanup[i], listener, cleanup[i + 3]);
                  i += 2;
              }
              else if (typeof cleanup[i] === 'number') {
                  // This is a listener with renderer2 (cleanup fn can be found by index)
                  var cleanupFn = viewData[CLEANUP][cleanup[i]];
                  cleanupFn();
              }
              else {
                  // This is a cleanup function that is grouped with the index of its context
                  var context = viewData[CLEANUP][cleanup[i + 1]];
                  cleanup[i].call(context);
              }
          }
          viewData[CLEANUP] = null;
      }
  }
docs: Removes listeners and unsubscribes from output subscriptions