src/syntax/Scanner.js
function scanJsxToken() {
  skipComments();
  let beginIndex = index;
  switch (currentCharCode) {
    case 34:  // "
    case 39:  // '
      return scanJsxStringLiteral(beginIndex, currentCharCode);
    case 62:  // >
      next();
      return createToken(CLOSE_ANGLE, beginIndex);
    // case 123:  // {
    // case 125:  // }
  }

  if (!isIdentifierStart(currentCharCode)) {
    return scanToken();
  }
  next();
  while (isIdentifierPart(currentCharCode) || currentCharCode === 45) {  // '-'
    next();
  }
  let value = input.slice(beginIndex, index);
  return new JsxIdentifierToken(getTokenRange(beginIndex), value);
}
function scanJsxToken() {
  skipComments();
  let beginIndex = index;
  switch (currentCharCode) {
    case 34:  // "
    case 39:  // '
      return scanJsxStringLiteral(beginIndex, currentCharCode);
    case 62:  // >
      next();
      return createToken(CLOSE_ANGLE, beginIndex);
    // case 123:  // {
    // case 125:  // }
  }

  if (!isIdentifierStart(currentCharCode)) {
    return scanToken();
  }
  next();
  while (isIdentifierPart(currentCharCode) || currentCharCode === 45) {  // '-'
    next();
  }
  let value = input.slice(beginIndex, index);
  return new JsxIdentifierToken(getTokenRange(beginIndex), value);
}
function scanJsxToken ( ) { skipComments ( ) ; let beginIndex = index ; switch ( currentCharCode ) { case 34 : // " case 39 : // ' return scanJsxStringLiteral ( beginIndex , currentCharCode ) ; case 62 : // > next ( ) ; return createToken ( CLOSE_ANGLE , beginIndex ) ; // case 123:  // { // case 125:  // } } if ( ! isIdentifierStart ( currentCharCode ) ) { return scanToken ( ) ; } next ( ) ; while ( isIdentifierPart ( currentCharCode ) || currentCharCode === 45 ) { // '-' next ( ) ; } let value = input . slice ( beginIndex , index ) ; return new JsxIdentifierToken ( getTokenRange ( beginIndex ) , value ) ; }
Used to scan for a JSXIdentifier.
Used to scan for a JSXIdentifier .