code: function throwUnexpected(token) {
          var s;
  
          if (token.type === Token.EOF) {
              throwError(token, Messages.UnexpectedEOS);
          }
  
          if (token.type === Token.NumericLiteral) {
              throwError(token, Messages.UnexpectedNumber);
          }
  
          if (token.type === Token.StringLiteral) {
              throwError(token, Messages.UnexpectedString);
          }
  
          if (token.type === Token.Identifier) {
              throwError(token, Messages.UnexpectedIdentifier);
          }
  
          if (token.type === Token.Keyword) {
              if (isFutureReservedWord(token.value)) {
                  throwError(token, Messages.UnexpectedReserved);
              } else if (strict && isStrictModeReservedWord(token.value)) {
                  throwError(token, Messages.StrictReservedWord);
              }
              throwError(token, Messages.UnexpectedToken, token.value);
          }
  
          // BooleanLiteral, NullLiteral, or Punctuator.
          throwError(token, Messages.UnexpectedToken, token.value);
      }
docs: Throw an exception because of the token.