Esempio n. 1
0
        private static void DoPreObfuscateLib(string _sourceDir, string _outputDir)
        {
            List <string> files = new List <string>();

            HTML5Saver.GetFiles(_sourceDir, new string[3]
            {
                ".svn",
                "runner.js",
                "particles"
            }, files);
            List <string> list = new List <string>();

            foreach (KeyValuePair <string, GMLFunction> ms_func in GMLCompile.ms_funcs)
            {
                list.Add(ms_func.Key);
            }
            foreach (KeyValuePair <string, GMLVariable> ms_builtin in GMLCompile.ms_builtins)
            {
                list.Add(ms_builtin.Key);
                if (!string.IsNullOrEmpty(ms_builtin.Value.setFunction))
                {
                    list.Add(ms_builtin.Value.setFunction);
                }
                if (!string.IsNullOrEmpty(ms_builtin.Value.getFunction))
                {
                    list.Add(ms_builtin.Value.getFunction);
                }
            }
            foreach (KeyValuePair <string, GMLVariable> item2 in GMLCompile.ms_builtinsArray)
            {
                list.Add(item2.Key);
                if (!string.IsNullOrEmpty(item2.Value.setFunction))
                {
                    list.Add(item2.Value.setFunction);
                }
                if (!string.IsNullOrEmpty(item2.Value.getFunction))
                {
                    list.Add(item2.Value.getFunction);
                }
            }
            foreach (KeyValuePair <string, GMLVariable> item3 in GMLCompile.ms_builtinsLocal)
            {
                list.Add(item3.Key);
                if (!string.IsNullOrEmpty(item3.Value.setFunction))
                {
                    list.Add(item3.Value.setFunction);
                }
                if (!string.IsNullOrEmpty(item3.Value.getFunction))
                {
                    list.Add(item3.Value.getFunction);
                }
            }
            foreach (KeyValuePair <string, GMLVariable> item4 in GMLCompile.ms_builtinsLocalArray)
            {
                list.Add(item4.Key);
                if (!string.IsNullOrEmpty(item4.Value.setFunction))
                {
                    list.Add(item4.Value.setFunction);
                }
                if (!string.IsNullOrEmpty(item4.Value.getFunction))
                {
                    list.Add(item4.Value.getFunction);
                }
            }
            foreach (KeyValuePair <string, double> ms_constant in GMLCompile.ms_constants)
            {
                list.Add(ms_constant.Key);
            }
            string[] array = new string[]
            {
                "antialias",
                "charset",
                "i",
                "c",
                "JSON_game",
                "Options",
                "debugMode",
                "loadingBarCallback",
                "gameId",
                "gameGuid",
                "fullScreen",
                "interpolatePixels",
                "showCursor",
                "scale",
                "allowFullScreenKey",
                "freezeOnLostFocus",
                "showLoadingBar",
                "displayErrors",
                "writeErrors",
                "abortErrors",
                "variableErrors",
                "Textures",
                "Triggers",
                "pName",
                "moment",
                "pFunc",
                "Extensions",
                "TriggerEvents",
                "jsFiles",
                "init",
                "final",
                "Sounds",
                "pName",
                "kind",
                "extension",
                "origName",
                "effects",
                "volume",
                "pan",
                "preload",
                "Sprites",
                "width",
                "height",
                "bboxMode",
                "transparent",
                "smooth",
                "preload",
                "colCheck",
                "xOrigin",
                "yOrigin",
                "bboxLeft",
                "bboxRight",
                "bboxTop",
                "bboxBottom",
                "TPEntryIndex",
                "Masks",
                "Backgrounds",
                "Paths",
                "kind",
                "closed",
                "precision",
                "points",
                "speed",
                "Fonts",
                "size",
                "bold",
                "italic",
                "first",
                "last",
                "TPageEntry",
                "scaleX",
                "scaleY",
                "glyphs",
                "w",
                "h",
                "shift",
                "offset",
                "Timelines",
                "Events",
                "Time",
                "Event",
                "GMObjects",
                "spriteIndex",
                "visible",
                "solid",
                "persistent",
                "depth",
                "parent",
                "spritemask",
                "CollisionEvents",
                "CreateEvent",
                "DestroyEvent",
                "StepBeginEvent",
                "StepNormalEvent",
                "StepEndEvent",
                "DrawEvent",
                "NoButtonPressed",
                "LeftButtonDown",
                "RightButtonDown",
                "MiddleButtonDown",
                "LeftButtonPressed",
                "RightButtonPressed",
                "MiddleButtonPressed",
                "LeftButtonReleased",
                "RightButtonReleased",
                "MiddleButtonReleased",
                "GlobalLeftButtonDown",
                "GlobalRightButtonDown",
                "GlobalMiddleButtonDown",
                "GlobalLeftButtonPressed",
                "GlobalRightButtonPressed",
                "GlobalMiddleButtonPressed",
                "GlobalLeftButtonReleased",
                "GlobalRightButtonReleased",
                "GlobalMiddleButtonReleased",
                "MouseEnter",
                "MouseLeave",
                "OutsideEvent",
                "BoundaryEvent",
                "StartGameEvent",
                "EndGameEvent",
                "StartRoomEvent",
                "EndRoomEvent",
                "NoLivesEvent",
                "AnimationEndEvent",
                "EndOfPathEvent",
                "NoHealthEvent",
                "CloseButtonEvent",
                "OutsideView0Event",
                "BoundaryView0Event",
                "UserEvent0",
                "UserEvent1",
                "UserEvent2",
                "UserEvent3",
                "UserEvent4",
                "UserEvent5",
                "UserEvent6",
                "UserEvent7",
                "UserEvent8",
                "UserEvent9",
                "UserEvent10",
                "UserEvent11",
                "UserEvent12",
                "UserEvent13",
                "UserEvent14",
                "UserEvent15",
                "WebImageLoadedEvent",
                "WebSoundLoadedEvent",
                "WebAsyncEvent",
                "ObjAlarm0",
                "ObjAlarm1",
                "ObjAlarm2",
                "ObjAlarm3",
                "ObjAlarm4",
                "ObjAlarm5",
                "ObjAlarm6",
                "ObjAlarm7",
                "ObjAlarm8",
                "ObjAlarm9",
                "ObjAlarm10",
                "ObjAlarm11",
                "KeyPressed_",
                "KeyPressed_NOKEY",
                "KeyPressed_ANYKEY",
                "KeyPressed_BACKSPACE",
                "KeyPressed_TAB",
                "KeyPressed_ENTER",
                "KeyPressed_SHIFT",
                "KeyPressed_CTRL",
                "KeyPressed_ALT",
                "KeyPressed_PAUSE",
                "KeyPressed_ESCAPE",
                "KeyPressed_SPACE",
                "KeyPressed_PAGEUP",
                "KeyPressed_PAGEDOWN",
                "KeyPressed_END",
                "KeyPressed_HOME",
                "KeyPressed_LEFT",
                "KeyPressed_UP",
                "KeyPressed_RIGHT",
                "KeyPressed_DOWN",
                "KeyPressed_INSERT",
                "KeyPressed_DELETE",
                "KeyPressed_0",
                "KeyPressed_1",
                "KeyPressed_2",
                "KeyPressed_3",
                "KeyPressed_4",
                "KeyPressed_5",
                "KeyPressed_6",
                "KeyPressed_7",
                "KeyPressed_8",
                "KeyPressed_9",
                "KeyPressed_A",
                "KeyPressed_B",
                "KeyPressed_C",
                "KeyPressed_D",
                "KeyPressed_E",
                "KeyPressed_F",
                "KeyPressed_G",
                "KeyPressed_H",
                "KeyPressed_I",
                "KeyPressed_J",
                "KeyPressed_K",
                "KeyPressed_L",
                "KeyPressed_M",
                "KeyPressed_N",
                "KeyPressed_O",
                "KeyPressed_P",
                "KeyPressed_Q",
                "KeyPressed_R",
                "KeyPressed_S",
                "KeyPressed_T",
                "KeyPressed_U",
                "KeyPressed_V",
                "KeyPressed_W",
                "KeyPressed_X",
                "KeyPressed_Y",
                "KeyPressed_Z",
                "KeyPressed_F1",
                "KeyPressed_F2",
                "KeyPressed_F3",
                "KeyPressed_F4",
                "KeyPressed_F5",
                "KeyPressed_F6",
                "KeyPressed_F7",
                "KeyPressed_F8",
                "KeyPressed_F9",
                "KeyPressed_F10",
                "KeyPressed_F11",
                "KeyPressed_F12",
                "KeyPressed_NUM_LOCK",
                "KeyPressed_NUM_0",
                "KeyPressed_NUM_1",
                "KeyPressed_NUM_2",
                "KeyPressed_NUM_3",
                "KeyPressed_NUM_4",
                "KeyPressed_NUM_5",
                "KeyPressed_NUM_6",
                "KeyPressed_NUM_7",
                "KeyPressed_NUM_8",
                "KeyPressed_NUM_9",
                "KeyPressed_NUM_STAR",
                "KeyPressed_NUM_PLUS",
                "KeyPressed_NUM_MINUS",
                "KeyPressed_NUM_DOT",
                "KeyPressed_NUM_DIV",
                "Key_NOKEY",
                "Key_ANYKEY",
                "Key_BACKSPACE",
                "Key_TAB",
                "Key_ENTER",
                "Key_SHIFT",
                "Key_CTRL",
                "Key_ALT",
                "Key_PAUSE",
                "Key_ESCAPE",
                "Key_SPACE",
                "Key_PAGEUP",
                "Key_PAGEDOWN",
                "Key_END",
                "Key_HOME",
                "Key_LEFT",
                "Key_UP",
                "Key_RIGHT",
                "Key_DOWN",
                "Key_INSERT",
                "Key_DELETE",
                "Key_0",
                "Key_1",
                "Key_2",
                "Key_3",
                "Key_4",
                "Key_5",
                "Key_6",
                "Key_7",
                "Key_8",
                "Key_9",
                "Key_A",
                "Key_B",
                "Key_C",
                "Key_D",
                "Key_E",
                "Key_F",
                "Key_G",
                "Key_H",
                "Key_I",
                "Key_J",
                "Key_K",
                "Key_L",
                "Key_M",
                "Key_N",
                "Key_O",
                "Key_P",
                "Key_Q",
                "Key_R",
                "Key_S",
                "Key_T",
                "Key_U",
                "Key_V",
                "Key_W",
                "Key_X",
                "Key_Y",
                "Key_Z",
                "Key_F1",
                "Key_F2",
                "Key_F3",
                "Key_F4",
                "Key_F5",
                "Key_F6",
                "Key_F7",
                "Key_F8",
                "Key_F9",
                "Key_F10",
                "Key_F11",
                "Key_F12",
                "Key_NUM_LOCK",
                "Key_NUM_0",
                "Key_NUM_1",
                "Key_NUM_2",
                "Key_NUM_3",
                "Key_NUM_4",
                "Key_NUM_5",
                "Key_NUM_6",
                "Key_NUM_7",
                "Key_NUM_8",
                "Key_NUM_9",
                "Key_NUM_STAR",
                "Key_NUM_PLUS",
                "Key_NUM_MINUS",
                "Key_NUM_DOT",
                "Key_NUM_DIV",
                "KeyReleased_NOKEY",
                "KeyReleased_ANYKEY",
                "KeyReleased_BACKSPACE",
                "KeyReleased_TAB",
                "KeyReleased_ENTER",
                "KeyReleased_SHIFT",
                "KeyReleased_CTRL",
                "KeyReleased_ALT",
                "KeyReleased_PAUSE",
                "KeyReleased_ESCAPE",
                "KeyReleased_SPACE",
                "KeyReleased_PAGEUP",
                "KeyReleased_PAGEDOWN",
                "KeyReleased_END",
                "KeyReleased_HOME",
                "KeyReleased_LEFT",
                "KeyReleased_UP",
                "KeyReleased_RIGHT",
                "KeyReleased_DOWN",
                "KeyReleased_INSERT",
                "KeyReleased_DELETE",
                "KeyReleased_0",
                "KeyReleased_1",
                "KeyReleased_2",
                "KeyReleased_3",
                "KeyReleased_4",
                "KeyReleased_5",
                "KeyReleased_6",
                "KeyReleased_7",
                "KeyReleased_8",
                "KeyReleased_9",
                "KeyReleased_A",
                "KeyReleased_B",
                "KeyReleased_C",
                "KeyReleased_D",
                "KeyReleased_E",
                "KeyReleased_F",
                "KeyReleased_G",
                "KeyReleased_H",
                "KeyReleased_I",
                "KeyReleased_J",
                "KeyReleased_K",
                "KeyReleased_L",
                "KeyReleased_M",
                "KeyReleased_N",
                "KeyReleased_O",
                "KeyReleased_P",
                "KeyReleased_Q",
                "KeyReleased_R",
                "KeyReleased_S",
                "KeyReleased_T",
                "KeyReleased_U",
                "KeyReleased_V",
                "KeyReleased_W",
                "KeyReleased_X",
                "KeyReleased_Y",
                "KeyReleased_Z",
                "KeyReleased_F1",
                "KeyReleased_F2",
                "KeyReleased_F3",
                "KeyReleased_F4",
                "KeyReleased_F5",
                "KeyReleased_F6",
                "KeyReleased_F7",
                "KeyReleased_F8",
                "KeyReleased_F9",
                "KeyReleased_F10",
                "KeyReleased_F11",
                "KeyReleased_F12",
                "KeyReleased_NUM_LOCK",
                "KeyReleased_NUM_0",
                "KeyReleased_NUM_1",
                "KeyReleased_NUM_2",
                "KeyReleased_NUM_3",
                "KeyReleased_NUM_4",
                "KeyReleased_NUM_5",
                "KeyReleased_NUM_6",
                "KeyReleased_NUM_7",
                "KeyReleased_NUM_8",
                "KeyReleased_NUM_9",
                "KeyReleased_NUM_STAR",
                "KeyReleased_NUM_PLUS",
                "KeyReleased_NUM_MINUS",
                "KeyReleased_NUM_DOT",
                "KeyReleased_NUM_DIV",
                "GMRooms",
                "pCaption",
                "width",
                "height",
                "speed",
                "persistent",
                "colour",
                "showColour",
                "enableViews",
                "viewClearScreen",
                "pCode",
                "visible",
                "foreground",
                "index",
                "htiled",
                "vtiled",
                "hspeed",
                "vspeed",
                "stretch",
                "backgrounds",
                "views",
                "visible",
                "xview",
                "yview",
                "wview",
                "hview",
                "xport",
                "yport",
                "wport",
                "hport",
                "hborder",
                "vborder",
                "hspeed",
                "vspeed",
                "index",
                "pInstances",
                "id",
                "tiles",
                "xo",
                "yo",
                "depth",
                "RoomOrder",
                "TPageEntries",
                "XOffset",
                "YOffset",
                "CropWidth",
                "CropHeight",
                "ow",
                "oh",
                "tp",
                "fontname",
                "array_set_2D",
                "array_set_1D",
                "array_get_2D",
                "array_get_1D",
                "g_pBuiltIn",
                "GetWithArray",
                "yyInst",
                "Scripts",
                "WebGL",
                "CreateEventOrder"
            };
            string[] array2 = array;
            foreach (string item in array2)
            {
                list.Add(item);
            }
            string outputfilename = Path.Combine(_outputDir, "gmRunner.js");

            Out.WriteLine("Obfuscating...");
            YYObfuscate yYObfuscate = new YYObfuscate();

            yYObfuscate.Obfuscate     = ObfuscateObfuscate;
            yYObfuscate.Verbose       = Verbose;
            yYObfuscate.PrettyPrint   = ObfuscatePrettyPrint;
            yYObfuscate.RemovedUnused = ObfuscateRemoveUnused;
            yYObfuscate.EncodeStrings = ObfuscateEncodeStrings;
            yYObfuscate.DoObfuscate(files, outputfilename, list);
        }
Esempio n. 2
0
 public Lex(YYObfuscate _pObfuscate)
 {
     m_pObfuscate       = _pObfuscate;
     CaseSensitive      = false;
     m_TokenLookup[124] = eLex.Bar;
     m_TokenLookup[63]  = eLex.QuestionMark;
     m_TokenLookup[33]  = eLex.Exclamation;
     m_TokenLookup[34]  = eLex.Quotes;
     m_TokenLookup[39]  = eLex.SingleQuotes;
     m_TokenLookup[36]  = eLex.Dollar;
     m_TokenLookup[37]  = eLex.Percent;
     m_TokenLookup[94]  = eLex.Carrot;
     m_TokenLookup[38]  = eLex.Ampersand;
     m_TokenLookup[42]  = eLex.Star;
     m_TokenLookup[40]  = eLex.LeftBracket;
     m_TokenLookup[41]  = eLex.RightBracket;
     m_TokenLookup[91]  = eLex.LeftSquareBracket;
     m_TokenLookup[93]  = eLex.RightSquareBracket;
     m_TokenLookup[45]  = eLex.Minus;
     m_TokenLookup[43]  = eLex.Plus;
     m_TokenLookup[61]  = eLex.Equals;
     m_TokenLookup[47]  = eLex.Divide;
     m_TokenLookup[44]  = eLex.Comma;
     m_TokenLookup[58]  = eLex.Colon;
     m_TokenLookup[59]  = eLex.SemiColon;
     m_TokenLookup[123] = eLex.LCB;
     m_TokenLookup[125] = eLex.RCB;
     m_TokenLookup[60]  = eLex.LessThan;
     m_TokenLookup[62]  = eLex.GreaterThan;
     m_TokenLookup[46]  = eLex.Dot;
     m_TokenLookup[126] = eLex.Not;
     m_TokenLookup[49]  = eLex.Decimal;
     m_TokenLookup[50]  = eLex.Decimal;
     m_TokenLookup[51]  = eLex.Decimal;
     m_TokenLookup[52]  = eLex.Decimal;
     m_TokenLookup[53]  = eLex.Decimal;
     m_TokenLookup[54]  = eLex.Decimal;
     m_TokenLookup[55]  = eLex.Decimal;
     m_TokenLookup[56]  = eLex.Decimal;
     m_TokenLookup[57]  = eLex.Decimal;
     m_TokenLookup[48]  = eLex.Decimal;
     m_TokenLookup[10]  = eLex.NewLine;
     m_TokenLookup[13]  = eLex.NewLine;
     m_TokenLookup[9]   = eLex.WhiteSpace;
     m_TokenLookup[32]  = eLex.WhiteSpace;
     AddSymbol("==", eLex.EqualEqual);
     AddSymbol("!=", eLex.NotEqual);
     AddSymbol("&=", eLex.AndEqual);
     AddSymbol("~=", eLex.EorEqual);
     AddSymbol("-=", eLex.MinusEqual);
     AddSymbol("+=", eLex.PlusEqual);
     AddSymbol("^=", eLex.XorEqual);
     AddSymbol("&&", eLex.AndAnd);
     AddSymbol("||", eLex.OrOr);
     AddSymbol("<<", eLex.ShiftLeft);
     AddSymbol(">>", eLex.ShiftRight);
     for (int i = 65; i <= 90; i++)
     {
         m_IDLookup[i] = eLex.ID;
     }
     for (int j = 97; j <= 122; j++)
     {
         m_IDLookup[j] = eLex.ID;
     }
     m_IDLookup[48] = eLex.ID;
     m_IDLookup[49] = eLex.ID;
     m_IDLookup[50] = eLex.ID;
     m_IDLookup[51] = eLex.ID;
     m_IDLookup[52] = eLex.ID;
     m_IDLookup[53] = eLex.ID;
     m_IDLookup[54] = eLex.ID;
     m_IDLookup[55] = eLex.ID;
     m_IDLookup[56] = eLex.ID;
     m_IDLookup[57] = eLex.ID;
     m_IDLookup[95] = eLex.ID;
     m_IDLookup[64] = eLex.ID;
     for (int num = m_HexLookup.Length - 1; num >= 0; num--)
     {
         m_HexLookup[num] = -1;
     }
     m_HexLookup[48]  = 0;
     m_HexLookup[49]  = 1;
     m_HexLookup[50]  = 2;
     m_HexLookup[51]  = 3;
     m_HexLookup[52]  = 4;
     m_HexLookup[53]  = 5;
     m_HexLookup[54]  = 6;
     m_HexLookup[55]  = 7;
     m_HexLookup[56]  = 8;
     m_HexLookup[57]  = 9;
     m_HexLookup[65]  = 10;
     m_HexLookup[66]  = 11;
     m_HexLookup[67]  = 12;
     m_HexLookup[68]  = 13;
     m_HexLookup[69]  = 14;
     m_HexLookup[70]  = 15;
     m_HexLookup[97]  = 10;
     m_HexLookup[98]  = 11;
     m_HexLookup[99]  = 12;
     m_HexLookup[100] = 13;
     m_HexLookup[101] = 14;
     m_HexLookup[102] = 15;
     for (int num2 = m_BinLookup.Length - 1; num2 >= 0; num2--)
     {
         m_BinLookup[num2] = -1;
     }
     m_BinLookup[48] = 0;
     m_BinLookup[49] = 1;
     for (int num3 = m_DecLookup.Length - 1; num3 >= 0; num3--)
     {
         m_DecLookup[num3] = -1;
     }
     m_DecLookup[48] = 0;
     m_DecLookup[49] = 1;
     m_DecLookup[50] = 2;
     m_DecLookup[51] = 3;
     m_DecLookup[52] = 4;
     m_DecLookup[53] = 5;
     m_DecLookup[54] = 6;
     m_DecLookup[55] = 7;
     m_DecLookup[56] = 8;
     m_DecLookup[57] = 9;
     m_CommandLookup = new Dictionary <string, eLex>();
     AddCommand("Object", eLex.reserved);
     AddCommand("Function", eLex.reserved);
     AddCommand("defineProperty", eLex.reserved);
     AddCommand("apply", eLex.reserved);
     AddCommand("call", eLex.reserved);
     AddCommand("__defineGetter__", eLex.reserved);
     AddCommand("__defineSetter__", eLex.reserved);
     AddCommand("__implements", eLex.reserved);
     AddCommand("__super", eLex.reserved);
     AddCommand("function", eLex.reserved2);
     AddCommand("return", eLex.reserved2);
     AddCommand("typeof", eLex.reserved2);
     AddCommand("instanceof", eLex.reserved3);
     AddCommand("continue", eLex.reserved);
     AddCommand("for", eLex.reserved);
     AddCommand("this", eLex.reserved);
     AddCommand("var", eLex.reserved2);
     AddCommand("true", eLex.reserved);
     AddCommand("false", eLex.reserved);
     AddCommand("null", eLex.reserved);
     AddCommand("new", eLex.reserved2);
     AddCommand("delete", eLex.reserved2);
     AddCommand("with", eLex.reserved);
     AddCommand("if", eLex.reserved2);
     AddCommand("else", eLex.reserved2);
     AddCommand("switch", eLex.reserved2);
     AddCommand("case", eLex.reserved2);
     AddCommand("default", eLex.reserved2);
     AddCommand("break", eLex.reserved);
     AddCommand("try", eLex.reserved);
     AddCommand("catch", eLex.reserved);
     AddCommand("throw", eLex.reserved2);
     AddCommand("toString", eLex.reserved);
     AddCommand("valueOf", eLex.reserved);
     AddCommand("prototype", eLex.reserved);
     AddCommand("constructor", eLex.reserved);
     AddCommand("undefined", eLex.reserved);
     AddCommand("in", eLex.reserved3);
     AddCommand("do", eLex.reserved2);
     AddCommand("while", eLex.reserved2);
     AddCommand("arguments", eLex.reserved);
     AddCommand("length", eLex.reserved);
     AddCommand("versionSearch", eLex.reserved);
     AddCommand("identity", eLex.reserved);
     AddCommand("prop", eLex.reserved);
     AddCommand("versionSearchString", eLex.reserved);
     AddCommand("appVersion", eLex.reserved);
     AddCommand("userAgent", eLex.reserved);
     AddCommand("vendor", eLex.reserved);
     AddCommand("platform", eLex.reserved);
     AddCommand("substring", eLex.reserved);
     AddCommand("searchString", eLex.reserved);
     AddCommand("localStorage", eLex.reserved);
     AddCommand("hasOwnProperty", eLex.reserved);
     AddCommand("g_GameMakerHTML5Dir", eLex.reserved);
     AddCommand("facebookUI", eLex.reserved);
     AddCommand("g_fbAppHomeUrl", eLex.reserved);
     AddCommand("g_fbAppId", eLex.reserved);
     AddCommand("g_fbAppUrl", eLex.reserved);
     AddCommand("g_fbOAuthToken", eLex.reserved);
     AddCommand("navigator", eLex.reserved);
     AddCommand("browser", eLex.reserved);
     AddCommand("dataBrowser", eLex.reserved);
     AddCommand("version", eLex.reserved);
     AddCommand("searchVersion", eLex.reserved);
     AddCommand("dataOS", eLex.reserved);
     AddCommand("protocol", eLex.reserved);
     AddCommand("host", eLex.reserved);
     AddCommand("pathname", eLex.reserved);
     AddCommand("location", eLex.reserved);
     AddCommand("send", eLex.reserved);
     AddCommand("status", eLex.reserved);
     AddCommand("shiftKey", eLex.reserved);
     AddCommand("char", eLex.reserved);
     AddCommand("repeat", eLex.reserved);
     AddCommand("elementFromPoint", eLex.reserved);
     AddCommand("opera", eLex.reserved);
     AddCommand("write", eLex.reserved);
     AddCommand("open", eLex.reserved);
     AddCommand("XMLHttpRequest", eLex.reserved);
     AddCommand("ActiveXObject", eLex.reserved);
     AddCommand("setRequestHeader", eLex.reserved);
     AddCommand("responseText", eLex.reserved);
     AddCommand("XDomainRequest", eLex.reserved);
     AddCommand("status", eLex.reserved);
     AddCommand("ontimeout", eLex.reserved);
     AddCommand("onload", eLex.reserved);
     AddCommand("send", eLex.reserved);
     AddCommand("onreadystatechange", eLex.reserved);
     AddCommand("onerror", eLex.reserved);
     AddCommand("Math", eLex.reserved);
     AddCommand("Array", eLex.reserved);
     AddCommand("Date", eLex.reserved);
     AddCommand("window", eLex.reserved);
     AddCommand("document", eLex.reserved);
     AddCommand("Boolean", eLex.reserved);
     AddCommand("Number", eLex.reserved);
     AddCommand("domain", eLex.reserved);
     AddCommand("MAX_VALUE", eLex.reserved);
     AddCommand("MIN_VALUE", eLex.reserved);
     AddCommand("POSITIVE_INFINITY", eLex.reserved);
     AddCommand("NEGATIVE_INFINITY", eLex.reserved);
     AddCommand("toExponential", eLex.reserved);
     AddCommand("toPrecision", eLex.reserved);
     AddCommand("toFixed", eLex.reserved);
     AddCommand("charAt", eLex.reserved);
     AddCommand("charCodeAt", eLex.reserved);
     AddCommand("fromCharCode", eLex.reserved);
     AddCommand("indexOf", eLex.reserved);
     AddCommand("lastIndexOf", eLex.reserved);
     AddCommand("match", eLex.reserved);
     AddCommand("replace", eLex.reserved);
     AddCommand("search", eLex.reserved);
     AddCommand("split", eLex.reserved);
     AddCommand("substr", eLex.reserved);
     AddCommand("substring", eLex.reserved);
     AddCommand("toLowerCase", eLex.reserved);
     AddCommand("toUpperCase", eLex.reserved);
     AddCommand("anchor", eLex.reserved);
     AddCommand("big", eLex.reserved);
     AddCommand("blink", eLex.reserved);
     AddCommand("bold", eLex.reserved);
     AddCommand("fixed", eLex.reserved);
     AddCommand("fontcolor", eLex.reserved);
     AddCommand("fontsize", eLex.reserved);
     AddCommand("italics", eLex.reserved);
     AddCommand("link", eLex.reserved);
     AddCommand("small", eLex.reserved);
     AddCommand("strike", eLex.reserved);
     AddCommand("sub", eLex.reserved);
     AddCommand("sup", eLex.reserved);
     AddCommand("Infinity", eLex.reserved);
     AddCommand("NaN", eLex.reserved);
     AddCommand("decodeURI", eLex.reserved);
     AddCommand("decodeURIComponent", eLex.reserved);
     AddCommand("encodeURI", eLex.reserved);
     AddCommand("encodeURIComponent", eLex.reserved);
     AddCommand("escape", eLex.reserved);
     AddCommand("eval", eLex.reserved);
     AddCommand("sFinite", eLex.reserved);
     AddCommand("isNaN", eLex.reserved);
     AddCommand("prompt", eLex.reserved);
     AddCommand("parseFloat", eLex.reserved);
     AddCommand("parseInt", eLex.reserved);
     AddCommand("String", eLex.reserved);
     AddCommand("unescape", eLex.reserved);
     AddCommand("setInterval", eLex.reserved);
     AddCommand("JSON", eLex.reserved);
     AddCommand("stringify", eLex.reserved);
     AddCommand("global", eLex.reserved);
     AddCommand("ignoreCase", eLex.reserved);
     AddCommand("lastIndex", eLex.reserved);
     AddCommand("multiline", eLex.reserved);
     AddCommand("source", eLex.reserved);
     AddCommand("compile", eLex.reserved);
     AddCommand("exec", eLex.reserved);
     AddCommand("test", eLex.reserved);
     AddCommand("href ", eLex.reserved);
     AddCommand("button", eLex.reserved);
     AddCommand("pageX", eLex.reserved);
     AddCommand("pageY", eLex.reserved);
     AddCommand("splice", eLex.reserved);
     AddCommand("sort", eLex.reserved);
     AddCommand("concat", eLex.reserved);
     AddCommand("join", eLex.reserved);
     AddCommand("pop", eLex.reserved);
     AddCommand("push", eLex.reserved);
     AddCommand("reverse", eLex.reserved);
     AddCommand("shift", eLex.reserved);
     AddCommand("slice", eLex.reserved);
     AddCommand("nshift", eLex.reserved);
     AddCommand("random", eLex.reserved);
     AddCommand("round", eLex.reserved);
     AddCommand("LN2", eLex.reserved);
     AddCommand("LN10", eLex.reserved);
     AddCommand("LOG2E", eLex.reserved);
     AddCommand("PI", eLex.reserved);
     AddCommand("SQRT1_2", eLex.reserved);
     AddCommand("SQRT2", eLex.reserved);
     AddCommand("abs", eLex.reserved);
     AddCommand("acos", eLex.reserved);
     AddCommand("asin", eLex.reserved);
     AddCommand("atan", eLex.reserved);
     AddCommand("atan2", eLex.reserved);
     AddCommand("ceil", eLex.reserved);
     AddCommand("cos", eLex.reserved);
     AddCommand("exp", eLex.reserved);
     AddCommand("floor", eLex.reserved);
     AddCommand("log", eLex.reserved);
     AddCommand("max", eLex.reserved);
     AddCommand("min", eLex.reserved);
     AddCommand("pow", eLex.reserved);
     AddCommand("sin", eLex.reserved);
     AddCommand("sqrt", eLex.reserved);
     AddCommand("tan", eLex.reserved);
     AddCommand("getDate", eLex.reserved);
     AddCommand("getDay", eLex.reserved);
     AddCommand("getFullYear", eLex.reserved);
     AddCommand("getHours", eLex.reserved);
     AddCommand("getMilliseconds", eLex.reserved);
     AddCommand("getMinutes", eLex.reserved);
     AddCommand("getMonth", eLex.reserved);
     AddCommand("getSeconds", eLex.reserved);
     AddCommand("getTime", eLex.reserved);
     AddCommand("getTimezoneOffset", eLex.reserved);
     AddCommand("getUTCDate", eLex.reserved);
     AddCommand("getUTCDay", eLex.reserved);
     AddCommand("getUTCFullYear", eLex.reserved);
     AddCommand("getUTCHours", eLex.reserved);
     AddCommand("getUTCMilliseconds", eLex.reserved);
     AddCommand("getUTCMinutes", eLex.reserved);
     AddCommand("getUTCMonth", eLex.reserved);
     AddCommand("getUTCSeconds", eLex.reserved);
     AddCommand("parse", eLex.reserved);
     AddCommand("setDate", eLex.reserved);
     AddCommand("setFullYear", eLex.reserved);
     AddCommand("setHours", eLex.reserved);
     AddCommand("setMilliseconds", eLex.reserved);
     AddCommand("setMinutes", eLex.reserved);
     AddCommand("setMonth", eLex.reserved);
     AddCommand("setSeconds", eLex.reserved);
     AddCommand("setTime", eLex.reserved);
     AddCommand("setUTCDate", eLex.reserved);
     AddCommand("setUTCFullYear", eLex.reserved);
     AddCommand("setUTCHours", eLex.reserved);
     AddCommand("setUTCMilliseconds", eLex.reserved);
     AddCommand("setUTCMinutes", eLex.reserved);
     AddCommand("setUTCMonth", eLex.reserved);
     AddCommand("setUTCSeconds", eLex.reserved);
     AddCommand("toDateString", eLex.reserved);
     AddCommand("toLocaleDateString", eLex.reserved);
     AddCommand("toLocaleTimeString", eLex.reserved);
     AddCommand("toLocaleString", eLex.reserved);
     AddCommand("toTimeString", eLex.reserved);
     AddCommand("toUTCString", eLex.reserved);
     AddCommand("UTC", eLex.reserved);
     AddCommand("toDataURL", eLex.reserved);
     AddCommand("ontouchstart", eLex.reserved);
     AddCommand("ontouchmove", eLex.reserved);
     AddCommand("ontouchend", eLex.reserved);
     AddCommand("ontouchcancel", eLex.reserved);
     AddCommand("requestAnimationFrame", eLex.reserved);
     AddCommand("webkitRequestAnimationFrame", eLex.reserved);
     AddCommand("mozRequestAnimationFrame", eLex.reserved);
     AddCommand("oRequestAnimationFrame", eLex.reserved);
     AddCommand("msRequestAnimationFrame", eLex.reserved);
     AddCommand("setTimeout", eLex.reserved);
     AddCommand("onload", eLex.reserved);
     AddCommand("onerror", eLex.reserved);
     AddCommand("requestAnimFrame", eLex.reserved);
     AddCommand("innerWidth", eLex.reserved);
     AddCommand("innerHeight", eLex.reserved);
     AddCommand("console", eLex.reserved);
     AddCommand("which", eLex.reserved);
     AddCommand("Image", eLex.reserved);
     AddCommand("naturalWidth", eLex.reserved);
     AddCommand("naturalHeight", eLex.reserved);
     AddCommand("complete", eLex.reserved);
     AddCommand("crossOrigin", eLex.reserved);
     AddCommand("isMap", eLex.reserved);
     AddCommand("alt", eLex.reserved);
     AddCommand("src", eLex.reserved);
     AddCommand("img", eLex.reserved);
     AddCommand("ismap", eLex.reserved);
     AddCommand("usemap", eLex.reserved);
     AddCommand("title", eLex.reserved);
     AddCommand("figure", eLex.reserved);
     AddCommand("meta", eLex.reserved);
     AddCommand("name", eLex.reserved);
     AddCommand("generator", eLex.reserved);
     AddCommand("data", eLex.reserved);
     AddCommand("mageData", eLex.reserved);
     AddCommand("context", eLex.reserved);
     AddCommand("putImageData", eLex.reserved);
     AddCommand("srcElement", eLex.reserved);
     AddCommand("currentTarget", eLex.reserved);
     AddCommand("cursor", eLex.reserved);
     AddCommand("getElementById", eLex.reserved);
     AddCommand("appendChild", eLex.reserved);
     AddCommand("body", eLex.reserved);
     AddCommand("documentElement", eLex.reserved);
     AddCommand("clientWidth", eLex.reserved);
     AddCommand("clientHeight", eLex.reserved);
     AddCommand("getElementsByTagName", eLex.reserved);
     AddCommand("getAttribute", eLex.reserved);
     AddCommand("target", eLex.reserved);
     AddCommand("createEvent", eLex.reserved);
     AddCommand("initMouseEvent", eLex.reserved);
     AddCommand("dispatchEvent", eLex.reserved);
     AddCommand("event", eLex.reserved);
     AddCommand("preventDefault", eLex.reserved);
     AddCommand("type", eLex.reserved);
     AddCommand("changedTouches", eLex.reserved);
     AddCommand("screenX", eLex.reserved);
     AddCommand("screenY", eLex.reserved);
     AddCommand("clientX", eLex.reserved);
     AddCommand("clientY", eLex.reserved);
     AddCommand("addEventListener", eLex.reserved);
     AddCommand("removeEventListener", eLex.reserved);
     AddCommand("createElement", eLex.reserved);
     AddCommand("onmousemove", eLex.reserved);
     AddCommand("onmousedown", eLex.reserved);
     AddCommand("onmouseup", eLex.reserved);
     AddCommand("onkeydown", eLex.reserved);
     AddCommand("onkeyup", eLex.reserved);
     AddCommand("onfocusin", eLex.reserved);
     AddCommand("onfocusout", eLex.reserved);
     AddCommand("style", eLex.reserved);
     AddCommand("display", eLex.reserved);
     AddCommand("insertBefore", eLex.reserved);
     AddCommand("parent", eLex.reserved);
     AddCommand("parentNode", eLex.reserved);
     AddCommand("removeChild", eLex.reserved);
     AddCommand("frames", eLex.reserved);
     AddCommand("focus", eLex.reserved);
     AddCommand("oncontextmenu", eLex.reserved);
     AddCommand("now", eLex.reserved);
     AddCommand("visibility", eLex.reserved);
     AddCommand("textLength", eLex.reserved);
     AddCommand("setSelectionRange", eLex.reserved);
     AddCommand("alert", eLex.reserved);
     AddCommand("value", eLex.reserved);
     AddCommand("confirm", eLex.reserved);
     AddCommand("nextSibling", eLex.reserved);
     AddCommand("contentWindow", eLex.reserved);
     AddCommand("mozImageSmoothingEnabled", eLex.reserved);
     AddCommand("globalAlpha", eLex.reserved);
     AddCommand("strokeStyle", eLex.reserved);
     AddCommand("fillStyle", eLex.reserved);
     AddCommand("lineStyle", eLex.reserved);
     AddCommand("fillRect", eLex.reserved);
     AddCommand("strokeRect", eLex.reserved);
     AddCommand("getContext", eLex.reserved);
     AddCommand("width", eLex.reserved);
     AddCommand("height", eLex.reserved);
     AddCommand("offsetLeft", eLex.reserved);
     AddCommand("offsetTop", eLex.reserved);
     AddCommand("offsetParent", eLex.reserved);
     AddCommand("drawImage", eLex.reserved);
     AddCommand("left", eLex.reserved);
     AddCommand("position", eLex.reserved);
     AddCommand("beginPath", eLex.reserved);
     AddCommand("arc", eLex.reserved);
     AddCommand("fill", eLex.reserved);
     AddCommand("lineWidth", eLex.reserved);
     AddCommand("moveTo", eLex.reserved);
     AddCommand("lineTo", eLex.reserved);
     AddCommand("stroke", eLex.reserved);
     AddCommand("closePath", eLex.reserved);
     AddCommand("setTransform", eLex.reserved);
     AddCommand("save", eLex.reserved);
     AddCommand("restore", eLex.reserved);
     AddCommand("rect", eLex.reserved);
     AddCommand("transform", eLex.reserved);
     AddCommand("clip", eLex.reserved);
     AddCommand("top", eLex.reserved);
     AddCommand("hanging", eLex.reserved);
     AddCommand("middle", eLex.reserved);
     AddCommand("alphabetic", eLex.reserved);
     AddCommand("ideographic", eLex.reserved);
     AddCommand("bottom", eLex.reserved);
     AddCommand("fillText", eLex.reserved);
     AddCommand("strokeText", eLex.reserved);
     AddCommand("font", eLex.reserved);
     AddCommand("textAlign", eLex.reserved);
     AddCommand("textBaseline", eLex.reserved);
     AddCommand("measureText", eLex.reserved);
     AddCommand("HTMLVideoElement", eLex.reserved);
     AddCommand("HTMLCanvasElement", eLex.reserved);
     AddCommand("HTMLImageElement", eLex.reserved);
     AddCommand("video", eLex.reserved);
     AddCommand("readyState", eLex.reserved);
     AddCommand("onreadystatechange", eLex.reserved);
     AddCommand("CanvasPixelArray", eLex.reserved);
     AddCommand("shadowColor", eLex.reserved);
     AddCommand("shadowOffsetX", eLex.reserved);
     AddCommand("shadowOffsetY", eLex.reserved);
     AddCommand("shadowBlur", eLex.reserved);
     AddCommand("quadraticCurveTo", eLex.reserved);
     AddCommand("bezierCurveTo", eLex.reserved);
     AddCommand("arcTo", eLex.reserved);
     AddCommand("drawSystemFocusRing", eLex.reserved);
     AddCommand("drawCustomFocusRing", eLex.reserved);
     AddCommand("scrollPathIntoView", eLex.reserved);
     AddCommand("isPointInPath", eLex.reserved);
     AddCommand("lineCap", eLex.reserved);
     AddCommand("lineJoin", eLex.reserved);
     AddCommand("miterLimit", eLex.reserved);
     AddCommand("globalCompositeOperation", eLex.reserved);
     AddCommand("CanvasGradient", eLex.reserved);
     AddCommand("CanvasPattern", eLex.reserved);
     AddCommand("TextMetrics", eLex.reserved);
     AddCommand("addColorStop", eLex.reserved);
     AddCommand("createLinearGradient", eLex.reserved);
     AddCommand("createRadialGradient", eLex.reserved);
     AddCommand("createPattern", eLex.reserved);
     AddCommand("toBlob", eLex.reserved);
     AddCommand("setAttribute", eLex.reserved);
     AddCommand("scale", eLex.reserved);
     AddCommand("rotate", eLex.reserved);
     AddCommand("translate", eLex.reserved);
     AddCommand("clearRect", eLex.reserved);
     AddCommand("getImageData", eLex.reserved);
     AddCommand("createImageData", eLex.reserved);
     AddCommand("getter", eLex.reserved);
     AddCommand("setter", eLex.reserved);
     AddCommand("Audio", eLex.reserved);
     AddCommand("controls", eLex.reserved);
     AddCommand("src", eLex.reserved);
     AddCommand("load", eLex.reserved);
     AddCommand("autobuffer", eLex.reserved);
     AddCommand("loop", eLex.reserved);
     AddCommand("preload", eLex.reserved);
     AddCommand("play", eLex.reserved);
     AddCommand("pause", eLex.reserved);
     AddCommand("currentTime", eLex.reserved);
     AddCommand("volume", eLex.reserved);
     AddCommand("cloneNode", eLex.reserved);
     AddCommand("canplaythrough", eLex.reserved);
     AddCommand("error", eLex.reserved);
     AddCommand("onloaddata", eLex.reserved);
     AddCommand("canplay", eLex.reserved);
     AddCommand("canPlayType", eLex.reserved);
     AddCommand("viewportWidth", eLex.reserved);
     AddCommand("viewportHeight", eLex.reserved);
     AddCommand("createShader", eLex.reserved);
     AddCommand("getError", eLex.reserved);
     AddCommand("compileShader", eLex.reserved);
     AddCommand("shaderSource", eLex.reserved);
     AddCommand("getShaderParameter", eLex.reserved);
     AddCommand("attachShader", eLex.reserved);
     AddCommand("VERTEX_SHADER", eLex.reserved);
     AddCommand("FRAGMENT_SHADER", eLex.reserved);
     AddCommand("getShaderInfoLog", eLex.reserved);
     AddCommand("COMPILE_STATUS", eLex.reserved);
     AddCommand("createProgram", eLex.reserved);
     AddCommand("getProgramParameter", eLex.reserved);
     AddCommand("LINK_STATUS", eLex.reserved);
     AddCommand("useProgram", eLex.reserved);
     AddCommand("getUniformLocation", eLex.reserved);
     AddCommand("getAttribLocation", eLex.reserved);
     AddCommand("disable", eLex.reserved);
     AddCommand("CULL_FACE", eLex.reserved);
     AddCommand("createTexture", eLex.reserved);
     AddCommand("bindTexture", eLex.reserved);
     AddCommand("pixelStorei", eLex.reserved);
     AddCommand("TEXTURE_2D", eLex.reserved);
     AddCommand("UNPACK_WEBGL", eLex.reserved);
     AddCommand("RGBA", eLex.reserved);
     AddCommand("UNSIGNED_BYTE", eLex.reserved);
     AddCommand("TEXTURE_MAG_FILTER", eLex.reserved);
     AddCommand("TEXTURE_MIN_FILTER", eLex.reserved);
     AddCommand("NEAREST", eLex.reserved);
     AddCommand("LINEAR", eLex.reserved);
     AddCommand("TEXTURE_WRAP_S", eLex.reserved);
     AddCommand("TEXTURE_WRAP_T", eLex.reserved);
     AddCommand("CLAMP_TO_EDGE", eLex.reserved);
     AddCommand("COLOR_BUFFER_BIT", eLex.reserved);
     AddCommand("DEPTH_BUFFER_BIT", eLex.reserved);
     AddCommand("vertexAttribPointer", eLex.reserved);
     AddCommand("enableVertexAttribArray", eLex.reserved);
     AddCommand("bindBuffer", eLex.reserved);
     AddCommand("ARRAY_BUFFER", eLex.reserved);
     AddCommand("SHORT", eLex.reserved);
     AddCommand("BYTE", eLex.reserved);
     AddCommand("UNSIGNED_BYTE", eLex.reserved);
     AddCommand("FIXED", eLex.reserved);
     AddCommand("FLOAT", eLex.reserved);
     AddCommand("UNSIGNED_SHORT", eLex.reserved);
     AddCommand("uniform2f", eLex.reserved);
     AddCommand("uniform1i", eLex.reserved);
     AddCommand("activeTexture", eLex.reserved);
     AddCommand("clear", eLex.reserved);
     AddCommand("clearColor", eLex.reserved);
     AddCommand("uniformMatrix4fv", eLex.reserved);
     AddCommand("linkProgram", eLex.reserved);
     AddCommand("Int16Array", eLex.reserved);
     AddCommand("Int32Array", eLex.reserved);
     AddCommand("DYNAMIC_DRAW", eLex.reserved);
     AddCommand("Float32Array", eLex.reserved);
     AddCommand("texImage2D", eLex.reserved);
     AddCommand("createBuffer", eLex.reserved);
     AddCommand("texParameteri", eLex.reserved);
     AddCommand("bufferData", eLex.reserved);
     AddCommand("bufferSubData", eLex.reserved);
     AddCommand("enable", eLex.reserved);
     AddCommand("drawArrays", eLex.reserved);
     AddCommand("blendFunc", eLex.reserved);
     AddCommand("SRC_ALPHA", eLex.reserved);
     AddCommand("ONE_MINUS_SRC_ALPHA", eLex.reserved);
     AddCommand("BLEND", eLex.reserved);
     AddCommand("blendFuncSeparate", eLex.reserved);
     AddCommand("ONE", eLex.reserved);
     AddCommand("ZERO", eLex.reserved);
     AddCommand("TEXTURE0", eLex.reserved);
     AddCommand("TEXTURE1", eLex.reserved);
     AddCommand("viewport", eLex.reserved);
     AddCommand("bindFramebuffer", eLex.reserved);
     AddCommand("createFramebuffer", eLex.reserved);
     AddCommand("createRenderbuffer", eLex.reserved);
     AddCommand("bindRenderbuffer", eLex.reserved);
     AddCommand("renderbufferStorage", eLex.reserved);
     AddCommand("framebufferRenderbuffer", eLex.reserved);
     AddCommand("bindFramebuffer", eLex.reserved);
     AddCommand("framebufferTexture2D", eLex.reserved);
     AddCommand("deleteFramebuffer", eLex.reserved);
     AddCommand("deleteRenderbuffer", eLex.reserved);
     AddCommand("deleteTexture", eLex.reserved);
     AddCommand("readPixels", eLex.reserved);
     AddCommand("Uint8Array", eLex.reserved);
     AddCommand("FRAMEBUFFER", eLex.reserved);
     AddCommand("RENDERBUFFER", eLex.reserved);
     AddCommand("DEPTH_COMPONENT16", eLex.reserved);
     AddCommand("COLOR_ATTACHMENT0", eLex.reserved);
     AddCommand("colorMask", eLex.reserved);
     AddCommand("TRIANGLES", eLex.reserved);
     AddCommand("POINTS", eLex.reserved);
     AddCommand("LINE_STRIP", eLex.reserved);
     AddCommand("LINE_LOOP", eLex.reserved);
     AddCommand("TRIANGLE_STRIP", eLex.reserved);
     AddCommand("TRIANGLE_FAN", eLex.reserved);
     AddCommand("LINES", eLex.reserved);
     AddCommand("POINT", eLex.reserved);
     AddCommand("aa_1241_kz", eLex.reserved);
 }