message: vdom: skip nodes that have no changes
diff: @@ -60,6 +60,7 @@ function same(el: Element, node: VNode) {
  }
  function update(element: Element, node: VNode, isSvg: boolean) {
  + if (node['_op'] === 3) return;
  // console.assert(!!element);
  isSvg = isSvg || node.tag === "svg";
  if (!same(element, node)) {
  @@ -76,6 +77,7 @@ function updateChildren(element, children, isSvg: boolean) {
  const len = Math.min(old_len, new_len);
  for (let i = 0; i < len; i++) {
  const child = children[i];
  + if (child['_op'] === 3) continue;
  const el = element.childNodes[i];
  if (typeof child === 'string') {
  if (el.textContent !== child) {
  @@ -90,6 +92,7 @@ function updateChildren(element, children, isSvg: boolean) {
  } else {
  const key = child.props && child.props['key'];
  if (key) {
  + // console.log(el.key, key);
  if (el.key === key) {
  update(element.childNodes[i], child, isSvg);
  } else {
  @@ -99,7 +102,8 @@ function updateChildren(element, children, isSvg: boolean) {
  element.appendChild(el);
  update(element.childNodes[i], child, isSvg);
  } else {
  - element.insertBefore(create(child, isSvg), el);
  + // element.insertBefore(create(child, isSvg), el);
  + update(element.childNodes[i], child, isSvg);
  }
  }
  } else {
  