| <!doctype html> |
| <html> |
| <body> |
| <script> |
| !function() { |
| var names = []; |
| var scanned = []; |
| var to_scan = []; |
| |
| function scan(obj) { |
| if (obj && typeof obj == "object" && !~scanned.indexOf(obj)) { |
| scanned.push(obj); |
| to_scan.push(obj); |
| } |
| } |
| |
| scan(self); |
| [ |
| "a", |
| "abbr", |
| "acronym", |
| "address", |
| "applet", |
| "area", |
| "article", |
| "aside", |
| "audio", |
| "b", |
| "base", |
| "basefont", |
| "bdi", |
| "bdo", |
| "bgsound", |
| "big", |
| "blink", |
| "blockquote", |
| "body", |
| "br", |
| "button", |
| "canvas", |
| "caption", |
| "center", |
| "checked", |
| "cite", |
| "code", |
| "col", |
| "colgroup", |
| "command", |
| "comment", |
| "compact", |
| "content", |
| "data", |
| "datalist", |
| "dd", |
| "declare", |
| "defer", |
| "del", |
| "details", |
| "dfn", |
| "dialog", |
| "dir", |
| "disabled", |
| "div", |
| "dl", |
| "dt", |
| "element", |
| "em", |
| "embed", |
| "fieldset", |
| "figcaption", |
| "figure", |
| "font", |
| "footer", |
| "form", |
| "frame", |
| "frameset", |
| "h1", |
| "h2", |
| "h3", |
| "h4", |
| "h5", |
| "h6", |
| "head", |
| "header", |
| "hgroup", |
| "hr", |
| "html", |
| "i", |
| "iframe", |
| "image", |
| "img", |
| "input", |
| "ins", |
| "isindex", |
| "ismap", |
| "kbd", |
| "keygen", |
| "label", |
| "legend", |
| "li", |
| "link", |
| "listing", |
| "main", |
| "map", |
| "mark", |
| "marquee", |
| "math", |
| "menu", |
| "menuitem", |
| "meta", |
| "meter", |
| "multicol", |
| "multiple", |
| "nav", |
| "nobr", |
| "noembed", |
| "noframes", |
| "nohref", |
| "noresize", |
| "noscript", |
| "noshade", |
| "nowrap", |
| "object", |
| "ol", |
| "optgroup", |
| "option", |
| "output", |
| "p", |
| "param", |
| "picture", |
| "plaintext", |
| "pre", |
| "progress", |
| "q", |
| "rb", |
| "readonly", |
| "rp", |
| "rt", |
| "rtc", |
| "ruby", |
| "s", |
| "samp", |
| "script", |
| "section", |
| "select", |
| "selected", |
| "shadow", |
| "small", |
| "source", |
| "spacer", |
| "span", |
| "strike", |
| "strong", |
| "style", |
| "sub", |
| "summary", |
| "sup", |
| "svg", |
| "table", |
| "tbody", |
| "td", |
| "template", |
| "textarea", |
| "tfoot", |
| "th", |
| "thead", |
| "time", |
| "title", |
| "tr", |
| "track", |
| "tt", |
| "u", |
| "ul", |
| "var", |
| "video", |
| "wbr", |
| "xmp", |
| "XXX", |
| ].forEach(function(tag) { |
| scan(document.createElement(tag)); |
| }); |
| [ |
| "abort", |
| "absolutedeviceorientation", |
| "activate", |
| "active", |
| "addsourcebuffer", |
| "addstream", |
| "addtrack", |
| "afterprint", |
| "afterscriptexecute", |
| "afterupdate", |
| "animationcancel", |
| "animationend", |
| "animationiteration", |
| "animationstart", |
| "appinstalled", |
| "audioend", |
| "audioprocess", |
| "audiostart", |
| "autocomplete", |
| "autocompleteerror", |
| "auxclick", |
| "beforeactivate", |
| "beforecopy", |
| "beforecut", |
| "beforedeactivate", |
| "beforeeditfocus", |
| "beforeinstallprompt", |
| "beforepaste", |
| "beforeprint", |
| "beforescriptexecute", |
| "beforeunload", |
| "beforeupdate", |
| "blocked", |
| "blur", |
| "bounce", |
| "boundary", |
| "cached", |
| "cancel", |
| "candidatewindowhide", |
| "candidatewindowshow", |
| "candidatewindowupdate", |
| "canplay", |
| "canplaythrough", |
| "cellchange", |
| "change", |
| "chargingchange", |
| "chargingtimechange", |
| "checking", |
| "click", |
| "close", |
| "compassneedscalibration", |
| "complete", |
| "connect", |
| "connecting", |
| "connectionstatechange", |
| "contextmenu", |
| "controllerchange", |
| "controlselect", |
| "copy", |
| "cuechange", |
| "cut", |
| "dataavailable", |
| "datachannel", |
| "datasetchanged", |
| "datasetcomplete", |
| "dblclick", |
| "deactivate", |
| "devicechange", |
| "devicelight", |
| "devicemotion", |
| "deviceorientation", |
| "deviceorientationabsolute", |
| "deviceproximity", |
| "dischargingtimechange", |
| "disconnect", |
| "display", |
| "downloading", |
| "drag", |
| "dragend", |
| "dragenter", |
| "dragexit", |
| "dragleave", |
| "dragover", |
| "dragstart", |
| "drop", |
| "durationchange", |
| "emptied", |
| "encrypted", |
| "end", |
| "ended", |
| "enter", |
| "enterpictureinpicture", |
| "error", |
| "errorupdate", |
| "exit", |
| "filterchange", |
| "finish", |
| "focus", |
| "focusin", |
| "focusout", |
| "freeze", |
| "fullscreenchange", |
| "fullscreenerror", |
| "gesturechange", |
| "gestureend", |
| "gesturestart", |
| "gotpointercapture", |
| "hashchange", |
| "help", |
| "icecandidate", |
| "iceconnectionstatechange", |
| "icegatheringstatechange", |
| "inactive", |
| "input", |
| "invalid", |
| "keydown", |
| "keypress", |
| "keyup", |
| "languagechange", |
| "layoutcomplete", |
| "leavepictureinpicture", |
| "levelchange", |
| "load", |
| "loadeddata", |
| "loadedmetadata", |
| "loadend", |
| "loading", |
| "loadingdone", |
| "loadingerror", |
| "loadstart", |
| "losecapture", |
| "lostpointercapture", |
| "mark", |
| "message", |
| "messageerror", |
| "mousedown", |
| "mouseenter", |
| "mouseleave", |
| "mousemove", |
| "mouseout", |
| "mouseover", |
| "mouseup", |
| "mousewheel", |
| "move", |
| "moveend", |
| "movestart", |
| "mozfullscreenchange", |
| "mozfullscreenerror", |
| "mozorientationchange", |
| "mozpointerlockchange", |
| "mozpointerlockerror", |
| "mscontentzoom", |
| "msfullscreenchange", |
| "msfullscreenerror", |
| "msgesturechange", |
| "msgesturedoubletap", |
| "msgestureend", |
| "msgesturehold", |
| "msgesturestart", |
| "msgesturetap", |
| "msgotpointercapture", |
| "msinertiastart", |
| "mslostpointercapture", |
| "msmanipulationstatechanged", |
| "msneedkey", |
| "msorientationchange", |
| "mspointercancel", |
| "mspointerdown", |
| "mspointerenter", |
| "mspointerhover", |
| "mspointerleave", |
| "mspointermove", |
| "mspointerout", |
| "mspointerover", |
| "mspointerup", |
| "mssitemodejumplistitemremoved", |
| "msthumbnailclick", |
| "negotiationneeded", |
| "nomatch", |
| "noupdate", |
| "obsolete", |
| "offline", |
| "online", |
| "open", |
| "orientationchange", |
| "pagechange", |
| "pagehide", |
| "pageshow", |
| "paste", |
| "pause", |
| "play", |
| "playing", |
| "pluginstreamstart", |
| "pointercancel", |
| "pointerdown", |
| "pointerenter", |
| "pointerleave", |
| "pointerlockchange", |
| "pointerlockerror", |
| "pointermove", |
| "pointerout", |
| "pointerover", |
| "pointerup", |
| "popstate", |
| "progress", |
| "propertychange", |
| "ratechange", |
| "reading", |
| "readystatechange", |
| "rejectionhandled", |
| "removesourcebuffer", |
| "removestream", |
| "removetrack", |
| "reset", |
| "resize", |
| "resizeend", |
| "resizestart", |
| "resourcetimingbufferfull", |
| "result", |
| "resume", |
| "rowenter", |
| "rowexit", |
| "rowsdelete", |
| "rowsinserted", |
| "scroll", |
| "search", |
| "seeked", |
| "seeking", |
| "select", |
| "selectionchange", |
| "selectstart", |
| "show", |
| "signalingstatechange", |
| "soundend", |
| "soundstart", |
| "sourceclose", |
| "sourceclosed", |
| "sourceended", |
| "sourceopen", |
| "speechend", |
| "speechstart", |
| "stalled", |
| "start", |
| "statechange", |
| "stop", |
| "storage", |
| "storagecommit", |
| "submit", |
| "success", |
| "suspend", |
| "textinput", |
| "timeout", |
| "timeupdate", |
| "toggle", |
| "touchcancel", |
| "touchend", |
| "touchmove", |
| "touchstart", |
| "track", |
| "transitioncancel", |
| "transitionend", |
| "transitionrun", |
| "transitionstart", |
| "unhandledrejection", |
| "unload", |
| "updateready", |
| "upgradeneeded", |
| "userproximity", |
| "versionchange", |
| "visibilitychange", |
| "voiceschanged", |
| "volumechange", |
| "vrdisplayactivate", |
| "vrdisplayconnect", |
| "vrdisplaydeactivate", |
| "vrdisplaydisconnect", |
| "vrdisplaypresentchange", |
| "waiting", |
| "waitingforkey", |
| "warning", |
| "webkitanimationend", |
| "webkitanimationiteration", |
| "webkitanimationstart", |
| "webkitcurrentplaybacktargetiswirelesschanged", |
| "webkitfullscreenchange", |
| "webkitfullscreenerror", |
| "webkitkeyadded", |
| "webkitkeyerror", |
| "webkitkeymessage", |
| "webkitneedkey", |
| "webkitorientationchange", |
| "webkitplaybacktargetavailabilitychanged", |
| "webkitpointerlockchange", |
| "webkitpointerlockerror", |
| "webkitresourcetimingbufferfull", |
| "webkittransitionend", |
| "wheel", |
| "zoom", |
| ].forEach(function(type) { |
| [ |
| "beforeunloadevent", |
| "compositionevent", |
| "customevent", |
| "devicemotionevent", |
| "deviceorientationevent", |
| "dragevent", |
| "event", |
| "events", |
| "focusevent", |
| "hashchangeevent", |
| "htmlevents", |
| "keyboardevent", |
| "messageevent", |
| "mouseevent", |
| "mouseevents", |
| "storageevent", |
| "svgevents", |
| "textevent", |
| "touchevent", |
| "uievent", |
| "uievents", |
| ].forEach(function(interface) { |
| try { |
| var event = document.createEvent(interface); |
| event.initEvent(type, true, true); |
| scan(event); |
| } catch (e) {} |
| }); |
| }); |
| |
| var obj; |
| while (obj = to_scan.shift()) { |
| var proto = obj; |
| do { |
| Object.getOwnPropertyNames(proto).forEach(function(name) { |
| var visited = ~names.indexOf(name); |
| if (!visited) names.push(name); |
| try { |
| scan(obj[name]); |
| if (visited) return; |
| if (/^create/.test(name)) { |
| scan(obj[name]()); |
| } |
| if (/^[A-Z]/.test(name)) { |
| scan(new obj[name]()); |
| } |
| } catch (e) {} |
| }); |
| } while (proto = Object.getPrototypeOf(proto)); |
| } |
| names.sort(); |
| document.write('<pre>[\n "'); |
| document.write(names.join('",\n "')); |
| document.write('"\n]</pre>'); |
| }(); |
| </script> |
| </body> |
| </html> |