lib/HTMLParser.js
function after_attribute_name_state(c) {
    switch(c) {
    case 0x0009: // CHARACTER TABULATION (tab)
    case 0x000A: // LINE FEED (LF)
    case 0x000C: // FORM FEED (FF)
    case 0x0020: // SPACE
      /* Ignore the character. */
      break;
    case 0x002F: // SOLIDUS
      // Keep in sync with before_attribute_name_state.
      addAttribute(attrnamebuf);
      tokenizer = self_closing_start_tag_state;
      break;
    case 0x003D: // EQUALS SIGN
      tokenizer = before_attribute_value_state;
      break;
    case 0x003E: // GREATER-THAN SIGN
      // Keep in sync with before_attribute_name_state.
      tokenizer = data_state;
      addAttribute(attrnamebuf);
      emitTag();
      break;
    case -1: // EOF
      // Keep in sync with before_attribute_name_state.
      addAttribute(attrnamebuf);
      emitEOF();
      break;
    default:
      addAttribute(attrnamebuf);
      beginAttrName();
      reconsume(c, attribute_name_state);
      break;
    }
  }
function after_attribute_name_state(c) {
    switch(c) {
    case 0x0009: // CHARACTER TABULATION (tab)
    case 0x000A: // LINE FEED (LF)
    case 0x000C: // FORM FEED (FF)
    case 0x0020: // SPACE
      /* Ignore the character. */
      break;
    case 0x002F: // SOLIDUS
      // Keep in sync with before_attribute_name_state.
      addAttribute(attrnamebuf);
      tokenizer = self_closing_start_tag_state;
      break;
    case 0x003D: // EQUALS SIGN
      tokenizer = before_attribute_value_state;
      break;
    case 0x003E: // GREATER-THAN SIGN
      // Keep in sync with before_attribute_name_state.
      tokenizer = data_state;
      addAttribute(attrnamebuf);
      emitTag();
      break;
    case -1: // EOF
      // Keep in sync with before_attribute_name_state.
      addAttribute(attrnamebuf);
      emitEOF();
      break;
    default:
      addAttribute(attrnamebuf);
      beginAttrName();
      reconsume(c, attribute_name_state);
      break;
    }
  }
function after_attribute_name_state ( c ) { switch ( c ) { case 0x0009 : // CHARACTER TABULATION (tab) case 0x000A : // LINE FEED (LF) case 0x000C : // FORM FEED (FF) case 0x0020 : // SPACE /* Ignore the character. */ break ; case 0x002F : // SOLIDUS // Keep in sync with before_attribute_name_state. addAttribute ( attrnamebuf ) ; tokenizer = self_closing_start_tag_state ; break ; case 0x003D : // EQUALS SIGN tokenizer = before_attribute_value_state ; break ; case 0x003E : // GREATER-THAN SIGN // Keep in sync with before_attribute_name_state. tokenizer = data_state ; addAttribute ( attrnamebuf ) ; emitTag ( ) ; break ; case - 1 : // EOF // Keep in sync with before_attribute_name_state. addAttribute ( attrnamebuf ) ; emitEOF ( ) ; break ; default : addAttribute ( attrnamebuf ) ; beginAttrName ( ) ; reconsume ( c , attribute_name_state ) ; break ; } }
There is an active attribute in attrnamebuf, but not yet in attrvaluebuf.
There is an active attribute in attrnamebuf but not yet in attrvaluebuf .