code: function model (node, dir) {
    if (!node.children) { return }
    var value = dir.value;
    var isMultiple = node.data.attrs && node.data.attrs.multiple;
    for (var i = 0, l = node.children.length; i < l; i++) {
      var option = node.children[i];
      if (option.tag === 'option') {
        if (isMultiple) {
          var selected =
            Array.isArray(value) &&
            (looseIndexOf(value, getValue(option)) > -1);
          if (selected) {
            setSelected(option);
          }
        } else {
          if (looseEqual(value, getValue(option))) {
            setSelected(option);
            return
          }
        }
      }
    }
  }
docs: this is only applied for <select v-model> because it is the only edge case that must be done at runtime instead of compile time.