vanilla.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. /* jshint sub: true */
  2. var Modernizr = window.Modernizr;
  3. var tests = {
  4. "standalone": {
  5. "ambientlight": Modernizr.ambientlight,
  6. "applicationcache": Modernizr.applicationcache,
  7. "audio": Modernizr.audio,
  8. "battery": Modernizr.batteryapi,
  9. "blob": Modernizr.blobconstructor,
  10. "canvas": Modernizr.canvas,
  11. "canvastext": Modernizr.canvastext,
  12. "contenteditable": Modernizr.contenteditable,
  13. "contextmenu": Modernizr.contextmenu,
  14. "cookies": Modernizr.cookies,
  15. "cors": Modernizr.cors,
  16. "crypto": Modernizr.cryptography,
  17. "custom-elements": Modernizr.customelements,
  18. "custom-protocol-handler": Modernizr.customprotocolhandler,
  19. "customevent": Modernizr.customevent,
  20. "dart": Modernizr.dart,
  21. "dataview-api": Modernizr.dataview,
  22. "emoji": Modernizr.emoji,
  23. "eventlistener": Modernizr.eventlistener,
  24. "exif-orientation": Modernizr.exiforientation,
  25. "flash": Modernizr.flash,
  26. "forcetouch": Modernizr.forcetouch,
  27. "fullscreen-api": Modernizr.fullscreen,
  28. "gamepad": Modernizr.gamepads,
  29. "geolocation": Modernizr.geolocation,
  30. "hashchange": Modernizr.hashchange,
  31. "hiddenscroll": Modernizr.hiddenscroll,
  32. "history": Modernizr.history,
  33. "htmlimports": Modernizr.htmlimports,
  34. "ie8compat": Modernizr.ie8compat,
  35. "indexeddb": Modernizr.indexeddb,
  36. "indexeddbblob": Modernizr.indexeddbblob,
  37. "input": Modernizr.input,
  38. "inputsearchevent": Modernizr.inputsearchevent,
  39. "inputtypes": Modernizr.inputtypes,
  40. "intl": Modernizr.intl,
  41. "json": Modernizr.json,
  42. "ligatures": Modernizr.ligatures,
  43. "lists-reversed": Modernizr.olreversed,
  44. "mathml": Modernizr.mathml,
  45. "media-source-extension-api": Modernizr.mediasource,
  46. "messagechannel": Modernizr.messagechannel,
  47. "notification": Modernizr.notification,
  48. "pagevisibility-api": Modernizr.pagevisibility,
  49. "performance": Modernizr.performance,
  50. "pointerevents": Modernizr.pointerevents,
  51. "pointerlock-api": Modernizr.pointerlock,
  52. "postmessage": Modernizr.postmessage,
  53. "proximity": Modernizr.proximity,
  54. "queryselector": Modernizr.queryselector,
  55. "quota-management-api": Modernizr.quotamanagement,
  56. "requestanimationframe": Modernizr.requestanimationframe,
  57. "serviceworker": Modernizr.serviceworker,
  58. "svg": Modernizr.svg,
  59. "templatestrings": Modernizr.templatestrings,
  60. "touchevents": Modernizr.touchevents,
  61. "typed-arrays": Modernizr.typedarrays,
  62. "unicode-range": Modernizr.unicoderange,
  63. "unicode": Modernizr.unicode,
  64. "userdata": Modernizr.userdata,
  65. "vibration": Modernizr.vibrate,
  66. "video": Modernizr.video,
  67. "vml": Modernizr.vml,
  68. "web-intents": Modernizr.webintents,
  69. "webanimations": Modernizr.webanimations,
  70. "webgl": Modernizr.webgl,
  71. "websockets": Modernizr.websockets,
  72. "xdomainrequest": Modernizr.xdomainrequest
  73. },
  74. "a": {
  75. "download": Modernizr.adownload
  76. },
  77. "audio": {
  78. "autoplay": Modernizr.audioautoplay,
  79. "loop": Modernizr.audioloop,
  80. "preload": Modernizr.audiopreload,
  81. "webaudio": Modernizr.webaudio
  82. },
  83. "battery": {
  84. "lowbattery": Modernizr.lowbattery
  85. },
  86. "canvas": {
  87. "blending": Modernizr.canvasblending,
  88. "todataurl": [
  89. Modernizr["todataurljpeg"],
  90. Modernizr["todataurlpng"],
  91. Modernizr["todataurlwebp"]
  92. ],
  93. "winding": Modernizr.canvaswinding
  94. },
  95. "crypto": {
  96. "getrandomvalues": Modernizr.getrandomvalues
  97. },
  98. "css": {
  99. "all": Modernizr.cssall,
  100. "animations": Modernizr.cssanimations,
  101. "appearance": Modernizr.appearance,
  102. "backdropfilter": Modernizr.backdropfilter,
  103. "backgroundblendmode": Modernizr.backgroundblendmode,
  104. "backgroundcliptext": Modernizr.backgroundcliptext,
  105. "backgroundposition-shorthand": Modernizr.bgpositionshorthand,
  106. "backgroundposition-xy": Modernizr.bgpositionxy,
  107. "backgroundrepeat": [
  108. Modernizr["bgrepeatspace"],
  109. Modernizr["bgrepeatround"]
  110. ],
  111. "backgroundsize": Modernizr.backgroundsize,
  112. "backgroundsizecover": Modernizr.bgsizecover,
  113. "borderimage": Modernizr.borderimage,
  114. "borderradius": Modernizr.borderradius,
  115. "boxdecorationbreak": Modernizr.boxdecorationbreak,
  116. "boxshadow": Modernizr.boxshadow,
  117. "boxsizing": Modernizr.boxsizing,
  118. "calc": Modernizr.csscalc,
  119. "checked": Modernizr.checked,
  120. "chunit": Modernizr.csschunit,
  121. "columns": Modernizr.csscolumns,
  122. "cssgrid": [
  123. Modernizr["cssgrid"],
  124. Modernizr["cssgridlegacy"]
  125. ],
  126. "cubicbezierrange": Modernizr.cubicbezierrange,
  127. "customproperties": Modernizr.customproperties,
  128. "displayrunin": Modernizr["display-runin"],
  129. "displaytable": Modernizr.displaytable,
  130. "ellipsis": Modernizr.ellipsis,
  131. "escape": Modernizr.cssescape,
  132. "exunit": Modernizr.cssexunit,
  133. "filters": Modernizr.cssfilters,
  134. "flexbox": Modernizr.flexbox,
  135. "flexboxlegacy": Modernizr.flexboxlegacy,
  136. "flexboxtweener": Modernizr.flexboxtweener,
  137. "flexwrap": Modernizr.flexwrap,
  138. "focuswithin": Modernizr.focuswithin,
  139. "fontdisplay": Modernizr.fontdisplay,
  140. "fontface": Modernizr.fontface,
  141. "generatedcontent": Modernizr.generatedcontent,
  142. "gradients": Modernizr.cssgradients,
  143. "hairline": Modernizr.hairline,
  144. "hsla": Modernizr.hsla,
  145. "hyphens": [
  146. Modernizr["csshyphens"],
  147. Modernizr["softhyphens"],
  148. Modernizr["softhyphensfind"]
  149. ],
  150. "invalid": Modernizr.cssinvalid,
  151. "lastchild": Modernizr.lastchild,
  152. "mask": Modernizr.cssmask,
  153. "mediaqueries": Modernizr.mediaqueries,
  154. "multiplebgs": Modernizr.multiplebgs,
  155. "nthchild": Modernizr.nthchild,
  156. "objectfit": Modernizr.objectfit,
  157. "opacity": Modernizr.opacity,
  158. "overflow-scrolling": Modernizr.overflowscrolling,
  159. "pointerevents": Modernizr.csspointerevents,
  160. "positionsticky": Modernizr.csspositionsticky,
  161. "pseudoanimations": Modernizr.csspseudoanimations,
  162. "pseudotransitions": Modernizr.csspseudotransitions,
  163. "reflections": Modernizr.cssreflections,
  164. "regions": Modernizr.regions,
  165. "remunit": Modernizr.cssremunit,
  166. "resize": Modernizr.cssresize,
  167. "rgba": Modernizr.rgba,
  168. "scrollbars": Modernizr.cssscrollbar,
  169. "scrollsnappoints": Modernizr.scrollsnappoints,
  170. "shapes": Modernizr.shapes,
  171. "siblinggeneral": Modernizr.siblinggeneral,
  172. "subpixelfont": Modernizr.subpixelfont,
  173. "supports": Modernizr.supports,
  174. "target": Modernizr.target,
  175. "textalignlast": Modernizr.textalignlast,
  176. "textdecoration": Modernizr.textdecoration,
  177. "textshadow": Modernizr.textshadow,
  178. "transforms": Modernizr.csstransforms,
  179. "transforms3d": Modernizr.csstransforms3d,
  180. "transformslevel2": Modernizr.csstransformslevel2,
  181. "transformstylepreserve3d": Modernizr.preserve3d,
  182. "transitions": Modernizr.csstransitions,
  183. "userselect": Modernizr.userselect,
  184. "valid": Modernizr.cssvalid,
  185. "variablefonts": Modernizr.variablefonts,
  186. "vhunit": Modernizr.cssvhunit,
  187. "vmaxunit": Modernizr.cssvmaxunit,
  188. "vminunit": Modernizr.cssvminunit,
  189. "vwunit": Modernizr.cssvwunit,
  190. "will-change": Modernizr.willchange,
  191. "wrapflow": Modernizr.wrapflow
  192. },
  193. "dom": {
  194. "classlist": Modernizr.classlist,
  195. "createElement-attrs": [
  196. Modernizr["createelementattrs"],
  197. Modernizr["createelement-attrs"]
  198. ],
  199. "dataset": Modernizr.dataset,
  200. "documentfragment": Modernizr.documentfragment,
  201. "hidden": Modernizr.hidden,
  202. "intersection-observer": Modernizr.intersectionobserver,
  203. "microdata": Modernizr.microdata,
  204. "mutationObserver": Modernizr.mutationobserver,
  205. "passiveeventlisteners": Modernizr.passiveeventlisteners
  206. },
  207. "elem": {
  208. "bdi": Modernizr.bdi,
  209. "datalist": Modernizr.datalistelem,
  210. "details": Modernizr.details,
  211. "output": Modernizr.outputelem,
  212. "picture": Modernizr.picture,
  213. "progress-meter": [
  214. Modernizr["progressbar"],
  215. Modernizr["meter"]
  216. ],
  217. "ruby": Modernizr.ruby,
  218. "template": Modernizr.template,
  219. "time": Modernizr.time,
  220. "track": [
  221. Modernizr["texttrackapi"],
  222. Modernizr["track"]
  223. ],
  224. "unknown": Modernizr.unknownelements
  225. },
  226. "es5": {
  227. "array": Modernizr.es5array,
  228. "date": Modernizr.es5date,
  229. "function": Modernizr.es5function,
  230. "object": Modernizr.es5object,
  231. "specification": Modernizr.es5,
  232. "strictmode": Modernizr.strictmode,
  233. "string": Modernizr.es5string,
  234. "syntax": Modernizr.es5syntax,
  235. "undefined": Modernizr.es5undefined
  236. },
  237. "es6": {
  238. "array": Modernizr.es6array,
  239. "arrow": Modernizr.arrow,
  240. "collections": Modernizr.es6collections,
  241. "contains": Modernizr.contains,
  242. "generators": Modernizr.generators,
  243. "math": Modernizr.es6math,
  244. "number": Modernizr.es6number,
  245. "object": Modernizr.es6object,
  246. "promises": Modernizr.promises,
  247. "string": Modernizr.es6string
  248. },
  249. "event": {
  250. "deviceorientation-motion": [
  251. Modernizr["devicemotion"],
  252. Modernizr["deviceorientation"]
  253. ],
  254. "oninput": Modernizr.oninput
  255. },
  256. "file": {
  257. "api": Modernizr.filereader,
  258. "filesystem": Modernizr.filesystem
  259. },
  260. "forms": {
  261. "capture": Modernizr.capture,
  262. "fileinput": Modernizr.fileinput,
  263. "fileinputdirectory": Modernizr.directory,
  264. "formattribute": Modernizr.formattribute,
  265. "inputnumber-l10n": Modernizr.localizednumber,
  266. "placeholder": Modernizr.placeholder,
  267. "requestautocomplete": Modernizr.requestautocomplete,
  268. "validation": Modernizr.formvalidation
  269. },
  270. "iframe": {
  271. "sandbox": Modernizr.sandbox,
  272. "seamless": Modernizr.seamless,
  273. "srcdoc": Modernizr.srcdoc
  274. },
  275. "img": {
  276. "apng": Modernizr.apng,
  277. "crossorigin": Modernizr.imgcrossorigin,
  278. "jpeg2000": Modernizr.jpeg2000,
  279. "jpegxr": Modernizr.jpegxr,
  280. "sizes": Modernizr.sizes,
  281. "srcset": Modernizr.srcset,
  282. "webp-alpha": Modernizr.webpalpha,
  283. "webp-animation": Modernizr.webpanimation,
  284. "webp-lossless": [
  285. Modernizr["webplossless"],
  286. Modernizr["webp-lossless"]
  287. ],
  288. "webp": Modernizr.webp
  289. },
  290. "input": {
  291. "formaction": Modernizr.inputformaction,
  292. "formenctype": Modernizr.inputformenctype,
  293. "formmethod": Modernizr.inputformmethod,
  294. "formnovalidate": Modernizr.inputformnovalidate,
  295. "formtarget": Modernizr.inputformtarget
  296. },
  297. "mediaquery": {
  298. "hovermq": Modernizr.hovermq,
  299. "pointermq": Modernizr.pointermq
  300. },
  301. "network": {
  302. "beacon": Modernizr.beacon,
  303. "connection-effectivetype": Modernizr.connectioneffectivetype,
  304. "connection": Modernizr.lowbandwidth,
  305. "eventsource": Modernizr.eventsource,
  306. "fetch": Modernizr.fetch,
  307. "xhr-responsetype-arraybuffer": Modernizr.xhrresponsetypearraybuffer,
  308. "xhr-responsetype-blob": Modernizr.xhrresponsetypeblob,
  309. "xhr-responsetype-document": Modernizr.xhrresponsetypedocument,
  310. "xhr-responsetype-json": Modernizr.xhrresponsetypejson,
  311. "xhr-responsetype-text": Modernizr.xhrresponsetypetext,
  312. "xhr-responsetype": Modernizr.xhrresponsetype,
  313. "xhr2": Modernizr.xhr2
  314. },
  315. "script": {
  316. "async": Modernizr.scriptasync,
  317. "defer": Modernizr.scriptdefer
  318. },
  319. "speech": {
  320. "speech-recognition": Modernizr.speechrecognition,
  321. "speech-synthesis": Modernizr.speechsynthesis
  322. },
  323. "storage": {
  324. "localstorage": Modernizr.localstorage,
  325. "sessionstorage": Modernizr.sessionstorage,
  326. "websqldatabase": Modernizr.websqldatabase
  327. },
  328. "style": {
  329. "scoped": Modernizr.stylescoped
  330. },
  331. "svg": {
  332. "asimg": Modernizr.svgasimg,
  333. "clippaths": Modernizr.svgclippaths,
  334. "filters": Modernizr.svgfilters,
  335. "foreignobject": Modernizr.svgforeignobject,
  336. "inline": Modernizr.inlinesvg,
  337. "smil": Modernizr.smil
  338. },
  339. "textarea": {
  340. "maxlength": Modernizr.textareamaxlength
  341. },
  342. "url": {
  343. "bloburls": Modernizr.bloburls,
  344. "data-uri": Modernizr.datauri,
  345. "parser": Modernizr.urlparser,
  346. "urlsearchparams": Modernizr.urlsearchparams
  347. },
  348. "video": {
  349. "autoplay": Modernizr.videoautoplay,
  350. "crossorigin": Modernizr.videocrossorigin,
  351. "loop": Modernizr.videoloop,
  352. "preload": Modernizr.videopreload
  353. },
  354. "webauthn": {
  355. "publickeycredential": Modernizr.publicKeyCredential
  356. },
  357. "webgl": {
  358. "extensions": Modernizr.webglextensions
  359. },
  360. "webrtc": {
  361. "datachannel": Modernizr.datachannel,
  362. "getusermedia": Modernizr.getusermedia,
  363. "peerconnection": Modernizr.peerconnection
  364. },
  365. "websockets": {
  366. "binary": Modernizr.websocketsbinary
  367. },
  368. "window": {
  369. "atob-btoa": Modernizr.atobbtoa,
  370. "framed": Modernizr.framed,
  371. "matchmedia": Modernizr.matchmedia
  372. },
  373. "workers": {
  374. "blobworkers": Modernizr.blobworkers,
  375. "dataworkers": Modernizr.dataworkers,
  376. "sharedworkers": Modernizr.sharedworkers,
  377. "transferables": Modernizr.transferables,
  378. "webworkers": Modernizr.webworkers
  379. }
  380. };