code: function suspendListeners(obj, eventNames, target, method, callback) {
        if (!method && 'function' === typeof target) {
          method = target;
          target = null;
        }
  
        var suspendedActions = [];
        var actionsList = [];
        var eventName, actions, i, l;
  
        for (i=0, l=eventNames.length; i<l; i++) {
          eventName = eventNames[i];
          actions = actionsFor(obj, eventName);
          var actionIndex = indexOf(actions, target, method);
  
          if (actionIndex !== -1) {
            actions[actionIndex+2] |= SUSPENDED;
            suspendedActions.push(actionIndex);
            actionsList.push(actions);
          }
        }
  
        function tryable() { return callback.call(target); }
  
        function finalizer() {
          for (var i = 0, l = suspendedActions.length; i < l; i++) {
            var actionIndex = suspendedActions[i];
            actionsList[i][actionIndex+2] &= ~SUSPENDED;
          }
        }
  
        return tryFinally(tryable, finalizer);
      }
docs: Suspends multiple listeners during a callback.
  
  @method suspendListeners
  @for Ember
  
  @private
  @param obj
  @param {Array} eventName Array of event names
  @param {Object|Function} targetOrMethod A target object or a function
  @param {Function|String} method A function or the name of a function to be called on `target`
  @param {Function} callback