endTagOther method

void endTagOther(
  1. EndTagToken token
)

Implementation

void endTagOther(EndTagToken token) {
  for (var node in tree.openElements.reversed) {
    if (node.localName == token.name) {
      tree.generateImpliedEndTags(token.name);
      if (tree.openElements.last.localName != token.name) {
        parser.parseError(
            token.span, 'unexpected-end-tag', {'name': token.name});
      }
      while (tree.openElements.removeLast() != node) {
        // noop
      }
      node.endSourceSpan = token.span;
      break;
    } else {
      if (specialElements.contains(getElementNameTuple(node))) {
        parser.parseError(
            token.span, 'unexpected-end-tag', {'name': token.name});
        break;
      }
    }
  }
}