code: function processImpliedEndTag(node) {
              var needFix = 0, endParentTagName;    // <ul><li>1<ul><li>2</ul></ul>
              // <ul><li>1<ul><li>2</ul></ul>
              if (endParentTagName = impliedEndTag[node.tagName]) {
                  var from = stack.length - 1, parent = stack[from];    // <ol><li><ol><li>
                                                                        // parent ol break li check
                  // <ol><li><ol><li>
                  // parent ol break li check
                  while (parent && !(parent.tagName in endParentTagName)) {
                      // <ul><li>1<div><li>2</div></ul>
                      if (parent.tagName === node.tagName) {
                          needFix = 1;
                          break;
                      }
                      from--;
                      parent = stack[from];
                  }
                  if (needFix) {
                      closeStackOpenTag(stack.length - 1, from - 1);
                  }
              }
              return needFix;
          }
docs: fix <ol><li>1<li>2</ol> fix <ol><li>1<li>2</ol>