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