docs: function normalizeChildren (
  	  children,
  	  ns,
  	  nestedIndex
  	) {
  	  if (isPrimitive(children)) {
  	    return [createTextVNode(children)]
  	  }
  	  if (Array.isArray(children)) {
  	    var res = [];
  	    for (var i = 0, l = children.length; i < l; i++) {
  	      var c = children[i];
  	      var last = res[res.length - 1];
  	      //  nested
  	      if (Array.isArray(c)) {
  	        res.push.apply(res, normalizeChildren(c, ns, ((nestedIndex || '') + "_" + i)));
  	      } else if (isPrimitive(c)) {
  	        if (last && last.text) {
  	          last.text += String(c);
  	        } else if (c !== '') {
  	          // convert primitive to vnode
  	          res.push(createTextVNode(c));
  	        }
  	      } else if (c instanceof VNode) {
  	        if (c.text && last && last.text) {
  	          last.text += c.text;
  	        } else {
  	          // inherit parent namespace
  	          if (ns) {
  	            applyNS(c, ns);
  	          }
  	          // default key for nested array children (likely generated by v-for)
  	          if (c.tag && c.key == null && nestedIndex != null) {
  	            c.key = "__vlist" + nestedIndex + "_" + i + "__";
  	          }
  	          res.push(c);
  	        }
  	      }
  	    }
  	    return res
  	  }
  	}