UNPKG

13.6 kBHTMLView Raw
1<!doctype html>
2<html>
3<body>
4 <script>
5 !function(G) {
6 var domprops = [];
7 var objs = [ G ];
8 var tagNames = [
9 "a",
10 "abbr",
11 "acronym",
12 "address",
13 "applet",
14 "area",
15 "article",
16 "aside",
17 "audio",
18 "b",
19 "base",
20 "basefont",
21 "bdi",
22 "bdo",
23 "bgsound",
24 "big",
25 "blink",
26 "blockquote",
27 "body",
28 "br",
29 "button",
30 "canvas",
31 "caption",
32 "center",
33 "checked",
34 "cite",
35 "code",
36 "col",
37 "colgroup",
38 "command",
39 "comment",
40 "compact",
41 "content",
42 "data",
43 "datalist",
44 "dd",
45 "declare",
46 "defer",
47 "del",
48 "details",
49 "dfn",
50 "dialog",
51 "dir",
52 "disabled",
53 "div",
54 "dl",
55 "dt",
56 "element",
57 "em",
58 "embed",
59 "fieldset",
60 "figcaption",
61 "figure",
62 "font",
63 "footer",
64 "form",
65 "frame",
66 "frameset",
67 "h1",
68 "h2",
69 "h3",
70 "h4",
71 "h5",
72 "h6",
73 "head",
74 "header",
75 "hgroup",
76 "hr",
77 "html",
78 "i",
79 "iframe",
80 "image",
81 "img",
82 "input",
83 "ins",
84 "isindex",
85 "ismap",
86 "kbd",
87 "keygen",
88 "label",
89 "legend",
90 "li",
91 "link",
92 "listing",
93 "main",
94 "map",
95 "mark",
96 "marquee",
97 "math",
98 "menu",
99 "menuitem",
100 "meta",
101 "meter",
102 "multicol",
103 "multiple",
104 "nav",
105 "nextid",
106 "nobr",
107 "noembed",
108 "noframes",
109 "nohref",
110 "noresize",
111 "noscript",
112 "noshade",
113 "nowrap",
114 "object",
115 "ol",
116 "optgroup",
117 "option",
118 "output",
119 "p",
120 "param",
121 "picture",
122 "plaintext",
123 "pre",
124 "progress",
125 "q",
126 "rb",
127 "readonly",
128 "rp",
129 "rt",
130 "rtc",
131 "ruby",
132 "s",
133 "samp",
134 "script",
135 "section",
136 "select",
137 "selected",
138 "shadow",
139 "slot",
140 "small",
141 "source",
142 "spacer",
143 "span",
144 "strike",
145 "strong",
146 "style",
147 "sub",
148 "summary",
149 "sup",
150 "svg",
151 "table",
152 "tbody",
153 "td",
154 "template",
155 "textarea",
156 "tfoot",
157 "th",
158 "thead",
159 "time",
160 "title",
161 "tr",
162 "track",
163 "tt",
164 "u",
165 "ul",
166 "var",
167 "video",
168 "wbr",
169 "xmp",
170 "XXX",
171 ];
172 for (var n = 0; n < tagNames.length; n++) {
173 add(document.createElement(tagNames[n]));
174 }
175 var nsNames = {
176 "http://www.w3.org/1998/Math/MathML": [
177 "annotation",
178 "annotation-xml",
179 "maction",
180 "maligngroup",
181 "malignmark",
182 "math",
183 "menclose",
184 "merror",
185 "mfenced",
186 "mfrac",
187 "mglyph",
188 "mi",
189 "mlabeledtr",
190 "mlongdiv",
191 "mmultiscripts",
192 "mn",
193 "mo",
194 "mover",
195 "mpadded",
196 "mphantom",
197 "mprescripts",
198 "mroot",
199 "mrow",
200 "ms",
201 "mscarries",
202 "mscarry",
203 "msgroup",
204 "msline",
205 "mspace",
206 "msqrt",
207 "msrow",
208 "mstack",
209 "mstyle",
210 "msub",
211 "msubsup",
212 "msup",
213 "mtable",
214 "mtd",
215 "mtext",
216 "mtr",
217 "munder",
218 "munderover",
219 "none",
220 "semantics",
221 ],
222 "http://www.w3.org/2000/svg": [
223 "a",
224 "altGlyph",
225 "altGlyphDef",
226 "altGlyphItem",
227 "animate",
228 "animateColor",
229 "animateMotion",
230 "animateTransform",
231 "circle",
232 "clipPath",
233 "color-profile",
234 "cursor",
235 "defs",
236 "desc",
237 "discard",
238 "ellipse",
239 "feBlend",
240 "feColorMatrix",
241 "feComponentTransfer",
242 "feComposite",
243 "feConvolveMatrix",
244 "feDiffuseLighting",
245 "feDisplacementMap",
246 "feDistantLight",
247 "feDropShadow",
248 "feFlood",
249 "feFuncA",
250 "feFuncB",
251 "feFuncG",
252 "feFuncR",
253 "feGaussianBlur",
254 "feImage",
255 "feMerge",
256 "feMergeNode",
257 "feMorphology",
258 "feOffset",
259 "fePointLight",
260 "feSpecularLighting",
261 "feSpotLight",
262 "feTile",
263 "feTurbulence",
264 "filter",
265 "font",
266 "font-face",
267 "font-face-format",
268 "font-face-name",
269 "font-face-src",
270 "font-face-uri",
271 "foreignObject",
272 "g",
273 "glyph",
274 "glyphRef",
275 "hatch",
276 "hatchpath",
277 "hkern",
278 "image",
279 "line",
280 "linearGradient",
281 "marker",
282 "mask",
283 "mesh",
284 "meshgradient",
285 "meshpatch",
286 "meshrow",
287 "metadata",
288 "missing-glyph",
289 "mpath",
290 "path",
291 "pattern",
292 "polygon",
293 "polyline",
294 "radialGradient",
295 "rect",
296 "script",
297 "set",
298 "solidcolor",
299 "stop",
300 "style",
301 "svg",
302 "switch",
303 "symbol",
304 "text",
305 "textPath",
306 "title",
307 "tref",
308 "tspan",
309 "unknown",
310 "use",
311 "view",
312 "vkern",
313 ],
314 };
315 if (document.createElementNS) for (var ns in nsNames) {
316 for (var n = 0; n < nsNames[ns].length; n++) {
317 add(document.createElementNS(ns, nsNames[ns][n]));
318 }
319 }
320 var skips = [
321 G.alert,
322 G.back,
323 G.blur,
324 G.captureEvents,
325 G.clearImmediate,
326 G.clearInterval,
327 G.clearTimeout,
328 G.close,
329 G.confirm,
330 G.console,
331 G.dump,
332 G.fetch,
333 G.find,
334 G.focus,
335 G.forward,
336 G.getAttention,
337 G.history,
338 G.home,
339 G.location,
340 G.moveBy,
341 G.moveTo,
342 G.navigator,
343 G.open,
344 G.openDialog,
345 G.print,
346 G.process,
347 G.prompt,
348 G.resizeBy,
349 G.resizeTo,
350 G.setImmediate,
351 G.setInterval,
352 G.setTimeout,
353 G.showModalDialog,
354 G.sizeToContent,
355 G.stop,
356 ];
357 var types = [];
358 var interfaces = [
359 "beforeunloadevent",
360 "compositionevent",
361 "customevent",
362 "devicemotionevent",
363 "deviceorientationevent",
364 "dragevent",
365 "event",
366 "events",
367 "focusevent",
368 "hashchangeevent",
369 "htmlevents",
370 "keyboardevent",
371 "messageevent",
372 "mouseevent",
373 "mouseevents",
374 "storageevent",
375 "svgevents",
376 "textevent",
377 "touchevent",
378 "uievent",
379 "uievents",
380 ];
381 var i = 0, full = false;
382 var addEvent = document.createEvent ? function(type) {
383 if (~indexOf(types, type)) return;
384 types.push(type);
385 for (var j = 0; j < interfaces.length; j++) try {
386 var event = document.createEvent(interfaces[j]);
387 event.initEvent(type, true, true);
388 add(event);
389 } catch (e) {}
390 } : function() {};
391 var scanProperties = Object.getOwnPropertyNames ? function(o, fn) {
392 var names = Object.getOwnPropertyNames(o);
393 names.forEach(fn);
394 for (var k in o) if (!~indexOf(names, k)) fn(k);
395 } : function(o, fn) {
396 for (var k in o) fn(k);
397 };
398 setTimeout(function next() {
399 for (var j = 10; --j >= 0 && i < objs.length; i++) {
400 var o = objs[i];
401 var skip = ~indexOf(skips, o);
402 try {
403 scanProperties(o, function(k) {
404 if (!~indexOf(domprops, k)) domprops.push(k);
405 if (/^on/.test(k)) addEvent(k.slice(2));
406 if (!full) try {
407 add(o[k]);
408 } catch (e) {}
409 });
410 } catch (e) {}
411 if (skip || full) continue;
412 try {
413 add(o.__proto__);
414 } catch (e) {}
415 try {
416 add(o.prototype);
417 } catch (e) {}
418 try {
419 add(new o());
420 } catch (e) {}
421 try {
422 add(o());
423 } catch (e) {}
424 }
425 if (!full && objs.length > 20000) {
426 alert(objs.length);
427 full = true;
428 }
429 if (i < objs.length) {
430 setTimeout(next, 0);
431 } else {
432 document.write('<pre>[\n "' + domprops.sort().join('",\n "').replace(/&/g, "&amp;").replace(/</g, "&lt;") + '"\n]</pre>');
433 }
434 }, 0);
435
436 function add(o) {
437 if (o) switch (typeof o) {
438 case "function":
439 case "object":
440 if (!~indexOf(objs, o)) objs.push(o);
441 }
442 }
443
444 function indexOf(list, value) {
445 var j = list.length;
446 while (--j >= 0) {
447 if (list[j] === value) break;
448 }
449 return j;
450 }
451 }(function() {
452 return this;
453 }());
454 </script>
455</body>
456</html>