code: function(item, options) {
          options = options || {};
          var reason = options.reason || 'unspecified';
  
          if (options.delay) {
              callSuper(this, 'highlight', item);
  
              clearTimeout(this._openSubmenuTimeout);
              this._openSubmenuTimeout = setTimeout(this._doHighlight.bind(this, item, reason), 300);
          } else if (this.submenu) {
              if (this.highlightedResult && this.highlightedResult.id === item.id) {
                  this._doHighlight(item, reason);
              } else {
                  clearTimeout(this._closeSubmenuTimeout);
                  this._closeSubmenuTimeout = setTimeout(
                      this._closeSubmenuAndHighlight.bind(this, item, reason),
                      100
                  );
              }
          } else {
              if (this.parentMenu && this.parentMenu._closeSubmenuTimeout) {
                  clearTimeout(this.parentMenu._closeSubmenuTimeout);
                  this.parentMenu._closeSubmenuTimeout = 0;
              }
  
              if (options.openSubmenu === false) {
                  callSuper(this, 'highlight', item);
              } else {
                  this._doHighlight(item, reason);
              }
          }
      }
docs: @inherit
  
  @param options Optional options object. May contain the following properties:
  delay - If true, indicates any submenu should not be opened until after some
  delay.
  openSubmenu - If false, no submenu will be automatically opened for the
  highlighted item.
  reason - The reason why the result item is being highlighted. See
  Dropdown#highlight().