docs: function mergeOptions (
  	  parent,
  	  child,
  	  vm
  	) {
  	  normalizeComponents(child);
  	  normalizeProps(child);
  	  normalizeDirectives(child);
  	  var extendsFrom = child.extends;
  	  if (extendsFrom) {
  	    parent = typeof extendsFrom === 'function'
  	      ? mergeOptions(parent, extendsFrom.options, vm)
  	      : mergeOptions(parent, extendsFrom, vm);
  	  }
  	  if (child.mixins) {
  	    for (var i = 0, l = child.mixins.length; i < l; i++) {
  	      var mixin = child.mixins[i];
  	      if (mixin.prototype instanceof Vue$3) {
  	        mixin = mixin.options;
  	      }
  	      parent = mergeOptions(parent, mixin, vm);
  	    }
  	  }
  	  var options = {};
  	  var key;
  	  for (key in parent) {
  	    mergeField(key);
  	  }
  	  for (key in child) {
  	    if (!hasOwn(parent, key)) {
  	      mergeField(key);
  	    }
  	  }
  	  function mergeField (key) {
  	    var strat = strats[key] || defaultStrat;
  	    options[key] = strat(parent[key], child[key], vm, key);
  	  }
  	  return options
  	}