anchor.diff:    setPrevValue() {
       setValueByInputValue(getPrevValue(this.input_value));
     }
  -  focusNextOption() {
  -    this.focused_option = getNextValue(this.focused_option);
  -    this.behave('focusCurrentOption');
  -  }
  -  focusPrevOption() {
  -    this.focused_option = getPrevValue(this.focused_option);
  -    this.behave('focusCurrentOption');
  -  }
  -  
     setValueByInputValue(ip) {
       this.input_value    = ip;
       this.focused_option = ip;
       this.display_value  = this.options[ip];
     }
  -
  +  /**************************************************************************/
  +
  +
  +  /**************************************************************************
  +   * The next two methods are used when the selectbox us open and we navigate
  +   * the items in it without actually setting them. It basically just uses the
  +   * same mechanism with #getNextValue/#getPrevValue, but instead of assigning
  +   * those values it just tells select component to display them as focused.
  +   *
  +   * Then, when user is ready, he presses ENTER or SPACE and the focused value
  +   * is actually assigned to input_value.
  +   **************************************************************************
  +   */
  +  focusNextOption() {
  +    this.focused_option = getNextValue(this.focused_option);
  +    this.behave('focusCurrentOption');
  +  }
  +  focusPrevOption() {
  +    this.focused_option = getPrevValue(this.focused_option);
  +    this.behave('focusCurrentOption');
  +  }
  +  /**************************************************************************/
  +
  +  /** When user focuses on the select component (for example, by pressing the TAB key)
  +    * it should then be possible to press letter keys to navigate the options list without
  +    * opening the selectbox. That's native browser behavior for <select> element and that's
  +    * what's being emulated here.
  +    * 
  +    * Note the use of keypress_stack. If user presses "a" and "b" within 1 second of each other
  +    * then the stack is going to contain "ab" and we'll be looking for the first option
  +    * which has display_value that starts with "ab", then setting it as current option
  +    * (by writing input_value and display_value properties with #setValueByInputValue()).
  +   */
     setValueFromKeypressStack() {
       var found = false;
       options.forEach((k,v) {
  
positive.code:       key = options.firstKey();
      return key;
    }
    getPrevValue(String current) {
      if(current == null)
        return options.lastKey();
  
negative.code:     */
    String keypress_stack = "";
    int    keypress_stack_last_updated = new DateTime.now().millisecondsSinceEpoch;
    static const keypress_stack_timeout = 1;
  
    /** The value that's picked and about to be set, but awaits user input - specifically a key press */
    String focused_option;
  
    /** Indicates whether the selectbox is opened. Obviously, this class has nothing to do with visual
      * representation, but this flag is used when deciding what to do with a particular keyboard
      * event, for example - like, we don't want to call `behave('open')` if the selectbox is already opened.
     */
    bool opened = false;
  
    Map attribute_callbacks = {
      'default'  : (attr_name, self) => self.attribute_callbacks_collection['write_property_to_dom'](attr_name, self),
  