call(method, ...args) {
    let paramsStart;
    let reverse;
    if (typeof method !== 'string') {
      reverse = method;
      method = arguments[1];
      paramsStart = 2;
    } else {
      paramsStart = 1;
    }
    const params = Array.prototype.slice.call(arguments, paramsStart);
    for (
      let i = reverse ? this.plugins.length - 1 : 0,
        inc = reverse ? -1 : 1,
        end = reverse ? -1 : this.plugins.length,
        result;
      i !== end;
      i += inc
    ) {
      const plugin = this.plugins[i];
      if (typeof plugin[method] === 'function') {
        if ((result = plugin[method].apply(plugin, params)) !== undefined) {
          return result;
        }
      }
    }
  }
/**
   * Calls the registermed plugins on the specified method, with the provided args. This
   * method immediately returns as soon as a plugin returns a value. The
   * returned value can be used, for instance, to interrupt the current action.
   * @param {String|Boolean} method boolean to indicate the plugin call order of the name of the plugin method to call.
   * @param {...Object} args list to apply to the method call.
   * @returns {Object} the value false if any of the plugins return false, otherwise returns true.
   */
Calls the registermed plugins on the specified method, with the provided args. This
method immediately returns as soon as a plugin returns a value. The
returned value can be used, for instance, to interrupt the current action.
@param {String|Boolean} method boolean to indicate the plugin call order of the name of the plugin method to call.
@param {...Object} args list to apply to the method call.
@returns {Object} the value false if any of the plugins return false, otherwise returns true.
Calls the registermed plugins on the specified method with the provided args . This method immediately returns as soon as a plugin returns a value . The returned value can be used for instance to interrupt the current action . @param { String|Boolean } method boolean to indicate the plugin call order of the name of the plugin method to call . @param { ... Object } args list to apply to the method call . @returns { Object } the value false if any of the plugins return false otherwise returns true .
call(method, ...args) {
    let paramsStart;
    let reverse;
    if (typeof method !== 'string') {
      reverse = method;
      method = arguments[1];
      paramsStart = 2;
    } else {
      paramsStart = 1;
    }
    const params = Array.prototype.slice.call(arguments, paramsStart);
    for (
      let i = reverse ? this.plugins.length - 1 : 0,
        inc = reverse ? -1 : 1,
        end = reverse ? -1 : this.plugins.length,
        result;
      i !== end;
      i += inc
    ) {
      const plugin = this.plugins[i];
      if (typeof plugin[method] === 'function') {
        if ((result = plugin[method].apply(plugin, params)) !== undefined) {
          return result;
        }
      }
    }
  }
call ( method , ... args ) { let paramsStart ; let reverse ; if ( typeof method !== 'string' ) { reverse = method ; method = arguments [ 1 ] ; paramsStart = 2 ; } else { paramsStart = 1 ; } const params = Array . prototype . slice . call ( arguments , paramsStart ) ; for ( let i = reverse ? this . plugins . length - 1 : 0 , inc = reverse ? - 1 : 1 , end = reverse ? - 1 : this . plugins . length , result ; i !== end ; i += inc ) { const plugin = this . plugins [ i ] ; if ( typeof plugin [ method ] === 'function' ) { if ( ( result = plugin [ method ] . apply ( plugin , params ) ) !== undefined ) { return result ; } } } }
Calls the registermed plugins on the specified method, with the provided args.
Calls the registermed plugins on the specified method with the provided args .