code: function initSelect( elem, parsed, extra){
    var self = this;
    var wc = this.$watch(parsed, function(newValue){
      var children = elem.getElementsByTagName('option');
      for(var i =0, len = children.length ; i < len; i++){
        if(children[i].value == newValue){
          elem.selectedIndex = i;
          break;
        }
      }
    }, STABLE);
  
    function handler(){
      parsed.set(self, this.value);
      wc.last = this.value;
      self.$update();
    }
    // var isChanging = true 
    // var __change = function(){
    //   if(isChanging) return;
    //   isChanging = true;
    //   setTimeout(handler,0)
    // }
  
    dom.on( elem, "change", handler );
  
    
    if(parsed.get(self) === undefined && elem.value){
      parsed.set(self, elem.value);
    }
  
    return function destroy(){
      dom.off(elem, "change", handler);
      // @TODO remove __change function 
      // elem.__change = null;
    }
  }
docs: binding <select>