in rhino/src/main/java/org/mozilla/javascript/TokenStream.java [94:353]
private static int stringToKeywordForJS(String name) {
// The following assumes that Token.EOF == 0
final int Id_break = Token.BREAK,
Id_case = Token.CASE,
Id_continue = Token.CONTINUE,
Id_default = Token.DEFAULT,
Id_delete = Token.DELPROP,
Id_do = Token.DO,
Id_else = Token.ELSE,
Id_export = Token.RESERVED,
Id_false = Token.FALSE,
Id_for = Token.FOR,
Id_function = Token.FUNCTION,
Id_if = Token.IF,
Id_in = Token.IN,
Id_let = Token.LET, // reserved ES5 strict
Id_new = Token.NEW,
Id_null = Token.NULL,
Id_return = Token.RETURN,
Id_switch = Token.SWITCH,
Id_this = Token.THIS,
Id_true = Token.TRUE,
Id_typeof = Token.TYPEOF,
Id_var = Token.VAR,
Id_void = Token.VOID,
Id_while = Token.WHILE,
Id_with = Token.WITH,
Id_yield = Token.YIELD, // reserved ES5 strict
// the following are #ifdef RESERVE_JAVA_KEYWORDS in jsscan.c
Id_abstract = Token.RESERVED, // ES3 only
Id_boolean = Token.RESERVED, // ES3 only
Id_byte = Token.RESERVED, // ES3 only
Id_catch = Token.CATCH,
Id_char = Token.RESERVED, // ES3 only
Id_class = Token.RESERVED,
Id_const = Token.CONST, // reserved
Id_debugger = Token.DEBUGGER,
Id_double = Token.RESERVED, // ES3 only
Id_enum = Token.RESERVED,
Id_extends = Token.RESERVED,
Id_final = Token.RESERVED, // ES3 only
Id_finally = Token.FINALLY,
Id_float = Token.RESERVED, // ES3 only
Id_goto = Token.RESERVED, // ES3 only
Id_implements = Token.RESERVED, // ES3, ES5 strict
Id_import = Token.RESERVED,
Id_instanceof = Token.INSTANCEOF,
Id_int = Token.RESERVED, // ES3
Id_interface = Token.RESERVED, // ES3, ES5 strict
Id_long = Token.RESERVED, // ES3 only
Id_native = Token.RESERVED, // ES3 only
Id_package = Token.RESERVED, // ES3, ES5 strict
Id_private = Token.RESERVED, // ES3, ES5 strict
Id_protected = Token.RESERVED, // ES3, ES5 strict
Id_public = Token.RESERVED, // ES3, ES5 strict
Id_short = Token.RESERVED, // ES3 only
Id_static = Token.RESERVED, // ES3, ES5 strict
Id_super = Token.RESERVED,
Id_synchronized = Token.RESERVED, // ES3 only
Id_throw = Token.THROW,
Id_throws = Token.RESERVED, // ES3 only
Id_transient = Token.RESERVED, // ES3 only
Id_try = Token.TRY,
Id_volatile = Token.RESERVED; // ES3 only
int id;
switch (name) {
case "break":
id = Id_break;
break;
case "case":
id = Id_case;
break;
case "continue":
id = Id_continue;
break;
case "default":
id = Id_default;
break;
case "delete":
id = Id_delete;
break;
case "do":
id = Id_do;
break;
case "else":
id = Id_else;
break;
case "export":
id = Id_export;
break;
case "false":
id = Id_false;
break;
case "for":
id = Id_for;
break;
case "function":
id = Id_function;
break;
case "if":
id = Id_if;
break;
case "in":
id = Id_in;
break;
case "let":
id = Id_let;
break;
case "new":
id = Id_new;
break;
case "null":
id = Id_null;
break;
case "return":
id = Id_return;
break;
case "switch":
id = Id_switch;
break;
case "this":
id = Id_this;
break;
case "true":
id = Id_true;
break;
case "typeof":
id = Id_typeof;
break;
case "var":
id = Id_var;
break;
case "void":
id = Id_void;
break;
case "while":
id = Id_while;
break;
case "with":
id = Id_with;
break;
case "yield":
id = Id_yield;
break;
case "abstract":
id = Id_abstract;
break;
case "boolean":
id = Id_boolean;
break;
case "byte":
id = Id_byte;
break;
case "catch":
id = Id_catch;
break;
case "char":
id = Id_char;
break;
case "class":
id = Id_class;
break;
case "const":
id = Id_const;
break;
case "debugger":
id = Id_debugger;
break;
case "double":
id = Id_double;
break;
case "enum":
id = Id_enum;
break;
case "extends":
id = Id_extends;
break;
case "final":
id = Id_final;
break;
case "finally":
id = Id_finally;
break;
case "float":
id = Id_float;
break;
case "goto":
id = Id_goto;
break;
case "implements":
id = Id_implements;
break;
case "import":
id = Id_import;
break;
case "instanceof":
id = Id_instanceof;
break;
case "int":
id = Id_int;
break;
case "interface":
id = Id_interface;
break;
case "long":
id = Id_long;
break;
case "native":
id = Id_native;
break;
case "package":
id = Id_package;
break;
case "private":
id = Id_private;
break;
case "protected":
id = Id_protected;
break;
case "public":
id = Id_public;
break;
case "short":
id = Id_short;
break;
case "static":
id = Id_static;
break;
case "super":
id = Id_super;
break;
case "synchronized":
id = Id_synchronized;
break;
case "throw":
id = Id_throw;
break;
case "throws":
id = Id_throws;
break;
case "transient":
id = Id_transient;
break;
case "try":
id = Id_try;
break;
case "volatile":
id = Id_volatile;
break;
default:
id = 0;
break;
}
if (id == 0) {
return Token.EOF;
}
return id & 0xff;
}