docs: function send() {
      var args = slice.call(arguments), events = this.events, handled;
  
      if (!this.__isCurrent__) {
        throw new Error('State#send: attempted to send an event to a state that is not current: ' + this);
      }
  
      if (this === this.root()) {
        trace.call(this, 'State: [EVENT]  : ' + args[0]);
      }
  
      handled = this.concurrent ? sendConcurrent.apply(this, arguments) :
        sendClustered.apply(this, arguments);
  
      if (!handled && typeof events[args[0]] === 'function') {
        this.__isSending__ = true;
        handled = !!events[args[0]].apply(this, args.slice(1));
        this.__isSending__ = false;
      }
  
      if (!this.superstate) { transition.call(this); }
  
      return handled;
    }