(function(){var break;})();
SyntaxError: Cannot use the keyword 'break' as a variable name.
(function(){var case;})();
SyntaxError: Cannot use the keyword 'case' as a variable name.
(function(){var catch;})();
SyntaxError: Cannot use the keyword 'catch' as a variable name.
(function(){var continue;})();
SyntaxError: Cannot use the keyword 'continue' as a variable name.
(function(){var debugger;})();
SyntaxError: Cannot use the keyword 'debugger' as a variable name.
(function(){var default;})();
SyntaxError: Cannot use the keyword 'default' as a variable name.
(function(){var delete;})();
SyntaxError: Cannot use the keyword 'delete' as a variable name.
(function(){var do;})();
SyntaxError: Cannot use the keyword 'do' as a variable name.
(function(){var else;})();
SyntaxError: Cannot use the keyword 'else' as a variable name.
(function(){var finally;})();
SyntaxError: Cannot use the keyword 'finally' as a variable name.
(function(){var for;})();
SyntaxError: Cannot use the keyword 'for' as a variable name.
(function(){var function;})();
SyntaxError: Cannot use the keyword 'function' as a variable name.
(function(){var if;})();
SyntaxError: Cannot use the keyword 'if' as a variable name.
(function(){var in;})();
SyntaxError: Cannot use the keyword 'in' as a variable name.
(function(){var instanceof;})();
SyntaxError: Cannot use the keyword 'instanceof' as a variable name.
(function(){var new;})();
SyntaxError: Cannot use the keyword 'new' as a variable name.
(function(){var return;})();
SyntaxError: Cannot use the keyword 'return' as a variable name.
(function(){var switch;})();
SyntaxError: Cannot use the keyword 'switch' as a variable name.
(function(){var this;})();
SyntaxError: Cannot use the keyword 'this' as a variable name.
(function(){var throw;})();
SyntaxError: Cannot use the keyword 'throw' as a variable name.
(function(){var try;})();
SyntaxError: Cannot use the keyword 'try' as a variable name.
(function(){var typeof;})();
SyntaxError: Cannot use the keyword 'typeof' as a variable name.
(function(){var var;})();
SyntaxError: Cannot use the keyword 'var' as a variable name.
(function(){var void;})();
SyntaxError: Cannot use the keyword 'void' as a variable name.
(function(){var while;})();
SyntaxError: Cannot use the keyword 'while' as a variable name.
(function(){var with;})();
SyntaxError: Cannot use the keyword 'with' as a variable name.
(function(){var null;})();
SyntaxError: Cannot use the keyword 'null' as a variable name.
(function(){var false;})();
SyntaxError: Cannot use the keyword 'false' as a variable name.
(function(){var true;})();
SyntaxError: Cannot use the keyword 'true' as a variable name.
(function(){var class;})();
SyntaxError: Cannot use the keyword 'class' as a variable name.
(function(){var const;})();
SyntaxError: Cannot use the keyword 'const' as a variable name.
(function(){var enum;})();
SyntaxError: Cannot use the reserved word 'enum' as a variable name.
(function(){var export;})();
SyntaxError: Cannot use the keyword 'export' as a variable name.
(function(){var extends;})();
SyntaxError: Cannot use the keyword 'extends' as a variable name.
(function(){var import;})();
SyntaxError: Cannot use the keyword 'import' as a variable name.
(function(){var super;})();
SyntaxError: Cannot use the keyword 'super' as a variable name.
(function(){var implements;})();
(function(){var interface;})();
(function(){var let;})();
(function(){var package;})();
(function(){var private;})();
(function(){var protected;})();
(function(){var public;})();
(function(){var static;})();
(function(){var yield;})();
(function(){var foo;})();
(function(){var <;})();
SyntaxError: Unexpected token '<'. Expected a parameter pattern or a ')' in parameter list.
(function(){function break(){}})();
SyntaxError: Cannot use the keyword 'break' as a function name.
(function(){function case(){}})();
SyntaxError: Cannot use the keyword 'case' as a function name.
(function(){function catch(){}})();
SyntaxError: Cannot use the keyword 'catch' as a function name.
(function(){function continue(){}})();
SyntaxError: Cannot use the keyword 'continue' as a function name.
(function(){function debugger(){}})();
SyntaxError: Cannot use the keyword 'debugger' as a function name.
(function(){function default(){}})();
SyntaxError: Cannot use the keyword 'default' as a function name.
(function(){function delete(){}})();
SyntaxError: Cannot use the keyword 'delete' as a function name.
(function(){function do(){}})();
SyntaxError: Cannot use the keyword 'do' as a function name.
(function(){function else(){}})();
SyntaxError: Cannot use the keyword 'else' as a function name.
(function(){function finally(){}})();
SyntaxError: Cannot use the keyword 'finally' as a function name.
(function(){function for(){}})();
SyntaxError: Cannot use the keyword 'for' as a function name.
(function(){function function(){}})();
SyntaxError: Cannot use the keyword 'function' as a function name.
(function(){function if(){}})();
SyntaxError: Cannot use the keyword 'if' as a function name.
(function(){function in(){}})();
SyntaxError: Cannot use the keyword 'in' as a function name.
(function(){function instanceof(){}})();
SyntaxError: Cannot use the keyword 'instanceof' as a function name.
(function(){function new(){}})();
SyntaxError: Cannot use the keyword 'new' as a function name.
(function(){function return(){}})();
SyntaxError: Cannot use the keyword 'return' as a function name.
(function(){function switch(){}})();
SyntaxError: Cannot use the keyword 'switch' as a function name.
(function(){function this(){}})();
SyntaxError: Cannot use the keyword 'this' as a function name.
(function(){function throw(){}})();
SyntaxError: Cannot use the keyword 'throw' as a function name.
(function(){function try(){}})();
SyntaxError: Cannot use the keyword 'try' as a function name.
(function(){function typeof(){}})();
SyntaxError: Cannot use the keyword 'typeof' as a function name.
(function(){function var(){}})();
SyntaxError: Cannot use the keyword 'var' as a function name.
(function(){function void(){}})();
SyntaxError: Cannot use the keyword 'void' as a function name.
(function(){function while(){}})();
SyntaxError: Cannot use the keyword 'while' as a function name.
(function(){function with(){}})();
SyntaxError: Cannot use the keyword 'with' as a function name.
(function(){function null(){}})();
SyntaxError: Cannot use the keyword 'null' as a function name.
(function(){function false(){}})();
SyntaxError: Cannot use the keyword 'false' as a function name.
(function(){function true(){}})();
SyntaxError: Cannot use the keyword 'true' as a function name.
(function(){function class(){}})();
SyntaxError: Cannot use the keyword 'class' as a function name.
(function(){function const(){}})();
SyntaxError: Cannot use the keyword 'const' as a function name.
(function(){function enum(){}})();
SyntaxError: Cannot use the reserved word 'enum' as a function name.
(function(){function export(){}})();
SyntaxError: Cannot use the keyword 'export' as a function name.
(function(){function extends(){}})();
SyntaxError: Cannot use the keyword 'extends' as a function name.
(function(){function import(){}})();
SyntaxError: Cannot use the keyword 'import' as a function name.
(function(){function super(){}})();
SyntaxError: Cannot use the keyword 'super' as a function name.
(function(){function implements(){}})();
(function(){function interface(){}})();
(function(){function let(){}})();
(function(){function package(){}})();
(function(){function private(){}})();
(function(){function protected(){}})();
(function(){function public(){}})();
(function(){function static(){}})();
(function(){function yield(){}})();
(function(){function foo(){}})();
(function(){function <(){}})();
SyntaxError: Unexpected token '<'
(function(){(function break(){})})();
SyntaxError: Cannot use the keyword 'break' as a function name.
(function(){(function case(){})})();
SyntaxError: Cannot use the keyword 'case' as a function name.
(function(){(function catch(){})})();
SyntaxError: Cannot use the keyword 'catch' as a function name.
(function(){(function continue(){})})();
SyntaxError: Cannot use the keyword 'continue' as a function name.
(function(){(function debugger(){})})();
SyntaxError: Cannot use the keyword 'debugger' as a function name.
(function(){(function default(){})})();
SyntaxError: Cannot use the keyword 'default' as a function name.
(function(){(function delete(){})})();
SyntaxError: Cannot use the keyword 'delete' as a function name.
(function(){(function do(){})})();
SyntaxError: Cannot use the keyword 'do' as a function name.
(function(){(function else(){})})();
SyntaxError: Cannot use the keyword 'else' as a function name.
(function(){(function finally(){})})();
SyntaxError: Cannot use the keyword 'finally' as a function name.
(function(){(function for(){})})();
SyntaxError: Cannot use the keyword 'for' as a function name.
(function(){(function function(){})})();
SyntaxError: Cannot use the keyword 'function' as a function name.
(function(){(function if(){})})();
SyntaxError: Cannot use the keyword 'if' as a function name.
(function(){(function in(){})})();
SyntaxError: Cannot use the keyword 'in' as a function name.
(function(){(function instanceof(){})})();
SyntaxError: Cannot use the keyword 'instanceof' as a function name.
(function(){(function new(){})})();
SyntaxError: Cannot use the keyword 'new' as a function name.
(function(){(function return(){})})();
SyntaxError: Cannot use the keyword 'return' as a function name.
(function(){(function switch(){})})();
SyntaxError: Cannot use the keyword 'switch' as a function name.
(function(){(function this(){})})();
SyntaxError: Cannot use the keyword 'this' as a function name.
(function(){(function throw(){})})();
SyntaxError: Cannot use the keyword 'throw' as a function name.
(function(){(function try(){})})();
SyntaxError: Cannot use the keyword 'try' as a function name.
(function(){(function typeof(){})})();
SyntaxError: Cannot use the keyword 'typeof' as a function name.
(function(){(function var(){})})();
SyntaxError: Cannot use the keyword 'var' as a function name.
(function(){(function void(){})})();
SyntaxError: Cannot use the keyword 'void' as a function name.
(function(){(function while(){})})();
SyntaxError: Cannot use the keyword 'while' as a function name.
(function(){(function with(){})})();
SyntaxError: Cannot use the keyword 'with' as a function name.
(function(){(function null(){})})();
SyntaxError: Cannot use the keyword 'null' as a function name.
(function(){(function false(){})})();
SyntaxError: Cannot use the keyword 'false' as a function name.
(function(){(function true(){})})();
SyntaxError: Cannot use the keyword 'true' as a function name.
(function(){(function class(){})})();
SyntaxError: Cannot use the keyword 'class' as a function name.
(function(){(function const(){})})();
SyntaxError: Cannot use the keyword 'const' as a function name.
(function(){(function enum(){})})();
SyntaxError: Cannot use the reserved word 'enum' as a function name.
(function(){(function export(){})})();
SyntaxError: Cannot use the keyword 'export' as a function name.
(function(){(function extends(){})})();
SyntaxError: Cannot use the keyword 'extends' as a function name.
(function(){(function import(){})})();
SyntaxError: Cannot use the keyword 'import' as a function name.
(function(){(function super(){})})();
SyntaxError: Cannot use the keyword 'super' as a function name.
(function(){(function implements(){})})();
(function(){(function interface(){})})();
(function(){(function let(){})})();
(function(){(function package(){})})();
(function(){(function private(){})})();
(function(){(function protected(){})})();
(function(){(function public(){})})();
(function(){(function static(){})})();
(function(){(function yield(){})})();
(function(){(function foo(){})})();
(function(){(function <(){})})();
SyntaxError: Unexpected token '<'. Expected an opening '(' before a function's parameter list.
(function(){(function(break){});})();
SyntaxError: Cannot use the keyword 'break' as a parameter name.
(function(){(function(case){});})();
SyntaxError: Cannot use the keyword 'case' as a parameter name.
(function(){(function(catch){});})();
SyntaxError: Cannot use the keyword 'catch' as a parameter name.
(function(){(function(continue){});})();
SyntaxError: Cannot use the keyword 'continue' as a parameter name.
(function(){(function(debugger){});})();
SyntaxError: Cannot use the keyword 'debugger' as a parameter name.
(function(){(function(default){});})();
SyntaxError: Cannot use the keyword 'default' as a parameter name.
(function(){(function(delete){});})();
SyntaxError: Cannot use the keyword 'delete' as a parameter name.
(function(){(function(do){});})();
SyntaxError: Cannot use the keyword 'do' as a parameter name.
(function(){(function(else){});})();
SyntaxError: Cannot use the keyword 'else' as a parameter name.
(function(){(function(finally){});})();
SyntaxError: Cannot use the keyword 'finally' as a parameter name.
(function(){(function(for){});})();
SyntaxError: Cannot use the keyword 'for' as a parameter name.
(function(){(function(function){});})();
SyntaxError: Cannot use the keyword 'function' as a parameter name.
(function(){(function(if){});})();
SyntaxError: Cannot use the keyword 'if' as a parameter name.
(function(){(function(in){});})();
SyntaxError: Cannot use the keyword 'in' as a parameter name.
(function(){(function(instanceof){});})();
SyntaxError: Cannot use the keyword 'instanceof' as a parameter name.
(function(){(function(new){});})();
SyntaxError: Cannot use the keyword 'new' as a parameter name.
(function(){(function(return){});})();
SyntaxError: Cannot use the keyword 'return' as a parameter name.
(function(){(function(switch){});})();
SyntaxError: Cannot use the keyword 'switch' as a parameter name.
(function(){(function(this){});})();
SyntaxError: Cannot use the keyword 'this' as a parameter name.
(function(){(function(throw){});})();
SyntaxError: Cannot use the keyword 'throw' as a parameter name.
(function(){(function(try){});})();
SyntaxError: Cannot use the keyword 'try' as a parameter name.
(function(){(function(typeof){});})();
SyntaxError: Cannot use the keyword 'typeof' as a parameter name.
(function(){(function(var){});})();
SyntaxError: Cannot use the keyword 'var' as a parameter name.
(function(){(function(void){});})();
SyntaxError: Cannot use the keyword 'void' as a parameter name.
(function(){(function(while){});})();
SyntaxError: Cannot use the keyword 'while' as a parameter name.
(function(){(function(with){});})();
SyntaxError: Cannot use the keyword 'with' as a parameter name.
(function(){(function(null){});})();
SyntaxError: Cannot use the keyword 'null' as a parameter name.
(function(){(function(false){});})();
SyntaxError: Cannot use the keyword 'false' as a parameter name.
(function(){(function(true){});})();
SyntaxError: Cannot use the keyword 'true' as a parameter name.
(function(){(function(class){});})();
SyntaxError: Cannot use the keyword 'class' as a parameter name.
(function(){(function(const){});})();
SyntaxError: Cannot use the keyword 'const' as a parameter name.
(function(){(function(enum){});})();
SyntaxError: Cannot use the reserved word 'enum' as a parameter name.
(function(){(function(export){});})();
SyntaxError: Cannot use the keyword 'export' as a parameter name.
(function(){(function(extends){});})();
SyntaxError: Cannot use the keyword 'extends' as a parameter name.
(function(){(function(import){});})();
SyntaxError: Cannot use the keyword 'import' as a parameter name.
(function(){(function(super){});})();
SyntaxError: Cannot use the keyword 'super' as a parameter name.
(function(){(function(implements){});})();
(function(){(function(interface){});})();
(function(){(function(let){});})();
(function(){(function(package){});})();
(function(){(function(private){});})();
(function(){(function(protected){});})();
(function(){(function(public){});})();
(function(){(function(static){});})();
(function(){(function(yield){});})();
(function(){(function(foo){});})();
(function(){(function(<){});})();
SyntaxError: Unexpected token '<'. Expected a parameter pattern or a ')' in parameter list.
(function(){try{} catch(break){}})();
SyntaxError: Cannot use the keyword 'break' as a catch parameter name.
(function(){try{} catch(case){}})();
SyntaxError: Cannot use the keyword 'case' as a catch parameter name.
(function(){try{} catch(catch){}})();
SyntaxError: Cannot use the keyword 'catch' as a catch parameter name.
(function(){try{} catch(continue){}})();
SyntaxError: Cannot use the keyword 'continue' as a catch parameter name.
(function(){try{} catch(debugger){}})();
SyntaxError: Cannot use the keyword 'debugger' as a catch parameter name.
(function(){try{} catch(default){}})();
SyntaxError: Cannot use the keyword 'default' as a catch parameter name.
(function(){try{} catch(delete){}})();
SyntaxError: Cannot use the keyword 'delete' as a catch parameter name.
(function(){try{} catch(do){}})();
SyntaxError: Cannot use the keyword 'do' as a catch parameter name.
(function(){try{} catch(else){}})();
SyntaxError: Cannot use the keyword 'else' as a catch parameter name.
(function(){try{} catch(finally){}})();
SyntaxError: Cannot use the keyword 'finally' as a catch parameter name.
(function(){try{} catch(for){}})();
SyntaxError: Cannot use the keyword 'for' as a catch parameter name.
(function(){try{} catch(function){}})();
SyntaxError: Cannot use the keyword 'function' as a catch parameter name.
(function(){try{} catch(if){}})();
SyntaxError: Cannot use the keyword 'if' as a catch parameter name.
(function(){try{} catch(in){}})();
SyntaxError: Cannot use the keyword 'in' as a catch parameter name.
(function(){try{} catch(instanceof){}})();
SyntaxError: Cannot use the keyword 'instanceof' as a catch parameter name.
(function(){try{} catch(new){}})();
SyntaxError: Cannot use the keyword 'new' as a catch parameter name.
(function(){try{} catch(return){}})();
SyntaxError: Cannot use the keyword 'return' as a catch parameter name.
(function(){try{} catch(switch){}})();
SyntaxError: Cannot use the keyword 'switch' as a catch parameter name.
(function(){try{} catch(this){}})();
SyntaxError: Cannot use the keyword 'this' as a catch parameter name.
(function(){try{} catch(throw){}})();
SyntaxError: Cannot use the keyword 'throw' as a catch parameter name.
(function(){try{} catch(try){}})();
SyntaxError: Cannot use the keyword 'try' as a catch parameter name.
(function(){try{} catch(typeof){}})();
SyntaxError: Cannot use the keyword 'typeof' as a catch parameter name.
(function(){try{} catch(var){}})();
SyntaxError: Cannot use the keyword 'var' as a catch parameter name.
(function(){try{} catch(void){}})();
SyntaxError: Cannot use the keyword 'void' as a catch parameter name.
(function(){try{} catch(while){}})();
SyntaxError: Cannot use the keyword 'while' as a catch parameter name.
(function(){try{} catch(with){}})();
SyntaxError: Cannot use the keyword 'with' as a catch parameter name.
(function(){try{} catch(null){}})();
SyntaxError: Cannot use the keyword 'null' as a catch parameter name.
(function(){try{} catch(false){}})();
SyntaxError: Cannot use the keyword 'false' as a catch parameter name.
(function(){try{} catch(true){}})();
SyntaxError: Cannot use the keyword 'true' as a catch parameter name.
(function(){try{} catch(class){}})();
SyntaxError: Cannot use the keyword 'class' as a catch parameter name.
(function(){try{} catch(const){}})();
SyntaxError: Cannot use the keyword 'const' as a catch parameter name.
(function(){try{} catch(enum){}})();
SyntaxError: Cannot use the reserved word 'enum' as a catch parameter name.
(function(){try{} catch(export){}})();
SyntaxError: Cannot use the keyword 'export' as a catch parameter name.
(function(){try{} catch(extends){}})();
SyntaxError: Cannot use the keyword 'extends' as a catch parameter name.
(function(){try{} catch(import){}})();
SyntaxError: Cannot use the keyword 'import' as a catch parameter name.
(function(){try{} catch(super){}})();
SyntaxError: Cannot use the keyword 'super' as a catch parameter name.
(function(){try{} catch(implements){}})();
(function(){try{} catch(interface){}})();
(function(){try{} catch(let){}})();
(function(){try{} catch(package){}})();
(function(){try{} catch(private){}})();
(function(){try{} catch(protected){}})();
(function(){try{} catch(public){}})();
(function(){try{} catch(static){}})();
(function(){try{} catch(yield){}})();
(function(){try{} catch(foo){}})();
(function(){try{} catch(<){}})();
SyntaxError: Unexpected token '<'. Expected a parameter pattern or a ')' in parameter list.
(function(){({break: 0});})();
(function(){({case: 0});})();
(function(){({catch: 0});})();
(function(){({continue: 0});})();
(function(){({debugger: 0});})();
(function(){({default: 0});})();
(function(){({delete: 0});})();
(function(){({do: 0});})();
(function(){({else: 0});})();
(function(){({finally: 0});})();
(function(){({for: 0});})();
(function(){({function: 0});})();
(function(){({if: 0});})();
(function(){({in: 0});})();
(function(){({instanceof: 0});})();
(function(){({new: 0});})();
(function(){({return: 0});})();
(function(){({switch: 0});})();
(function(){({this: 0});})();
(function(){({throw: 0});})();
(function(){({try: 0});})();
(function(){({typeof: 0});})();
(function(){({var: 0});})();
(function(){({void: 0});})();
(function(){({while: 0});})();
(function(){({with: 0});})();
(function(){({null: 0});})();
(function(){({false: 0});})();
(function(){({true: 0});})();
(function(){({class: 0});})();
(function(){({const: 0});})();
(function(){({enum: 0});})();
(function(){({export: 0});})();
(function(){({extends: 0});})();
(function(){({import: 0});})();
(function(){({super: 0});})();
(function(){({implements: 0});})();
(function(){({interface: 0});})();
(function(){({let: 0});})();
(function(){({package: 0});})();
(function(){({private: 0});})();
(function(){({protected: 0});})();
(function(){({public: 0});})();
(function(){({static: 0});})();
(function(){({yield: 0});})();
(function(){({foo: 0});})();
(function(){({<: 0});})();
SyntaxError: Unexpected token '<'. Expected a property name.
(function(){var o = {}; o.break = 0;})();
(function(){var o = {}; o.case = 0;})();
(function(){var o = {}; o.catch = 0;})();
(function(){var o = {}; o.continue = 0;})();
(function(){var o = {}; o.debugger = 0;})();
(function(){var o = {}; o.default = 0;})();
(function(){var o = {}; o.delete = 0;})();
(function(){var o = {}; o.do = 0;})();
(function(){var o = {}; o.else = 0;})();
(function(){var o = {}; o.finally = 0;})();
(function(){var o = {}; o.for = 0;})();
(function(){var o = {}; o.function = 0;})();
(function(){var o = {}; o.if = 0;})();
(function(){var o = {}; o.in = 0;})();
(function(){var o = {}; o.instanceof = 0;})();
(function(){var o = {}; o.new = 0;})();
(function(){var o = {}; o.return = 0;})();
(function(){var o = {}; o.switch = 0;})();
(function(){var o = {}; o.this = 0;})();
(function(){var o = {}; o.throw = 0;})();
(function(){var o = {}; o.try = 0;})();
(function(){var o = {}; o.typeof = 0;})();
(function(){var o = {}; o.var = 0;})();
(function(){var o = {}; o.void = 0;})();
(function(){var o = {}; o.while = 0;})();
(function(){var o = {}; o.with = 0;})();
(function(){var o = {}; o.null = 0;})();
(function(){var o = {}; o.false = 0;})();
(function(){var o = {}; o.true = 0;})();
(function(){var o = {}; o.class = 0;})();
(function(){var o = {}; o.const = 0;})();
(function(){var o = {}; o.enum = 0;})();
(function(){var o = {}; o.export = 0;})();
(function(){var o = {}; o.extends = 0;})();
(function(){var o = {}; o.import = 0;})();
(function(){var o = {}; o.super = 0;})();
(function(){var o = {}; o.implements = 0;})();
(function(){var o = {}; o.interface = 0;})();
(function(){var o = {}; o.let = 0;})();
(function(){var o = {}; o.package = 0;})();
(function(){var o = {}; o.private = 0;})();
(function(){var o = {}; o.protected = 0;})();
(function(){var o = {}; o.public = 0;})();
(function(){var o = {}; o.static = 0;})();
(function(){var o = {}; o.yield = 0;})();
(function(){var o = {}; o.foo = 0;})();
(function(){var o = {}; o.< = 0;})();
SyntaxError: Unexpected token '<'. Expected a property name after '.'.
(function(){var o = {}; o["break"] = 0;})();
(function(){var o = {}; o["case"] = 0;})();
(function(){var o = {}; o["catch"] = 0;})();
(function(){var o = {}; o["continue"] = 0;})();
(function(){var o = {}; o["debugger"] = 0;})();
(function(){var o = {}; o["default"] = 0;})();
(function(){var o = {}; o["delete"] = 0;})();
(function(){var o = {}; o["do"] = 0;})();
(function(){var o = {}; o["else"] = 0;})();
(function(){var o = {}; o["finally"] = 0;})();
(function(){var o = {}; o["for"] = 0;})();
(function(){var o = {}; o["function"] = 0;})();
(function(){var o = {}; o["if"] = 0;})();
(function(){var o = {}; o["in"] = 0;})();
(function(){var o = {}; o["instanceof"] = 0;})();
(function(){var o = {}; o["new"] = 0;})();
(function(){var o = {}; o["return"] = 0;})();
(function(){var o = {}; o["switch"] = 0;})();
(function(){var o = {}; o["this"] = 0;})();
(function(){var o = {}; o["throw"] = 0;})();
(function(){var o = {}; o["try"] = 0;})();
(function(){var o = {}; o["typeof"] = 0;})();
(function(){var o = {}; o["var"] = 0;})();
(function(){var o = {}; o["void"] = 0;})();
(function(){var o = {}; o["while"] = 0;})();
(function(){var o = {}; o["with"] = 0;})();
(function(){var o = {}; o["null"] = 0;})();
(function(){var o = {}; o["false"] = 0;})();
(function(){var o = {}; o["true"] = 0;})();
(function(){var o = {}; o["class"] = 0;})();
(function(){var o = {}; o["const"] = 0;})();
(function(){var o = {}; o["enum"] = 0;})();
(function(){var o = {}; o["export"] = 0;})();
(function(){var o = {}; o["extends"] = 0;})();
(function(){var o = {}; o["import"] = 0;})();
(function(){var o = {}; o["super"] = 0;})();
(function(){var o = {}; o["implements"] = 0;})();
(function(){var o = {}; o["interface"] = 0;})();
(function(){var o = {}; o["let"] = 0;})();
(function(){var o = {}; o["package"] = 0;})();
(function(){var o = {}; o["private"] = 0;})();
(function(){var o = {}; o["protected"] = 0;})();
(function(){var o = {}; o["public"] = 0;})();
(function(){var o = {}; o["static"] = 0;})();
(function(){var o = {}; o["yield"] = 0;})();
(function(){var o = {}; o["foo"] = 0;})();
(function(){var o = {}; o["<"] = 0;})();
