├── .gitignore ├── .jshintrc ├── README.md ├── data └── protected-names.json ├── package.json ├── sample ├── build.js ├── build │ ├── debug.html │ ├── debug.js │ ├── debug_mangled.html │ ├── debug_mangled.js │ ├── game.html │ └── game.zip └── src │ ├── index.html │ ├── js │ └── main.js │ └── style.css └── src ├── compiler.js ├── macros ├── evaluate.js ├── file.js ├── instrument.js ├── matrix.js └── nomangle.js ├── tasks ├── adv-zip.js ├── block.js ├── check-size.js ├── combine.js ├── concat.js ├── constants.js ├── ect.js ├── es6ify.js ├── index.js ├── inject.js ├── label.js ├── load-files.js ├── log.js ├── longer-names.js ├── macro.js ├── mangle.js ├── output.js ├── parallel.js ├── roadroller.js ├── runner.js ├── sequence.js ├── task.js ├── terser.js ├── uglify-css.js ├── uglify-es.js ├── uglify-html.js ├── uglify-js.js ├── watch.js └── zip.js └── util ├── analyze.js ├── encode-number.js └── split.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esversion": 6, 3 | "node": true, 4 | "strict": true, 5 | "undef": true, 6 | "unused": true 7 | } 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JS13K game compiler 2 | 3 | Compiles games and optimizes them more than regular minifiers. 4 | Also allows writing readable code with readable variable names and functions. 5 | 6 | **DO NOT USE FOR REGULAR PROJECTS** 7 | 8 | The script analyzes your source files and looks for common words in order to replace them with much shorter variable names. 9 | 10 | It also creates the zip to submit as well as files for testing. 11 | 12 | ## Installation 13 | 14 | Clone the repository, then run `npm install`. 15 | 16 | ## Usage 17 | 18 | See the `samples/` directory for an example script, as well as its input/output. 19 | 20 | Create a config file, then run it. 21 | -------------------------------------------------------------------------------- /data/protected-names.json: -------------------------------------------------------------------------------- 1 | { 2 | "keywords": [ 3 | "var", 4 | "function", 5 | "if", 6 | "else", 7 | "return", 8 | "while", 9 | "for", 10 | "in", 11 | "this", 12 | "with", 13 | "null", 14 | "undefined", 15 | "true", 16 | "false", 17 | "break", 18 | "new", 19 | "delete", 20 | "switch", 21 | "case", 22 | "default", 23 | "typeof", 24 | "instanceof", 25 | "NaN", 26 | "do", 27 | "throw", 28 | "try", 29 | "catch", 30 | "const", 31 | "let", 32 | "class", 33 | "super", 34 | "extends", 35 | "static" 36 | ], 37 | "dom": [ 38 | "$&", 39 | "$'", 40 | "$*", 41 | "$+", 42 | "$1", 43 | "$2", 44 | "$3", 45 | "$4", 46 | "$5", 47 | "$6", 48 | "$7", 49 | "$8", 50 | "$9", 51 | "$_", 52 | "$`", 53 | "$input", 54 | "@@iterator", 55 | "ABORT_ERR", 56 | "ACTIVE", 57 | "ACTIVE_ATTRIBUTES", 58 | "ACTIVE_TEXTURE", 59 | "ACTIVE_UNIFORMS", 60 | "ADDITION", 61 | "ALIASED_LINE_WIDTH_RANGE", 62 | "ALIASED_POINT_SIZE_RANGE", 63 | "ALLOW_KEYBOARD_INPUT", 64 | "ALLPASS", 65 | "ALPHA", 66 | "ALPHA_BITS", 67 | "ALT_MASK", 68 | "ALWAYS", 69 | "ANY_TYPE", 70 | "ANY_UNORDERED_NODE_TYPE", 71 | "ARRAY_BUFFER", 72 | "ARRAY_BUFFER_BINDING", 73 | "ATTACHED_SHADERS", 74 | "ATTRIBUTE_NODE", 75 | "AT_TARGET", 76 | "AddSearchProvider", 77 | "AnalyserNode", 78 | "AnimationEvent", 79 | "AnonXMLHttpRequest", 80 | "ApplicationCache", 81 | "ApplicationCacheErrorEvent", 82 | "Array", 83 | "ArrayBuffer", 84 | "Attr", 85 | "Audio", 86 | "AudioBuffer", 87 | "AudioBufferSourceNode", 88 | "AudioContext", 89 | "AudioDestinationNode", 90 | "AudioListener", 91 | "AudioNode", 92 | "AudioParam", 93 | "AudioProcessingEvent", 94 | "AudioStreamTrack", 95 | "AutocompleteErrorEvent", 96 | "BACK", 97 | "BAD_BOUNDARYPOINTS_ERR", 98 | "BANDPASS", 99 | "BLEND", 100 | "BLEND_COLOR", 101 | "BLEND_DST_ALPHA", 102 | "BLEND_DST_RGB", 103 | "BLEND_EQUATION", 104 | "BLEND_EQUATION_ALPHA", 105 | "BLEND_EQUATION_RGB", 106 | "BLEND_SRC_ALPHA", 107 | "BLEND_SRC_RGB", 108 | "BLUE_BITS", 109 | "BLUR", 110 | "BOOL", 111 | "BOOLEAN_TYPE", 112 | "BOOL_VEC2", 113 | "BOOL_VEC3", 114 | "BOOL_VEC4", 115 | "BOTH", 116 | "BROWSER_DEFAULT_WEBGL", 117 | "BUBBLING_PHASE", 118 | "BUFFER_SIZE", 119 | "BUFFER_USAGE", 120 | "BYTE", 121 | "BYTES_PER_ELEMENT", 122 | "BarProp", 123 | "BaseHref", 124 | "BatteryManager", 125 | "BeforeLoadEvent", 126 | "BeforeUnloadEvent", 127 | "BiquadFilterNode", 128 | "Blob", 129 | "BlobEvent", 130 | "Boolean", 131 | "CAPTURING_PHASE", 132 | "CCW", 133 | "CDATASection", 134 | "CDATA_SECTION_NODE", 135 | "CHANGE", 136 | "CHARSET_RULE", 137 | "CHECKING", 138 | "CLAMP_TO_EDGE", 139 | "CLICK", 140 | "CLOSED", 141 | "CLOSING", 142 | "COLOR_ATTACHMENT0", 143 | "COLOR_BUFFER_BIT", 144 | "COLOR_CLEAR_VALUE", 145 | "COLOR_WRITEMASK", 146 | "COMMENT_NODE", 147 | "COMPILE_STATUS", 148 | "COMPRESSED_RGBA_S3TC_DXT1_EXT", 149 | "COMPRESSED_RGBA_S3TC_DXT3_EXT", 150 | "COMPRESSED_RGBA_S3TC_DXT5_EXT", 151 | "COMPRESSED_RGB_S3TC_DXT1_EXT", 152 | "COMPRESSED_TEXTURE_FORMATS", 153 | "CONNECTING", 154 | "CONSTANT_ALPHA", 155 | "CONSTANT_COLOR", 156 | "CONSTRAINT_ERR", 157 | "CONTEXT_LOST_WEBGL", 158 | "CONTROL_MASK", 159 | "COUNTER_STYLE_RULE", 160 | "CSS", 161 | "CSS2Properties", 162 | "CSSCharsetRule", 163 | "CSSConditionRule", 164 | "CSSCounterStyleRule", 165 | "CSSFontFaceRule", 166 | "CSSFontFeatureValuesRule", 167 | "CSSGroupingRule", 168 | "CSSImportRule", 169 | "CSSKeyframeRule", 170 | "CSSKeyframesRule", 171 | "CSSMediaRule", 172 | "CSSMozDocumentRule", 173 | "CSSNameSpaceRule", 174 | "CSSPageRule", 175 | "CSSPrimitiveValue", 176 | "CSSRule", 177 | "CSSRuleList", 178 | "CSSStyleDeclaration", 179 | "CSSStyleRule", 180 | "CSSStyleSheet", 181 | "CSSSupportsRule", 182 | "CSSUnknownRule", 183 | "CSSValue", 184 | "CSSValueList", 185 | "CSSVariablesDeclaration", 186 | "CSSVariablesRule", 187 | "CSSViewportRule", 188 | "CSS_ATTR", 189 | "CSS_CM", 190 | "CSS_COUNTER", 191 | "CSS_CUSTOM", 192 | "CSS_DEG", 193 | "CSS_DIMENSION", 194 | "CSS_EMS", 195 | "CSS_EXS", 196 | "CSS_FILTER_BLUR", 197 | "CSS_FILTER_BRIGHTNESS", 198 | "CSS_FILTER_CONTRAST", 199 | "CSS_FILTER_CUSTOM", 200 | "CSS_FILTER_DROP_SHADOW", 201 | "CSS_FILTER_GRAYSCALE", 202 | "CSS_FILTER_HUE_ROTATE", 203 | "CSS_FILTER_INVERT", 204 | "CSS_FILTER_OPACITY", 205 | "CSS_FILTER_REFERENCE", 206 | "CSS_FILTER_SATURATE", 207 | "CSS_FILTER_SEPIA", 208 | "CSS_GRAD", 209 | "CSS_HZ", 210 | "CSS_IDENT", 211 | "CSS_IN", 212 | "CSS_INHERIT", 213 | "CSS_KHZ", 214 | "CSS_MATRIX", 215 | "CSS_MATRIX3D", 216 | "CSS_MM", 217 | "CSS_MS", 218 | "CSS_NUMBER", 219 | "CSS_PC", 220 | "CSS_PERCENTAGE", 221 | "CSS_PERSPECTIVE", 222 | "CSS_PRIMITIVE_VALUE", 223 | "CSS_PT", 224 | "CSS_PX", 225 | "CSS_RAD", 226 | "CSS_RECT", 227 | "CSS_RGBCOLOR", 228 | "CSS_ROTATE", 229 | "CSS_ROTATE3D", 230 | "CSS_ROTATEX", 231 | "CSS_ROTATEY", 232 | "CSS_ROTATEZ", 233 | "CSS_S", 234 | "CSS_SCALE", 235 | "CSS_SCALE3D", 236 | "CSS_SCALEX", 237 | "CSS_SCALEY", 238 | "CSS_SCALEZ", 239 | "CSS_SKEW", 240 | "CSS_SKEWX", 241 | "CSS_SKEWY", 242 | "CSS_STRING", 243 | "CSS_TRANSLATE", 244 | "CSS_TRANSLATE3D", 245 | "CSS_TRANSLATEX", 246 | "CSS_TRANSLATEY", 247 | "CSS_TRANSLATEZ", 248 | "CSS_UNKNOWN", 249 | "CSS_URI", 250 | "CSS_VALUE_LIST", 251 | "CSS_VH", 252 | "CSS_VMAX", 253 | "CSS_VMIN", 254 | "CSS_VW", 255 | "CULL_FACE", 256 | "CULL_FACE_MODE", 257 | "CURRENT_PROGRAM", 258 | "CURRENT_VERTEX_ATTRIB", 259 | "CUSTOM", 260 | "CW", 261 | "CanvasGradient", 262 | "CanvasPattern", 263 | "CanvasRenderingContext2D", 264 | "CaretPosition", 265 | "ChannelMergerNode", 266 | "ChannelSplitterNode", 267 | "CharacterData", 268 | "ClientRect", 269 | "ClientRectList", 270 | "Clipboard", 271 | "ClipboardEvent", 272 | "CloseEvent", 273 | "Collator", 274 | "CommandEvent", 275 | "Comment", 276 | "CompositionEvent", 277 | "Console", 278 | "Controllers", 279 | "ConvolverNode", 280 | "Counter", 281 | "Crypto", 282 | "CryptoKey", 283 | "CustomEvent", 284 | "DATABASE_ERR", 285 | "DATA_CLONE_ERR", 286 | "DATA_ERR", 287 | "DBLCLICK", 288 | "DECR", 289 | "DECR_WRAP", 290 | "DELETE_STATUS", 291 | "DEPTH_ATTACHMENT", 292 | "DEPTH_BITS", 293 | "DEPTH_BUFFER_BIT", 294 | "DEPTH_CLEAR_VALUE", 295 | "DEPTH_COMPONENT", 296 | "DEPTH_COMPONENT16", 297 | "DEPTH_FUNC", 298 | "DEPTH_RANGE", 299 | "DEPTH_STENCIL", 300 | "DEPTH_STENCIL_ATTACHMENT", 301 | "DEPTH_TEST", 302 | "DEPTH_WRITEMASK", 303 | "DIRECTION_DOWN", 304 | "DIRECTION_LEFT", 305 | "DIRECTION_RIGHT", 306 | "DIRECTION_UP", 307 | "DISABLED", 308 | "DISPATCH_REQUEST_ERR", 309 | "DITHER", 310 | "DOCUMENT_FRAGMENT_NODE", 311 | "DOCUMENT_NODE", 312 | "DOCUMENT_POSITION_CONTAINED_BY", 313 | "DOCUMENT_POSITION_CONTAINS", 314 | "DOCUMENT_POSITION_DISCONNECTED", 315 | "DOCUMENT_POSITION_FOLLOWING", 316 | "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC", 317 | "DOCUMENT_POSITION_PRECEDING", 318 | "DOCUMENT_TYPE_NODE", 319 | "DOMCursor", 320 | "DOMError", 321 | "DOMException", 322 | "DOMImplementation", 323 | "DOMImplementationLS", 324 | "DOMMatrix", 325 | "DOMMatrixReadOnly", 326 | "DOMParser", 327 | "DOMPoint", 328 | "DOMPointReadOnly", 329 | "DOMQuad", 330 | "DOMRect", 331 | "DOMRectList", 332 | "DOMRectReadOnly", 333 | "DOMRequest", 334 | "DOMSTRING_SIZE_ERR", 335 | "DOMSettableTokenList", 336 | "DOMStringList", 337 | "DOMStringMap", 338 | "DOMTokenList", 339 | "DOMTransactionEvent", 340 | "DOM_DELTA_LINE", 341 | "DOM_DELTA_PAGE", 342 | "DOM_DELTA_PIXEL", 343 | "DOM_INPUT_METHOD_DROP", 344 | "DOM_INPUT_METHOD_HANDWRITING", 345 | "DOM_INPUT_METHOD_IME", 346 | "DOM_INPUT_METHOD_KEYBOARD", 347 | "DOM_INPUT_METHOD_MULTIMODAL", 348 | "DOM_INPUT_METHOD_OPTION", 349 | "DOM_INPUT_METHOD_PASTE", 350 | "DOM_INPUT_METHOD_SCRIPT", 351 | "DOM_INPUT_METHOD_UNKNOWN", 352 | "DOM_INPUT_METHOD_VOICE", 353 | "DOM_KEY_LOCATION_JOYSTICK", 354 | "DOM_KEY_LOCATION_LEFT", 355 | "DOM_KEY_LOCATION_MOBILE", 356 | "DOM_KEY_LOCATION_NUMPAD", 357 | "DOM_KEY_LOCATION_RIGHT", 358 | "DOM_KEY_LOCATION_STANDARD", 359 | "DOM_VK_0", 360 | "DOM_VK_1", 361 | "DOM_VK_2", 362 | "DOM_VK_3", 363 | "DOM_VK_4", 364 | "DOM_VK_5", 365 | "DOM_VK_6", 366 | "DOM_VK_7", 367 | "DOM_VK_8", 368 | "DOM_VK_9", 369 | "DOM_VK_A", 370 | "DOM_VK_ACCEPT", 371 | "DOM_VK_ADD", 372 | "DOM_VK_ALT", 373 | "DOM_VK_ALTGR", 374 | "DOM_VK_AMPERSAND", 375 | "DOM_VK_ASTERISK", 376 | "DOM_VK_AT", 377 | "DOM_VK_ATTN", 378 | "DOM_VK_B", 379 | "DOM_VK_BACKSPACE", 380 | "DOM_VK_BACK_QUOTE", 381 | "DOM_VK_BACK_SLASH", 382 | "DOM_VK_BACK_SPACE", 383 | "DOM_VK_C", 384 | "DOM_VK_CANCEL", 385 | "DOM_VK_CAPS_LOCK", 386 | "DOM_VK_CIRCUMFLEX", 387 | "DOM_VK_CLEAR", 388 | "DOM_VK_CLOSE_BRACKET", 389 | "DOM_VK_CLOSE_CURLY_BRACKET", 390 | "DOM_VK_CLOSE_PAREN", 391 | "DOM_VK_COLON", 392 | "DOM_VK_COMMA", 393 | "DOM_VK_CONTEXT_MENU", 394 | "DOM_VK_CONTROL", 395 | "DOM_VK_CONVERT", 396 | "DOM_VK_CRSEL", 397 | "DOM_VK_CTRL", 398 | "DOM_VK_D", 399 | "DOM_VK_DECIMAL", 400 | "DOM_VK_DELETE", 401 | "DOM_VK_DIVIDE", 402 | "DOM_VK_DOLLAR", 403 | "DOM_VK_DOUBLE_QUOTE", 404 | "DOM_VK_DOWN", 405 | "DOM_VK_E", 406 | "DOM_VK_EISU", 407 | "DOM_VK_END", 408 | "DOM_VK_ENTER", 409 | "DOM_VK_EQUALS", 410 | "DOM_VK_EREOF", 411 | "DOM_VK_ESCAPE", 412 | "DOM_VK_EXCLAMATION", 413 | "DOM_VK_EXECUTE", 414 | "DOM_VK_EXSEL", 415 | "DOM_VK_F", 416 | "DOM_VK_F1", 417 | "DOM_VK_F10", 418 | "DOM_VK_F11", 419 | "DOM_VK_F12", 420 | "DOM_VK_F13", 421 | "DOM_VK_F14", 422 | "DOM_VK_F15", 423 | "DOM_VK_F16", 424 | "DOM_VK_F17", 425 | "DOM_VK_F18", 426 | "DOM_VK_F19", 427 | "DOM_VK_F2", 428 | "DOM_VK_F20", 429 | "DOM_VK_F21", 430 | "DOM_VK_F22", 431 | "DOM_VK_F23", 432 | "DOM_VK_F24", 433 | "DOM_VK_F25", 434 | "DOM_VK_F26", 435 | "DOM_VK_F27", 436 | "DOM_VK_F28", 437 | "DOM_VK_F29", 438 | "DOM_VK_F3", 439 | "DOM_VK_F30", 440 | "DOM_VK_F31", 441 | "DOM_VK_F32", 442 | "DOM_VK_F33", 443 | "DOM_VK_F34", 444 | "DOM_VK_F35", 445 | "DOM_VK_F36", 446 | "DOM_VK_F4", 447 | "DOM_VK_F5", 448 | "DOM_VK_F6", 449 | "DOM_VK_F7", 450 | "DOM_VK_F8", 451 | "DOM_VK_F9", 452 | "DOM_VK_FINAL", 453 | "DOM_VK_FRONT", 454 | "DOM_VK_G", 455 | "DOM_VK_GREATER_THAN", 456 | "DOM_VK_H", 457 | "DOM_VK_HANGUL", 458 | "DOM_VK_HANJA", 459 | "DOM_VK_HASH", 460 | "DOM_VK_HELP", 461 | "DOM_VK_HK_TOGGLE", 462 | "DOM_VK_HOME", 463 | "DOM_VK_HYPHEN_MINUS", 464 | "DOM_VK_I", 465 | "DOM_VK_INSERT", 466 | "DOM_VK_J", 467 | "DOM_VK_JUNJA", 468 | "DOM_VK_K", 469 | "DOM_VK_KANA", 470 | "DOM_VK_KANJI", 471 | "DOM_VK_L", 472 | "DOM_VK_LEFT", 473 | "DOM_VK_LEFT_TAB", 474 | "DOM_VK_LESS_THAN", 475 | "DOM_VK_M", 476 | "DOM_VK_META", 477 | "DOM_VK_MODECHANGE", 478 | "DOM_VK_MULTIPLY", 479 | "DOM_VK_N", 480 | "DOM_VK_NONCONVERT", 481 | "DOM_VK_NUMPAD0", 482 | "DOM_VK_NUMPAD1", 483 | "DOM_VK_NUMPAD2", 484 | "DOM_VK_NUMPAD3", 485 | "DOM_VK_NUMPAD4", 486 | "DOM_VK_NUMPAD5", 487 | "DOM_VK_NUMPAD6", 488 | "DOM_VK_NUMPAD7", 489 | "DOM_VK_NUMPAD8", 490 | "DOM_VK_NUMPAD9", 491 | "DOM_VK_NUM_LOCK", 492 | "DOM_VK_O", 493 | "DOM_VK_OEM_1", 494 | "DOM_VK_OEM_102", 495 | "DOM_VK_OEM_2", 496 | "DOM_VK_OEM_3", 497 | "DOM_VK_OEM_4", 498 | "DOM_VK_OEM_5", 499 | "DOM_VK_OEM_6", 500 | "DOM_VK_OEM_7", 501 | "DOM_VK_OEM_8", 502 | "DOM_VK_OEM_COMMA", 503 | "DOM_VK_OEM_MINUS", 504 | "DOM_VK_OEM_PERIOD", 505 | "DOM_VK_OEM_PLUS", 506 | "DOM_VK_OPEN_BRACKET", 507 | "DOM_VK_OPEN_CURLY_BRACKET", 508 | "DOM_VK_OPEN_PAREN", 509 | "DOM_VK_P", 510 | "DOM_VK_PA1", 511 | "DOM_VK_PAGEDOWN", 512 | "DOM_VK_PAGEUP", 513 | "DOM_VK_PAGE_DOWN", 514 | "DOM_VK_PAGE_UP", 515 | "DOM_VK_PAUSE", 516 | "DOM_VK_PERCENT", 517 | "DOM_VK_PERIOD", 518 | "DOM_VK_PIPE", 519 | "DOM_VK_PLAY", 520 | "DOM_VK_PLUS", 521 | "DOM_VK_PRINT", 522 | "DOM_VK_PRINTSCREEN", 523 | "DOM_VK_PROCESSKEY", 524 | "DOM_VK_PROPERITES", 525 | "DOM_VK_Q", 526 | "DOM_VK_QUESTION_MARK", 527 | "DOM_VK_QUOTE", 528 | "DOM_VK_R", 529 | "DOM_VK_REDO", 530 | "DOM_VK_RETURN", 531 | "DOM_VK_RIGHT", 532 | "DOM_VK_S", 533 | "DOM_VK_SCROLL_LOCK", 534 | "DOM_VK_SELECT", 535 | "DOM_VK_SEMICOLON", 536 | "DOM_VK_SEPARATOR", 537 | "DOM_VK_SHIFT", 538 | "DOM_VK_SLASH", 539 | "DOM_VK_SLEEP", 540 | "DOM_VK_SPACE", 541 | "DOM_VK_SUBTRACT", 542 | "DOM_VK_T", 543 | "DOM_VK_TAB", 544 | "DOM_VK_TILDE", 545 | "DOM_VK_U", 546 | "DOM_VK_UNDERSCORE", 547 | "DOM_VK_UNDO", 548 | "DOM_VK_UNICODE", 549 | "DOM_VK_UP", 550 | "DOM_VK_V", 551 | "DOM_VK_VOLUME_DOWN", 552 | "DOM_VK_VOLUME_MUTE", 553 | "DOM_VK_VOLUME_UP", 554 | "DOM_VK_W", 555 | "DOM_VK_WIN", 556 | "DOM_VK_WINDOW", 557 | "DOM_VK_WIN_ICO_00", 558 | "DOM_VK_WIN_ICO_CLEAR", 559 | "DOM_VK_WIN_ICO_HELP", 560 | "DOM_VK_WIN_OEM_ATTN", 561 | "DOM_VK_WIN_OEM_AUTO", 562 | "DOM_VK_WIN_OEM_BACKTAB", 563 | "DOM_VK_WIN_OEM_CLEAR", 564 | "DOM_VK_WIN_OEM_COPY", 565 | "DOM_VK_WIN_OEM_CUSEL", 566 | "DOM_VK_WIN_OEM_ENLW", 567 | "DOM_VK_WIN_OEM_FINISH", 568 | "DOM_VK_WIN_OEM_FJ_JISHO", 569 | "DOM_VK_WIN_OEM_FJ_LOYA", 570 | "DOM_VK_WIN_OEM_FJ_MASSHOU", 571 | "DOM_VK_WIN_OEM_FJ_ROYA", 572 | "DOM_VK_WIN_OEM_FJ_TOUROKU", 573 | "DOM_VK_WIN_OEM_JUMP", 574 | "DOM_VK_WIN_OEM_PA1", 575 | "DOM_VK_WIN_OEM_PA2", 576 | "DOM_VK_WIN_OEM_PA3", 577 | "DOM_VK_WIN_OEM_RESET", 578 | "DOM_VK_WIN_OEM_WSCTRL", 579 | "DOM_VK_X", 580 | "DOM_VK_XF86XK_ADD_FAVORITE", 581 | "DOM_VK_XF86XK_APPLICATION_LEFT", 582 | "DOM_VK_XF86XK_APPLICATION_RIGHT", 583 | "DOM_VK_XF86XK_AUDIO_CYCLE_TRACK", 584 | "DOM_VK_XF86XK_AUDIO_FORWARD", 585 | "DOM_VK_XF86XK_AUDIO_LOWER_VOLUME", 586 | "DOM_VK_XF86XK_AUDIO_MEDIA", 587 | "DOM_VK_XF86XK_AUDIO_MUTE", 588 | "DOM_VK_XF86XK_AUDIO_NEXT", 589 | "DOM_VK_XF86XK_AUDIO_PAUSE", 590 | "DOM_VK_XF86XK_AUDIO_PLAY", 591 | "DOM_VK_XF86XK_AUDIO_PREV", 592 | "DOM_VK_XF86XK_AUDIO_RAISE_VOLUME", 593 | "DOM_VK_XF86XK_AUDIO_RANDOM_PLAY", 594 | "DOM_VK_XF86XK_AUDIO_RECORD", 595 | "DOM_VK_XF86XK_AUDIO_REPEAT", 596 | "DOM_VK_XF86XK_AUDIO_REWIND", 597 | "DOM_VK_XF86XK_AUDIO_STOP", 598 | "DOM_VK_XF86XK_AWAY", 599 | "DOM_VK_XF86XK_BACK", 600 | "DOM_VK_XF86XK_BACK_FORWARD", 601 | "DOM_VK_XF86XK_BATTERY", 602 | "DOM_VK_XF86XK_BLUE", 603 | "DOM_VK_XF86XK_BLUETOOTH", 604 | "DOM_VK_XF86XK_BOOK", 605 | "DOM_VK_XF86XK_BRIGHTNESS_ADJUST", 606 | "DOM_VK_XF86XK_CALCULATOR", 607 | "DOM_VK_XF86XK_CALENDAR", 608 | "DOM_VK_XF86XK_CD", 609 | "DOM_VK_XF86XK_CLOSE", 610 | "DOM_VK_XF86XK_COMMUNITY", 611 | "DOM_VK_XF86XK_CONTRAST_ADJUST", 612 | "DOM_VK_XF86XK_COPY", 613 | "DOM_VK_XF86XK_CUT", 614 | "DOM_VK_XF86XK_CYCLE_ANGLE", 615 | "DOM_VK_XF86XK_DISPLAY", 616 | "DOM_VK_XF86XK_DOCUMENTS", 617 | "DOM_VK_XF86XK_DOS", 618 | "DOM_VK_XF86XK_EJECT", 619 | "DOM_VK_XF86XK_EXCEL", 620 | "DOM_VK_XF86XK_EXPLORER", 621 | "DOM_VK_XF86XK_FAVORITES", 622 | "DOM_VK_XF86XK_FINANCE", 623 | "DOM_VK_XF86XK_FORWARD", 624 | "DOM_VK_XF86XK_FRAME_BACK", 625 | "DOM_VK_XF86XK_FRAME_FORWARD", 626 | "DOM_VK_XF86XK_GAME", 627 | "DOM_VK_XF86XK_GO", 628 | "DOM_VK_XF86XK_GREEN", 629 | "DOM_VK_XF86XK_HIBERNATE", 630 | "DOM_VK_XF86XK_HISTORY", 631 | "DOM_VK_XF86XK_HOME_PAGE", 632 | "DOM_VK_XF86XK_HOT_LINKS", 633 | "DOM_VK_XF86XK_I_TOUCH", 634 | "DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN", 635 | "DOM_VK_XF86XK_KBD_BRIGHTNESS_UP", 636 | "DOM_VK_XF86XK_KBD_LIGHT_ON_OFF", 637 | "DOM_VK_XF86XK_LAUNCH0", 638 | "DOM_VK_XF86XK_LAUNCH1", 639 | "DOM_VK_XF86XK_LAUNCH2", 640 | "DOM_VK_XF86XK_LAUNCH3", 641 | "DOM_VK_XF86XK_LAUNCH4", 642 | "DOM_VK_XF86XK_LAUNCH5", 643 | "DOM_VK_XF86XK_LAUNCH6", 644 | "DOM_VK_XF86XK_LAUNCH7", 645 | "DOM_VK_XF86XK_LAUNCH8", 646 | "DOM_VK_XF86XK_LAUNCH9", 647 | "DOM_VK_XF86XK_LAUNCH_A", 648 | "DOM_VK_XF86XK_LAUNCH_B", 649 | "DOM_VK_XF86XK_LAUNCH_C", 650 | "DOM_VK_XF86XK_LAUNCH_D", 651 | "DOM_VK_XF86XK_LAUNCH_E", 652 | "DOM_VK_XF86XK_LAUNCH_F", 653 | "DOM_VK_XF86XK_LIGHT_BULB", 654 | "DOM_VK_XF86XK_LOG_OFF", 655 | "DOM_VK_XF86XK_MAIL", 656 | "DOM_VK_XF86XK_MAIL_FORWARD", 657 | "DOM_VK_XF86XK_MARKET", 658 | "DOM_VK_XF86XK_MEETING", 659 | "DOM_VK_XF86XK_MEMO", 660 | "DOM_VK_XF86XK_MENU_KB", 661 | "DOM_VK_XF86XK_MENU_PB", 662 | "DOM_VK_XF86XK_MESSENGER", 663 | "DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN", 664 | "DOM_VK_XF86XK_MON_BRIGHTNESS_UP", 665 | "DOM_VK_XF86XK_MUSIC", 666 | "DOM_VK_XF86XK_MY_COMPUTER", 667 | "DOM_VK_XF86XK_MY_SITES", 668 | "DOM_VK_XF86XK_NEW", 669 | "DOM_VK_XF86XK_NEWS", 670 | "DOM_VK_XF86XK_OFFICE_HOME", 671 | "DOM_VK_XF86XK_OPEN", 672 | "DOM_VK_XF86XK_OPEN_URL", 673 | "DOM_VK_XF86XK_OPTION", 674 | "DOM_VK_XF86XK_PASTE", 675 | "DOM_VK_XF86XK_PHONE", 676 | "DOM_VK_XF86XK_PICTURES", 677 | "DOM_VK_XF86XK_POWER_DOWN", 678 | "DOM_VK_XF86XK_POWER_OFF", 679 | "DOM_VK_XF86XK_RED", 680 | "DOM_VK_XF86XK_REFRESH", 681 | "DOM_VK_XF86XK_RELOAD", 682 | "DOM_VK_XF86XK_REPLY", 683 | "DOM_VK_XF86XK_ROCKER_DOWN", 684 | "DOM_VK_XF86XK_ROCKER_ENTER", 685 | "DOM_VK_XF86XK_ROCKER_UP", 686 | "DOM_VK_XF86XK_ROTATE_WINDOWS", 687 | "DOM_VK_XF86XK_ROTATION_KB", 688 | "DOM_VK_XF86XK_ROTATION_PB", 689 | "DOM_VK_XF86XK_SAVE", 690 | "DOM_VK_XF86XK_SCREEN_SAVER", 691 | "DOM_VK_XF86XK_SCROLL_CLICK", 692 | "DOM_VK_XF86XK_SCROLL_DOWN", 693 | "DOM_VK_XF86XK_SCROLL_UP", 694 | "DOM_VK_XF86XK_SEARCH", 695 | "DOM_VK_XF86XK_SEND", 696 | "DOM_VK_XF86XK_SHOP", 697 | "DOM_VK_XF86XK_SPELL", 698 | "DOM_VK_XF86XK_SPLIT_SCREEN", 699 | "DOM_VK_XF86XK_STANDBY", 700 | "DOM_VK_XF86XK_START", 701 | "DOM_VK_XF86XK_STOP", 702 | "DOM_VK_XF86XK_SUBTITLE", 703 | "DOM_VK_XF86XK_SUPPORT", 704 | "DOM_VK_XF86XK_SUSPEND", 705 | "DOM_VK_XF86XK_TASK_PANE", 706 | "DOM_VK_XF86XK_TERMINAL", 707 | "DOM_VK_XF86XK_TIME", 708 | "DOM_VK_XF86XK_TOOLS", 709 | "DOM_VK_XF86XK_TOP_MENU", 710 | "DOM_VK_XF86XK_TO_DO_LIST", 711 | "DOM_VK_XF86XK_TRAVEL", 712 | "DOM_VK_XF86XK_USER1KB", 713 | "DOM_VK_XF86XK_USER2KB", 714 | "DOM_VK_XF86XK_USER_PB", 715 | "DOM_VK_XF86XK_UWB", 716 | "DOM_VK_XF86XK_VENDOR_HOME", 717 | "DOM_VK_XF86XK_VIDEO", 718 | "DOM_VK_XF86XK_VIEW", 719 | "DOM_VK_XF86XK_WAKE_UP", 720 | "DOM_VK_XF86XK_WEB_CAM", 721 | "DOM_VK_XF86XK_WHEEL_BUTTON", 722 | "DOM_VK_XF86XK_WLAN", 723 | "DOM_VK_XF86XK_WORD", 724 | "DOM_VK_XF86XK_WWW", 725 | "DOM_VK_XF86XK_XFER", 726 | "DOM_VK_XF86XK_YELLOW", 727 | "DOM_VK_XF86XK_ZOOM_IN", 728 | "DOM_VK_XF86XK_ZOOM_OUT", 729 | "DOM_VK_Y", 730 | "DOM_VK_Z", 731 | "DOM_VK_ZOOM", 732 | "DONE", 733 | "DONT_CARE", 734 | "DOWNLOADING", 735 | "DRAGDROP", 736 | "DST_ALPHA", 737 | "DST_COLOR", 738 | "DYNAMIC_DRAW", 739 | "DataChannel", 740 | "DataTransfer", 741 | "DataTransferItem", 742 | "DataTransferItemList", 743 | "DataView", 744 | "Date", 745 | "DateTimeFormat", 746 | "DelayNode", 747 | "DesktopNotification", 748 | "DesktopNotificationCenter", 749 | "DeviceLightEvent", 750 | "DeviceMotionEvent", 751 | "DeviceOrientationEvent", 752 | "DeviceProximityEvent", 753 | "DeviceStorage", 754 | "DeviceStorageChangeEvent", 755 | "Document", 756 | "DocumentFragment", 757 | "DocumentType", 758 | "DragEvent", 759 | "DynamicsCompressorNode", 760 | "E", 761 | "ELEMENT_ARRAY_BUFFER", 762 | "ELEMENT_ARRAY_BUFFER_BINDING", 763 | "ELEMENT_NODE", 764 | "EMPTY", 765 | "ENCODING_ERR", 766 | "ENDED", 767 | "END_TO_END", 768 | "END_TO_START", 769 | "ENTITY_NODE", 770 | "ENTITY_REFERENCE_NODE", 771 | "EPSILON", 772 | "EQUAL", 773 | "EQUALPOWER", 774 | "ERROR", 775 | "EXPONENTIAL_DISTANCE", 776 | "Element", 777 | "ElementQuery", 778 | "Entity", 779 | "EntityReference", 780 | "Error", 781 | "ErrorEvent", 782 | "EvalError", 783 | "Event", 784 | "EventException", 785 | "EventSource", 786 | "EventTarget", 787 | "External", 788 | "FASTEST", 789 | "FIDOSDK", 790 | "FILTER_ACCEPT", 791 | "FILTER_INTERRUPT", 792 | "FILTER_REJECT", 793 | "FILTER_SKIP", 794 | "FINISHED_STATE", 795 | "FIRST_ORDERED_NODE_TYPE", 796 | "FLOAT", 797 | "FLOAT_MAT2", 798 | "FLOAT_MAT3", 799 | "FLOAT_MAT4", 800 | "FLOAT_VEC2", 801 | "FLOAT_VEC3", 802 | "FLOAT_VEC4", 803 | "FOCUS", 804 | "FONT_FACE_RULE", 805 | "FONT_FEATURE_VALUES_RULE", 806 | "FRAGMENT_SHADER", 807 | "FRAGMENT_SHADER_DERIVATIVE_HINT_OES", 808 | "FRAMEBUFFER", 809 | "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", 810 | "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", 811 | "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", 812 | "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", 813 | "FRAMEBUFFER_BINDING", 814 | "FRAMEBUFFER_COMPLETE", 815 | "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", 816 | "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", 817 | "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", 818 | "FRAMEBUFFER_UNSUPPORTED", 819 | "FRONT", 820 | "FRONT_AND_BACK", 821 | "FRONT_FACE", 822 | "FUNC_ADD", 823 | "FUNC_REVERSE_SUBTRACT", 824 | "FUNC_SUBTRACT", 825 | "Feed", 826 | "FeedEntry", 827 | "File", 828 | "FileError", 829 | "FileList", 830 | "FileReader", 831 | "FindInPage", 832 | "Float32Array", 833 | "Float64Array", 834 | "FocusEvent", 835 | "FontFace", 836 | "FormData", 837 | "Function", 838 | "GENERATE_MIPMAP_HINT", 839 | "GEQUAL", 840 | "GREATER", 841 | "GREEN_BITS", 842 | "GainNode", 843 | "Gamepad", 844 | "GamepadButton", 845 | "GamepadEvent", 846 | "GestureEvent", 847 | "HAVE_CURRENT_DATA", 848 | "HAVE_ENOUGH_DATA", 849 | "HAVE_FUTURE_DATA", 850 | "HAVE_METADATA", 851 | "HAVE_NOTHING", 852 | "HEADERS_RECEIVED", 853 | "HIDDEN", 854 | "HIERARCHY_REQUEST_ERR", 855 | "HIGHPASS", 856 | "HIGHSHELF", 857 | "HIGH_FLOAT", 858 | "HIGH_INT", 859 | "HORIZONTAL", 860 | "HORIZONTAL_AXIS", 861 | "HRTF", 862 | "HTMLAllCollection", 863 | "HTMLAnchorElement", 864 | "HTMLAppletElement", 865 | "HTMLAreaElement", 866 | "HTMLAudioElement", 867 | "HTMLBRElement", 868 | "HTMLBaseElement", 869 | "HTMLBaseFontElement", 870 | "HTMLBlockquoteElement", 871 | "HTMLBodyElement", 872 | "HTMLButtonElement", 873 | "HTMLCanvasElement", 874 | "HTMLCollection", 875 | "HTMLCommandElement", 876 | "HTMLContentElement", 877 | "HTMLDListElement", 878 | "HTMLDataElement", 879 | "HTMLDataListElement", 880 | "HTMLDetailsElement", 881 | "HTMLDialogElement", 882 | "HTMLDirectoryElement", 883 | "HTMLDivElement", 884 | "HTMLDocument", 885 | "HTMLElement", 886 | "HTMLEmbedElement", 887 | "HTMLFieldSetElement", 888 | "HTMLFontElement", 889 | "HTMLFormControlsCollection", 890 | "HTMLFormElement", 891 | "HTMLFrameElement", 892 | "HTMLFrameSetElement", 893 | "HTMLHRElement", 894 | "HTMLHeadElement", 895 | "HTMLHeadingElement", 896 | "HTMLHtmlElement", 897 | "HTMLIFrameElement", 898 | "HTMLImageElement", 899 | "HTMLInputElement", 900 | "HTMLIsIndexElement", 901 | "HTMLKeygenElement", 902 | "HTMLLIElement", 903 | "HTMLLabelElement", 904 | "HTMLLegendElement", 905 | "HTMLLinkElement", 906 | "HTMLMapElement", 907 | "HTMLMarqueeElement", 908 | "HTMLMediaElement", 909 | "HTMLMenuElement", 910 | "HTMLMenuItemElement", 911 | "HTMLMetaElement", 912 | "HTMLMeterElement", 913 | "HTMLModElement", 914 | "HTMLOListElement", 915 | "HTMLObjectElement", 916 | "HTMLOptGroupElement", 917 | "HTMLOptionElement", 918 | "HTMLOptionsCollection", 919 | "HTMLOutputElement", 920 | "HTMLParagraphElement", 921 | "HTMLParamElement", 922 | "HTMLPictureElement", 923 | "HTMLPreElement", 924 | "HTMLProgressElement", 925 | "HTMLPropertiesCollection", 926 | "HTMLQuoteElement", 927 | "HTMLScriptElement", 928 | "HTMLSelectElement", 929 | "HTMLShadowElement", 930 | "HTMLSourceElement", 931 | "HTMLSpanElement", 932 | "HTMLStyleElement", 933 | "HTMLTableCaptionElement", 934 | "HTMLTableCellElement", 935 | "HTMLTableColElement", 936 | "HTMLTableElement", 937 | "HTMLTableRowElement", 938 | "HTMLTableSectionElement", 939 | "HTMLTemplateElement", 940 | "HTMLTextAreaElement", 941 | "HTMLTimeElement", 942 | "HTMLTitleElement", 943 | "HTMLTrackElement", 944 | "HTMLUListElement", 945 | "HTMLUnknownElement", 946 | "HTMLVideoElement", 947 | "HashChangeEvent", 948 | "Headers", 949 | "History", 950 | "ICE_CHECKING", 951 | "ICE_CLOSED", 952 | "ICE_COMPLETED", 953 | "ICE_CONNECTED", 954 | "ICE_FAILED", 955 | "ICE_GATHERING", 956 | "ICE_WAITING", 957 | "IDBCursor", 958 | "IDBCursorWithValue", 959 | "IDBDatabase", 960 | "IDBDatabaseException", 961 | "IDBFactory", 962 | "IDBFileHandle", 963 | "IDBFileRequest", 964 | "IDBIndex", 965 | "IDBKeyRange", 966 | "IDBMutableFile", 967 | "IDBObjectStore", 968 | "IDBOpenDBRequest", 969 | "IDBRequest", 970 | "IDBTransaction", 971 | "IDBVersionChangeEvent", 972 | "IDLE", 973 | "IMPLEMENTATION_COLOR_READ_FORMAT", 974 | "IMPLEMENTATION_COLOR_READ_TYPE", 975 | "IMPORT_RULE", 976 | "INCR", 977 | "INCR_WRAP", 978 | "INDEX_SIZE_ERR", 979 | "INT", 980 | "INT_VEC2", 981 | "INT_VEC3", 982 | "INT_VEC4", 983 | "INUSE_ATTRIBUTE_ERR", 984 | "INVALID_ACCESS_ERR", 985 | "INVALID_CHARACTER_ERR", 986 | "INVALID_ENUM", 987 | "INVALID_EXPRESSION_ERR", 988 | "INVALID_FRAMEBUFFER_OPERATION", 989 | "INVALID_MODIFICATION_ERR", 990 | "INVALID_NODE_TYPE_ERR", 991 | "INVALID_OPERATION", 992 | "INVALID_STATE_ERR", 993 | "INVALID_VALUE", 994 | "INVERSE_DISTANCE", 995 | "INVERT", 996 | "IceCandidate", 997 | "Image", 998 | "ImageBitmap", 999 | "ImageData", 1000 | "Infinity", 1001 | "InputEvent", 1002 | "InputMethodContext", 1003 | "InstallTrigger", 1004 | "Int16Array", 1005 | "Int32Array", 1006 | "Int8Array", 1007 | "Intent", 1008 | "InternalError", 1009 | "Intl", 1010 | "IsSearchProviderInstalled", 1011 | "Iterator", 1012 | "JSON", 1013 | "KEEP", 1014 | "KEYDOWN", 1015 | "KEYFRAMES_RULE", 1016 | "KEYFRAME_RULE", 1017 | "KEYPRESS", 1018 | "KEYUP", 1019 | "KeyEvent", 1020 | "KeyboardEvent", 1021 | "LENGTHADJUST_SPACING", 1022 | "LENGTHADJUST_SPACINGANDGLYPHS", 1023 | "LENGTHADJUST_UNKNOWN", 1024 | "LEQUAL", 1025 | "LESS", 1026 | "LINEAR", 1027 | "LINEAR_DISTANCE", 1028 | "LINEAR_MIPMAP_LINEAR", 1029 | "LINEAR_MIPMAP_NEAREST", 1030 | "LINES", 1031 | "LINE_LOOP", 1032 | "LINE_STRIP", 1033 | "LINE_WIDTH", 1034 | "LINK_STATUS", 1035 | "LIVE", 1036 | "LN10", 1037 | "LN2", 1038 | "LOADED", 1039 | "LOADING", 1040 | "LOG10E", 1041 | "LOG2E", 1042 | "LOWPASS", 1043 | "LOWSHELF", 1044 | "LOW_FLOAT", 1045 | "LOW_INT", 1046 | "LSException", 1047 | "LSParserFilter", 1048 | "LUMINANCE", 1049 | "LUMINANCE_ALPHA", 1050 | "LocalMediaStream", 1051 | "Location", 1052 | "MAX_COMBINED_TEXTURE_IMAGE_UNITS", 1053 | "MAX_CUBE_MAP_TEXTURE_SIZE", 1054 | "MAX_FRAGMENT_UNIFORM_VECTORS", 1055 | "MAX_RENDERBUFFER_SIZE", 1056 | "MAX_SAFE_INTEGER", 1057 | "MAX_TEXTURE_IMAGE_UNITS", 1058 | "MAX_TEXTURE_MAX_ANISOTROPY_EXT", 1059 | "MAX_TEXTURE_SIZE", 1060 | "MAX_VALUE", 1061 | "MAX_VARYING_VECTORS", 1062 | "MAX_VERTEX_ATTRIBS", 1063 | "MAX_VERTEX_TEXTURE_IMAGE_UNITS", 1064 | "MAX_VERTEX_UNIFORM_VECTORS", 1065 | "MAX_VIEWPORT_DIMS", 1066 | "MEDIA_ERR_ABORTED", 1067 | "MEDIA_ERR_DECODE", 1068 | "MEDIA_ERR_ENCRYPTED", 1069 | "MEDIA_ERR_NETWORK", 1070 | "MEDIA_ERR_SRC_NOT_SUPPORTED", 1071 | "MEDIA_KEYERR_CLIENT", 1072 | "MEDIA_KEYERR_DOMAIN", 1073 | "MEDIA_KEYERR_HARDWARECHANGE", 1074 | "MEDIA_KEYERR_OUTPUT", 1075 | "MEDIA_KEYERR_SERVICE", 1076 | "MEDIA_KEYERR_UNKNOWN", 1077 | "MEDIA_RULE", 1078 | "MEDIUM_FLOAT", 1079 | "MEDIUM_INT", 1080 | "META_MASK", 1081 | "MIN_SAFE_INTEGER", 1082 | "MIN_VALUE", 1083 | "MIRRORED_REPEAT", 1084 | "MODE_ASYNCHRONOUS", 1085 | "MODE_SYNCHRONOUS", 1086 | "MODIFICATION", 1087 | "MOUSEDOWN", 1088 | "MOUSEDRAG", 1089 | "MOUSEMOVE", 1090 | "MOUSEOUT", 1091 | "MOUSEOVER", 1092 | "MOUSEUP", 1093 | "MOZ_KEYFRAMES_RULE", 1094 | "MOZ_KEYFRAME_RULE", 1095 | "MOZ_SOURCE_CURSOR", 1096 | "MOZ_SOURCE_ERASER", 1097 | "MOZ_SOURCE_KEYBOARD", 1098 | "MOZ_SOURCE_MOUSE", 1099 | "MOZ_SOURCE_PEN", 1100 | "MOZ_SOURCE_TOUCH", 1101 | "MOZ_SOURCE_UNKNOWN", 1102 | "MSGESTURE_FLAG_BEGIN", 1103 | "MSGESTURE_FLAG_CANCEL", 1104 | "MSGESTURE_FLAG_END", 1105 | "MSGESTURE_FLAG_INERTIA", 1106 | "MSGESTURE_FLAG_NONE", 1107 | "MSPOINTER_TYPE_MOUSE", 1108 | "MSPOINTER_TYPE_PEN", 1109 | "MSPOINTER_TYPE_TOUCH", 1110 | "MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE", 1111 | "MS_ASYNC_CALLBACK_STATUS_CANCEL", 1112 | "MS_ASYNC_CALLBACK_STATUS_CHOOSEANY", 1113 | "MS_ASYNC_CALLBACK_STATUS_ERROR", 1114 | "MS_ASYNC_CALLBACK_STATUS_JOIN", 1115 | "MS_ASYNC_OP_STATUS_CANCELED", 1116 | "MS_ASYNC_OP_STATUS_ERROR", 1117 | "MS_ASYNC_OP_STATUS_SUCCESS", 1118 | "MS_MANIPULATION_STATE_ACTIVE", 1119 | "MS_MANIPULATION_STATE_CANCELLED", 1120 | "MS_MANIPULATION_STATE_COMMITTED", 1121 | "MS_MANIPULATION_STATE_DRAGGING", 1122 | "MS_MANIPULATION_STATE_INERTIA", 1123 | "MS_MANIPULATION_STATE_PRESELECT", 1124 | "MS_MANIPULATION_STATE_SELECTING", 1125 | "MS_MANIPULATION_STATE_STOPPED", 1126 | "MS_MEDIA_ERR_ENCRYPTED", 1127 | "MS_MEDIA_KEYERR_CLIENT", 1128 | "MS_MEDIA_KEYERR_DOMAIN", 1129 | "MS_MEDIA_KEYERR_HARDWARECHANGE", 1130 | "MS_MEDIA_KEYERR_OUTPUT", 1131 | "MS_MEDIA_KEYERR_SERVICE", 1132 | "MS_MEDIA_KEYERR_UNKNOWN", 1133 | "Map", 1134 | "Math", 1135 | "MediaController", 1136 | "MediaDevices", 1137 | "MediaElementAudioSourceNode", 1138 | "MediaEncryptedEvent", 1139 | "MediaError", 1140 | "MediaKeyError", 1141 | "MediaKeyEvent", 1142 | "MediaKeyMessageEvent", 1143 | "MediaKeyNeededEvent", 1144 | "MediaKeySession", 1145 | "MediaKeyStatusMap", 1146 | "MediaKeySystemAccess", 1147 | "MediaKeys", 1148 | "MediaList", 1149 | "MediaQueryList", 1150 | "MediaQueryListEvent", 1151 | "MediaRecorder", 1152 | "MediaSource", 1153 | "MediaStream", 1154 | "MediaStreamAudioDestinationNode", 1155 | "MediaStreamAudioSourceNode", 1156 | "MediaStreamEvent", 1157 | "MediaStreamTrack", 1158 | "MediaStreamTrackEvent", 1159 | "MessageChannel", 1160 | "MessageEvent", 1161 | "MessagePort", 1162 | "Methods", 1163 | "MimeType", 1164 | "MimeTypeArray", 1165 | "MouseEvent", 1166 | "MouseScrollEvent", 1167 | "MozAnimation", 1168 | "MozAnimationDelay", 1169 | "MozAnimationDirection", 1170 | "MozAnimationDuration", 1171 | "MozAnimationFillMode", 1172 | "MozAnimationIterationCount", 1173 | "MozAnimationName", 1174 | "MozAnimationPlayState", 1175 | "MozAnimationTimingFunction", 1176 | "MozAppearance", 1177 | "MozBackfaceVisibility", 1178 | "MozBinding", 1179 | "MozBorderBottomColors", 1180 | "MozBorderEnd", 1181 | "MozBorderEndColor", 1182 | "MozBorderEndStyle", 1183 | "MozBorderEndWidth", 1184 | "MozBorderImage", 1185 | "MozBorderLeftColors", 1186 | "MozBorderRightColors", 1187 | "MozBorderStart", 1188 | "MozBorderStartColor", 1189 | "MozBorderStartStyle", 1190 | "MozBorderStartWidth", 1191 | "MozBorderTopColors", 1192 | "MozBoxAlign", 1193 | "MozBoxDirection", 1194 | "MozBoxFlex", 1195 | "MozBoxOrdinalGroup", 1196 | "MozBoxOrient", 1197 | "MozBoxPack", 1198 | "MozBoxSizing", 1199 | "MozCSSKeyframeRule", 1200 | "MozCSSKeyframesRule", 1201 | "MozColumnCount", 1202 | "MozColumnFill", 1203 | "MozColumnGap", 1204 | "MozColumnRule", 1205 | "MozColumnRuleColor", 1206 | "MozColumnRuleStyle", 1207 | "MozColumnRuleWidth", 1208 | "MozColumnWidth", 1209 | "MozColumns", 1210 | "MozContactChangeEvent", 1211 | "MozFloatEdge", 1212 | "MozFontFeatureSettings", 1213 | "MozFontLanguageOverride", 1214 | "MozForceBrokenImageIcon", 1215 | "MozHyphens", 1216 | "MozImageRegion", 1217 | "MozMarginEnd", 1218 | "MozMarginStart", 1219 | "MozMmsEvent", 1220 | "MozMmsMessage", 1221 | "MozMobileMessageThread", 1222 | "MozOSXFontSmoothing", 1223 | "MozOrient", 1224 | "MozOutlineRadius", 1225 | "MozOutlineRadiusBottomleft", 1226 | "MozOutlineRadiusBottomright", 1227 | "MozOutlineRadiusTopleft", 1228 | "MozOutlineRadiusTopright", 1229 | "MozPaddingEnd", 1230 | "MozPaddingStart", 1231 | "MozPerspective", 1232 | "MozPerspectiveOrigin", 1233 | "MozPowerManager", 1234 | "MozSettingsEvent", 1235 | "MozSmsEvent", 1236 | "MozSmsMessage", 1237 | "MozStackSizing", 1238 | "MozTabSize", 1239 | "MozTextAlignLast", 1240 | "MozTextDecorationColor", 1241 | "MozTextDecorationLine", 1242 | "MozTextDecorationStyle", 1243 | "MozTextSizeAdjust", 1244 | "MozTransform", 1245 | "MozTransformOrigin", 1246 | "MozTransformStyle", 1247 | "MozTransition", 1248 | "MozTransitionDelay", 1249 | "MozTransitionDuration", 1250 | "MozTransitionProperty", 1251 | "MozTransitionTimingFunction", 1252 | "MozUserFocus", 1253 | "MozUserInput", 1254 | "MozUserModify", 1255 | "MozUserSelect", 1256 | "MozWindowDragging", 1257 | "MozWindowShadow", 1258 | "MutationEvent", 1259 | "MutationObserver", 1260 | "MutationRecord", 1261 | "NAMESPACE_ERR", 1262 | "NAMESPACE_RULE", 1263 | "NEAREST", 1264 | "NEAREST_MIPMAP_LINEAR", 1265 | "NEAREST_MIPMAP_NEAREST", 1266 | "NEGATIVE_INFINITY", 1267 | "NETWORK_EMPTY", 1268 | "NETWORK_ERR", 1269 | "NETWORK_IDLE", 1270 | "NETWORK_LOADED", 1271 | "NETWORK_LOADING", 1272 | "NETWORK_NO_SOURCE", 1273 | "NEVER", 1274 | "NEW", 1275 | "NEXT", 1276 | "NEXT_NO_DUPLICATE", 1277 | "NICEST", 1278 | "NODE_AFTER", 1279 | "NODE_BEFORE", 1280 | "NODE_BEFORE_AND_AFTER", 1281 | "NODE_INSIDE", 1282 | "NONE", 1283 | "NON_TRANSIENT_ERR", 1284 | "NOTATION_NODE", 1285 | "NOTCH", 1286 | "NOTEQUAL", 1287 | "NOT_ALLOWED_ERR", 1288 | "NOT_FOUND_ERR", 1289 | "NOT_READABLE_ERR", 1290 | "NOT_SUPPORTED_ERR", 1291 | "NO_DATA_ALLOWED_ERR", 1292 | "NO_ERR", 1293 | "NO_ERROR", 1294 | "NO_MODIFICATION_ALLOWED_ERR", 1295 | "NUMBER_TYPE", 1296 | "NUM_COMPRESSED_TEXTURE_FORMATS", 1297 | "NaN", 1298 | "NamedNodeMap", 1299 | "Navigator", 1300 | "NearbyLinks", 1301 | "NetworkInformation", 1302 | "Node", 1303 | "NodeFilter", 1304 | "NodeIterator", 1305 | "NodeList", 1306 | "Notation", 1307 | "Notification", 1308 | "NotifyPaintEvent", 1309 | "Number", 1310 | "NumberFormat", 1311 | "OBSOLETE", 1312 | "ONE", 1313 | "ONE_MINUS_CONSTANT_ALPHA", 1314 | "ONE_MINUS_CONSTANT_COLOR", 1315 | "ONE_MINUS_DST_ALPHA", 1316 | "ONE_MINUS_DST_COLOR", 1317 | "ONE_MINUS_SRC_ALPHA", 1318 | "ONE_MINUS_SRC_COLOR", 1319 | "OPEN", 1320 | "OPENED", 1321 | "OPENING", 1322 | "ORDERED_NODE_ITERATOR_TYPE", 1323 | "ORDERED_NODE_SNAPSHOT_TYPE", 1324 | "OUT_OF_MEMORY", 1325 | "Object", 1326 | "OfflineAudioCompletionEvent", 1327 | "OfflineAudioContext", 1328 | "OfflineResourceList", 1329 | "Option", 1330 | "OscillatorNode", 1331 | "OverflowEvent", 1332 | "PACK_ALIGNMENT", 1333 | "PAGE_RULE", 1334 | "PARSE_ERR", 1335 | "PATHSEG_ARC_ABS", 1336 | "PATHSEG_ARC_REL", 1337 | "PATHSEG_CLOSEPATH", 1338 | "PATHSEG_CURVETO_CUBIC_ABS", 1339 | "PATHSEG_CURVETO_CUBIC_REL", 1340 | "PATHSEG_CURVETO_CUBIC_SMOOTH_ABS", 1341 | "PATHSEG_CURVETO_CUBIC_SMOOTH_REL", 1342 | "PATHSEG_CURVETO_QUADRATIC_ABS", 1343 | "PATHSEG_CURVETO_QUADRATIC_REL", 1344 | "PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS", 1345 | "PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL", 1346 | "PATHSEG_LINETO_ABS", 1347 | "PATHSEG_LINETO_HORIZONTAL_ABS", 1348 | "PATHSEG_LINETO_HORIZONTAL_REL", 1349 | "PATHSEG_LINETO_REL", 1350 | "PATHSEG_LINETO_VERTICAL_ABS", 1351 | "PATHSEG_LINETO_VERTICAL_REL", 1352 | "PATHSEG_MOVETO_ABS", 1353 | "PATHSEG_MOVETO_REL", 1354 | "PATHSEG_UNKNOWN", 1355 | "PATH_EXISTS_ERR", 1356 | "PEAKING", 1357 | "PERMISSION_DENIED", 1358 | "PERSISTENT", 1359 | "PI", 1360 | "PLAYING_STATE", 1361 | "POINTS", 1362 | "POLYGON_OFFSET_FACTOR", 1363 | "POLYGON_OFFSET_FILL", 1364 | "POLYGON_OFFSET_UNITS", 1365 | "POSITION_UNAVAILABLE", 1366 | "POSITIVE_INFINITY", 1367 | "PREV", 1368 | "PREV_NO_DUPLICATE", 1369 | "PROCESSING_INSTRUCTION_NODE", 1370 | "PageChangeEvent", 1371 | "PageTransitionEvent", 1372 | "PaintRequest", 1373 | "PaintRequestList", 1374 | "PannerNode", 1375 | "Path2D", 1376 | "Performance", 1377 | "PerformanceEntry", 1378 | "PerformanceMark", 1379 | "PerformanceMeasure", 1380 | "PerformanceNavigation", 1381 | "PerformanceResourceTiming", 1382 | "PerformanceTiming", 1383 | "PeriodicWave", 1384 | "Plugin", 1385 | "PluginArray", 1386 | "PopStateEvent", 1387 | "PopupBlockedEvent", 1388 | "ProcessingInstruction", 1389 | "ProgressEvent", 1390 | "Promise", 1391 | "PropertyNodeList", 1392 | "Proxy", 1393 | "PushManager", 1394 | "PushSubscription", 1395 | "Q", 1396 | "QUOTA_ERR", 1397 | "QUOTA_EXCEEDED_ERR", 1398 | "QueryInterface", 1399 | "READ_ONLY", 1400 | "READ_ONLY_ERR", 1401 | "READ_WRITE", 1402 | "RED_BITS", 1403 | "REMOVAL", 1404 | "RENDERBUFFER", 1405 | "RENDERBUFFER_ALPHA_SIZE", 1406 | "RENDERBUFFER_BINDING", 1407 | "RENDERBUFFER_BLUE_SIZE", 1408 | "RENDERBUFFER_DEPTH_SIZE", 1409 | "RENDERBUFFER_GREEN_SIZE", 1410 | "RENDERBUFFER_HEIGHT", 1411 | "RENDERBUFFER_INTERNAL_FORMAT", 1412 | "RENDERBUFFER_RED_SIZE", 1413 | "RENDERBUFFER_STENCIL_SIZE", 1414 | "RENDERBUFFER_WIDTH", 1415 | "RENDERER", 1416 | "RENDERING_INTENT_ABSOLUTE_COLORIMETRIC", 1417 | "RENDERING_INTENT_AUTO", 1418 | "RENDERING_INTENT_PERCEPTUAL", 1419 | "RENDERING_INTENT_RELATIVE_COLORIMETRIC", 1420 | "RENDERING_INTENT_SATURATION", 1421 | "RENDERING_INTENT_UNKNOWN", 1422 | "REPEAT", 1423 | "REPLACE", 1424 | "RGB", 1425 | "RGB565", 1426 | "RGB5_A1", 1427 | "RGBA", 1428 | "RGBA4", 1429 | "RGBColor", 1430 | "ROTATION_CLOCKWISE", 1431 | "ROTATION_COUNTERCLOCKWISE", 1432 | "RTCDataChannelEvent", 1433 | "RTCIceCandidate", 1434 | "RTCPeerConnectionIceEvent", 1435 | "RTCRtpReceiver", 1436 | "RTCRtpSender", 1437 | "RTCSessionDescription", 1438 | "RTCStatsReport", 1439 | "RadioNodeList", 1440 | "Range", 1441 | "RangeError", 1442 | "RangeException", 1443 | "RecordErrorEvent", 1444 | "Rect", 1445 | "ReferenceError", 1446 | "RegExp", 1447 | "Request", 1448 | "Response", 1449 | "SAMPLER_2D", 1450 | "SAMPLER_CUBE", 1451 | "SAMPLES", 1452 | "SAMPLE_ALPHA_TO_COVERAGE", 1453 | "SAMPLE_BUFFERS", 1454 | "SAMPLE_COVERAGE", 1455 | "SAMPLE_COVERAGE_INVERT", 1456 | "SAMPLE_COVERAGE_VALUE", 1457 | "SAWTOOTH", 1458 | "SCHEDULED_STATE", 1459 | "SCISSOR_BOX", 1460 | "SCISSOR_TEST", 1461 | "SCROLL_PAGE_DOWN", 1462 | "SCROLL_PAGE_UP", 1463 | "SDP_ANSWER", 1464 | "SDP_OFFER", 1465 | "SDP_PRANSWER", 1466 | "SECURITY_ERR", 1467 | "SELECT", 1468 | "SERIALIZE_ERR", 1469 | "SEVERITY_ERROR", 1470 | "SEVERITY_FATAL_ERROR", 1471 | "SEVERITY_WARNING", 1472 | "SHADER_COMPILER", 1473 | "SHADER_TYPE", 1474 | "SHADING_LANGUAGE_VERSION", 1475 | "SHIFT_MASK", 1476 | "SHORT", 1477 | "SHOWING", 1478 | "SHOW_ALL", 1479 | "SHOW_ATTRIBUTE", 1480 | "SHOW_CDATA_SECTION", 1481 | "SHOW_COMMENT", 1482 | "SHOW_DOCUMENT", 1483 | "SHOW_DOCUMENT_FRAGMENT", 1484 | "SHOW_DOCUMENT_TYPE", 1485 | "SHOW_ELEMENT", 1486 | "SHOW_ENTITY", 1487 | "SHOW_ENTITY_REFERENCE", 1488 | "SHOW_NOTATION", 1489 | "SHOW_PROCESSING_INSTRUCTION", 1490 | "SHOW_TEXT", 1491 | "SINE", 1492 | "SOUNDFIELD", 1493 | "SQLException", 1494 | "SQRT1_2", 1495 | "SQRT2", 1496 | "SQUARE", 1497 | "SRC_ALPHA", 1498 | "SRC_ALPHA_SATURATE", 1499 | "SRC_COLOR", 1500 | "START_TO_END", 1501 | "START_TO_START", 1502 | "STATIC_DRAW", 1503 | "STENCIL_ATTACHMENT", 1504 | "STENCIL_BACK_FAIL", 1505 | "STENCIL_BACK_FUNC", 1506 | "STENCIL_BACK_PASS_DEPTH_FAIL", 1507 | "STENCIL_BACK_PASS_DEPTH_PASS", 1508 | "STENCIL_BACK_REF", 1509 | "STENCIL_BACK_VALUE_MASK", 1510 | "STENCIL_BACK_WRITEMASK", 1511 | "STENCIL_BITS", 1512 | "STENCIL_BUFFER_BIT", 1513 | "STENCIL_CLEAR_VALUE", 1514 | "STENCIL_FAIL", 1515 | "STENCIL_FUNC", 1516 | "STENCIL_INDEX", 1517 | "STENCIL_INDEX8", 1518 | "STENCIL_PASS_DEPTH_FAIL", 1519 | "STENCIL_PASS_DEPTH_PASS", 1520 | "STENCIL_REF", 1521 | "STENCIL_TEST", 1522 | "STENCIL_VALUE_MASK", 1523 | "STENCIL_WRITEMASK", 1524 | "STREAM_DRAW", 1525 | "STRING_TYPE", 1526 | "STYLE_RULE", 1527 | "SUBPIXEL_BITS", 1528 | "SUPPORTS_RULE", 1529 | "SVGAElement", 1530 | "SVGAltGlyphDefElement", 1531 | "SVGAltGlyphElement", 1532 | "SVGAltGlyphItemElement", 1533 | "SVGAngle", 1534 | "SVGAnimateColorElement", 1535 | "SVGAnimateElement", 1536 | "SVGAnimateMotionElement", 1537 | "SVGAnimateTransformElement", 1538 | "SVGAnimatedAngle", 1539 | "SVGAnimatedBoolean", 1540 | "SVGAnimatedEnumeration", 1541 | "SVGAnimatedInteger", 1542 | "SVGAnimatedLength", 1543 | "SVGAnimatedLengthList", 1544 | "SVGAnimatedNumber", 1545 | "SVGAnimatedNumberList", 1546 | "SVGAnimatedPreserveAspectRatio", 1547 | "SVGAnimatedRect", 1548 | "SVGAnimatedString", 1549 | "SVGAnimatedTransformList", 1550 | "SVGAnimationElement", 1551 | "SVGCircleElement", 1552 | "SVGClipPathElement", 1553 | "SVGColor", 1554 | "SVGComponentTransferFunctionElement", 1555 | "SVGCursorElement", 1556 | "SVGDefsElement", 1557 | "SVGDescElement", 1558 | "SVGDiscardElement", 1559 | "SVGDocument", 1560 | "SVGElement", 1561 | "SVGElementInstance", 1562 | "SVGElementInstanceList", 1563 | "SVGEllipseElement", 1564 | "SVGException", 1565 | "SVGFEBlendElement", 1566 | "SVGFEColorMatrixElement", 1567 | "SVGFEComponentTransferElement", 1568 | "SVGFECompositeElement", 1569 | "SVGFEConvolveMatrixElement", 1570 | "SVGFEDiffuseLightingElement", 1571 | "SVGFEDisplacementMapElement", 1572 | "SVGFEDistantLightElement", 1573 | "SVGFEDropShadowElement", 1574 | "SVGFEFloodElement", 1575 | "SVGFEFuncAElement", 1576 | "SVGFEFuncBElement", 1577 | "SVGFEFuncGElement", 1578 | "SVGFEFuncRElement", 1579 | "SVGFEGaussianBlurElement", 1580 | "SVGFEImageElement", 1581 | "SVGFEMergeElement", 1582 | "SVGFEMergeNodeElement", 1583 | "SVGFEMorphologyElement", 1584 | "SVGFEOffsetElement", 1585 | "SVGFEPointLightElement", 1586 | "SVGFESpecularLightingElement", 1587 | "SVGFESpotLightElement", 1588 | "SVGFETileElement", 1589 | "SVGFETurbulenceElement", 1590 | "SVGFilterElement", 1591 | "SVGFontElement", 1592 | "SVGFontFaceElement", 1593 | "SVGFontFaceFormatElement", 1594 | "SVGFontFaceNameElement", 1595 | "SVGFontFaceSrcElement", 1596 | "SVGFontFaceUriElement", 1597 | "SVGForeignObjectElement", 1598 | "SVGGElement", 1599 | "SVGGeometryElement", 1600 | "SVGGlyphElement", 1601 | "SVGGlyphRefElement", 1602 | "SVGGradientElement", 1603 | "SVGGraphicsElement", 1604 | "SVGHKernElement", 1605 | "SVGImageElement", 1606 | "SVGLength", 1607 | "SVGLengthList", 1608 | "SVGLineElement", 1609 | "SVGLinearGradientElement", 1610 | "SVGMPathElement", 1611 | "SVGMarkerElement", 1612 | "SVGMaskElement", 1613 | "SVGMatrix", 1614 | "SVGMetadataElement", 1615 | "SVGMissingGlyphElement", 1616 | "SVGNumber", 1617 | "SVGNumberList", 1618 | "SVGPaint", 1619 | "SVGPathElement", 1620 | "SVGPathSeg", 1621 | "SVGPathSegArcAbs", 1622 | "SVGPathSegArcRel", 1623 | "SVGPathSegClosePath", 1624 | "SVGPathSegCurvetoCubicAbs", 1625 | "SVGPathSegCurvetoCubicRel", 1626 | "SVGPathSegCurvetoCubicSmoothAbs", 1627 | "SVGPathSegCurvetoCubicSmoothRel", 1628 | "SVGPathSegCurvetoQuadraticAbs", 1629 | "SVGPathSegCurvetoQuadraticRel", 1630 | "SVGPathSegCurvetoQuadraticSmoothAbs", 1631 | "SVGPathSegCurvetoQuadraticSmoothRel", 1632 | "SVGPathSegLinetoAbs", 1633 | "SVGPathSegLinetoHorizontalAbs", 1634 | "SVGPathSegLinetoHorizontalRel", 1635 | "SVGPathSegLinetoRel", 1636 | "SVGPathSegLinetoVerticalAbs", 1637 | "SVGPathSegLinetoVerticalRel", 1638 | "SVGPathSegList", 1639 | "SVGPathSegMovetoAbs", 1640 | "SVGPathSegMovetoRel", 1641 | "SVGPatternElement", 1642 | "SVGPoint", 1643 | "SVGPointList", 1644 | "SVGPolygonElement", 1645 | "SVGPolylineElement", 1646 | "SVGPreserveAspectRatio", 1647 | "SVGRadialGradientElement", 1648 | "SVGRect", 1649 | "SVGRectElement", 1650 | "SVGRenderingIntent", 1651 | "SVGSVGElement", 1652 | "SVGScriptElement", 1653 | "SVGSetElement", 1654 | "SVGStopElement", 1655 | "SVGStringList", 1656 | "SVGStyleElement", 1657 | "SVGSwitchElement", 1658 | "SVGSymbolElement", 1659 | "SVGTRefElement", 1660 | "SVGTSpanElement", 1661 | "SVGTextContentElement", 1662 | "SVGTextElement", 1663 | "SVGTextPathElement", 1664 | "SVGTextPositioningElement", 1665 | "SVGTitleElement", 1666 | "SVGTransform", 1667 | "SVGTransformList", 1668 | "SVGUnitTypes", 1669 | "SVGUseElement", 1670 | "SVGVKernElement", 1671 | "SVGViewElement", 1672 | "SVGViewSpec", 1673 | "SVGZoomAndPan", 1674 | "SVGZoomEvent", 1675 | "SVG_ANGLETYPE_DEG", 1676 | "SVG_ANGLETYPE_GRAD", 1677 | "SVG_ANGLETYPE_RAD", 1678 | "SVG_ANGLETYPE_UNKNOWN", 1679 | "SVG_ANGLETYPE_UNSPECIFIED", 1680 | "SVG_CHANNEL_A", 1681 | "SVG_CHANNEL_B", 1682 | "SVG_CHANNEL_G", 1683 | "SVG_CHANNEL_R", 1684 | "SVG_CHANNEL_UNKNOWN", 1685 | "SVG_COLORTYPE_CURRENTCOLOR", 1686 | "SVG_COLORTYPE_RGBCOLOR", 1687 | "SVG_COLORTYPE_RGBCOLOR_ICCCOLOR", 1688 | "SVG_COLORTYPE_UNKNOWN", 1689 | "SVG_EDGEMODE_DUPLICATE", 1690 | "SVG_EDGEMODE_NONE", 1691 | "SVG_EDGEMODE_UNKNOWN", 1692 | "SVG_EDGEMODE_WRAP", 1693 | "SVG_FEBLEND_MODE_COLOR", 1694 | "SVG_FEBLEND_MODE_COLOR_BURN", 1695 | "SVG_FEBLEND_MODE_COLOR_DODGE", 1696 | "SVG_FEBLEND_MODE_DARKEN", 1697 | "SVG_FEBLEND_MODE_DIFFERENCE", 1698 | "SVG_FEBLEND_MODE_EXCLUSION", 1699 | "SVG_FEBLEND_MODE_HARD_LIGHT", 1700 | "SVG_FEBLEND_MODE_HUE", 1701 | "SVG_FEBLEND_MODE_LIGHTEN", 1702 | "SVG_FEBLEND_MODE_LUMINOSITY", 1703 | "SVG_FEBLEND_MODE_MULTIPLY", 1704 | "SVG_FEBLEND_MODE_NORMAL", 1705 | "SVG_FEBLEND_MODE_OVERLAY", 1706 | "SVG_FEBLEND_MODE_SATURATION", 1707 | "SVG_FEBLEND_MODE_SCREEN", 1708 | "SVG_FEBLEND_MODE_SOFT_LIGHT", 1709 | "SVG_FEBLEND_MODE_UNKNOWN", 1710 | "SVG_FECOLORMATRIX_TYPE_HUEROTATE", 1711 | "SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA", 1712 | "SVG_FECOLORMATRIX_TYPE_MATRIX", 1713 | "SVG_FECOLORMATRIX_TYPE_SATURATE", 1714 | "SVG_FECOLORMATRIX_TYPE_UNKNOWN", 1715 | "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE", 1716 | "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA", 1717 | "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY", 1718 | "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR", 1719 | "SVG_FECOMPONENTTRANSFER_TYPE_TABLE", 1720 | "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN", 1721 | "SVG_FECOMPOSITE_OPERATOR_ARITHMETIC", 1722 | "SVG_FECOMPOSITE_OPERATOR_ATOP", 1723 | "SVG_FECOMPOSITE_OPERATOR_IN", 1724 | "SVG_FECOMPOSITE_OPERATOR_OUT", 1725 | "SVG_FECOMPOSITE_OPERATOR_OVER", 1726 | "SVG_FECOMPOSITE_OPERATOR_UNKNOWN", 1727 | "SVG_FECOMPOSITE_OPERATOR_XOR", 1728 | "SVG_INVALID_VALUE_ERR", 1729 | "SVG_LENGTHTYPE_CM", 1730 | "SVG_LENGTHTYPE_EMS", 1731 | "SVG_LENGTHTYPE_EXS", 1732 | "SVG_LENGTHTYPE_IN", 1733 | "SVG_LENGTHTYPE_MM", 1734 | "SVG_LENGTHTYPE_NUMBER", 1735 | "SVG_LENGTHTYPE_PC", 1736 | "SVG_LENGTHTYPE_PERCENTAGE", 1737 | "SVG_LENGTHTYPE_PT", 1738 | "SVG_LENGTHTYPE_PX", 1739 | "SVG_LENGTHTYPE_UNKNOWN", 1740 | "SVG_MARKERUNITS_STROKEWIDTH", 1741 | "SVG_MARKERUNITS_UNKNOWN", 1742 | "SVG_MARKERUNITS_USERSPACEONUSE", 1743 | "SVG_MARKER_ORIENT_ANGLE", 1744 | "SVG_MARKER_ORIENT_AUTO", 1745 | "SVG_MARKER_ORIENT_UNKNOWN", 1746 | "SVG_MASKTYPE_ALPHA", 1747 | "SVG_MASKTYPE_LUMINANCE", 1748 | "SVG_MATRIX_NOT_INVERTABLE", 1749 | "SVG_MEETORSLICE_MEET", 1750 | "SVG_MEETORSLICE_SLICE", 1751 | "SVG_MEETORSLICE_UNKNOWN", 1752 | "SVG_MORPHOLOGY_OPERATOR_DILATE", 1753 | "SVG_MORPHOLOGY_OPERATOR_ERODE", 1754 | "SVG_MORPHOLOGY_OPERATOR_UNKNOWN", 1755 | "SVG_PAINTTYPE_CURRENTCOLOR", 1756 | "SVG_PAINTTYPE_NONE", 1757 | "SVG_PAINTTYPE_RGBCOLOR", 1758 | "SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR", 1759 | "SVG_PAINTTYPE_UNKNOWN", 1760 | "SVG_PAINTTYPE_URI", 1761 | "SVG_PAINTTYPE_URI_CURRENTCOLOR", 1762 | "SVG_PAINTTYPE_URI_NONE", 1763 | "SVG_PAINTTYPE_URI_RGBCOLOR", 1764 | "SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR", 1765 | "SVG_PRESERVEASPECTRATIO_NONE", 1766 | "SVG_PRESERVEASPECTRATIO_UNKNOWN", 1767 | "SVG_PRESERVEASPECTRATIO_XMAXYMAX", 1768 | "SVG_PRESERVEASPECTRATIO_XMAXYMID", 1769 | "SVG_PRESERVEASPECTRATIO_XMAXYMIN", 1770 | "SVG_PRESERVEASPECTRATIO_XMIDYMAX", 1771 | "SVG_PRESERVEASPECTRATIO_XMIDYMID", 1772 | "SVG_PRESERVEASPECTRATIO_XMIDYMIN", 1773 | "SVG_PRESERVEASPECTRATIO_XMINYMAX", 1774 | "SVG_PRESERVEASPECTRATIO_XMINYMID", 1775 | "SVG_PRESERVEASPECTRATIO_XMINYMIN", 1776 | "SVG_SPREADMETHOD_PAD", 1777 | "SVG_SPREADMETHOD_REFLECT", 1778 | "SVG_SPREADMETHOD_REPEAT", 1779 | "SVG_SPREADMETHOD_UNKNOWN", 1780 | "SVG_STITCHTYPE_NOSTITCH", 1781 | "SVG_STITCHTYPE_STITCH", 1782 | "SVG_STITCHTYPE_UNKNOWN", 1783 | "SVG_TRANSFORM_MATRIX", 1784 | "SVG_TRANSFORM_ROTATE", 1785 | "SVG_TRANSFORM_SCALE", 1786 | "SVG_TRANSFORM_SKEWX", 1787 | "SVG_TRANSFORM_SKEWY", 1788 | "SVG_TRANSFORM_TRANSLATE", 1789 | "SVG_TRANSFORM_UNKNOWN", 1790 | "SVG_TURBULENCE_TYPE_FRACTALNOISE", 1791 | "SVG_TURBULENCE_TYPE_TURBULENCE", 1792 | "SVG_TURBULENCE_TYPE_UNKNOWN", 1793 | "SVG_UNIT_TYPE_OBJECTBOUNDINGBOX", 1794 | "SVG_UNIT_TYPE_UNKNOWN", 1795 | "SVG_UNIT_TYPE_USERSPACEONUSE", 1796 | "SVG_WRONG_TYPE_ERR", 1797 | "SVG_ZOOMANDPAN_DISABLE", 1798 | "SVG_ZOOMANDPAN_MAGNIFY", 1799 | "SVG_ZOOMANDPAN_UNKNOWN", 1800 | "SYNTAX_ERR", 1801 | "SavedPages", 1802 | "Screen", 1803 | "ScreenOrientation", 1804 | "Script", 1805 | "ScriptProcessorNode", 1806 | "ScrollAreaEvent", 1807 | "SecurityPolicyViolationEvent", 1808 | "Selection", 1809 | "ServiceWorker", 1810 | "ServiceWorkerContainer", 1811 | "ServiceWorkerRegistration", 1812 | "SessionDescription", 1813 | "Set", 1814 | "ShadowRoot", 1815 | "SharedWorker", 1816 | "SimpleGestureEvent", 1817 | "SpeechSynthesisEvent", 1818 | "SpeechSynthesisUtterance", 1819 | "StopIteration", 1820 | "Storage", 1821 | "StorageEvent", 1822 | "String", 1823 | "StyleSheet", 1824 | "StyleSheetList", 1825 | "SubtleCrypto", 1826 | "Symbol", 1827 | "SyntaxError", 1828 | "TEMPORARY", 1829 | "TEXTPATH_METHODTYPE_ALIGN", 1830 | "TEXTPATH_METHODTYPE_STRETCH", 1831 | "TEXTPATH_METHODTYPE_UNKNOWN", 1832 | "TEXTPATH_SPACINGTYPE_AUTO", 1833 | "TEXTPATH_SPACINGTYPE_EXACT", 1834 | "TEXTPATH_SPACINGTYPE_UNKNOWN", 1835 | "TEXTURE", 1836 | "TEXTURE0", 1837 | "TEXTURE1", 1838 | "TEXTURE10", 1839 | "TEXTURE11", 1840 | "TEXTURE12", 1841 | "TEXTURE13", 1842 | "TEXTURE14", 1843 | "TEXTURE15", 1844 | "TEXTURE16", 1845 | "TEXTURE17", 1846 | "TEXTURE18", 1847 | "TEXTURE19", 1848 | "TEXTURE2", 1849 | "TEXTURE20", 1850 | "TEXTURE21", 1851 | "TEXTURE22", 1852 | "TEXTURE23", 1853 | "TEXTURE24", 1854 | "TEXTURE25", 1855 | "TEXTURE26", 1856 | "TEXTURE27", 1857 | "TEXTURE28", 1858 | "TEXTURE29", 1859 | "TEXTURE3", 1860 | "TEXTURE30", 1861 | "TEXTURE31", 1862 | "TEXTURE4", 1863 | "TEXTURE5", 1864 | "TEXTURE6", 1865 | "TEXTURE7", 1866 | "TEXTURE8", 1867 | "TEXTURE9", 1868 | "TEXTURE_2D", 1869 | "TEXTURE_BINDING_2D", 1870 | "TEXTURE_BINDING_CUBE_MAP", 1871 | "TEXTURE_CUBE_MAP", 1872 | "TEXTURE_CUBE_MAP_NEGATIVE_X", 1873 | "TEXTURE_CUBE_MAP_NEGATIVE_Y", 1874 | "TEXTURE_CUBE_MAP_NEGATIVE_Z", 1875 | "TEXTURE_CUBE_MAP_POSITIVE_X", 1876 | "TEXTURE_CUBE_MAP_POSITIVE_Y", 1877 | "TEXTURE_CUBE_MAP_POSITIVE_Z", 1878 | "TEXTURE_MAG_FILTER", 1879 | "TEXTURE_MAX_ANISOTROPY_EXT", 1880 | "TEXTURE_MIN_FILTER", 1881 | "TEXTURE_WRAP_S", 1882 | "TEXTURE_WRAP_T", 1883 | "TEXT_NODE", 1884 | "TIMEOUT", 1885 | "TIMEOUT_ERR", 1886 | "TOO_LARGE_ERR", 1887 | "TRANSACTION_INACTIVE_ERR", 1888 | "TRIANGLE", 1889 | "TRIANGLES", 1890 | "TRIANGLE_FAN", 1891 | "TRIANGLE_STRIP", 1892 | "TYPE_BACK_FORWARD", 1893 | "TYPE_ERR", 1894 | "TYPE_MISMATCH_ERR", 1895 | "TYPE_NAVIGATE", 1896 | "TYPE_RELOAD", 1897 | "TYPE_RESERVED", 1898 | "Text", 1899 | "TextDecoder", 1900 | "TextEncoder", 1901 | "TextEvent", 1902 | "TextMetrics", 1903 | "TextTrack", 1904 | "TextTrackCue", 1905 | "TextTrackCueList", 1906 | "TextTrackList", 1907 | "TimeEvent", 1908 | "TimeRanges", 1909 | "Touch", 1910 | "TouchEvent", 1911 | "TouchList", 1912 | "TrackEvent", 1913 | "TransitionEvent", 1914 | "TreeWalker", 1915 | "TypeError", 1916 | "UIEvent", 1917 | "UNCACHED", 1918 | "UNKNOWN_ERR", 1919 | "UNKNOWN_RULE", 1920 | "UNMASKED_RENDERER_WEBGL", 1921 | "UNMASKED_VENDOR_WEBGL", 1922 | "UNORDERED_NODE_ITERATOR_TYPE", 1923 | "UNORDERED_NODE_SNAPSHOT_TYPE", 1924 | "UNPACK_ALIGNMENT", 1925 | "UNPACK_COLORSPACE_CONVERSION_WEBGL", 1926 | "UNPACK_FLIP_Y_WEBGL", 1927 | "UNPACK_PREMULTIPLY_ALPHA_WEBGL", 1928 | "UNSCHEDULED_STATE", 1929 | "UNSENT", 1930 | "UNSIGNED_BYTE", 1931 | "UNSIGNED_INT", 1932 | "UNSIGNED_SHORT", 1933 | "UNSIGNED_SHORT_4_4_4_4", 1934 | "UNSIGNED_SHORT_5_5_5_1", 1935 | "UNSIGNED_SHORT_5_6_5", 1936 | "UNSPECIFIED_EVENT_TYPE_ERR", 1937 | "UPDATEREADY", 1938 | "URIError", 1939 | "URL", 1940 | "URLSearchParams", 1941 | "URLUnencoded", 1942 | "URL_MISMATCH_ERR", 1943 | "UTC", 1944 | "Uint16Array", 1945 | "Uint32Array", 1946 | "Uint8Array", 1947 | "Uint8ClampedArray", 1948 | "UserMessageHandler", 1949 | "UserMessageHandlersNamespace", 1950 | "UserProximityEvent", 1951 | "VALIDATE_STATUS", 1952 | "VALIDATION_ERR", 1953 | "VARIABLES_RULE", 1954 | "VENDOR", 1955 | "VERSION", 1956 | "VERSION_CHANGE", 1957 | "VERSION_ERR", 1958 | "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", 1959 | "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE", 1960 | "VERTEX_ATTRIB_ARRAY_ENABLED", 1961 | "VERTEX_ATTRIB_ARRAY_NORMALIZED", 1962 | "VERTEX_ATTRIB_ARRAY_POINTER", 1963 | "VERTEX_ATTRIB_ARRAY_SIZE", 1964 | "VERTEX_ATTRIB_ARRAY_STRIDE", 1965 | "VERTEX_ATTRIB_ARRAY_TYPE", 1966 | "VERTEX_SHADER", 1967 | "VERTICAL", 1968 | "VERTICAL_AXIS", 1969 | "VER_ERR", 1970 | "VIEWPORT", 1971 | "VIEWPORT_RULE", 1972 | "VTTCue", 1973 | "VTTRegion", 1974 | "ValidityState", 1975 | "VideoStreamTrack", 1976 | "WEBKIT_FILTER_RULE", 1977 | "WEBKIT_KEYFRAMES_RULE", 1978 | "WEBKIT_KEYFRAME_RULE", 1979 | "WEBKIT_REGION_RULE", 1980 | "WRONG_DOCUMENT_ERR", 1981 | "WaveShaperNode", 1982 | "WeakMap", 1983 | "WeakSet", 1984 | "WebGLActiveInfo", 1985 | "WebGLBuffer", 1986 | "WebGLContextEvent", 1987 | "WebGLFramebuffer", 1988 | "WebGLProgram", 1989 | "WebGLRenderbuffer", 1990 | "WebGLRenderingContext", 1991 | "WebGLShader", 1992 | "WebGLShaderPrecisionFormat", 1993 | "WebGLTexture", 1994 | "WebGLUniformLocation", 1995 | "WebGLVertexArray", 1996 | "WebKitAnimationEvent", 1997 | "WebKitBlobBuilder", 1998 | "WebKitCSSFilterRule", 1999 | "WebKitCSSFilterValue", 2000 | "WebKitCSSKeyframeRule", 2001 | "WebKitCSSKeyframesRule", 2002 | "WebKitCSSMatrix", 2003 | "WebKitCSSRegionRule", 2004 | "WebKitCSSTransformValue", 2005 | "WebKitDataCue", 2006 | "WebKitGamepad", 2007 | "WebKitMediaKeyError", 2008 | "WebKitMediaKeyMessageEvent", 2009 | "WebKitMediaKeySession", 2010 | "WebKitMediaKeys", 2011 | "WebKitMediaSource", 2012 | "WebKitMutationObserver", 2013 | "WebKitNamespace", 2014 | "WebKitPlaybackTargetAvailabilityEvent", 2015 | "WebKitPoint", 2016 | "WebKitShadowRoot", 2017 | "WebKitSourceBuffer", 2018 | "WebKitSourceBufferList", 2019 | "WebKitTransitionEvent", 2020 | "WebSocket", 2021 | "WheelEvent", 2022 | "Window", 2023 | "Worker", 2024 | "XMLDocument", 2025 | "XMLHttpRequest", 2026 | "XMLHttpRequestEventTarget", 2027 | "XMLHttpRequestException", 2028 | "XMLHttpRequestProgressEvent", 2029 | "XMLHttpRequestUpload", 2030 | "XMLSerializer", 2031 | "XMLStylesheetProcessingInstruction", 2032 | "XPathEvaluator", 2033 | "XPathException", 2034 | "XPathExpression", 2035 | "XPathNSResolver", 2036 | "XPathResult", 2037 | "XSLTProcessor", 2038 | "ZERO", 2039 | "_XD0M_", 2040 | "_YD0M_", 2041 | "__defineGetter__", 2042 | "__defineSetter__", 2043 | "__lookupGetter__", 2044 | "__lookupSetter__", 2045 | "__opera", 2046 | "__proto__", 2047 | "_browserjsran", 2048 | "a", 2049 | "aLink", 2050 | "abbr", 2051 | "abort", 2052 | "abs", 2053 | "absolute", 2054 | "acceleration", 2055 | "accelerationIncludingGravity", 2056 | "accelerator", 2057 | "accept", 2058 | "acceptCharset", 2059 | "acceptNode", 2060 | "accessKey", 2061 | "accessKeyLabel", 2062 | "accuracy", 2063 | "acos", 2064 | "acosh", 2065 | "action", 2066 | "actionURL", 2067 | "active", 2068 | "activeCues", 2069 | "activeElement", 2070 | "activeSourceBuffers", 2071 | "activeSourceCount", 2072 | "activeTexture", 2073 | "add", 2074 | "addBehavior", 2075 | "addCandidate", 2076 | "addColorStop", 2077 | "addCue", 2078 | "addElement", 2079 | "addEventListener", 2080 | "addFilter", 2081 | "addFromString", 2082 | "addFromUri", 2083 | "addIceCandidate", 2084 | "addImport", 2085 | "addListener", 2086 | "addNamed", 2087 | "addPageRule", 2088 | "addPath", 2089 | "addPointer", 2090 | "addRange", 2091 | "addRegion", 2092 | "addRule", 2093 | "addSearchEngine", 2094 | "addSourceBuffer", 2095 | "addStream", 2096 | "addTextTrack", 2097 | "addTrack", 2098 | "addWakeLockListener", 2099 | "addedNodes", 2100 | "additionalName", 2101 | "additiveSymbols", 2102 | "addons", 2103 | "adoptNode", 2104 | "adr", 2105 | "advance", 2106 | "alert", 2107 | "algorithm", 2108 | "align", 2109 | "align-content", 2110 | "align-items", 2111 | "align-self", 2112 | "alignContent", 2113 | "alignItems", 2114 | "alignSelf", 2115 | "alignmentBaseline", 2116 | "alinkColor", 2117 | "all", 2118 | "allowFullscreen", 2119 | "allowedDirections", 2120 | "alpha", 2121 | "alt", 2122 | "altGraphKey", 2123 | "altHtml", 2124 | "altKey", 2125 | "altLeft", 2126 | "altitude", 2127 | "altitudeAccuracy", 2128 | "amplitude", 2129 | "ancestorOrigins", 2130 | "anchor", 2131 | "anchorNode", 2132 | "anchorOffset", 2133 | "anchors", 2134 | "angle", 2135 | "animVal", 2136 | "animate", 2137 | "animatedInstanceRoot", 2138 | "animatedNormalizedPathSegList", 2139 | "animatedPathSegList", 2140 | "animatedPoints", 2141 | "animation", 2142 | "animation-delay", 2143 | "animation-direction", 2144 | "animation-duration", 2145 | "animation-fill-mode", 2146 | "animation-iteration-count", 2147 | "animation-name", 2148 | "animation-play-state", 2149 | "animation-timing-function", 2150 | "animationDelay", 2151 | "animationDirection", 2152 | "animationDuration", 2153 | "animationFillMode", 2154 | "animationIterationCount", 2155 | "animationName", 2156 | "animationPlayState", 2157 | "animationStartTime", 2158 | "animationTimingFunction", 2159 | "animationsPaused", 2160 | "anniversary", 2161 | "app", 2162 | "appCodeName", 2163 | "appMinorVersion", 2164 | "appName", 2165 | "appNotifications", 2166 | "appVersion", 2167 | "append", 2168 | "appendBuffer", 2169 | "appendChild", 2170 | "appendData", 2171 | "appendItem", 2172 | "appendMedium", 2173 | "appendNamed", 2174 | "appendRule", 2175 | "appendStream", 2176 | "appendWindowEnd", 2177 | "appendWindowStart", 2178 | "applets", 2179 | "applicationCache", 2180 | "apply", 2181 | "applyElement", 2182 | "arc", 2183 | "arcTo", 2184 | "archive", 2185 | "areas", 2186 | "arguments", 2187 | "arrayBuffer", 2188 | "asin", 2189 | "asinh", 2190 | "assert", 2191 | "assign", 2192 | "async", 2193 | "atEnd", 2194 | "atan", 2195 | "atan2", 2196 | "atanh", 2197 | "atob", 2198 | "attachEvent", 2199 | "attachShader", 2200 | "attachments", 2201 | "attack", 2202 | "attrChange", 2203 | "attrName", 2204 | "attributeName", 2205 | "attributeNamespace", 2206 | "attributes", 2207 | "audioTracks", 2208 | "autoIncrement", 2209 | "autobuffer", 2210 | "autocapitalize", 2211 | "autocomplete", 2212 | "autocorrect", 2213 | "autofocus", 2214 | "autoplay", 2215 | "availHeight", 2216 | "availLeft", 2217 | "availTop", 2218 | "availWidth", 2219 | "availability", 2220 | "available", 2221 | "aversion", 2222 | "axes", 2223 | "axis", 2224 | "azimuth", 2225 | "b", 2226 | "back", 2227 | "backface-visibility", 2228 | "backfaceVisibility", 2229 | "background", 2230 | "background-attachment", 2231 | "background-blend-mode", 2232 | "background-clip", 2233 | "background-color", 2234 | "background-image", 2235 | "background-origin", 2236 | "background-position", 2237 | "background-repeat", 2238 | "background-size", 2239 | "backgroundAttachment", 2240 | "backgroundBlendMode", 2241 | "backgroundClip", 2242 | "backgroundColor", 2243 | "backgroundImage", 2244 | "backgroundOrigin", 2245 | "backgroundPosition", 2246 | "backgroundPositionX", 2247 | "backgroundPositionY", 2248 | "backgroundRepeat", 2249 | "backgroundSize", 2250 | "badInput", 2251 | "balance", 2252 | "baseFrequencyX", 2253 | "baseFrequencyY", 2254 | "baseNode", 2255 | "baseOffset", 2256 | "baseURI", 2257 | "baseVal", 2258 | "baselineShift", 2259 | "battery", 2260 | "bday", 2261 | "beginElement", 2262 | "beginElementAt", 2263 | "beginPath", 2264 | "behavior", 2265 | "behaviorCookie", 2266 | "behaviorPart", 2267 | "behaviorUrns", 2268 | "beta", 2269 | "bezierCurveTo", 2270 | "bgColor", 2271 | "bgProperties", 2272 | "bias", 2273 | "big", 2274 | "binaryType", 2275 | "bind", 2276 | "bindAttribLocation", 2277 | "bindBuffer", 2278 | "bindFramebuffer", 2279 | "bindRenderbuffer", 2280 | "bindTexture", 2281 | "blendColor", 2282 | "blendEquation", 2283 | "blendEquationSeparate", 2284 | "blendFunc", 2285 | "blendFuncSeparate", 2286 | "blink", 2287 | "blob", 2288 | "blockDirection", 2289 | "blue", 2290 | "blur", 2291 | "body", 2292 | "bodyUsed", 2293 | "bold", 2294 | "bookmarks", 2295 | "booleanValue", 2296 | "border", 2297 | "border-bottom", 2298 | "border-bottom-color", 2299 | "border-bottom-left-radius", 2300 | "border-bottom-right-radius", 2301 | "border-bottom-style", 2302 | "border-bottom-width", 2303 | "border-collapse", 2304 | "border-color", 2305 | "border-image", 2306 | "border-image-outset", 2307 | "border-image-repeat", 2308 | "border-image-slice", 2309 | "border-image-source", 2310 | "border-image-width", 2311 | "border-left", 2312 | "border-left-color", 2313 | "border-left-style", 2314 | "border-left-width", 2315 | "border-radius", 2316 | "border-right", 2317 | "border-right-color", 2318 | "border-right-style", 2319 | "border-right-width", 2320 | "border-spacing", 2321 | "border-style", 2322 | "border-top", 2323 | "border-top-color", 2324 | "border-top-left-radius", 2325 | "border-top-right-radius", 2326 | "border-top-style", 2327 | "border-top-width", 2328 | "border-width", 2329 | "borderBottom", 2330 | "borderBottomColor", 2331 | "borderBottomLeftRadius", 2332 | "borderBottomRightRadius", 2333 | "borderBottomStyle", 2334 | "borderBottomWidth", 2335 | "borderCollapse", 2336 | "borderColor", 2337 | "borderColorDark", 2338 | "borderColorLight", 2339 | "borderImage", 2340 | "borderImageOutset", 2341 | "borderImageRepeat", 2342 | "borderImageSlice", 2343 | "borderImageSource", 2344 | "borderImageWidth", 2345 | "borderLeft", 2346 | "borderLeftColor", 2347 | "borderLeftStyle", 2348 | "borderLeftWidth", 2349 | "borderRadius", 2350 | "borderRight", 2351 | "borderRightColor", 2352 | "borderRightStyle", 2353 | "borderRightWidth", 2354 | "borderSpacing", 2355 | "borderStyle", 2356 | "borderTop", 2357 | "borderTopColor", 2358 | "borderTopLeftRadius", 2359 | "borderTopRightRadius", 2360 | "borderTopStyle", 2361 | "borderTopWidth", 2362 | "borderWidth", 2363 | "bottom", 2364 | "bottomMargin", 2365 | "bound", 2366 | "boundElements", 2367 | "boundingClientRect", 2368 | "boundingHeight", 2369 | "boundingLeft", 2370 | "boundingTop", 2371 | "boundingWidth", 2372 | "bounds", 2373 | "box-decoration-break", 2374 | "box-shadow", 2375 | "box-sizing", 2376 | "boxDecorationBreak", 2377 | "boxShadow", 2378 | "boxSizing", 2379 | "breakAfter", 2380 | "breakBefore", 2381 | "breakInside", 2382 | "browserLanguage", 2383 | "btoa", 2384 | "bubbles", 2385 | "buffer", 2386 | "bufferData", 2387 | "bufferDepth", 2388 | "bufferSize", 2389 | "bufferSubData", 2390 | "buffered", 2391 | "bufferedAmount", 2392 | "buildID", 2393 | "buildNumber", 2394 | "button", 2395 | "buttonID", 2396 | "buttons", 2397 | "byteLength", 2398 | "byteOffset", 2399 | "c", 2400 | "call", 2401 | "caller", 2402 | "canBeFormatted", 2403 | "canBeMounted", 2404 | "canBeShared", 2405 | "canHaveChildren", 2406 | "canHaveHTML", 2407 | "canPlayType", 2408 | "cancel", 2409 | "cancelAnimationFrame", 2410 | "cancelBubble", 2411 | "cancelScheduledValues", 2412 | "cancelable", 2413 | "candidate", 2414 | "canvas", 2415 | "caption", 2416 | "caption-side", 2417 | "captionSide", 2418 | "captureEvents", 2419 | "captureStackTrace", 2420 | "caretPositionFromPoint", 2421 | "caretRangeFromPoint", 2422 | "cast", 2423 | "catch", 2424 | "category", 2425 | "cbrt", 2426 | "cd", 2427 | "ceil", 2428 | "cellIndex", 2429 | "cellPadding", 2430 | "cellSpacing", 2431 | "cells", 2432 | "ch", 2433 | "chOff", 2434 | "chain", 2435 | "challenge", 2436 | "changedTouches", 2437 | "channel", 2438 | "channelCount", 2439 | "channelCountMode", 2440 | "channelInterpretation", 2441 | "char", 2442 | "charAt", 2443 | "charCode", 2444 | "charCodeAt", 2445 | "charIndex", 2446 | "characterSet", 2447 | "charging", 2448 | "chargingTime", 2449 | "charset", 2450 | "checkEnclosure", 2451 | "checkFramebufferStatus", 2452 | "checkIntersection", 2453 | "checkValidity", 2454 | "checked", 2455 | "childElementCount", 2456 | "childNodes", 2457 | "children", 2458 | "chrome", 2459 | "ciphertext", 2460 | "cite", 2461 | "classList", 2462 | "className", 2463 | "classid", 2464 | "clear", 2465 | "clearAttributes", 2466 | "clearColor", 2467 | "clearData", 2468 | "clearDepth", 2469 | "clearImmediate", 2470 | "clearInterval", 2471 | "clearMarks", 2472 | "clearMeasures", 2473 | "clearParameters", 2474 | "clearRect", 2475 | "clearResourceTimings", 2476 | "clearShadow", 2477 | "clearStencil", 2478 | "clearTimeout", 2479 | "clearWatch", 2480 | "click", 2481 | "clickCount", 2482 | "clientHeight", 2483 | "clientInformation", 2484 | "clientLeft", 2485 | "clientRect", 2486 | "clientRects", 2487 | "clientTop", 2488 | "clientWidth", 2489 | "clientX", 2490 | "clientY", 2491 | "clip", 2492 | "clip-path", 2493 | "clip-rule", 2494 | "clipBottom", 2495 | "clipLeft", 2496 | "clipPath", 2497 | "clipPathUnits", 2498 | "clipRight", 2499 | "clipRule", 2500 | "clipTop", 2501 | "clipboardData", 2502 | "clone", 2503 | "cloneContents", 2504 | "cloneNode", 2505 | "cloneRange", 2506 | "close", 2507 | "closePath", 2508 | "closed", 2509 | "closest", 2510 | "clz", 2511 | "clz32", 2512 | "cmp", 2513 | "code", 2514 | "codeBase", 2515 | "codePointAt", 2516 | "codeType", 2517 | "colSpan", 2518 | "collapse", 2519 | "collapseToEnd", 2520 | "collapseToStart", 2521 | "collapsed", 2522 | "collect", 2523 | "colno", 2524 | "color", 2525 | "color-interpolation", 2526 | "color-interpolation-filters", 2527 | "colorDepth", 2528 | "colorInterpolation", 2529 | "colorInterpolationFilters", 2530 | "colorMask", 2531 | "colorType", 2532 | "cols", 2533 | "columnCount", 2534 | "columnFill", 2535 | "columnGap", 2536 | "columnNumber", 2537 | "columnRule", 2538 | "columnRuleColor", 2539 | "columnRuleStyle", 2540 | "columnRuleWidth", 2541 | "columnSpan", 2542 | "columnWidth", 2543 | "columns", 2544 | "command", 2545 | "commitPreferences", 2546 | "commonAncestorContainer", 2547 | "compact", 2548 | "compareBoundaryPoints", 2549 | "compareDocumentPosition", 2550 | "compareEndPoints", 2551 | "compareNode", 2552 | "comparePoint", 2553 | "compatMode", 2554 | "compatible", 2555 | "compile", 2556 | "compileShader", 2557 | "complete", 2558 | "componentFromPoint", 2559 | "compositionEndOffset", 2560 | "compositionStartOffset", 2561 | "compressedTexImage2D", 2562 | "compressedTexSubImage2D", 2563 | "concat", 2564 | "conditionText", 2565 | "coneInnerAngle", 2566 | "coneOuterAngle", 2567 | "coneOuterGain", 2568 | "confirm", 2569 | "confirmComposition", 2570 | "confirmSiteSpecificTrackingException", 2571 | "confirmWebWideTrackingException", 2572 | "connect", 2573 | "connectEnd", 2574 | "connectStart", 2575 | "connected", 2576 | "connection", 2577 | "connectionSpeed", 2578 | "console", 2579 | "consolidate", 2580 | "constrictionActive", 2581 | "constructor", 2582 | "contactID", 2583 | "contains", 2584 | "containsNode", 2585 | "content", 2586 | "contentDocument", 2587 | "contentEditable", 2588 | "contentOverflow", 2589 | "contentScriptType", 2590 | "contentStyleType", 2591 | "contentType", 2592 | "contentWindow", 2593 | "context", 2594 | "contextMenu", 2595 | "contextmenu", 2596 | "continue", 2597 | "continuous", 2598 | "control", 2599 | "controller", 2600 | "controls", 2601 | "convertToSpecifiedUnits", 2602 | "cookie", 2603 | "cookieEnabled", 2604 | "coords", 2605 | "copyFromChannel", 2606 | "copyTexImage2D", 2607 | "copyTexSubImage2D", 2608 | "copyToChannel", 2609 | "copyWithin", 2610 | "correspondingElement", 2611 | "correspondingUseElement", 2612 | "cos", 2613 | "cosh", 2614 | "count", 2615 | "counter-increment", 2616 | "counter-reset", 2617 | "counterIncrement", 2618 | "counterReset", 2619 | "cpuClass", 2620 | "cpuSleepAllowed", 2621 | "create", 2622 | "createAnalyser", 2623 | "createAnswer", 2624 | "createAttribute", 2625 | "createAttributeNS", 2626 | "createBiquadFilter", 2627 | "createBuffer", 2628 | "createBufferSource", 2629 | "createCDATASection", 2630 | "createCSSStyleSheet", 2631 | "createCaption", 2632 | "createChannelMerger", 2633 | "createChannelSplitter", 2634 | "createComment", 2635 | "createContextualFragment", 2636 | "createControlRange", 2637 | "createConvolver", 2638 | "createDTMFSender", 2639 | "createDataChannel", 2640 | "createDelay", 2641 | "createDelayNode", 2642 | "createDocument", 2643 | "createDocumentFragment", 2644 | "createDocumentType", 2645 | "createDynamicsCompressor", 2646 | "createElement", 2647 | "createElementNS", 2648 | "createEntityReference", 2649 | "createEvent", 2650 | "createEventObject", 2651 | "createExpression", 2652 | "createFramebuffer", 2653 | "createFunction", 2654 | "createGain", 2655 | "createGainNode", 2656 | "createHTMLDocument", 2657 | "createImageBitmap", 2658 | "createImageData", 2659 | "createIndex", 2660 | "createJavaScriptNode", 2661 | "createLinearGradient", 2662 | "createMediaElementSource", 2663 | "createMediaKeys", 2664 | "createMediaStreamDestination", 2665 | "createMediaStreamSource", 2666 | "createMutableFile", 2667 | "createNSResolver", 2668 | "createNodeIterator", 2669 | "createNotification", 2670 | "createObjectStore", 2671 | "createObjectURL", 2672 | "createOffer", 2673 | "createOscillator", 2674 | "createPanner", 2675 | "createPattern", 2676 | "createPeriodicWave", 2677 | "createPopup", 2678 | "createProcessingInstruction", 2679 | "createProgram", 2680 | "createRadialGradient", 2681 | "createRange", 2682 | "createRangeCollection", 2683 | "createRenderbuffer", 2684 | "createSVGAngle", 2685 | "createSVGLength", 2686 | "createSVGMatrix", 2687 | "createSVGNumber", 2688 | "createSVGPathSegArcAbs", 2689 | "createSVGPathSegArcRel", 2690 | "createSVGPathSegClosePath", 2691 | "createSVGPathSegCurvetoCubicAbs", 2692 | "createSVGPathSegCurvetoCubicRel", 2693 | "createSVGPathSegCurvetoCubicSmoothAbs", 2694 | "createSVGPathSegCurvetoCubicSmoothRel", 2695 | "createSVGPathSegCurvetoQuadraticAbs", 2696 | "createSVGPathSegCurvetoQuadraticRel", 2697 | "createSVGPathSegCurvetoQuadraticSmoothAbs", 2698 | "createSVGPathSegCurvetoQuadraticSmoothRel", 2699 | "createSVGPathSegLinetoAbs", 2700 | "createSVGPathSegLinetoHorizontalAbs", 2701 | "createSVGPathSegLinetoHorizontalRel", 2702 | "createSVGPathSegLinetoRel", 2703 | "createSVGPathSegLinetoVerticalAbs", 2704 | "createSVGPathSegLinetoVerticalRel", 2705 | "createSVGPathSegMovetoAbs", 2706 | "createSVGPathSegMovetoRel", 2707 | "createSVGPoint", 2708 | "createSVGRect", 2709 | "createSVGTransform", 2710 | "createSVGTransformFromMatrix", 2711 | "createScriptProcessor", 2712 | "createSession", 2713 | "createShader", 2714 | "createShadowRoot", 2715 | "createStereoPanner", 2716 | "createStyleSheet", 2717 | "createTBody", 2718 | "createTFoot", 2719 | "createTHead", 2720 | "createTextNode", 2721 | "createTextRange", 2722 | "createTexture", 2723 | "createTouch", 2724 | "createTouchList", 2725 | "createTreeWalker", 2726 | "createWaveShaper", 2727 | "creationTime", 2728 | "crossOrigin", 2729 | "crypto", 2730 | "csi", 2731 | "cssFloat", 2732 | "cssRules", 2733 | "cssText", 2734 | "cssValueType", 2735 | "ctrlKey", 2736 | "ctrlLeft", 2737 | "cues", 2738 | "cullFace", 2739 | "currentNode", 2740 | "currentPage", 2741 | "currentScale", 2742 | "currentScript", 2743 | "currentSrc", 2744 | "currentState", 2745 | "currentStyle", 2746 | "currentTarget", 2747 | "currentTime", 2748 | "currentTranslate", 2749 | "currentView", 2750 | "cursor", 2751 | "curve", 2752 | "customError", 2753 | "cx", 2754 | "cy", 2755 | "d", 2756 | "data", 2757 | "dataFld", 2758 | "dataFormatAs", 2759 | "dataPageSize", 2760 | "dataSrc", 2761 | "dataTransfer", 2762 | "database", 2763 | "dataset", 2764 | "dateTime", 2765 | "db", 2766 | "debug", 2767 | "debuggerEnabled", 2768 | "declare", 2769 | "decode", 2770 | "decodeAudioData", 2771 | "decodeURI", 2772 | "decodeURIComponent", 2773 | "decrypt", 2774 | "default", 2775 | "defaultCharset", 2776 | "defaultChecked", 2777 | "defaultMuted", 2778 | "defaultPlaybackRate", 2779 | "defaultPrevented", 2780 | "defaultSelected", 2781 | "defaultStatus", 2782 | "defaultURL", 2783 | "defaultValue", 2784 | "defaultView", 2785 | "defaultstatus", 2786 | "defer", 2787 | "defineMagicFunction", 2788 | "defineMagicVariable", 2789 | "defineProperties", 2790 | "defineProperty", 2791 | "delayTime", 2792 | "delete", 2793 | "deleteBuffer", 2794 | "deleteCaption", 2795 | "deleteCell", 2796 | "deleteContents", 2797 | "deleteData", 2798 | "deleteDatabase", 2799 | "deleteFramebuffer", 2800 | "deleteFromDocument", 2801 | "deleteIndex", 2802 | "deleteMedium", 2803 | "deleteObjectStore", 2804 | "deleteProgram", 2805 | "deleteRenderbuffer", 2806 | "deleteRow", 2807 | "deleteRule", 2808 | "deleteShader", 2809 | "deleteTFoot", 2810 | "deleteTHead", 2811 | "deleteTexture", 2812 | "deliverChangeRecords", 2813 | "delivery", 2814 | "deliveryInfo", 2815 | "deliveryStatus", 2816 | "deliveryTimestamp", 2817 | "delta", 2818 | "deltaMode", 2819 | "deltaX", 2820 | "deltaY", 2821 | "deltaZ", 2822 | "depthFunc", 2823 | "depthMask", 2824 | "depthRange", 2825 | "deriveBits", 2826 | "deriveKey", 2827 | "description", 2828 | "deselectAll", 2829 | "designMode", 2830 | "destination", 2831 | "destinationURL", 2832 | "detach", 2833 | "detachEvent", 2834 | "detachShader", 2835 | "detail", 2836 | "detune", 2837 | "devicePixelRatio", 2838 | "deviceXDPI", 2839 | "deviceYDPI", 2840 | "diffuseConstant", 2841 | "digest", 2842 | "dimensions", 2843 | "dir", 2844 | "dirName", 2845 | "direction", 2846 | "dirxml", 2847 | "disable", 2848 | "disableVertexAttribArray", 2849 | "disabled", 2850 | "dischargingTime", 2851 | "disconnect", 2852 | "dispatchEvent", 2853 | "display", 2854 | "distanceModel", 2855 | "divisor", 2856 | "djsapi", 2857 | "djsproxy", 2858 | "doImport", 2859 | "doNotTrack", 2860 | "doScroll", 2861 | "doctype", 2862 | "document", 2863 | "documentElement", 2864 | "documentMode", 2865 | "documentURI", 2866 | "dolphin", 2867 | "dolphinGameCenter", 2868 | "dolphininfo", 2869 | "dolphinmeta", 2870 | "domComplete", 2871 | "domContentLoadedEventEnd", 2872 | "domContentLoadedEventStart", 2873 | "domInteractive", 2874 | "domLoading", 2875 | "domain", 2876 | "domainLookupEnd", 2877 | "domainLookupStart", 2878 | "dominant-baseline", 2879 | "dominantBaseline", 2880 | "done", 2881 | "dopplerFactor", 2882 | "download", 2883 | "dragDrop", 2884 | "draggable", 2885 | "drawArrays", 2886 | "drawArraysInstancedANGLE", 2887 | "drawCustomFocusRing", 2888 | "drawElements", 2889 | "drawElementsInstancedANGLE", 2890 | "drawFocusIfNeeded", 2891 | "drawImage", 2892 | "drawImageFromRect", 2893 | "drawSystemFocusRing", 2894 | "drawingBufferHeight", 2895 | "drawingBufferWidth", 2896 | "dropEffect", 2897 | "droppedVideoFrames", 2898 | "dropzone", 2899 | "dump", 2900 | "duplicate", 2901 | "duration", 2902 | "dvname", 2903 | "dvnum", 2904 | "dx", 2905 | "dy", 2906 | "dynsrc", 2907 | "e", 2908 | "edgeMode", 2909 | "effectAllowed", 2910 | "elapsedTime", 2911 | "elementFromPoint", 2912 | "elements", 2913 | "elevation", 2914 | "ellipse", 2915 | "email", 2916 | "embeds", 2917 | "empty", 2918 | "empty-cells", 2919 | "emptyCells", 2920 | "enable", 2921 | "enableBackground", 2922 | "enableStyleSheetsForSet", 2923 | "enableVertexAttribArray", 2924 | "enabled", 2925 | "enabledPlugin", 2926 | "encode", 2927 | "encodeURI", 2928 | "encodeURIComponent", 2929 | "encoding", 2930 | "encrypt", 2931 | "enctype", 2932 | "end", 2933 | "endContainer", 2934 | "endElement", 2935 | "endElementAt", 2936 | "endOfStream", 2937 | "endOffset", 2938 | "endTime", 2939 | "ended", 2940 | "endsWith", 2941 | "entities", 2942 | "entries", 2943 | "entryType", 2944 | "enumerate", 2945 | "enumerateEditable", 2946 | "error", 2947 | "errorCode", 2948 | "escape", 2949 | "eval", 2950 | "evaluate", 2951 | "event", 2952 | "eventPhase", 2953 | "every", 2954 | "exception", 2955 | "exec", 2956 | "execCommand", 2957 | "execCommandShowHelp", 2958 | "execScript", 2959 | "exitFullscreen", 2960 | "exitPointerLock", 2961 | "exp", 2962 | "expand", 2963 | "expandEntityReferences", 2964 | "expando", 2965 | "expansion", 2966 | "expiryDate", 2967 | "explicitOriginalTarget", 2968 | "expm1", 2969 | "exponent", 2970 | "exponentialRampToValueAtTime", 2971 | "exportKey", 2972 | "extend", 2973 | "extensions", 2974 | "extentNode", 2975 | "extentOffset", 2976 | "external", 2977 | "externalResourcesRequired", 2978 | "extractContents", 2979 | "extractable", 2980 | "f", 2981 | "face", 2982 | "factoryReset", 2983 | "fallback", 2984 | "familyName", 2985 | "farthestViewportElement", 2986 | "fastSeek", 2987 | "fatal", 2988 | "fetch", 2989 | "fetchStart", 2990 | "fftSize", 2991 | "fgColor", 2992 | "fileCreatedDate", 2993 | "fileHandle", 2994 | "fileModifiedDate", 2995 | "fileName", 2996 | "fileSize", 2997 | "fileUpdatedDate", 2998 | "filename", 2999 | "files", 3000 | "fill", 3001 | "fill-opacity", 3002 | "fill-rule", 3003 | "fillOpacity", 3004 | "fillRect", 3005 | "fillRule", 3006 | "fillStyle", 3007 | "fillText", 3008 | "filter", 3009 | "filterResX", 3010 | "filterResY", 3011 | "filterUnits", 3012 | "filters", 3013 | "find", 3014 | "findIndex", 3015 | "findRule", 3016 | "findText", 3017 | "finish", 3018 | "fireEvent", 3019 | "firstChild", 3020 | "firstElementChild", 3021 | "firstPage", 3022 | "fixed", 3023 | "flex", 3024 | "flex-basis", 3025 | "flex-direction", 3026 | "flex-flow", 3027 | "flex-grow", 3028 | "flex-shrink", 3029 | "flex-wrap", 3030 | "flexBasis", 3031 | "flexDirection", 3032 | "flexFlow", 3033 | "flexGrow", 3034 | "flexShrink", 3035 | "flexWrap", 3036 | "flipX", 3037 | "flipY", 3038 | "float", 3039 | "flood-color", 3040 | "flood-opacity", 3041 | "floodColor", 3042 | "floodOpacity", 3043 | "floor", 3044 | "flush", 3045 | "focus", 3046 | "focusNode", 3047 | "focusOffset", 3048 | "font", 3049 | "font-family", 3050 | "font-feature-settings", 3051 | "font-kerning", 3052 | "font-language-override", 3053 | "font-size", 3054 | "font-size-adjust", 3055 | "font-stretch", 3056 | "font-style", 3057 | "font-synthesis", 3058 | "font-variant", 3059 | "font-variant-alternates", 3060 | "font-variant-caps", 3061 | "font-variant-east-asian", 3062 | "font-variant-ligatures", 3063 | "font-variant-numeric", 3064 | "font-variant-position", 3065 | "font-weight", 3066 | "fontFamily", 3067 | "fontFeatureSettings", 3068 | "fontKerning", 3069 | "fontLanguageOverride", 3070 | "fontSize", 3071 | "fontSizeAdjust", 3072 | "fontSmoothingEnabled", 3073 | "fontStretch", 3074 | "fontStyle", 3075 | "fontSynthesis", 3076 | "fontVariant", 3077 | "fontVariantAlternates", 3078 | "fontVariantCaps", 3079 | "fontVariantEastAsian", 3080 | "fontVariantLigatures", 3081 | "fontVariantNumeric", 3082 | "fontVariantPosition", 3083 | "fontWeight", 3084 | "fontcolor", 3085 | "fonts", 3086 | "fontsize", 3087 | "for", 3088 | "forEach", 3089 | "forceRedraw", 3090 | "form", 3091 | "formAction", 3092 | "formEnctype", 3093 | "formMethod", 3094 | "formNoValidate", 3095 | "formTarget", 3096 | "format", 3097 | "forms", 3098 | "forward", 3099 | "fr", 3100 | "frame", 3101 | "frameBorder", 3102 | "frameElement", 3103 | "frameSpacing", 3104 | "framebufferRenderbuffer", 3105 | "framebufferTexture2D", 3106 | "frames", 3107 | "freeSpace", 3108 | "freeze", 3109 | "frequency", 3110 | "frequencyBinCount", 3111 | "from", 3112 | "fromCharCode", 3113 | "fromCodePoint", 3114 | "fromElement", 3115 | "frontFace", 3116 | "fround", 3117 | "fullScreen", 3118 | "fullscreenElement", 3119 | "fullscreenEnabled", 3120 | "fx", 3121 | "fy", 3122 | "gain", 3123 | "gamepad", 3124 | "gamma", 3125 | "genderIdentity", 3126 | "generateKey", 3127 | "generateMipmap", 3128 | "generateRequest", 3129 | "geolocation", 3130 | "gestureObject", 3131 | "get", 3132 | "getActiveAttrib", 3133 | "getActiveUniform", 3134 | "getAdjacentText", 3135 | "getAll", 3136 | "getAllResponseHeaders", 3137 | "getAsFile", 3138 | "getAsString", 3139 | "getAttachedShaders", 3140 | "getAttribLocation", 3141 | "getAttribute", 3142 | "getAttributeNS", 3143 | "getAttributeNode", 3144 | "getAttributeNodeNS", 3145 | "getAudioTracks", 3146 | "getBBox", 3147 | "getBattery", 3148 | "getBlob", 3149 | "getBookmark", 3150 | "getBoundingClientRect", 3151 | "getBufferParameter", 3152 | "getByteFrequencyData", 3153 | "getByteTimeDomainData", 3154 | "getCSSCanvasContext", 3155 | "getCTM", 3156 | "getCandidateWindowClientRect", 3157 | "getChannelData", 3158 | "getCharNumAtPosition", 3159 | "getClientRect", 3160 | "getClientRects", 3161 | "getCompositionAlternatives", 3162 | "getComputedStyle", 3163 | "getComputedTextLength", 3164 | "getConfiguration", 3165 | "getContext", 3166 | "getContextAttributes", 3167 | "getCounterValue", 3168 | "getCueAsHTML", 3169 | "getCueById", 3170 | "getCurrentPosition", 3171 | "getCurrentTime", 3172 | "getData", 3173 | "getDatabaseNames", 3174 | "getDate", 3175 | "getDay", 3176 | "getDefaultComputedStyle", 3177 | "getDestinationInsertionPoints", 3178 | "getDistributedNodes", 3179 | "getEditable", 3180 | "getElementById", 3181 | "getElementsByClassName", 3182 | "getElementsByName", 3183 | "getElementsByTagName", 3184 | "getElementsByTagNameNS", 3185 | "getEnclosureList", 3186 | "getEndPositionOfChar", 3187 | "getEntries", 3188 | "getEntriesByName", 3189 | "getEntriesByType", 3190 | "getError", 3191 | "getExtension", 3192 | "getExtentOfChar", 3193 | "getFeature", 3194 | "getFile", 3195 | "getFloat32", 3196 | "getFloat64", 3197 | "getFloatFrequencyData", 3198 | "getFloatTimeDomainData", 3199 | "getFloatValue", 3200 | "getFramebufferAttachmentParameter", 3201 | "getFrequencyResponse", 3202 | "getFullYear", 3203 | "getGamepads", 3204 | "getHours", 3205 | "getImageData", 3206 | "getInt16", 3207 | "getInt32", 3208 | "getInt8", 3209 | "getIntersectionList", 3210 | "getItem", 3211 | "getItems", 3212 | "getKey", 3213 | "getLineDash", 3214 | "getLocalStreams", 3215 | "getMarks", 3216 | "getMatchedCSSRules", 3217 | "getMeasures", 3218 | "getMetadata", 3219 | "getMilliseconds", 3220 | "getMinutes", 3221 | "getModifierState", 3222 | "getMonth", 3223 | "getNamedItem", 3224 | "getNamedItemNS", 3225 | "getNotifier", 3226 | "getNumberOfChars", 3227 | "getOverrideHistoryNavigationMode", 3228 | "getOverrideStyle", 3229 | "getOwnPropertyDescriptor", 3230 | "getOwnPropertyNames", 3231 | "getOwnPropertySymbols", 3232 | "getParameter", 3233 | "getPathSegAtLength", 3234 | "getPointAtLength", 3235 | "getPreference", 3236 | "getPreferenceDefault", 3237 | "getPresentationAttribute", 3238 | "getPreventDefault", 3239 | "getProgramInfoLog", 3240 | "getProgramParameter", 3241 | "getPropertyCSSValue", 3242 | "getPropertyPriority", 3243 | "getPropertyShorthand", 3244 | "getPropertyValue", 3245 | "getPrototypeOf", 3246 | "getRGBColorValue", 3247 | "getRandomValues", 3248 | "getRangeAt", 3249 | "getReceivers", 3250 | "getRectValue", 3251 | "getRegistration", 3252 | "getRemoteStreams", 3253 | "getRenderbufferParameter", 3254 | "getResponseHeader", 3255 | "getRoot", 3256 | "getRotationOfChar", 3257 | "getSVGDocument", 3258 | "getScreenCTM", 3259 | "getSeconds", 3260 | "getSelection", 3261 | "getSenders", 3262 | "getShaderInfoLog", 3263 | "getShaderParameter", 3264 | "getShaderPrecisionFormat", 3265 | "getShaderSource", 3266 | "getSimpleDuration", 3267 | "getSiteIcons", 3268 | "getSources", 3269 | "getSpeculativeParserUrls", 3270 | "getStartPositionOfChar", 3271 | "getStartTime", 3272 | "getStats", 3273 | "getStorageUpdates", 3274 | "getStreamById", 3275 | "getStringValue", 3276 | "getSubStringLength", 3277 | "getSubscription", 3278 | "getSupportedExtensions", 3279 | "getTexParameter", 3280 | "getTime", 3281 | "getTimezoneOffset", 3282 | "getTotalLength", 3283 | "getTrackById", 3284 | "getTracks", 3285 | "getTransformToElement", 3286 | "getUTCDate", 3287 | "getUTCDay", 3288 | "getUTCFullYear", 3289 | "getUTCHours", 3290 | "getUTCMilliseconds", 3291 | "getUTCMinutes", 3292 | "getUTCMonth", 3293 | "getUTCSeconds", 3294 | "getUint16", 3295 | "getUint32", 3296 | "getUint8", 3297 | "getUniform", 3298 | "getUniformLocation", 3299 | "getUserMedia", 3300 | "getValues", 3301 | "getVarDate", 3302 | "getVariableValue", 3303 | "getVertexAttrib", 3304 | "getVertexAttribOffset", 3305 | "getVideoPlaybackQuality", 3306 | "getVideoTracks", 3307 | "getWakeLockState", 3308 | "getYear", 3309 | "givenName", 3310 | "global", 3311 | "globalAlpha", 3312 | "globalCompositeOperation", 3313 | "glyphOrientationHorizontal", 3314 | "glyphOrientationVertical", 3315 | "glyphRef", 3316 | "go", 3317 | "gradientTransform", 3318 | "gradientUnits", 3319 | "grammars", 3320 | "green", 3321 | "group", 3322 | "groupCollapsed", 3323 | "groupEnd", 3324 | "hardwareConcurrency", 3325 | "has", 3326 | "hasAttribute", 3327 | "hasAttributeNS", 3328 | "hasAttributes", 3329 | "hasChildNodes", 3330 | "hasComposition", 3331 | "hasExtension", 3332 | "hasFeature", 3333 | "hasFocus", 3334 | "hasLayout", 3335 | "hasOwnProperty", 3336 | "hash", 3337 | "head", 3338 | "headers", 3339 | "heading", 3340 | "height", 3341 | "hidden", 3342 | "hide", 3343 | "hideFocus", 3344 | "high", 3345 | "hint", 3346 | "history", 3347 | "honorificPrefix", 3348 | "honorificSuffix", 3349 | "horizontalOverflow", 3350 | "host", 3351 | "hostname", 3352 | "href", 3353 | "hreflang", 3354 | "hspace", 3355 | "html5TagCheckInerface", 3356 | "htmlFor", 3357 | "htmlText", 3358 | "httpEquiv", 3359 | "hwTimestamp", 3360 | "hypot", 3361 | "iccId", 3362 | "iceConnectionState", 3363 | "iceGatheringState", 3364 | "icon", 3365 | "id", 3366 | "identifier", 3367 | "identity", 3368 | "ignoreBOM", 3369 | "ignoreCase", 3370 | "image-orientation", 3371 | "image-rendering", 3372 | "imageOrientation", 3373 | "imageRendering", 3374 | "images", 3375 | "ime-mode", 3376 | "imeMode", 3377 | "implementation", 3378 | "importKey", 3379 | "importNode", 3380 | "importStylesheet", 3381 | "imports", 3382 | "impp", 3383 | "imul", 3384 | "in1", 3385 | "in2", 3386 | "inBandMetadataTrackDispatchType", 3387 | "inRange", 3388 | "includes", 3389 | "incremental", 3390 | "indeterminate", 3391 | "index", 3392 | "indexNames", 3393 | "indexOf", 3394 | "indexedDB", 3395 | "inertiaDestinationX", 3396 | "inertiaDestinationY", 3397 | "info", 3398 | "init", 3399 | "initAnimationEvent", 3400 | "initBeforeLoadEvent", 3401 | "initClipboardEvent", 3402 | "initCloseEvent", 3403 | "initCommandEvent", 3404 | "initCompositionEvent", 3405 | "initCustomEvent", 3406 | "initData", 3407 | "initDeviceMotionEvent", 3408 | "initDeviceOrientationEvent", 3409 | "initDragEvent", 3410 | "initErrorEvent", 3411 | "initEvent", 3412 | "initFocusEvent", 3413 | "initGestureEvent", 3414 | "initHashChangeEvent", 3415 | "initKeyEvent", 3416 | "initKeyboardEvent", 3417 | "initMSManipulationEvent", 3418 | "initMessageEvent", 3419 | "initMouseEvent", 3420 | "initMouseScrollEvent", 3421 | "initMouseWheelEvent", 3422 | "initMutationEvent", 3423 | "initNSMouseEvent", 3424 | "initOverflowEvent", 3425 | "initPageEvent", 3426 | "initPageTransitionEvent", 3427 | "initPointerEvent", 3428 | "initPopStateEvent", 3429 | "initProgressEvent", 3430 | "initScrollAreaEvent", 3431 | "initSimpleGestureEvent", 3432 | "initStorageEvent", 3433 | "initTextEvent", 3434 | "initTimeEvent", 3435 | "initTouchEvent", 3436 | "initTransitionEvent", 3437 | "initUIEvent", 3438 | "initWebKitAnimationEvent", 3439 | "initWebKitTransitionEvent", 3440 | "initWebKitWheelEvent", 3441 | "initWheelEvent", 3442 | "initialTime", 3443 | "initialize", 3444 | "initiatorType", 3445 | "inner", 3446 | "innerHTML", 3447 | "innerHeight", 3448 | "innerText", 3449 | "innerWidth", 3450 | "input", 3451 | "inputBuffer", 3452 | "inputEncoding", 3453 | "inputMethod", 3454 | "insertAdjacentElement", 3455 | "insertAdjacentHTML", 3456 | "insertAdjacentText", 3457 | "insertBefore", 3458 | "insertCell", 3459 | "insertData", 3460 | "insertItemBefore", 3461 | "insertNode", 3462 | "insertRow", 3463 | "insertRule", 3464 | "instanceRoot", 3465 | "intercept", 3466 | "interimResults", 3467 | "internalSubset", 3468 | "intersectsNode", 3469 | "interval", 3470 | "invalidIteratorState", 3471 | "inverse", 3472 | "invertSelf", 3473 | "is", 3474 | "is2D", 3475 | "isAlternate", 3476 | "isArray", 3477 | "isBingCurrentSearchDefault", 3478 | "isBuffer", 3479 | "isCandidateWindowVisible", 3480 | "isChar", 3481 | "isCollapsed", 3482 | "isComposing", 3483 | "isContentEditable", 3484 | "isContentHandlerRegistered", 3485 | "isContextLost", 3486 | "isDefaultNamespace", 3487 | "isDisabled", 3488 | "isEnabled", 3489 | "isEqual", 3490 | "isEqualNode", 3491 | "isExtensible", 3492 | "isFinite", 3493 | "isFramebuffer", 3494 | "isFrozen", 3495 | "isGenerator", 3496 | "isId", 3497 | "isInjected", 3498 | "isInteger", 3499 | "isMap", 3500 | "isMultiLine", 3501 | "isNaN", 3502 | "isOpen", 3503 | "isPointInFill", 3504 | "isPointInPath", 3505 | "isPointInRange", 3506 | "isPointInStroke", 3507 | "isPrefAlternate", 3508 | "isPrimary", 3509 | "isProgram", 3510 | "isPropertyImplicit", 3511 | "isProtocolHandlerRegistered", 3512 | "isPrototypeOf", 3513 | "isRenderbuffer", 3514 | "isSafeInteger", 3515 | "isSameNode", 3516 | "isSealed", 3517 | "isShader", 3518 | "isSupported", 3519 | "isTextEdit", 3520 | "isTexture", 3521 | "isTrusted", 3522 | "isTypeSupported", 3523 | "isView", 3524 | "isolation", 3525 | "italics", 3526 | "item", 3527 | "itemId", 3528 | "itemProp", 3529 | "itemRef", 3530 | "itemScope", 3531 | "itemType", 3532 | "itemValue", 3533 | "iterateNext", 3534 | "iterator", 3535 | "javaEnabled", 3536 | "jobTitle", 3537 | "join", 3538 | "json", 3539 | "justify-content", 3540 | "justifyContent", 3541 | "k1", 3542 | "k2", 3543 | "k3", 3544 | "k4", 3545 | "kernelMatrix", 3546 | "kernelUnitLengthX", 3547 | "kernelUnitLengthY", 3548 | "kerning", 3549 | "key", 3550 | "keyCode", 3551 | "keyFor", 3552 | "keyIdentifier", 3553 | "keyLightEnabled", 3554 | "keyLocation", 3555 | "keyPath", 3556 | "keySystem", 3557 | "keyText", 3558 | "keyUsage", 3559 | "keys", 3560 | "keytype", 3561 | "kind", 3562 | "knee", 3563 | "label", 3564 | "labels", 3565 | "lang", 3566 | "language", 3567 | "languages", 3568 | "largeArcFlag", 3569 | "lastChild", 3570 | "lastElementChild", 3571 | "lastEventId", 3572 | "lastIndex", 3573 | "lastIndexOf", 3574 | "lastMatch", 3575 | "lastMessageSubject", 3576 | "lastMessageType", 3577 | "lastModified", 3578 | "lastModifiedDate", 3579 | "lastPage", 3580 | "lastParen", 3581 | "lastState", 3582 | "lastStyleSheetSet", 3583 | "latitude", 3584 | "layerX", 3585 | "layerY", 3586 | "layoutFlow", 3587 | "layoutGrid", 3588 | "layoutGridChar", 3589 | "layoutGridLine", 3590 | "layoutGridMode", 3591 | "layoutGridType", 3592 | "lbound", 3593 | "left", 3594 | "leftContext", 3595 | "leftMargin", 3596 | "length", 3597 | "lengthAdjust", 3598 | "lengthComputable", 3599 | "letter-spacing", 3600 | "letterSpacing", 3601 | "level", 3602 | "lighting-color", 3603 | "lightingColor", 3604 | "limitingConeAngle", 3605 | "line", 3606 | "line-height", 3607 | "lineAlign", 3608 | "lineBreak", 3609 | "lineCap", 3610 | "lineDashOffset", 3611 | "lineHeight", 3612 | "lineJoin", 3613 | "lineNumber", 3614 | "lineTo", 3615 | "lineWidth", 3616 | "linearRampToValueAtTime", 3617 | "lineno", 3618 | "link", 3619 | "linkColor", 3620 | "linkProgram", 3621 | "links", 3622 | "list", 3623 | "list-style", 3624 | "list-style-image", 3625 | "list-style-position", 3626 | "list-style-type", 3627 | "listStyle", 3628 | "listStyleImage", 3629 | "listStylePosition", 3630 | "listStyleType", 3631 | "listener", 3632 | "load", 3633 | "loadEventEnd", 3634 | "loadEventStart", 3635 | "loadTimes", 3636 | "loaded", 3637 | "localDescription", 3638 | "localName", 3639 | "localStorage", 3640 | "locale", 3641 | "localeCompare", 3642 | "location", 3643 | "locationbar", 3644 | "lock", 3645 | "lockedFile", 3646 | "log", 3647 | "log10", 3648 | "log1p", 3649 | "log2", 3650 | "logicalXDPI", 3651 | "logicalYDPI", 3652 | "longDesc", 3653 | "longitude", 3654 | "lookupNamespaceURI", 3655 | "lookupPrefix", 3656 | "loop", 3657 | "loopEnd", 3658 | "loopStart", 3659 | "looping", 3660 | "low", 3661 | "lower", 3662 | "lowerBound", 3663 | "lowerOpen", 3664 | "lowsrc", 3665 | "m11", 3666 | "m12", 3667 | "m13", 3668 | "m14", 3669 | "m21", 3670 | "m22", 3671 | "m23", 3672 | "m24", 3673 | "m31", 3674 | "m32", 3675 | "m33", 3676 | "m34", 3677 | "m41", 3678 | "m42", 3679 | "m43", 3680 | "m44", 3681 | "manifest", 3682 | "map", 3683 | "mapping", 3684 | "margin", 3685 | "margin-bottom", 3686 | "margin-left", 3687 | "margin-right", 3688 | "margin-top", 3689 | "marginBottom", 3690 | "marginHeight", 3691 | "marginLeft", 3692 | "marginRight", 3693 | "marginTop", 3694 | "marginWidth", 3695 | "mark", 3696 | "marker", 3697 | "marker-end", 3698 | "marker-mid", 3699 | "marker-offset", 3700 | "marker-start", 3701 | "markerEnd", 3702 | "markerHeight", 3703 | "markerMid", 3704 | "markerOffset", 3705 | "markerStart", 3706 | "markerUnits", 3707 | "markerWidth", 3708 | "marks", 3709 | "mask", 3710 | "mask-type", 3711 | "maskContentUnits", 3712 | "maskType", 3713 | "maskUnits", 3714 | "match", 3715 | "matchMedia", 3716 | "matchMedium", 3717 | "matches", 3718 | "matrix", 3719 | "matrixTransform", 3720 | "max", 3721 | "max-height", 3722 | "max-width", 3723 | "maxAlternatives", 3724 | "maxChannelCount", 3725 | "maxConnectionsPerServer", 3726 | "maxDecibels", 3727 | "maxDistance", 3728 | "maxHeight", 3729 | "maxLength", 3730 | "maxTouchPoints", 3731 | "maxValue", 3732 | "maxWidth", 3733 | "measure", 3734 | "measureText", 3735 | "media", 3736 | "mediaDevices", 3737 | "mediaElement", 3738 | "mediaGroup", 3739 | "mediaKeys", 3740 | "mediaText", 3741 | "meetOrSlice", 3742 | "memory", 3743 | "menubar", 3744 | "mergeAttributes", 3745 | "message", 3746 | "messageClass", 3747 | "messageHandlers", 3748 | "metaKey", 3749 | "method", 3750 | "mimeType", 3751 | "mimeTypes", 3752 | "min", 3753 | "min-height", 3754 | "min-width", 3755 | "minDecibels", 3756 | "minHeight", 3757 | "minValue", 3758 | "minWidth", 3759 | "miterLimit", 3760 | "mix-blend-mode", 3761 | "mixBlendMode", 3762 | "mode", 3763 | "modify", 3764 | "mount", 3765 | "move", 3766 | "moveBy", 3767 | "moveEnd", 3768 | "moveFirst", 3769 | "moveFocusDown", 3770 | "moveFocusLeft", 3771 | "moveFocusRight", 3772 | "moveFocusUp", 3773 | "moveNext", 3774 | "moveRow", 3775 | "moveStart", 3776 | "moveTo", 3777 | "moveToBookmark", 3778 | "moveToElementText", 3779 | "moveToPoint", 3780 | "mozAdd", 3781 | "mozAnimationStartTime", 3782 | "mozAnon", 3783 | "mozApps", 3784 | "mozAudioCaptured", 3785 | "mozAudioChannelType", 3786 | "mozAutoplayEnabled", 3787 | "mozCancelAnimationFrame", 3788 | "mozCancelFullScreen", 3789 | "mozCancelRequestAnimationFrame", 3790 | "mozCaptureStream", 3791 | "mozCaptureStreamUntilEnded", 3792 | "mozClearDataAt", 3793 | "mozContact", 3794 | "mozContacts", 3795 | "mozCreateFileHandle", 3796 | "mozCurrentTransform", 3797 | "mozCurrentTransformInverse", 3798 | "mozCursor", 3799 | "mozDash", 3800 | "mozDashOffset", 3801 | "mozDecodedFrames", 3802 | "mozExitPointerLock", 3803 | "mozFillRule", 3804 | "mozFragmentEnd", 3805 | "mozFrameDelay", 3806 | "mozFullScreen", 3807 | "mozFullScreenElement", 3808 | "mozFullScreenEnabled", 3809 | "mozGetAll", 3810 | "mozGetAllKeys", 3811 | "mozGetAsFile", 3812 | "mozGetDataAt", 3813 | "mozGetMetadata", 3814 | "mozGetUserMedia", 3815 | "mozHasAudio", 3816 | "mozHasItem", 3817 | "mozHidden", 3818 | "mozImageSmoothingEnabled", 3819 | "mozIndexedDB", 3820 | "mozInnerScreenX", 3821 | "mozInnerScreenY", 3822 | "mozInputSource", 3823 | "mozIsTextField", 3824 | "mozItem", 3825 | "mozItemCount", 3826 | "mozItems", 3827 | "mozLength", 3828 | "mozLockOrientation", 3829 | "mozMatchesSelector", 3830 | "mozMovementX", 3831 | "mozMovementY", 3832 | "mozOpaque", 3833 | "mozOrientation", 3834 | "mozPaintCount", 3835 | "mozPaintedFrames", 3836 | "mozParsedFrames", 3837 | "mozPay", 3838 | "mozPointerLockElement", 3839 | "mozPresentedFrames", 3840 | "mozPreservesPitch", 3841 | "mozPressure", 3842 | "mozPrintCallback", 3843 | "mozRTCIceCandidate", 3844 | "mozRTCPeerConnection", 3845 | "mozRTCSessionDescription", 3846 | "mozRemove", 3847 | "mozRequestAnimationFrame", 3848 | "mozRequestFullScreen", 3849 | "mozRequestPointerLock", 3850 | "mozSetDataAt", 3851 | "mozSetImageElement", 3852 | "mozSourceNode", 3853 | "mozSrcObject", 3854 | "mozSystem", 3855 | "mozTCPSocket", 3856 | "mozTextStyle", 3857 | "mozTypesAt", 3858 | "mozUnlockOrientation", 3859 | "mozUserCancelled", 3860 | "mozVisibilityState", 3861 | "msAnimation", 3862 | "msAnimationDelay", 3863 | "msAnimationDirection", 3864 | "msAnimationDuration", 3865 | "msAnimationFillMode", 3866 | "msAnimationIterationCount", 3867 | "msAnimationName", 3868 | "msAnimationPlayState", 3869 | "msAnimationStartTime", 3870 | "msAnimationTimingFunction", 3871 | "msBackfaceVisibility", 3872 | "msBlockProgression", 3873 | "msCSSOMElementFloatMetrics", 3874 | "msCaching", 3875 | "msCachingEnabled", 3876 | "msCancelRequestAnimationFrame", 3877 | "msCapsLockWarningOff", 3878 | "msClearImmediate", 3879 | "msClose", 3880 | "msContentZoomChaining", 3881 | "msContentZoomFactor", 3882 | "msContentZoomLimit", 3883 | "msContentZoomLimitMax", 3884 | "msContentZoomLimitMin", 3885 | "msContentZoomSnap", 3886 | "msContentZoomSnapPoints", 3887 | "msContentZoomSnapType", 3888 | "msContentZooming", 3889 | "msConvertURL", 3890 | "msCrypto", 3891 | "msDoNotTrack", 3892 | "msElementsFromPoint", 3893 | "msElementsFromRect", 3894 | "msExitFullscreen", 3895 | "msExtendedCode", 3896 | "msFillRule", 3897 | "msFirstPaint", 3898 | "msFlex", 3899 | "msFlexAlign", 3900 | "msFlexDirection", 3901 | "msFlexFlow", 3902 | "msFlexItemAlign", 3903 | "msFlexLinePack", 3904 | "msFlexNegative", 3905 | "msFlexOrder", 3906 | "msFlexPack", 3907 | "msFlexPositive", 3908 | "msFlexPreferredSize", 3909 | "msFlexWrap", 3910 | "msFlowFrom", 3911 | "msFlowInto", 3912 | "msFontFeatureSettings", 3913 | "msFullscreenElement", 3914 | "msFullscreenEnabled", 3915 | "msGetInputContext", 3916 | "msGetRegionContent", 3917 | "msGetUntransformedBounds", 3918 | "msGraphicsTrustStatus", 3919 | "msGridColumn", 3920 | "msGridColumnAlign", 3921 | "msGridColumnSpan", 3922 | "msGridColumns", 3923 | "msGridRow", 3924 | "msGridRowAlign", 3925 | "msGridRowSpan", 3926 | "msGridRows", 3927 | "msHidden", 3928 | "msHighContrastAdjust", 3929 | "msHyphenateLimitChars", 3930 | "msHyphenateLimitLines", 3931 | "msHyphenateLimitZone", 3932 | "msHyphens", 3933 | "msImageSmoothingEnabled", 3934 | "msImeAlign", 3935 | "msIndexedDB", 3936 | "msInterpolationMode", 3937 | "msIsStaticHTML", 3938 | "msKeySystem", 3939 | "msKeys", 3940 | "msLaunchUri", 3941 | "msLockOrientation", 3942 | "msManipulationViewsEnabled", 3943 | "msMatchMedia", 3944 | "msMatchesSelector", 3945 | "msMaxTouchPoints", 3946 | "msOrientation", 3947 | "msOverflowStyle", 3948 | "msPerspective", 3949 | "msPerspectiveOrigin", 3950 | "msPlayToDisabled", 3951 | "msPlayToPreferredSourceUri", 3952 | "msPlayToPrimary", 3953 | "msPointerEnabled", 3954 | "msRegionOverflow", 3955 | "msReleasePointerCapture", 3956 | "msRequestAnimationFrame", 3957 | "msRequestFullscreen", 3958 | "msSaveBlob", 3959 | "msSaveOrOpenBlob", 3960 | "msScrollChaining", 3961 | "msScrollLimit", 3962 | "msScrollLimitXMax", 3963 | "msScrollLimitXMin", 3964 | "msScrollLimitYMax", 3965 | "msScrollLimitYMin", 3966 | "msScrollRails", 3967 | "msScrollSnapPointsX", 3968 | "msScrollSnapPointsY", 3969 | "msScrollSnapType", 3970 | "msScrollSnapX", 3971 | "msScrollSnapY", 3972 | "msScrollTranslation", 3973 | "msSetImmediate", 3974 | "msSetMediaKeys", 3975 | "msSetPointerCapture", 3976 | "msTextCombineHorizontal", 3977 | "msTextSizeAdjust", 3978 | "msToBlob", 3979 | "msTouchAction", 3980 | "msTouchSelect", 3981 | "msTraceAsyncCallbackCompleted", 3982 | "msTraceAsyncCallbackStarting", 3983 | "msTraceAsyncOperationCompleted", 3984 | "msTraceAsyncOperationStarting", 3985 | "msTransform", 3986 | "msTransformOrigin", 3987 | "msTransformStyle", 3988 | "msTransition", 3989 | "msTransitionDelay", 3990 | "msTransitionDuration", 3991 | "msTransitionProperty", 3992 | "msTransitionTimingFunction", 3993 | "msUnlockOrientation", 3994 | "msUpdateAsyncCallbackRelation", 3995 | "msUserSelect", 3996 | "msVisibilityState", 3997 | "msWrapFlow", 3998 | "msWrapMargin", 3999 | "msWrapThrough", 4000 | "msWriteProfilerMark", 4001 | "msZoom", 4002 | "msZoomTo", 4003 | "mt", 4004 | "multiEntry", 4005 | "multiSelectionObj", 4006 | "multiline", 4007 | "multiple", 4008 | "multiply", 4009 | "multiplySelf", 4010 | "mutableFile", 4011 | "muted", 4012 | "n", 4013 | "name", 4014 | "nameProp", 4015 | "namedItem", 4016 | "namedRecordset", 4017 | "names", 4018 | "namespaceURI", 4019 | "namespaces", 4020 | "naturalHeight", 4021 | "naturalWidth", 4022 | "navigate", 4023 | "navigation", 4024 | "navigationMode", 4025 | "navigationStart", 4026 | "navigator", 4027 | "near", 4028 | "nearestViewportElement", 4029 | "negative", 4030 | "netscape", 4031 | "networkState", 4032 | "newScale", 4033 | "newTranslate", 4034 | "newURL", 4035 | "newValue", 4036 | "newValueSpecifiedUnits", 4037 | "newVersion", 4038 | "newhome", 4039 | "next", 4040 | "nextElementSibling", 4041 | "nextNode", 4042 | "nextPage", 4043 | "nextSibling", 4044 | "nickname", 4045 | "noHref", 4046 | "noResize", 4047 | "noShade", 4048 | "noValidate", 4049 | "noWrap", 4050 | "nodeName", 4051 | "nodeType", 4052 | "nodeValue", 4053 | "normalize", 4054 | "normalizedPathSegList", 4055 | "notationName", 4056 | "notations", 4057 | "note", 4058 | "noteGrainOn", 4059 | "noteOff", 4060 | "noteOn", 4061 | "now", 4062 | "numOctaves", 4063 | "number", 4064 | "numberOfChannels", 4065 | "numberOfInputs", 4066 | "numberOfItems", 4067 | "numberOfOutputs", 4068 | "numberValue", 4069 | "oMatchesSelector", 4070 | "object", 4071 | "object-fit", 4072 | "object-position", 4073 | "objectFit", 4074 | "objectPosition", 4075 | "objectStore", 4076 | "objectStoreNames", 4077 | "observe", 4078 | "of", 4079 | "offscreenBuffering", 4080 | "offset", 4081 | "offsetHeight", 4082 | "offsetLeft", 4083 | "offsetNode", 4084 | "offsetParent", 4085 | "offsetTop", 4086 | "offsetWidth", 4087 | "offsetX", 4088 | "offsetY", 4089 | "ok", 4090 | "oldURL", 4091 | "oldValue", 4092 | "oldVersion", 4093 | "olderShadowRoot", 4094 | "onLine", 4095 | "onabort", 4096 | "onactivate", 4097 | "onactive", 4098 | "onaddstream", 4099 | "onaddtrack", 4100 | "onafterprint", 4101 | "onafterscriptexecute", 4102 | "onafterupdate", 4103 | "onaudioend", 4104 | "onaudioprocess", 4105 | "onaudiostart", 4106 | "onautocomplete", 4107 | "onautocompleteerror", 4108 | "onbeforeactivate", 4109 | "onbeforecopy", 4110 | "onbeforecut", 4111 | "onbeforedeactivate", 4112 | "onbeforeeditfocus", 4113 | "onbeforepaste", 4114 | "onbeforeprint", 4115 | "onbeforescriptexecute", 4116 | "onbeforeunload", 4117 | "onbeforeupdate", 4118 | "onblocked", 4119 | "onblur", 4120 | "onbounce", 4121 | "onboundary", 4122 | "oncached", 4123 | "oncancel", 4124 | "oncandidatewindowhide", 4125 | "oncandidatewindowshow", 4126 | "oncandidatewindowupdate", 4127 | "oncanplay", 4128 | "oncanplaythrough", 4129 | "oncellchange", 4130 | "onchange", 4131 | "onchargingchange", 4132 | "onchargingtimechange", 4133 | "onchecking", 4134 | "onclick", 4135 | "onclose", 4136 | "oncompassneedscalibration", 4137 | "oncomplete", 4138 | "oncontextmenu", 4139 | "oncontrolselect", 4140 | "oncopy", 4141 | "oncuechange", 4142 | "oncut", 4143 | "ondataavailable", 4144 | "ondatachannel", 4145 | "ondatasetchanged", 4146 | "ondatasetcomplete", 4147 | "ondblclick", 4148 | "ondeactivate", 4149 | "ondevicelight", 4150 | "ondevicemotion", 4151 | "ondeviceorientation", 4152 | "ondeviceproximity", 4153 | "ondischargingtimechange", 4154 | "ondisplay", 4155 | "ondownloading", 4156 | "ondrag", 4157 | "ondragend", 4158 | "ondragenter", 4159 | "ondragleave", 4160 | "ondragover", 4161 | "ondragstart", 4162 | "ondrop", 4163 | "ondurationchange", 4164 | "onemptied", 4165 | "onencrypted", 4166 | "onend", 4167 | "onended", 4168 | "onenter", 4169 | "onerror", 4170 | "onerrorupdate", 4171 | "onexit", 4172 | "onfilterchange", 4173 | "onfinish", 4174 | "onfocus", 4175 | "onfocusin", 4176 | "onfocusout", 4177 | "onfullscreenchange", 4178 | "onfullscreenerror", 4179 | "ongesturechange", 4180 | "ongestureend", 4181 | "ongesturestart", 4182 | "ongotpointercapture", 4183 | "onhashchange", 4184 | "onhelp", 4185 | "onicecandidate", 4186 | "oniceconnectionstatechange", 4187 | "oninactive", 4188 | "oninput", 4189 | "oninvalid", 4190 | "onkeydown", 4191 | "onkeypress", 4192 | "onkeyup", 4193 | "onlanguagechange", 4194 | "onlayoutcomplete", 4195 | "onlevelchange", 4196 | "onload", 4197 | "onloadeddata", 4198 | "onloadedmetadata", 4199 | "onloadend", 4200 | "onloadstart", 4201 | "onlosecapture", 4202 | "onlostpointercapture", 4203 | "only", 4204 | "onmark", 4205 | "onmessage", 4206 | "onmousedown", 4207 | "onmouseenter", 4208 | "onmouseleave", 4209 | "onmousemove", 4210 | "onmouseout", 4211 | "onmouseover", 4212 | "onmouseup", 4213 | "onmousewheel", 4214 | "onmove", 4215 | "onmoveend", 4216 | "onmovestart", 4217 | "onmozfullscreenchange", 4218 | "onmozfullscreenerror", 4219 | "onmozorientationchange", 4220 | "onmozpointerlockchange", 4221 | "onmozpointerlockerror", 4222 | "onmscontentzoom", 4223 | "onmsfullscreenchange", 4224 | "onmsfullscreenerror", 4225 | "onmsgesturechange", 4226 | "onmsgesturedoubletap", 4227 | "onmsgestureend", 4228 | "onmsgesturehold", 4229 | "onmsgesturestart", 4230 | "onmsgesturetap", 4231 | "onmsgotpointercapture", 4232 | "onmsinertiastart", 4233 | "onmslostpointercapture", 4234 | "onmsmanipulationstatechanged", 4235 | "onmsneedkey", 4236 | "onmsorientationchange", 4237 | "onmspointercancel", 4238 | "onmspointerdown", 4239 | "onmspointerenter", 4240 | "onmspointerhover", 4241 | "onmspointerleave", 4242 | "onmspointermove", 4243 | "onmspointerout", 4244 | "onmspointerover", 4245 | "onmspointerup", 4246 | "onmssitemodejumplistitemremoved", 4247 | "onmsthumbnailclick", 4248 | "onnegotiationneeded", 4249 | "onnomatch", 4250 | "onnoupdate", 4251 | "onobsolete", 4252 | "onoffline", 4253 | "ononline", 4254 | "onopen", 4255 | "onorientationchange", 4256 | "onpagechange", 4257 | "onpagehide", 4258 | "onpageshow", 4259 | "onpaste", 4260 | "onpause", 4261 | "onplay", 4262 | "onplaying", 4263 | "onpluginstreamstart", 4264 | "onpointercancel", 4265 | "onpointerdown", 4266 | "onpointerenter", 4267 | "onpointerleave", 4268 | "onpointerlockchange", 4269 | "onpointerlockerror", 4270 | "onpointermove", 4271 | "onpointerout", 4272 | "onpointerover", 4273 | "onpointerup", 4274 | "onpopstate", 4275 | "onprogress", 4276 | "onpropertychange", 4277 | "onratechange", 4278 | "onreadystatechange", 4279 | "onremovestream", 4280 | "onremovetrack", 4281 | "onreset", 4282 | "onresize", 4283 | "onresizeend", 4284 | "onresizestart", 4285 | "onresourcetimingbufferfull", 4286 | "onresult", 4287 | "onresume", 4288 | "onrowenter", 4289 | "onrowexit", 4290 | "onrowsdelete", 4291 | "onrowsinserted", 4292 | "onscroll", 4293 | "onsearch", 4294 | "onseeked", 4295 | "onseeking", 4296 | "onselect", 4297 | "onselectionchange", 4298 | "onselectstart", 4299 | "onshow", 4300 | "onsignalingstatechange", 4301 | "onsoundend", 4302 | "onsoundstart", 4303 | "onspeechend", 4304 | "onspeechstart", 4305 | "onstalled", 4306 | "onstart", 4307 | "onstatechange", 4308 | "onstop", 4309 | "onstorage", 4310 | "onstoragecommit", 4311 | "onsubmit", 4312 | "onsuccess", 4313 | "onsuspend", 4314 | "ontextinput", 4315 | "ontimeout", 4316 | "ontimeupdate", 4317 | "ontoggle", 4318 | "ontouchcancel", 4319 | "ontouchend", 4320 | "ontouchmove", 4321 | "ontouchstart", 4322 | "ontransitionend", 4323 | "onunload", 4324 | "onupdateready", 4325 | "onupgradeneeded", 4326 | "onuserproximity", 4327 | "onversionchange", 4328 | "onvoiceschanged", 4329 | "onvolumechange", 4330 | "onwaiting", 4331 | "onwarning", 4332 | "onwebkitanimationend", 4333 | "onwebkitanimationiteration", 4334 | "onwebkitanimationstart", 4335 | "onwebkitcurrentplaybacktargetiswirelesschanged", 4336 | "onwebkitfullscreenchange", 4337 | "onwebkitfullscreenerror", 4338 | "onwebkitkeyadded", 4339 | "onwebkitkeyerror", 4340 | "onwebkitkeymessage", 4341 | "onwebkitneedkey", 4342 | "onwebkitorientationchange", 4343 | "onwebkitplaybacktargetavailabilitychanged", 4344 | "onwebkitpointerlockchange", 4345 | "onwebkitpointerlockerror", 4346 | "onwebkitresourcetimingbufferfull", 4347 | "onwebkittransitionend", 4348 | "onwheel", 4349 | "onzoom", 4350 | "opacity", 4351 | "open", 4352 | "openCursor", 4353 | "openDatabase", 4354 | "openKeyCursor", 4355 | "opener", 4356 | "opera", 4357 | "operationType", 4358 | "operator", 4359 | "opr", 4360 | "optimum", 4361 | "options", 4362 | "order", 4363 | "orderX", 4364 | "orderY", 4365 | "ordered", 4366 | "org", 4367 | "orient", 4368 | "orientAngle", 4369 | "orientType", 4370 | "orientation", 4371 | "origin", 4372 | "originalTarget", 4373 | "orphans", 4374 | "oscpu", 4375 | "outerHTML", 4376 | "outerHeight", 4377 | "outerText", 4378 | "outerWidth", 4379 | "outline", 4380 | "outline-color", 4381 | "outline-offset", 4382 | "outline-style", 4383 | "outline-width", 4384 | "outlineColor", 4385 | "outlineOffset", 4386 | "outlineStyle", 4387 | "outlineWidth", 4388 | "outputBuffer", 4389 | "overflow", 4390 | "overflow-x", 4391 | "overflow-y", 4392 | "overflowX", 4393 | "overflowY", 4394 | "overrideMimeType", 4395 | "oversample", 4396 | "ownerDocument", 4397 | "ownerElement", 4398 | "ownerNode", 4399 | "ownerRule", 4400 | "ownerSVGElement", 4401 | "owningElement", 4402 | "p1", 4403 | "p2", 4404 | "p3", 4405 | "p4", 4406 | "pad", 4407 | "padding", 4408 | "padding-bottom", 4409 | "padding-left", 4410 | "padding-right", 4411 | "padding-top", 4412 | "paddingBottom", 4413 | "paddingLeft", 4414 | "paddingRight", 4415 | "paddingTop", 4416 | "page", 4417 | "page-break-after", 4418 | "page-break-before", 4419 | "page-break-inside", 4420 | "pageBreakAfter", 4421 | "pageBreakBefore", 4422 | "pageBreakInside", 4423 | "pageCount", 4424 | "pageX", 4425 | "pageXOffset", 4426 | "pageY", 4427 | "pageYOffset", 4428 | "pages", 4429 | "paint-order", 4430 | "paintOrder", 4431 | "paintRequests", 4432 | "paintType", 4433 | "palette", 4434 | "panningModel", 4435 | "parent", 4436 | "parentElement", 4437 | "parentNode", 4438 | "parentRule", 4439 | "parentStyleSheet", 4440 | "parentTextEdit", 4441 | "parentWindow", 4442 | "parse", 4443 | "parseFloat", 4444 | "parseFromString", 4445 | "parseInt", 4446 | "participants", 4447 | "password", 4448 | "pasteHTML", 4449 | "path", 4450 | "pathLength", 4451 | "pathSegList", 4452 | "pathSegType", 4453 | "pathSegTypeAsLetter", 4454 | "pathname", 4455 | "pattern", 4456 | "patternContentUnits", 4457 | "patternMismatch", 4458 | "patternTransform", 4459 | "patternUnits", 4460 | "pause", 4461 | "pauseAnimations", 4462 | "pauseOnExit", 4463 | "paused", 4464 | "pending", 4465 | "performance", 4466 | "permission", 4467 | "persisted", 4468 | "personalbar", 4469 | "perspective", 4470 | "perspective-origin", 4471 | "perspectiveOrigin", 4472 | "phoneticFamilyName", 4473 | "phoneticGivenName", 4474 | "photo", 4475 | "ping", 4476 | "pitch", 4477 | "pixelBottom", 4478 | "pixelDepth", 4479 | "pixelHeight", 4480 | "pixelLeft", 4481 | "pixelRight", 4482 | "pixelStorei", 4483 | "pixelTop", 4484 | "pixelUnitToMillimeterX", 4485 | "pixelUnitToMillimeterY", 4486 | "pixelWidth", 4487 | "placeholder", 4488 | "platform", 4489 | "play", 4490 | "playbackRate", 4491 | "playbackState", 4492 | "playbackTime", 4493 | "played", 4494 | "plugins", 4495 | "pluginspage", 4496 | "pname", 4497 | "pointer-events", 4498 | "pointerBeforeReferenceNode", 4499 | "pointerEnabled", 4500 | "pointerEvents", 4501 | "pointerId", 4502 | "pointerLockElement", 4503 | "pointerType", 4504 | "points", 4505 | "pointsAtX", 4506 | "pointsAtY", 4507 | "pointsAtZ", 4508 | "polygonOffset", 4509 | "pop", 4510 | "popupWindowFeatures", 4511 | "popupWindowName", 4512 | "popupWindowURI", 4513 | "port", 4514 | "port1", 4515 | "port2", 4516 | "ports", 4517 | "posBottom", 4518 | "posHeight", 4519 | "posLeft", 4520 | "posRight", 4521 | "posTop", 4522 | "posWidth", 4523 | "position", 4524 | "positionAlign", 4525 | "postError", 4526 | "postMessage", 4527 | "poster", 4528 | "pow", 4529 | "powerOff", 4530 | "preMultiplySelf", 4531 | "precision", 4532 | "preferredStyleSheetSet", 4533 | "preferredStylesheetSet", 4534 | "prefix", 4535 | "preload", 4536 | "preserveAlpha", 4537 | "preserveAspectRatio", 4538 | "preserveAspectRatioString", 4539 | "pressed", 4540 | "pressure", 4541 | "prevValue", 4542 | "preventDefault", 4543 | "preventExtensions", 4544 | "previousElementSibling", 4545 | "previousNode", 4546 | "previousPage", 4547 | "previousScale", 4548 | "previousSibling", 4549 | "previousTranslate", 4550 | "primaryKey", 4551 | "primitiveType", 4552 | "primitiveUnits", 4553 | "principals", 4554 | "print", 4555 | "privateKey", 4556 | "probablySupportsContext", 4557 | "process", 4558 | "processIceMessage", 4559 | "product", 4560 | "productSub", 4561 | "profile", 4562 | "profileEnd", 4563 | "profiles", 4564 | "prompt", 4565 | "properties", 4566 | "propertyIsEnumerable", 4567 | "propertyName", 4568 | "protocol", 4569 | "protocolLong", 4570 | "prototype", 4571 | "pseudoClass", 4572 | "pseudoElement", 4573 | "publicId", 4574 | "publicKey", 4575 | "published", 4576 | "push", 4577 | "pushNotification", 4578 | "pushState", 4579 | "put", 4580 | "putImageData", 4581 | "quadraticCurveTo", 4582 | "qualifier", 4583 | "queryCommandEnabled", 4584 | "queryCommandIndeterm", 4585 | "queryCommandState", 4586 | "queryCommandSupported", 4587 | "queryCommandText", 4588 | "queryCommandValue", 4589 | "querySelector", 4590 | "querySelectorAll", 4591 | "quote", 4592 | "quotes", 4593 | "r", 4594 | "r1", 4595 | "r2", 4596 | "race", 4597 | "radiogroup", 4598 | "radiusX", 4599 | "radiusY", 4600 | "random", 4601 | "range", 4602 | "rangeCount", 4603 | "rangeMax", 4604 | "rangeMin", 4605 | "rangeOffset", 4606 | "rangeOverflow", 4607 | "rangeParent", 4608 | "rangeUnderflow", 4609 | "rate", 4610 | "ratio", 4611 | "raw", 4612 | "read", 4613 | "readAsArrayBuffer", 4614 | "readAsBinaryString", 4615 | "readAsBlob", 4616 | "readAsDataURL", 4617 | "readAsText", 4618 | "readOnly", 4619 | "readPixels", 4620 | "readReportRequested", 4621 | "readyState", 4622 | "reason", 4623 | "reboot", 4624 | "receiver", 4625 | "receivers", 4626 | "recordNumber", 4627 | "recordset", 4628 | "rect", 4629 | "red", 4630 | "redirectCount", 4631 | "redirectEnd", 4632 | "redirectStart", 4633 | "reduce", 4634 | "reduceRight", 4635 | "reduction", 4636 | "refDistance", 4637 | "refX", 4638 | "refY", 4639 | "referenceNode", 4640 | "referrer", 4641 | "refresh", 4642 | "region", 4643 | "regionAnchorX", 4644 | "regionAnchorY", 4645 | "regionId", 4646 | "regions", 4647 | "register", 4648 | "registerContentHandler", 4649 | "registerElement", 4650 | "registerProtocolHandler", 4651 | "reject", 4652 | "rel", 4653 | "relList", 4654 | "relatedNode", 4655 | "relatedTarget", 4656 | "release", 4657 | "releaseCapture", 4658 | "releaseEvents", 4659 | "releasePointerCapture", 4660 | "releaseShaderCompiler", 4661 | "reliable", 4662 | "reload", 4663 | "remainingSpace", 4664 | "remoteDescription", 4665 | "remove", 4666 | "removeAllRanges", 4667 | "removeAttribute", 4668 | "removeAttributeNS", 4669 | "removeAttributeNode", 4670 | "removeBehavior", 4671 | "removeChild", 4672 | "removeCue", 4673 | "removeEventListener", 4674 | "removeFilter", 4675 | "removeImport", 4676 | "removeItem", 4677 | "removeListener", 4678 | "removeNamedItem", 4679 | "removeNamedItemNS", 4680 | "removeNode", 4681 | "removeParameter", 4682 | "removeProperty", 4683 | "removeRange", 4684 | "removeRegion", 4685 | "removeRule", 4686 | "removeSiteSpecificTrackingException", 4687 | "removeSourceBuffer", 4688 | "removeStream", 4689 | "removeTrack", 4690 | "removeVariable", 4691 | "removeWakeLockListener", 4692 | "removeWebWideTrackingException", 4693 | "removedNodes", 4694 | "renderbufferStorage", 4695 | "renderedBuffer", 4696 | "renderingMode", 4697 | "repeat", 4698 | "replace", 4699 | "replaceAdjacentText", 4700 | "replaceChild", 4701 | "replaceData", 4702 | "replaceId", 4703 | "replaceItem", 4704 | "replaceNode", 4705 | "replaceState", 4706 | "replaceTrack", 4707 | "replaceWholeText", 4708 | "reportValidity", 4709 | "requestAnimationFrame", 4710 | "requestAutocomplete", 4711 | "requestData", 4712 | "requestFullscreen", 4713 | "requestMediaKeySystemAccess", 4714 | "requestPermission", 4715 | "requestPointerLock", 4716 | "requestStart", 4717 | "requestingWindow", 4718 | "required", 4719 | "requiredExtensions", 4720 | "requiredFeatures", 4721 | "reset", 4722 | "resetTransform", 4723 | "resize", 4724 | "resizeBy", 4725 | "resizeTo", 4726 | "resolve", 4727 | "response", 4728 | "responseBody", 4729 | "responseEnd", 4730 | "responseStart", 4731 | "responseText", 4732 | "responseType", 4733 | "responseURL", 4734 | "responseXML", 4735 | "restore", 4736 | "result", 4737 | "resultType", 4738 | "resume", 4739 | "returnValue", 4740 | "rev", 4741 | "reverse", 4742 | "reversed", 4743 | "revocable", 4744 | "revokeObjectURL", 4745 | "rgbColor", 4746 | "right", 4747 | "rightContext", 4748 | "rightMargin", 4749 | "rolloffFactor", 4750 | "root", 4751 | "rootElement", 4752 | "rotate", 4753 | "rotateAxisAngle", 4754 | "rotateAxisAngleSelf", 4755 | "rotateFromVector", 4756 | "rotateFromVectorSelf", 4757 | "rotateSelf", 4758 | "rotation", 4759 | "rotationRate", 4760 | "round", 4761 | "rowIndex", 4762 | "rowSpan", 4763 | "rows", 4764 | "rubyAlign", 4765 | "rubyOverhang", 4766 | "rubyPosition", 4767 | "rules", 4768 | "runtime", 4769 | "runtimeStyle", 4770 | "rx", 4771 | "ry", 4772 | "safari", 4773 | "sampleCoverage", 4774 | "sampleRate", 4775 | "sandbox", 4776 | "save", 4777 | "scale", 4778 | "scale3d", 4779 | "scale3dSelf", 4780 | "scaleNonUniform", 4781 | "scaleNonUniformSelf", 4782 | "scaleSelf", 4783 | "scheme", 4784 | "scissor", 4785 | "scope", 4786 | "scopeName", 4787 | "scoped", 4788 | "screen", 4789 | "screenBrightness", 4790 | "screenEnabled", 4791 | "screenLeft", 4792 | "screenPixelToMillimeterX", 4793 | "screenPixelToMillimeterY", 4794 | "screenTop", 4795 | "screenX", 4796 | "screenY", 4797 | "scripts", 4798 | "scroll", 4799 | "scroll-behavior", 4800 | "scrollAmount", 4801 | "scrollBehavior", 4802 | "scrollBy", 4803 | "scrollByLines", 4804 | "scrollByPages", 4805 | "scrollDelay", 4806 | "scrollHeight", 4807 | "scrollIntoView", 4808 | "scrollIntoViewIfNeeded", 4809 | "scrollLeft", 4810 | "scrollLeftMax", 4811 | "scrollMaxX", 4812 | "scrollMaxY", 4813 | "scrollTo", 4814 | "scrollTop", 4815 | "scrollTopMax", 4816 | "scrollWidth", 4817 | "scrollX", 4818 | "scrollY", 4819 | "scrollbar3dLightColor", 4820 | "scrollbarArrowColor", 4821 | "scrollbarBaseColor", 4822 | "scrollbarDarkShadowColor", 4823 | "scrollbarFaceColor", 4824 | "scrollbarHighlightColor", 4825 | "scrollbarShadowColor", 4826 | "scrollbarTrackColor", 4827 | "scrollbars", 4828 | "scrolling", 4829 | "sdp", 4830 | "sdpMLineIndex", 4831 | "sdpMid", 4832 | "seal", 4833 | "search", 4834 | "searchBox", 4835 | "searchBoxJavaBridge_", 4836 | "searchParams", 4837 | "sectionRowIndex", 4838 | "secureConnectionStart", 4839 | "security", 4840 | "seed", 4841 | "seekable", 4842 | "seeking", 4843 | "select", 4844 | "selectAllChildren", 4845 | "selectNode", 4846 | "selectNodeContents", 4847 | "selectNodes", 4848 | "selectSingleNode", 4849 | "selectSubString", 4850 | "selected", 4851 | "selectedIndex", 4852 | "selectedOptions", 4853 | "selectedStyleSheetSet", 4854 | "selectedStylesheetSet", 4855 | "selection", 4856 | "selectionDirection", 4857 | "selectionEnd", 4858 | "selectionStart", 4859 | "selector", 4860 | "selectorText", 4861 | "self", 4862 | "send", 4863 | "sendAsBinary", 4864 | "sendBeacon", 4865 | "sender", 4866 | "sentTimestamp", 4867 | "separator", 4868 | "serializeToString", 4869 | "serviceWorker", 4870 | "sessionId", 4871 | "sessionStorage", 4872 | "set", 4873 | "setActive", 4874 | "setAlpha", 4875 | "setAttribute", 4876 | "setAttributeNS", 4877 | "setAttributeNode", 4878 | "setAttributeNodeNS", 4879 | "setBaseAndExtent", 4880 | "setBingCurrentSearchDefault", 4881 | "setCapture", 4882 | "setColor", 4883 | "setCompositeOperation", 4884 | "setCurrentTime", 4885 | "setCustomValidity", 4886 | "setData", 4887 | "setDate", 4888 | "setDragImage", 4889 | "setEnd", 4890 | "setEndAfter", 4891 | "setEndBefore", 4892 | "setEndPoint", 4893 | "setFillColor", 4894 | "setFilterRes", 4895 | "setFloat32", 4896 | "setFloat64", 4897 | "setFloatValue", 4898 | "setFullYear", 4899 | "setHours", 4900 | "setImmediate", 4901 | "setInt16", 4902 | "setInt32", 4903 | "setInt8", 4904 | "setInterval", 4905 | "setItem", 4906 | "setLineCap", 4907 | "setLineDash", 4908 | "setLineJoin", 4909 | "setLineWidth", 4910 | "setLocalDescription", 4911 | "setMatrix", 4912 | "setMatrixValue", 4913 | "setMediaKeys", 4914 | "setMilliseconds", 4915 | "setMinutes", 4916 | "setMiterLimit", 4917 | "setMonth", 4918 | "setNamedItem", 4919 | "setNamedItemNS", 4920 | "setNonUserCodeExceptions", 4921 | "setOrientToAngle", 4922 | "setOrientToAuto", 4923 | "setOrientation", 4924 | "setOverrideHistoryNavigationMode", 4925 | "setPaint", 4926 | "setParameter", 4927 | "setPeriodicWave", 4928 | "setPointerCapture", 4929 | "setPosition", 4930 | "setPreference", 4931 | "setProperty", 4932 | "setPrototypeOf", 4933 | "setRGBColor", 4934 | "setRGBColorICCColor", 4935 | "setRadius", 4936 | "setRangeText", 4937 | "setRemoteDescription", 4938 | "setRequestHeader", 4939 | "setResizable", 4940 | "setResourceTimingBufferSize", 4941 | "setRotate", 4942 | "setScale", 4943 | "setSeconds", 4944 | "setSelectionRange", 4945 | "setServerCertificate", 4946 | "setShadow", 4947 | "setSkewX", 4948 | "setSkewY", 4949 | "setStart", 4950 | "setStartAfter", 4951 | "setStartBefore", 4952 | "setStdDeviation", 4953 | "setStringValue", 4954 | "setStrokeColor", 4955 | "setSuggestResult", 4956 | "setTargetAtTime", 4957 | "setTargetValueAtTime", 4958 | "setTime", 4959 | "setTimeout", 4960 | "setTransform", 4961 | "setTranslate", 4962 | "setUTCDate", 4963 | "setUTCFullYear", 4964 | "setUTCHours", 4965 | "setUTCMilliseconds", 4966 | "setUTCMinutes", 4967 | "setUTCMonth", 4968 | "setUTCSeconds", 4969 | "setUint16", 4970 | "setUint32", 4971 | "setUint8", 4972 | "setUri", 4973 | "setValueAtTime", 4974 | "setValueCurveAtTime", 4975 | "setVariable", 4976 | "setVelocity", 4977 | "setVersion", 4978 | "setYear", 4979 | "settingName", 4980 | "settingValue", 4981 | "sex", 4982 | "shaderSource", 4983 | "shadowBlur", 4984 | "shadowColor", 4985 | "shadowOffsetX", 4986 | "shadowOffsetY", 4987 | "shadowRoot", 4988 | "shape", 4989 | "shape-rendering", 4990 | "shapeRendering", 4991 | "sheet", 4992 | "shift", 4993 | "shiftKey", 4994 | "shiftLeft", 4995 | "show", 4996 | "showHelp", 4997 | "showModal", 4998 | "showModalDialog", 4999 | "showModelessDialog", 5000 | "showNotification", 5001 | "sidebar", 5002 | "sign", 5003 | "signalingState", 5004 | "sin", 5005 | "singleNodeValue", 5006 | "sinh", 5007 | "size", 5008 | "sizeToContent", 5009 | "sizes", 5010 | "skewX", 5011 | "skewXSelf", 5012 | "skewY", 5013 | "skewYSelf", 5014 | "slice", 5015 | "slope", 5016 | "small", 5017 | "smil", 5018 | "smoothingTimeConstant", 5019 | "snapToLines", 5020 | "snapshotItem", 5021 | "snapshotLength", 5022 | "some", 5023 | "sort", 5024 | "source", 5025 | "sourceBuffer", 5026 | "sourceBuffers", 5027 | "sourceIndex", 5028 | "spacing", 5029 | "span", 5030 | "speakAs", 5031 | "speaking", 5032 | "specified", 5033 | "specularConstant", 5034 | "specularExponent", 5035 | "speechSynthesis", 5036 | "speed", 5037 | "speedOfSound", 5038 | "spellcheck", 5039 | "splice", 5040 | "split", 5041 | "splitText", 5042 | "spreadMethod", 5043 | "sqrt", 5044 | "src", 5045 | "srcElement", 5046 | "srcFilter", 5047 | "srcUrn", 5048 | "srcdoc", 5049 | "srclang", 5050 | "srcset", 5051 | "stack", 5052 | "stackTraceLimit", 5053 | "stacktrace", 5054 | "standalone", 5055 | "standby", 5056 | "start", 5057 | "startContainer", 5058 | "startIce", 5059 | "startOffset", 5060 | "startRendering", 5061 | "startTime", 5062 | "startsWith", 5063 | "state", 5064 | "status", 5065 | "statusMessage", 5066 | "statusText", 5067 | "statusbar", 5068 | "stdDeviationX", 5069 | "stdDeviationY", 5070 | "stencilFunc", 5071 | "stencilFuncSeparate", 5072 | "stencilMask", 5073 | "stencilMaskSeparate", 5074 | "stencilOp", 5075 | "stencilOpSeparate", 5076 | "step", 5077 | "stepDown", 5078 | "stepMismatch", 5079 | "stepUp", 5080 | "sticky", 5081 | "stitchTiles", 5082 | "stop", 5083 | "stop-color", 5084 | "stop-opacity", 5085 | "stopColor", 5086 | "stopImmediatePropagation", 5087 | "stopOpacity", 5088 | "stopPropagation", 5089 | "storageArea", 5090 | "storageName", 5091 | "storageStatus", 5092 | "storeSiteSpecificTrackingException", 5093 | "storeWebWideTrackingException", 5094 | "stpVersion", 5095 | "stream", 5096 | "strike", 5097 | "stringValue", 5098 | "stringify", 5099 | "stroke", 5100 | "stroke-dasharray", 5101 | "stroke-dashoffset", 5102 | "stroke-linecap", 5103 | "stroke-linejoin", 5104 | "stroke-miterlimit", 5105 | "stroke-opacity", 5106 | "stroke-width", 5107 | "strokeDasharray", 5108 | "strokeDashoffset", 5109 | "strokeLinecap", 5110 | "strokeLinejoin", 5111 | "strokeMiterlimit", 5112 | "strokeOpacity", 5113 | "strokeRect", 5114 | "strokeStyle", 5115 | "strokeText", 5116 | "strokeWidth", 5117 | "style", 5118 | "styleFloat", 5119 | "styleMedia", 5120 | "styleSheet", 5121 | "styleSheetSets", 5122 | "styleSheets", 5123 | "sub", 5124 | "subarray", 5125 | "subject", 5126 | "submit", 5127 | "subscribe", 5128 | "substr", 5129 | "substring", 5130 | "substringData", 5131 | "subtle", 5132 | "suffix", 5133 | "suffixes", 5134 | "summary", 5135 | "sup", 5136 | "supports", 5137 | "surfaceScale", 5138 | "surroundContents", 5139 | "suspend", 5140 | "suspendRedraw", 5141 | "swapCache", 5142 | "swapNode", 5143 | "sweepFlag", 5144 | "symbols", 5145 | "system", 5146 | "systemCode", 5147 | "systemId", 5148 | "systemLanguage", 5149 | "systemXDPI", 5150 | "systemYDPI", 5151 | "tBodies", 5152 | "tFoot", 5153 | "tHead", 5154 | "tabIndex", 5155 | "table", 5156 | "table-layout", 5157 | "tableLayout", 5158 | "tableValues", 5159 | "tag", 5160 | "tagName", 5161 | "tagUrn", 5162 | "tags", 5163 | "taintEnabled", 5164 | "takeRecords", 5165 | "tan", 5166 | "tanh", 5167 | "target", 5168 | "targetElement", 5169 | "targetTouches", 5170 | "targetX", 5171 | "targetY", 5172 | "tel", 5173 | "terminate", 5174 | "test", 5175 | "texImage2D", 5176 | "texParameterf", 5177 | "texParameteri", 5178 | "texSubImage2D", 5179 | "text", 5180 | "text-align", 5181 | "text-anchor", 5182 | "text-decoration", 5183 | "text-decoration-color", 5184 | "text-decoration-line", 5185 | "text-decoration-style", 5186 | "text-indent", 5187 | "text-overflow", 5188 | "text-rendering", 5189 | "text-shadow", 5190 | "text-transform", 5191 | "textAlign", 5192 | "textAlignLast", 5193 | "textAnchor", 5194 | "textAutospace", 5195 | "textBaseline", 5196 | "textContent", 5197 | "textDecoration", 5198 | "textDecorationBlink", 5199 | "textDecorationColor", 5200 | "textDecorationLine", 5201 | "textDecorationLineThrough", 5202 | "textDecorationNone", 5203 | "textDecorationOverline", 5204 | "textDecorationStyle", 5205 | "textDecorationUnderline", 5206 | "textIndent", 5207 | "textJustify", 5208 | "textJustifyTrim", 5209 | "textKashida", 5210 | "textKashidaSpace", 5211 | "textLength", 5212 | "textOverflow", 5213 | "textRendering", 5214 | "textShadow", 5215 | "textTracks", 5216 | "textTransform", 5217 | "textUnderlinePosition", 5218 | "then", 5219 | "threadId", 5220 | "threshold", 5221 | "tiltX", 5222 | "tiltY", 5223 | "time", 5224 | "timeEnd", 5225 | "timeStamp", 5226 | "timeout", 5227 | "timestamp", 5228 | "timestampOffset", 5229 | "timing", 5230 | "title", 5231 | "toArray", 5232 | "toBlob", 5233 | "toDataURL", 5234 | "toDateString", 5235 | "toElement", 5236 | "toExponential", 5237 | "toFixed", 5238 | "toFloat32Array", 5239 | "toFloat64Array", 5240 | "toGMTString", 5241 | "toISOString", 5242 | "toJSON", 5243 | "toLocaleDateString", 5244 | "toLocaleFormat", 5245 | "toLocaleLowerCase", 5246 | "toLocaleString", 5247 | "toLocaleTimeString", 5248 | "toLocaleUpperCase", 5249 | "toLowerCase", 5250 | "toMethod", 5251 | "toPrecision", 5252 | "toSdp", 5253 | "toSource", 5254 | "toStaticHTML", 5255 | "toString", 5256 | "toStringTag", 5257 | "toTimeString", 5258 | "toUTCString", 5259 | "toUpperCase", 5260 | "toggle", 5261 | "toggleLongPressEnabled", 5262 | "tooLong", 5263 | "toolbar", 5264 | "top", 5265 | "topMargin", 5266 | "total", 5267 | "totalFrameDelay", 5268 | "totalVideoFrames", 5269 | "touchAction", 5270 | "touches", 5271 | "trace", 5272 | "track", 5273 | "transaction", 5274 | "transactions", 5275 | "transform", 5276 | "transform-origin", 5277 | "transform-style", 5278 | "transformOrigin", 5279 | "transformPoint", 5280 | "transformString", 5281 | "transformStyle", 5282 | "transformToDocument", 5283 | "transformToFragment", 5284 | "transition", 5285 | "transition-delay", 5286 | "transition-duration", 5287 | "transition-property", 5288 | "transition-timing-function", 5289 | "transitionDelay", 5290 | "transitionDuration", 5291 | "transitionProperty", 5292 | "transitionTimingFunction", 5293 | "translate", 5294 | "translateSelf", 5295 | "translationX", 5296 | "translationY", 5297 | "trim", 5298 | "trimLeft", 5299 | "trimRight", 5300 | "trueSpeed", 5301 | "trunc", 5302 | "truncate", 5303 | "type", 5304 | "typeDetail", 5305 | "typeMismatch", 5306 | "typeMustMatch", 5307 | "types", 5308 | "ubound", 5309 | "undefined", 5310 | "unescape", 5311 | "uneval", 5312 | "unicode-bidi", 5313 | "unicodeBidi", 5314 | "uniform1f", 5315 | "uniform1fv", 5316 | "uniform1i", 5317 | "uniform1iv", 5318 | "uniform2f", 5319 | "uniform2fv", 5320 | "uniform2i", 5321 | "uniform2iv", 5322 | "uniform3f", 5323 | "uniform3fv", 5324 | "uniform3i", 5325 | "uniform3iv", 5326 | "uniform4f", 5327 | "uniform4fv", 5328 | "uniform4i", 5329 | "uniform4iv", 5330 | "uniformMatrix2fv", 5331 | "uniformMatrix3fv", 5332 | "uniformMatrix4fv", 5333 | "unique", 5334 | "uniqueID", 5335 | "uniqueNumber", 5336 | "unitType", 5337 | "units", 5338 | "unloadEventEnd", 5339 | "unloadEventStart", 5340 | "unlock", 5341 | "unmount", 5342 | "unobserve", 5343 | "unpause", 5344 | "unpauseAnimations", 5345 | "unreadCount", 5346 | "unregister", 5347 | "unregisterContentHandler", 5348 | "unregisterProtocolHandler", 5349 | "unscopables", 5350 | "unselectable", 5351 | "unshift", 5352 | "unsubscribe", 5353 | "unsuspendRedraw", 5354 | "unsuspendRedrawAll", 5355 | "unwatch", 5356 | "unwrapKey", 5357 | "update", 5358 | "updateCommands", 5359 | "updateIce", 5360 | "updateInterval", 5361 | "updateSettings", 5362 | "updated", 5363 | "updating", 5364 | "upload", 5365 | "upper", 5366 | "upperBound", 5367 | "upperOpen", 5368 | "uri", 5369 | "url", 5370 | "urn", 5371 | "urns", 5372 | "usages", 5373 | "useCurrentView", 5374 | "useMap", 5375 | "useProgram", 5376 | "usedSpace", 5377 | "userAgent", 5378 | "userLanguage", 5379 | "username", 5380 | "v8BreakIterator", 5381 | "vAlign", 5382 | "vLink", 5383 | "valid", 5384 | "validateProgram", 5385 | "validationMessage", 5386 | "validity", 5387 | "value", 5388 | "valueAsDate", 5389 | "valueAsNumber", 5390 | "valueAsString", 5391 | "valueInSpecifiedUnits", 5392 | "valueMissing", 5393 | "valueOf", 5394 | "valueText", 5395 | "valueType", 5396 | "values", 5397 | "vector-effect", 5398 | "vectorEffect", 5399 | "velocityAngular", 5400 | "velocityExpansion", 5401 | "velocityX", 5402 | "velocityY", 5403 | "vendor", 5404 | "vendorSub", 5405 | "verify", 5406 | "version", 5407 | "vertexAttrib1f", 5408 | "vertexAttrib1fv", 5409 | "vertexAttrib2f", 5410 | "vertexAttrib2fv", 5411 | "vertexAttrib3f", 5412 | "vertexAttrib3fv", 5413 | "vertexAttrib4f", 5414 | "vertexAttrib4fv", 5415 | "vertexAttribDivisorANGLE", 5416 | "vertexAttribPointer", 5417 | "vertical", 5418 | "vertical-align", 5419 | "verticalAlign", 5420 | "verticalOverflow", 5421 | "vibrate", 5422 | "videoHeight", 5423 | "videoTracks", 5424 | "videoWidth", 5425 | "view", 5426 | "viewBox", 5427 | "viewBoxString", 5428 | "viewTarget", 5429 | "viewTargetString", 5430 | "viewport", 5431 | "viewportAnchorX", 5432 | "viewportAnchorY", 5433 | "viewportElement", 5434 | "visibility", 5435 | "visibilityState", 5436 | "visible", 5437 | "vlinkColor", 5438 | "voice", 5439 | "volume", 5440 | "vrml", 5441 | "vspace", 5442 | "w", 5443 | "wand", 5444 | "warn", 5445 | "wasClean", 5446 | "watch", 5447 | "watchPosition", 5448 | "webdriver", 5449 | "webkitAddKey", 5450 | "webkitAnimation", 5451 | "webkitAnimationDelay", 5452 | "webkitAnimationDirection", 5453 | "webkitAnimationDuration", 5454 | "webkitAnimationFillMode", 5455 | "webkitAnimationIterationCount", 5456 | "webkitAnimationName", 5457 | "webkitAnimationPlayState", 5458 | "webkitAnimationTimingFunction", 5459 | "webkitAppearance", 5460 | "webkitAudioContext", 5461 | "webkitAudioDecodedByteCount", 5462 | "webkitAudioPannerNode", 5463 | "webkitBackfaceVisibility", 5464 | "webkitBackground", 5465 | "webkitBackgroundAttachment", 5466 | "webkitBackgroundClip", 5467 | "webkitBackgroundColor", 5468 | "webkitBackgroundImage", 5469 | "webkitBackgroundOrigin", 5470 | "webkitBackgroundPosition", 5471 | "webkitBackgroundPositionX", 5472 | "webkitBackgroundPositionY", 5473 | "webkitBackgroundRepeat", 5474 | "webkitBackgroundSize", 5475 | "webkitBackingStorePixelRatio", 5476 | "webkitBorderImage", 5477 | "webkitBorderImageOutset", 5478 | "webkitBorderImageRepeat", 5479 | "webkitBorderImageSlice", 5480 | "webkitBorderImageSource", 5481 | "webkitBorderImageWidth", 5482 | "webkitBoxAlign", 5483 | "webkitBoxDirection", 5484 | "webkitBoxFlex", 5485 | "webkitBoxOrdinalGroup", 5486 | "webkitBoxOrient", 5487 | "webkitBoxPack", 5488 | "webkitBoxSizing", 5489 | "webkitCancelAnimationFrame", 5490 | "webkitCancelFullScreen", 5491 | "webkitCancelKeyRequest", 5492 | "webkitCancelRequestAnimationFrame", 5493 | "webkitClearResourceTimings", 5494 | "webkitClosedCaptionsVisible", 5495 | "webkitConvertPointFromNodeToPage", 5496 | "webkitConvertPointFromPageToNode", 5497 | "webkitCreateShadowRoot", 5498 | "webkitCurrentFullScreenElement", 5499 | "webkitCurrentPlaybackTargetIsWireless", 5500 | "webkitDirectionInvertedFromDevice", 5501 | "webkitDisplayingFullscreen", 5502 | "webkitEnterFullScreen", 5503 | "webkitEnterFullscreen", 5504 | "webkitExitFullScreen", 5505 | "webkitExitFullscreen", 5506 | "webkitExitPointerLock", 5507 | "webkitFullScreenKeyboardInputAllowed", 5508 | "webkitFullscreenElement", 5509 | "webkitFullscreenEnabled", 5510 | "webkitGenerateKeyRequest", 5511 | "webkitGetAsEntry", 5512 | "webkitGetDatabaseNames", 5513 | "webkitGetEntries", 5514 | "webkitGetEntriesByName", 5515 | "webkitGetEntriesByType", 5516 | "webkitGetFlowByName", 5517 | "webkitGetGamepads", 5518 | "webkitGetImageDataHD", 5519 | "webkitGetNamedFlows", 5520 | "webkitGetRegionFlowRanges", 5521 | "webkitGetUserMedia", 5522 | "webkitHasClosedCaptions", 5523 | "webkitHidden", 5524 | "webkitIDBCursor", 5525 | "webkitIDBDatabase", 5526 | "webkitIDBDatabaseError", 5527 | "webkitIDBDatabaseException", 5528 | "webkitIDBFactory", 5529 | "webkitIDBIndex", 5530 | "webkitIDBKeyRange", 5531 | "webkitIDBObjectStore", 5532 | "webkitIDBRequest", 5533 | "webkitIDBTransaction", 5534 | "webkitImageSmoothingEnabled", 5535 | "webkitIndexedDB", 5536 | "webkitInitMessageEvent", 5537 | "webkitIsFullScreen", 5538 | "webkitKeys", 5539 | "webkitLineDashOffset", 5540 | "webkitLockOrientation", 5541 | "webkitMatchesSelector", 5542 | "webkitMediaStream", 5543 | "webkitNotifications", 5544 | "webkitOfflineAudioContext", 5545 | "webkitOrientation", 5546 | "webkitPeerConnection00", 5547 | "webkitPersistentStorage", 5548 | "webkitPointerLockElement", 5549 | "webkitPostMessage", 5550 | "webkitPreservesPitch", 5551 | "webkitPutImageDataHD", 5552 | "webkitRTCPeerConnection", 5553 | "webkitRegionOverset", 5554 | "webkitRequestAnimationFrame", 5555 | "webkitRequestFileSystem", 5556 | "webkitRequestFullScreen", 5557 | "webkitRequestFullscreen", 5558 | "webkitRequestPointerLock", 5559 | "webkitResolveLocalFileSystemURL", 5560 | "webkitSetMediaKeys", 5561 | "webkitSetResourceTimingBufferSize", 5562 | "webkitShadowRoot", 5563 | "webkitShowPlaybackTargetPicker", 5564 | "webkitSlice", 5565 | "webkitSpeechGrammar", 5566 | "webkitSpeechGrammarList", 5567 | "webkitSpeechRecognition", 5568 | "webkitSpeechRecognitionError", 5569 | "webkitSpeechRecognitionEvent", 5570 | "webkitStorageInfo", 5571 | "webkitSupportsFullscreen", 5572 | "webkitTemporaryStorage", 5573 | "webkitTextSizeAdjust", 5574 | "webkitTransform", 5575 | "webkitTransformOrigin", 5576 | "webkitTransition", 5577 | "webkitTransitionDelay", 5578 | "webkitTransitionDuration", 5579 | "webkitTransitionProperty", 5580 | "webkitTransitionTimingFunction", 5581 | "webkitURL", 5582 | "webkitUnlockOrientation", 5583 | "webkitUserSelect", 5584 | "webkitVideoDecodedByteCount", 5585 | "webkitVisibilityState", 5586 | "webkitWirelessVideoPlaybackDisabled", 5587 | "webkitdropzone", 5588 | "webstore", 5589 | "weight", 5590 | "whatToShow", 5591 | "wheelDelta", 5592 | "wheelDeltaX", 5593 | "wheelDeltaY", 5594 | "which", 5595 | "white-space", 5596 | "whiteSpace", 5597 | "wholeText", 5598 | "widows", 5599 | "width", 5600 | "will-change", 5601 | "willChange", 5602 | "willValidate", 5603 | "window", 5604 | "withCredentials", 5605 | "word-break", 5606 | "word-spacing", 5607 | "word-wrap", 5608 | "wordBreak", 5609 | "wordSpacing", 5610 | "wordWrap", 5611 | "wrap", 5612 | "wrapKey", 5613 | "write", 5614 | "writeln", 5615 | "writingMode", 5616 | "x", 5617 | "x1", 5618 | "x2", 5619 | "xChannelSelector", 5620 | "xmlEncoding", 5621 | "xmlStandalone", 5622 | "xmlVersion", 5623 | "xmlbase", 5624 | "xmllang", 5625 | "xmlspace", 5626 | "y", 5627 | "y1", 5628 | "y2", 5629 | "yChannelSelector", 5630 | "yandex", 5631 | "z", 5632 | "z-index", 5633 | "zIndex", 5634 | "zoom", 5635 | "zoomAndPan", 5636 | "zoomRectScreen" 5637 | ] 5638 | } 5639 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js13k-compiler", 3 | "version": "0.0.1", 4 | "description": "Compiler designed for the JS13K game development contest.", 5 | "main": "src/compiler.js", 6 | "author": "Rémi Vansteelandt", 7 | "license": "ISC", 8 | "dependencies": { 9 | "clean-css": "^4.2.3", 10 | "colors": "^1.1.2", 11 | "ect-bin": "^1.4.1", 12 | "escape-string-regexp": "^1.0.5", 13 | "express": "^4.14.0", 14 | "fs-promise": "^0.5.0", 15 | "html-minifier": "^3.0.2", 16 | "mustache": "^2.2.1", 17 | "node-zip": "^1.1.1", 18 | "roadroller": "^2.1.0", 19 | "strip-comments": "^2.0.1", 20 | "terser": "^5.7.2", 21 | "uglify-es": "^3.3.9", 22 | "uglify-js": "^2.7.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /sample/build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const compiler = require('../src/compiler'); 4 | 5 | compiler.run((tasks) => { 6 | function buildJS(mangle, uglify){ 7 | const sequence = [ 8 | tasks.label('Building JS'), 9 | tasks.loadFiles([__dirname + "/src/js/main.js"]), 10 | tasks.concat(), 11 | tasks.constants({ 12 | 'MY_AWESOME_CONSTANT': 3.14 13 | }), 14 | tasks.macro('matrix') 15 | ]; 16 | 17 | if(mangle){ 18 | sequence.push(tasks.mangle({ 19 | 'force': ['data'] 20 | })); 21 | } 22 | 23 | if(uglify){ 24 | sequence.push(tasks.uglifyJS()); 25 | } 26 | 27 | return tasks.sequence(sequence); 28 | } 29 | 30 | function buildCSS(uglify){ 31 | const sequence = [ 32 | tasks.label('Building CSS'), 33 | tasks.loadFiles([__dirname + "/src/style.css"]), 34 | tasks.concat() 35 | ]; 36 | 37 | if(uglify){ 38 | sequence.push(tasks.uglifyCSS()); 39 | } 40 | 41 | return tasks.sequence(sequence); 42 | } 43 | 44 | function buildHTML(uglify){ 45 | const sequence = [ 46 | tasks.label('Building HTML'), 47 | tasks.loadFiles([__dirname + "/src/index.html"]), 48 | tasks.concat() 49 | ]; 50 | 51 | if(uglify){ 52 | sequence.push(tasks.uglifyHTML()); 53 | } 54 | 55 | return tasks.sequence(sequence); 56 | } 57 | 58 | function buildMain(){ 59 | return tasks.sequence([ 60 | tasks.label('Building main files'), 61 | tasks.parallel({ 62 | 'js': buildJS(true, true), 63 | 'css': buildCSS(true), 64 | 'html': buildHTML(true) 65 | }), 66 | tasks.combine(), 67 | tasks.output(__dirname + '/build/game.html'), 68 | tasks.zip('index.html'), 69 | tasks.output(__dirname + '/build/game.zip'), 70 | tasks.ect(__dirname + '/build/game.zip'), 71 | tasks.checkSize(__dirname + '/build/game.zip'), 72 | ]); 73 | } 74 | 75 | function buildDebug(mangle, suffix){ 76 | return tasks.sequence([ 77 | tasks.label('Building debug files'), 78 | tasks.parallel({ 79 | // Debug JS in a separate file 80 | 'debug_js': tasks.sequence([ 81 | buildJS(mangle, false), 82 | tasks.output(__dirname + '/build/debug' + suffix + '.js') 83 | ]), 84 | 85 | // Injecting the debug file 86 | 'js': tasks.inject(['debug.js']), 87 | 88 | 'css': buildCSS(false), 89 | 'html': buildHTML(false) 90 | }), 91 | tasks.combine(), 92 | tasks.output(__dirname + '/build/debug' + suffix + '.html') 93 | ]); 94 | } 95 | 96 | function main(){ 97 | return tasks.sequence([ 98 | buildMain(), 99 | buildDebug(false, ''), 100 | buildDebug(true, '_mangled') 101 | ]); 102 | } 103 | 104 | return main(); 105 | }); 106 | -------------------------------------------------------------------------------- /sample/build/debug.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample game 5 | 12 | 13 | 14 | 15 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /sample/build/debug.js: -------------------------------------------------------------------------------- 1 | function revertMatrix(s){ 2 | return s.split(',').map(function(r){ 3 | return r.split('').map(function(v){ 4 | return parseInt(v); 5 | }); 6 | }); 7 | } 8 | 9 | window.addEventListener('load', function(){ 10 | console.log('Loaded'); 11 | 12 | var variableThatWillBeShortened = 123; 13 | 14 | console.log(variableThatWillBeShortened); 15 | 16 | console.log(3.14); // defined in config.json 17 | 18 | var data = revertMatrix("000000001,000000001,000000001,000000000,000000001,111111111"); 19 | 20 | console.log(data); 21 | }, false); 22 | -------------------------------------------------------------------------------- /sample/build/debug_mangled.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample game 5 | 12 | 13 | 14 | 15 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /sample/build/debug_mangled.js: -------------------------------------------------------------------------------- 1 | function g(s){ 2 | return s.split(',').map(function(r){ 3 | return r.split('').map(function(v){ 4 | return parseInt(v); 5 | }); 6 | }); 7 | } 8 | 9 | window.addEventListener('load', function(){ 10 | console.log('Loaded'); 11 | 12 | var _ = 123; 13 | 14 | console.log(_); 15 | 16 | console.log(3.14); // defined in config.json 17 | 18 | var $ = g("000000001,000000001,000000001,000000000,000000001,111111111"); 19 | 20 | console.log($); 21 | }, false); 22 | -------------------------------------------------------------------------------- /sample/build/game.html: -------------------------------------------------------------------------------- 1 | Sample game -------------------------------------------------------------------------------- /sample/build/game.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remvst/js13k-compiler/0c4b4c8dc6d76cc4e565afb5329fefb5552f9674/sample/build/game.zip -------------------------------------------------------------------------------- /sample/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample game 5 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /sample/src/js/main.js: -------------------------------------------------------------------------------- 1 | window.addEventListener('load', function(){ 2 | console.log('Loaded'); 3 | 4 | var variableThatWillBeShortened = 123; 5 | 6 | console.log(variableThatWillBeShortened); 7 | 8 | console.log(MY_AWESOME_CONSTANT); // defined in config.json 9 | 10 | var data = matrix([ 11 | [0, 0, 0, 0, 0, 0, 0, 0, 1], 12 | [0, 0, 0, 0, 0, 0, 0, 0, 1], 13 | [0, 0, 0, 0, 0, 0, 0, 0, 1], 14 | [0, 0, 0, 0, 0, 0, 0, 0, 0], 15 | [0, 0, 0, 0, 0, 0, 0, 0, 1], 16 | [1, 1, 1, 1, 1, 1, 1, 1, 1] 17 | ]); 18 | 19 | console.log(data); 20 | }, false); 21 | -------------------------------------------------------------------------------- /sample/src/style.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background-color: black; 3 | width: 100%; 4 | } 5 | -------------------------------------------------------------------------------- /src/compiler.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports.run = function(func){ 4 | const tasks = require('./tasks'); // get the tasks in the global scope 5 | const Runner = require('./tasks/runner'); 6 | 7 | const rootTask = func(tasks); 8 | const runner = new Runner(rootTask); 9 | 10 | runner.run().catch(err => { 11 | console.error(err); 12 | }); 13 | }; 14 | -------------------------------------------------------------------------------- /src/macros/evaluate.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | 'apply': (s) => { 5 | return eval(s); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /src/macros/file.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | 5 | module.exports = { 6 | 'apply': (s) => { 7 | const path = s.substr(1, s.length - 2); 8 | 9 | const fileContent = fs.readFileSync(path).toString(); 10 | 11 | return JSON.stringify(fileContent); 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /src/macros/instrument.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const instrumentKeys = [ 4 | "osc1_oct", 5 | "osc1_det", 6 | "osc1_detune", 7 | "osc1_xenv", 8 | "osc1_vol", 9 | "osc1_waveform", 10 | "osc2_oct", 11 | "osc2_det", 12 | "osc2_detune", 13 | "osc2_xenv", 14 | "osc2_vol", 15 | "osc2_waveform", 16 | "noise_fader", 17 | "env_attack", 18 | "env_sustain", 19 | "env_release", 20 | "env_master", 21 | "fx_filter", 22 | "fx_freq", 23 | "fx_resonance", 24 | "fx_delay_time", 25 | "fx_delay_amt", 26 | "fx_pan_freq", 27 | "fx_pan_amt", 28 | "lfo_osc1_freq", 29 | "lfo_fx_freq", 30 | "lfo_freq", 31 | "lfo_amt", 32 | "lfo_waveform" 33 | ]; 34 | 35 | module.exports = { 36 | 'apply': s => { 37 | const content = JSON.parse(s); 38 | 39 | return JSON.stringify(instrumentKeys.map(key => { 40 | return content[key]; 41 | })); 42 | }, 43 | 'revert': function(arr) { 44 | const instrumentKeys = [ 45 | "osc1_oct", 46 | "osc1_det", 47 | "osc1_detune", 48 | "osc1_xenv", 49 | "osc1_vol", 50 | "osc1_waveform", 51 | "osc2_oct", 52 | "osc2_det", 53 | "osc2_detune", 54 | "osc2_xenv", 55 | "osc2_vol", 56 | "osc2_waveform", 57 | "noise_fader", 58 | "env_attack", 59 | "env_sustain", 60 | "env_release", 61 | "env_master", 62 | "fx_filter", 63 | "fx_freq", 64 | "fx_resonance", 65 | "fx_delay_time", 66 | "fx_delay_amt", 67 | "fx_pan_freq", 68 | "fx_pan_amt", 69 | "lfo_osc1_freq", 70 | "lfo_fx_freq", 71 | "lfo_freq", 72 | "lfo_amt", 73 | "lfo_waveform" 74 | ]; 75 | const res = {}; 76 | instrumentKeys.forEach((key, i) => res[key] = arr[i]); 77 | return res; 78 | } 79 | }; 80 | -------------------------------------------------------------------------------- /src/macros/matrix.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | 'apply': (s) => { 5 | const matrix = JSON.parse(s); 6 | 7 | let rows = []; 8 | for(let row = 0 ; row < matrix.length ; row++){ 9 | let s = ''; 10 | 11 | for(let col = 0 ; col < matrix[row].length ; col++){ 12 | s += matrix[row][col]; 13 | } 14 | 15 | rows.push(s); 16 | } 17 | 18 | return JSON.stringify(rows.join(',')); // commas are shorter than newlines 19 | }, 20 | 'revert': function(s){ 21 | return s.split(',').map(function(r){ 22 | return r.split('').map(function(v){ 23 | return parseInt(v); 24 | }); 25 | }); 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /src/macros/nomangle.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const split = require('../util/split'); 4 | 5 | module.exports = { 6 | 'apply': (s) => { 7 | return split.START_TAG + s + split.END_TAG; 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /src/tasks/adv-zip.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const spawn = require('child_process').spawn; 4 | 5 | const Task = require('./task'); 6 | 7 | class AdvZip extends Task{ 8 | constructor(filename){ 9 | super(); 10 | this.filename = filename; 11 | } 12 | 13 | execute(input){ 14 | return new Promise((resolve, reject) => { 15 | const subprocess = spawn('advzip', ['-z', this.filename]); 16 | 17 | subprocess.stderr.on('data', function (data) { 18 | console.error('stderr: ' + data); 19 | }); 20 | 21 | subprocess.on('exit', function (code) { 22 | if(code === 0){ 23 | resolve(input); 24 | }else{ 25 | reject('advzip failed with error code ' + code); 26 | } 27 | }); 28 | }); 29 | } 30 | } 31 | 32 | module.exports = AdvZip; 33 | -------------------------------------------------------------------------------- /src/tasks/block.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const colors = require('colors/safe'); 4 | 5 | const Task = require('./task'); 6 | 7 | class Block extends Task{ 8 | constructor(label){ 9 | super(); 10 | this.label = label; 11 | } 12 | 13 | execute(input){ 14 | super.execute(input); 15 | 16 | console.log(''); 17 | this.log(this.label, colors.white.underline); 18 | return Promise.resolve(input); 19 | } 20 | } 21 | 22 | module.exports = Block; 23 | -------------------------------------------------------------------------------- /src/tasks/check-size.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fsp = require('fs-promise'); 4 | 5 | const Task = require('./task'); 6 | 7 | const MAX_BYTES = 1024 * 13; 8 | 9 | class CheckSize extends Task{ 10 | constructor(path){ 11 | super(); 12 | this.path = path; 13 | } 14 | 15 | execute(input){ 16 | super.execute(input); 17 | 18 | return fsp.stat(this.path).then(stat => { 19 | // Log file size 20 | const progress = stat.size / MAX_BYTES; 21 | 22 | const meterSize = 50; 23 | let meter = '['; 24 | for(var i = 0 ; i < meterSize ; i++){ 25 | meter += (i / meterSize) < progress ? '#' : ' '; 26 | } 27 | meter += '] ' + Math.round(progress * 100) + '%'; 28 | 29 | console.log(meter); 30 | console.log('ZIP file size: ' + stat.size + ' bytes (' + (MAX_BYTES - stat.size) + ' bytes remaining)'); 31 | 32 | return input; 33 | }); 34 | } 35 | } 36 | 37 | module.exports = CheckSize; 38 | -------------------------------------------------------------------------------- /src/tasks/combine.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Mustache = require('mustache'); 4 | 5 | const Task = require('./task'); 6 | 7 | const INJECT_JS_TAG = 'JS_INJECTION_SITE'; 8 | const INJECT_CSS_TAG = 'CSS_INJECTION_SITE'; 9 | 10 | class UglifyHTML extends Task{ 11 | constructor(){ 12 | super(); 13 | } 14 | 15 | execute(input){ 16 | const view = {}; 17 | 18 | view[INJECT_JS_TAG] = input.js; 19 | view[INJECT_CSS_TAG] = input.css; 20 | 21 | const rendered = Mustache.render(input.html, view); 22 | 23 | return Promise.resolve(rendered); 24 | } 25 | } 26 | 27 | module.exports = UglifyHTML; 28 | -------------------------------------------------------------------------------- /src/tasks/concat.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Task = require('./task'); 4 | 5 | class Concat extends Task{ 6 | constructor(){ 7 | super(); 8 | } 9 | 10 | execute(input){ 11 | super.execute(input); 12 | return Promise.resolve(input.join('\n')); 13 | } 14 | } 15 | 16 | module.exports = Concat; 17 | -------------------------------------------------------------------------------- /src/tasks/constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Task = require('./task'); 4 | 5 | class Constants extends Task{ 6 | constructor(constants){ 7 | super(); 8 | this.constants = constants; 9 | } 10 | 11 | execute(input){ 12 | super.execute(input); 13 | 14 | for(let constant in this.constants){ 15 | const value = this.constants[constant]; 16 | const regex = new RegExp('\\b' + constant + '\\b', 'g'); 17 | 18 | input = input.replace(regex, value); 19 | } 20 | 21 | return Promise.resolve(input); 22 | } 23 | } 24 | 25 | module.exports = Constants; 26 | -------------------------------------------------------------------------------- /src/tasks/ect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const { execFile } = require('child_process'); 4 | const ect = require('ect-bin'); 5 | 6 | const Task = require('./task'); 7 | 8 | class Ect extends Task { 9 | constructor(file) { 10 | super(); 11 | this.file = file; 12 | } 13 | 14 | execute(input) { 15 | return new Promise((resolve, reject) => { 16 | execFile(ect, [this.file], err => { 17 | if (err) { 18 | reject(err); 19 | } else { 20 | resolve(); 21 | } 22 | }); 23 | }); 24 | } 25 | } 26 | 27 | module.exports = Ect; 28 | -------------------------------------------------------------------------------- /src/tasks/es6ify.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const stripComments = require('strip-comments'); 4 | 5 | const Task = require('./task'); 6 | 7 | function undo(s){ 8 | eval(s.replace(/\(([^\)]*)\)=>\{/g, 'function($1){')); // jshint ignore:line 9 | } 10 | 11 | class ES6ify extends Task{ 12 | constructor(){ 13 | super(); 14 | } 15 | 16 | execute(input){ 17 | input = stripComments(input); 18 | 19 | // Change function styles 20 | input = input.replace(new RegExp('function\\(([^\\)]*)\\)\\{', 'g'), '($1)=>{'); 21 | input = input.replace(new RegExp('function ([a-z]+)\\(([^\\)]*)\\)\\{', 'gi'), '$1 = ($2)=>{'); 22 | 23 | // Include the eval function 24 | input = '(' + undo.toString() + ')(' + JSON.stringify(input) + ');'; 25 | 26 | return Promise.resolve(input); 27 | } 28 | } 29 | 30 | module.exports = ES6ify; 31 | -------------------------------------------------------------------------------- /src/tasks/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const taskMap = { 4 | 'loadFiles': require('./load-files'), 5 | 'parallel': require('./parallel'), 6 | 'sequence': require('./sequence'), 7 | 'log': require('./log'), 8 | 'output': require('./output'), 9 | 'macro': require('./macro'), 10 | 'concat': require('./concat'), 11 | 'mangle': require('./mangle'), 12 | 'es6ify': require('./es6ify'), 13 | 'uglifyJS': require('./uglify-js'), 14 | 'uglifyES': require('./uglify-es'), 15 | 'terser': require('./terser'), 16 | 'uglifyCSS': require('./uglify-css'), 17 | 'uglifyHTML': require('./uglify-html'), 18 | 'zip': require('./zip'), 19 | 'advzip': require('./adv-zip'), 20 | 'combine': require('./combine'), 21 | 'constants': require('./constants'), 22 | 'inject': require('./inject'), 23 | 'checkSize': require('./check-size'), 24 | 'label': require('./label'), 25 | 'watch': require('./watch'), 26 | 'block': require('./block'), 27 | 'ect': require('./ect'), 28 | 'longerNames': require('./longer-names'), 29 | 'roadroller': require('./roadroller') 30 | }; 31 | 32 | function builderFunction(functionName){ 33 | const cls = taskMap[functionName]; 34 | return function(){ 35 | return new cls(...arguments); 36 | }; 37 | } 38 | 39 | for(let functionName in taskMap){ 40 | module.exports[functionName] = builderFunction(functionName); 41 | } 42 | -------------------------------------------------------------------------------- /src/tasks/inject.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Task = require('./task'); 4 | 5 | class Inject extends Task{ 6 | constructor(paths){ 7 | super(); 8 | this.paths = paths; 9 | } 10 | 11 | execute(input){ 12 | super.execute(input); 13 | 14 | const lines = []; 15 | 16 | lines.push(JSON.stringify(this.paths) + '.forEach(function(path){'); 17 | lines.push(' var script = document.createElement(\'script\');'); 18 | lines.push(' script.src = path;'); 19 | lines.push(' document.body.appendChild(script);'); 20 | lines.push('});'); 21 | 22 | return Promise.resolve(lines.join('\n')); 23 | } 24 | } 25 | 26 | module.exports = Inject; 27 | -------------------------------------------------------------------------------- /src/tasks/label.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Task = require('./task'); 4 | 5 | class Label extends Task{ 6 | constructor(label){ 7 | super(); 8 | this.label = label; 9 | } 10 | 11 | execute(input){ 12 | this.log(this.label); 13 | return Promise.resolve(input); 14 | } 15 | } 16 | 17 | module.exports = Label; 18 | -------------------------------------------------------------------------------- /src/tasks/load-files.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fsp = require('fs-promise'); 4 | 5 | const Task = require('./task'); 6 | 7 | class FileLoader extends Task{ 8 | constructor(files){ 9 | super(); 10 | this.files = files; 11 | } 12 | 13 | execute(input){ 14 | super.execute(input); 15 | 16 | return Promise.all(this.files.map((file) => { 17 | return fsp.readFile(file).then(data => { 18 | return data.toString(); 19 | }); 20 | })); 21 | } 22 | } 23 | 24 | module.exports = FileLoader; 25 | -------------------------------------------------------------------------------- /src/tasks/log.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Task = require('./task'); 4 | 5 | class Log extends Task{ 6 | constructor(){ 7 | super(); 8 | } 9 | 10 | execute(input){ 11 | super.execute(input); 12 | 13 | console.log(input); 14 | return Promise.resolve(input); 15 | } 16 | } 17 | 18 | module.exports = Log; 19 | -------------------------------------------------------------------------------- /src/tasks/longer-names.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const analyze = require('../util/analyze'); 4 | const split = require('../util/split'); 5 | 6 | const Task = require('./task'); 7 | 8 | class LongerNames extends Task{ 9 | constructor(config){ 10 | super(); 11 | this.config = config || {}; 12 | } 13 | 14 | execute(input){ 15 | // Replacing names that are too common 16 | const names = analyze(input, this.config.force || [], this.config.skip || [], 1); 17 | 18 | const replaceMap = {}; 19 | names.forEach((name) => { 20 | replaceMap[name] = (this.config.prefix || '____') + name; 21 | }); 22 | 23 | const components = split.split(input); 24 | const nonStringComponents = components.filter(component => { 25 | return !component.isString; 26 | }); 27 | 28 | for(let word in replaceMap){ 29 | const mangled = replaceMap[word]; 30 | 31 | const regex = new RegExp('\\b' + word + '\\b', 'g'); 32 | 33 | for(let i = 0 ; i < nonStringComponents.length ; i++){ 34 | const component = nonStringComponents[i]; 35 | component.content = component.content.replace(regex, mangled); 36 | } 37 | } 38 | 39 | return Promise.resolve(split.join(components)); 40 | } 41 | } 42 | 43 | module.exports = LongerNames; 44 | -------------------------------------------------------------------------------- /src/tasks/macro.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Task = require('./task'); 4 | 5 | class Macro extends Task{ 6 | constructor(macro, settings){ 7 | super(); 8 | this.macro = macro; 9 | this.settings = settings; 10 | } 11 | 12 | execute(input){ 13 | super.execute(input); 14 | 15 | const macro = this.settings || require('../macros/' + this.macro); 16 | 17 | const undoName = 'revert' + this.macro.substr(0, 1).toUpperCase() + this.macro.substr(1); 18 | const undoCode = macro.revert ? macro.revert.toString().replace(/function/, 'function ' + undoName) + '\n\n' : ''; 19 | 20 | input = undoCode + input; 21 | 22 | let characterDiff = undoCode.length; 23 | 24 | while(true){ 25 | const regex = new RegExp(this.macro + '\\(', 'g'); 26 | const match = regex.exec(input); 27 | 28 | if(!match){ 29 | break; 30 | } 31 | 32 | const matchStart = match.index; 33 | 34 | let lvl = 1; 35 | let i = matchStart + (this.macro + '(').length + 1; 36 | while(lvl > 0 && i < input.length){ 37 | if(input.charAt(i) === '('){ 38 | lvl++; 39 | }else if(input.charAt(i) === ')'){ 40 | lvl--; 41 | } 42 | 43 | i++; 44 | } 45 | 46 | const matchEnd = i; 47 | 48 | const contentStart = matchStart + (this.macro + '(').length; 49 | const contentEnd = matchEnd - 1; 50 | 51 | const content = input.substring(contentStart, contentEnd); 52 | 53 | const modifiedContent = macro.apply(content); 54 | 55 | characterDiff += modifiedContent.length - JSON.stringify(content).length; 56 | 57 | const sourceBefore = input.substring(0, matchStart); 58 | const sourceAfter = input.substring(matchEnd); 59 | 60 | if(undoCode){ 61 | input = sourceBefore + undoName + '(' + modifiedContent + ')' + sourceAfter; 62 | }else{ 63 | input = sourceBefore + modifiedContent + sourceAfter; 64 | } 65 | } 66 | 67 | return Promise.resolve(input); 68 | } 69 | } 70 | 71 | module.exports = Macro; 72 | -------------------------------------------------------------------------------- /src/tasks/mangle.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const stripComments = require('strip-comments'); 4 | const escapeStringRegexp = require('escape-string-regexp'); 5 | 6 | const encodeNumber = require('../util/encode-number'); 7 | const analyze = require('../util/analyze'); 8 | const split = require('../util/split'); 9 | 10 | const Task = require('./task'); 11 | 12 | const protectedNames = require('../../data/protected-names'); 13 | 14 | const protectedMap = {}; 15 | protectedNames.dom.concat(protectedNames.keywords).forEach((name) => { 16 | protectedMap[name] = true; 17 | }); 18 | 19 | function hasMatch(lines, mangled){ 20 | const regex = new RegExp('\\b' + escapeStringRegexp(mangled) + '\\b', 'g'); 21 | 22 | for(var i = 0 ; i < lines.length ; i++){ 23 | const matches = lines[i].match(regex) || []; 24 | 25 | if(matches.length){ 26 | return true; 27 | } 28 | } 29 | 30 | return false; 31 | } 32 | 33 | function isProtected(mangled) { 34 | return !!protectedMap[mangled]; 35 | } 36 | 37 | class Mangle extends Task{ 38 | constructor(config){ 39 | super(); 40 | this.config = config || {}; 41 | } 42 | 43 | execute(input){ 44 | // Replacing names that are too common 45 | const mangledNames = analyze(input, this.config.force || [], this.config.skip || []); 46 | 47 | // stripping the comments and the strings to avoid detecting inexistent conflicts 48 | const splitComponents = split.split(input); 49 | const inputWithoutStrings = splitComponents.map(component => { 50 | return component.isString ? '""' : component.content; // if it's a string, replace with an empty string 51 | }).join(''); 52 | const lines = stripComments(inputWithoutStrings).split('\n'); 53 | 54 | const mangleMap = {}; 55 | let mangleIndex = 0; 56 | mangledNames.forEach((name) => { 57 | while(true){ 58 | const mangled = encodeNumber(mangleIndex++); 59 | 60 | // Check if the mangled name is already in the original input 61 | if(!hasMatch(lines, mangled) && !isProtected(mangled)){ 62 | mangleMap[name] = mangled; 63 | break; 64 | } 65 | } 66 | }); 67 | 68 | const components = split.split(input); 69 | const nonStringComponents = components.filter((component) => { 70 | return !component.isString; 71 | }); 72 | 73 | for(let word in mangleMap){ 74 | const mangled = mangleMap[word]; 75 | 76 | const regex = new RegExp('\\b' + word + '\\b', 'g'); 77 | 78 | let characterDiff = 0; 79 | for(let i = 0 ; i < nonStringComponents.length ; i++){ 80 | const component = nonStringComponents[i]; 81 | const lengthBefore = component.content.length; 82 | component.content = component.content.replace(regex, mangled); 83 | const lengthAfter = component.content.length; 84 | characterDiff += lengthAfter - lengthBefore; 85 | } 86 | } 87 | 88 | return Promise.resolve(split.join(components)); 89 | } 90 | } 91 | 92 | module.exports = Mangle; 93 | -------------------------------------------------------------------------------- /src/tasks/output.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fsp = require('fs-promise'); 4 | 5 | const Task = require('./task'); 6 | 7 | class Output extends Task{ 8 | constructor(destination){ 9 | super(); 10 | this.destination = destination; 11 | } 12 | 13 | execute(input){ 14 | super.execute(input); 15 | 16 | // One file to output 17 | if(this.destination.length){ 18 | return fsp.writeFile(this.destination, input, 'binary').then(() => { 19 | return input; 20 | }); 21 | } 22 | 23 | // Multiple files to ouput (multiple inputs too) 24 | const promises = []; 25 | for(let inputLabel in this.destination){ 26 | const file = this.destination[inputLabel]; 27 | const content = input[inputLabel]; 28 | promises.push(fsp.writeFile(file, content)); 29 | } 30 | 31 | return Promise.all(promises).then(() => { 32 | return input; 33 | }); 34 | } 35 | } 36 | 37 | module.exports = Output; 38 | -------------------------------------------------------------------------------- /src/tasks/parallel.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Task = require('./task'); 4 | 5 | class Parallel extends Task{ 6 | constructor(tasks){ 7 | super(); 8 | this.tasks = tasks; 9 | } 10 | 11 | execute(input){ 12 | super.execute(input); 13 | 14 | const promises = []; 15 | const outputMap = {}; 16 | 17 | for(let subTaskLabel in this.tasks){ 18 | promises.push(this.runSubTask(input, this.tasks[subTaskLabel], subTaskLabel, outputMap)); 19 | } 20 | 21 | return Promise.all(promises).then(() => { 22 | return outputMap; 23 | }); 24 | } 25 | 26 | runSubTask(input, task, subTaskLabel, outputMap){ 27 | return task.run(this.runner, input).then((subTaskOutput) => { 28 | outputMap[subTaskLabel] = subTaskOutput; 29 | }); 30 | } 31 | } 32 | 33 | module.exports = Parallel; 34 | -------------------------------------------------------------------------------- /src/tasks/roadroller.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const { Packer } = require('roadroller'); 4 | 5 | const Task = require('./task'); 6 | 7 | class Roadroller extends Task { 8 | async execute(input) { 9 | const packer = new Packer([ 10 | { 11 | data: input, 12 | type: 'js', 13 | action: 'eval', 14 | }, 15 | ], { 16 | // see the Usage for available options. 17 | }); 18 | 19 | await packer.optimize(); 20 | 21 | const { firstLine, secondLine } = packer.makeDecoder(); 22 | 23 | return Promise.resolve(firstLine + secondLine); 24 | } 25 | } 26 | 27 | module.exports = Roadroller; 28 | -------------------------------------------------------------------------------- /src/tasks/runner.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const colors = require('colors/safe'); 4 | 5 | function addZeros(n, l){ 6 | n = n.toString(); 7 | while(n.length < l){ 8 | n = '0' + n; 9 | } 10 | return n; 11 | } 12 | 13 | function formatTime(t){ 14 | var m = ~~(t / 60), 15 | s = ~~(t % 60), 16 | ms = ~~((t % 1) * 1000); 17 | 18 | return addZeros(m, 2) + ':' + addZeros(s, 2) + '.' + addZeros(ms, 3); 19 | } 20 | 21 | class Runner { 22 | constructor(task){ 23 | this.task = task; 24 | 25 | this.start = null; 26 | this.end = null; 27 | } 28 | 29 | run(){ 30 | this.start = Date.now(); 31 | return this.task.run(this, {}).then(() => { 32 | this.ended(); 33 | }); 34 | } 35 | 36 | ended(){ 37 | this.end = Date.now(); 38 | this.log('Done'); 39 | } 40 | 41 | elaspedTime(){ 42 | return (this.end || Date.now()) - this.start; 43 | } 44 | 45 | log(s, modifier){ 46 | modifier = modifier || colors.green; 47 | 48 | const formattedTime = formatTime(this.elaspedTime() / 1000); 49 | 50 | console.log('[' + formattedTime + '] ' + modifier(s)); 51 | } 52 | } 53 | 54 | module.exports = Runner; 55 | -------------------------------------------------------------------------------- /src/tasks/sequence.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Task = require('./task'); 4 | 5 | class Sequence extends Task{ 6 | constructor(tasks){ 7 | super(); 8 | this.tasks = tasks; 9 | } 10 | 11 | execute(input){ 12 | super.execute(input); 13 | 14 | let currentPromise = Promise.resolve(input); 15 | 16 | this.tasks.forEach((task) => { 17 | currentPromise = currentPromise.then((output) => { 18 | return task.run(this.runner, output); 19 | }); 20 | }); 21 | 22 | return currentPromise; 23 | } 24 | } 25 | 26 | module.exports = Sequence; 27 | -------------------------------------------------------------------------------- /src/tasks/task.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | class Task{ 4 | constructor(){ 5 | // Nothing to do here 6 | } 7 | 8 | execute(){ 9 | if(this.executionStart === null){ 10 | throw new Error('Must execute through run()'); 11 | } 12 | } 13 | 14 | run(runner, input){ 15 | if(this.runner){ 16 | throw new Error('Cannot run the same task twice'); 17 | } 18 | 19 | this.runner = runner; 20 | this.executionStart = Date.now(); 21 | return this.execute(input); 22 | } 23 | 24 | log(s, modifier){ 25 | return this.runner.log(s, modifier); 26 | } 27 | } 28 | 29 | module.exports = Task; 30 | -------------------------------------------------------------------------------- /src/tasks/terser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const terser = require('terser'); 4 | 5 | const Task = require('./task'); 6 | 7 | class Terser extends Task { 8 | constructor() { 9 | super(); 10 | } 11 | 12 | execute(input) { 13 | return terser.minify(input, { 14 | mangle: { 15 | }, 16 | }).then(uglified => uglified.code); 17 | } 18 | } 19 | 20 | module.exports = Terser; 21 | -------------------------------------------------------------------------------- /src/tasks/uglify-css.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const CleanCSS = require('clean-css'); 4 | 5 | const Task = require('./task'); 6 | 7 | class UglifyCSS extends Task{ 8 | constructor(){ 9 | super(); 10 | } 11 | 12 | execute(input){ 13 | return Promise.resolve(new CleanCSS().minify(input).styles); 14 | } 15 | } 16 | 17 | module.exports = UglifyCSS; 18 | -------------------------------------------------------------------------------- /src/tasks/uglify-es.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const uglifyES = require('uglify-es'); 4 | 5 | const Task = require('./task'); 6 | 7 | class UglifyES extends Task { 8 | constructor() { 9 | super(); 10 | } 11 | 12 | execute(input) { 13 | const uglifiedES = uglifyES.minify(input, { 14 | 15 | }); 16 | 17 | return Promise.resolve(uglifiedES.code); 18 | } 19 | } 20 | 21 | module.exports = UglifyES; 22 | -------------------------------------------------------------------------------- /src/tasks/uglify-html.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const minifyHTML = require('html-minifier').minify; 4 | 5 | const Task = require('./task'); 6 | 7 | class UglifyHTML extends Task{ 8 | constructor(){ 9 | super(); 10 | } 11 | 12 | execute(input){ 13 | const uglified = minifyHTML(input, { 14 | 'collapseWhitespace': true, 15 | 'minifyCSS': false, 16 | 'minifyJS': false 17 | }); 18 | 19 | return Promise.resolve(uglified); 20 | } 21 | } 22 | 23 | module.exports = UglifyHTML; 24 | -------------------------------------------------------------------------------- /src/tasks/uglify-js.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const uglifyJS = require('uglify-js'); 4 | 5 | const Task = require('./task'); 6 | 7 | class UglifyJS extends Task{ 8 | constructor(){ 9 | super(); 10 | } 11 | 12 | execute(input){ 13 | const uglified = uglifyJS.minify(input, { 14 | fromString: true, 15 | mangle: false, 16 | mangleProperties: false, 17 | compress: { 18 | dead_code: true, 19 | unsafe: true 20 | } 21 | }); 22 | 23 | return Promise.resolve(uglified.code); 24 | } 25 | } 26 | 27 | module.exports = UglifyJS; 28 | -------------------------------------------------------------------------------- /src/tasks/watch.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fsp = require('fs-promise'); 4 | const colors = require('colors/safe'); 5 | 6 | const Task = require('./task'); 7 | const Runner = require('./runner'); 8 | 9 | class Watch extends Task{ 10 | constructor(files, taskBuilder){ 11 | super(); 12 | this.files = files; 13 | this.taskBuilder = taskBuilder; 14 | } 15 | 16 | execute(){ 17 | return new Promise((resolve, reject) => { 18 | const promises = this.files.map(file => { 19 | return fsp.watch(file, (eventType, filename) => { 20 | if(eventType === 'rename'){ 21 | reject(new Error('Unsupported file change operation')); 22 | return; 23 | } 24 | 25 | this.log('Modified ' + filename); 26 | this.runTask(); 27 | }); 28 | }); 29 | 30 | Promise.all(promises).then(() => { 31 | this.runTask(); 32 | }); 33 | }); 34 | } 35 | 36 | runTask(){ 37 | const task = this.taskBuilder(); 38 | const runner = new Runner(task); 39 | runner.run().catch((err) => { 40 | this.log('Error while building: ' + err, colors.red); 41 | }).then(() => { 42 | this.log('Waiting for file changes...'); 43 | }); 44 | } 45 | } 46 | 47 | module.exports = Watch; 48 | -------------------------------------------------------------------------------- /src/tasks/zip.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const zip = require('node-zip'); 4 | 5 | const Task = require('./task'); 6 | 7 | class Zip extends Task{ 8 | constructor(filename){ 9 | super(); 10 | this.filename = filename; 11 | } 12 | 13 | execute(input){ 14 | const zipper = new zip(); 15 | zipper.file(this.filename, input); 16 | 17 | const zipData = zipper.generate({ 18 | 'base64': false, 19 | 'compression': 'DEFLATE' 20 | }); 21 | 22 | return Promise.resolve(zipData); 23 | } 24 | } 25 | 26 | module.exports = Zip; 27 | -------------------------------------------------------------------------------- /src/util/analyze.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const stripComments = require('strip-comments'); 4 | 5 | const protectedNames = require('../../data/protected-names'); 6 | const splitter = require('./split'); 7 | 8 | module.exports = (source, force, skip, minLength) => { 9 | minLength = minLength || 2; 10 | 11 | const protectedMap = {}; 12 | protectedNames.dom.concat(protectedNames.keywords).forEach((name) => { 13 | protectedMap[name] = true; 14 | }); 15 | 16 | const wordList = cleanString(source) 17 | .split(' ') 18 | .filter(w => { 19 | return w.length >= minLength && /^[$_a-z]/i.test(w); 20 | }) 21 | .filter(w => { 22 | return !protectedMap[w] || force.indexOf(w) >= 0; 23 | }) 24 | .filter(w => { 25 | return skip.indexOf(w) === -1; 26 | }); 27 | 28 | const counts = countList(wordList).sort((a, b) => { 29 | return a.count - b.count; 30 | }).map(item => { 31 | return { 32 | 'word': item.word, 33 | 'characters': item.count * item.word.length 34 | }; 35 | }); 36 | 37 | return counts.map(item => { 38 | return item.word; 39 | }).reverse(); 40 | }; 41 | 42 | function cleanString(s){ 43 | s = splitter.join(splitter.split(s)); 44 | 45 | // Eliminate comments 46 | s = stripComments(s); 47 | 48 | // Eliminate strings 49 | s = s.replace(/'.*'/g, ' '); 50 | s = s.replace(/".*"/g, ' '); 51 | 52 | // Eliminate RGB values 53 | s = s.replace(/#[0-9a-f]{6}/gi, ' '); 54 | s = s.replace(/#[0-9a-f]{3}/gi, ' '); 55 | 56 | // Eliminate all the non-word stuff 57 | s = s.replace(/[^a-z0-9_$]+/gi, ' '); 58 | 59 | return s; 60 | } 61 | 62 | function countList(wordList){ 63 | const map = {}; 64 | const list = []; 65 | wordList.forEach(w => { 66 | if(!map[w]){ 67 | map[w] = { 68 | 'word': w, 69 | 'count': 0 70 | }; 71 | list.push(map[w]); 72 | } 73 | map[w].count++; 74 | }); 75 | return list; 76 | } 77 | -------------------------------------------------------------------------------- /src/util/encode-number.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = (num) => { 4 | let alphabet = '$_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 5 | let newBase = alphabet.length; 6 | let digits = Math.floor(Math.log(num) / Math.log(newBase)) + 1; 7 | 8 | if(num === 0 || num === 1){ 9 | digits = 1; 10 | } 11 | 12 | let res = ''; 13 | for(var i = digits - 1 ; i >= 0 ; i--){ 14 | 15 | let multiple = Math.pow(newBase, i); 16 | let occ = Math.floor(num / multiple); 17 | 18 | res += alphabet.charAt(occ); 19 | 20 | num -= occ * multiple; 21 | } 22 | 23 | return res; 24 | }; 25 | -------------------------------------------------------------------------------- /src/util/split.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | 'START_TAG': '/*nomangle*/', 5 | 'END_TAG': '/*/nomangle*/', 6 | 'split': (s, start) => { 7 | start = start || 0; 8 | 9 | const res = []; 10 | s.split(module.exports.START_TAG).forEach(function(component, i){ 11 | var spl = component.split(module.exports.END_TAG); 12 | if(i > 0){ 13 | res.push({ 14 | 'content': spl[0], 15 | 'isString': true 16 | }); 17 | res.push({ 18 | 'content': spl[1], 19 | 'isString': false 20 | }); 21 | }else{ 22 | res.push({ 23 | 'content': spl[0], 24 | 'isString': false 25 | }); 26 | } 27 | }); 28 | 29 | return res; 30 | }, 31 | 'join': (components) => { 32 | return components.map((component) => { 33 | if(component.isString){ 34 | return module.exports.START_TAG + component.content + module.exports.END_TAG; 35 | }else{ 36 | return component.content; 37 | } 38 | }).join(''); 39 | } 40 | }; 41 | --------------------------------------------------------------------------------