<!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>
