/*! { "name": "CSS Animations", "property": "cssanimations", "caniuse": "css-animation", "polyfills": ["transformie", "csssandpaper"], "tags": ["css"], "warnings": ["Android < 4 will pass this test, but can only animate a single property at a time"], "notes": [{ "name": "Article: 'Dispelling the Android CSS animation myths'", "href": "https://web.archive.org/web/20180602074607/https://daneden.me/2011/12/14/putting-up-with-androids-bullshit/" }] } !*/ /*! { "name": "CSS Display table", "property": "displaytable", "caniuse": "css-table", "authors": ["scottjehl"], "tags": ["css"], "builderAliases": ["css_displaytable"], "notes": [{ "name": "Detects for all additional table display values", "href": "https://pastebin.com/Gk9PeVaQ" }] } !*/ /*! { "name": "CSS Filters", "property": "cssfilters", "caniuse": "css-filters", "polyfills": ["polyfilter"], "tags": ["css"], "builderAliases": ["css_filters"], "notes": [{ "name": "MDN Docs", "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/filter" }] } !*/ /*! { "name": "CSS Object Fit", "caniuse": "object-fit", "property": "objectfit", "tags": ["css"], "builderAliases": ["css_objectfit"], "notes": [{ "name": "Opera Article on Object Fit", "href": "https://dev.opera.com/articles/css3-object-fit-object-position/" }] } !*/ /*! { "name": "CSS Supports", "property": "supports", "caniuse": "css-featurequeries", "tags": ["css"], "builderAliases": ["css_supports"], "notes": [{ "name": "W3C Spec (The @supports rule)", "href": "https://dev.w3.org/csswg/css3-conditional/#at-supports" }, { "name": "Related Github Issue", "href": "https://github.com/Modernizr/Modernizr/issues/648" }, { "name": "W3C Spec (The CSSSupportsRule interface)", "href": "https://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface" }] } !*/ /*! { "name": "Cross-Origin Resource Sharing", "property": "cors", "caniuse": "cors", "authors": ["Theodoor van Donge"], "notes": [{ "name": "MDN Docs", "href": "https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS" }], "polyfills": ["pmxdr", "ppx", "flxhr"] } !*/ /*! { "name": "ES5 Date", "property": "es5date", "notes": [{ "name": "ECMAScript 5.1 Language Specification", "href": "https://www.ecma-international.org/ecma-262/5.1/" }], "polyfills": ["es5shim"], "authors": ["Ron Waldon (@jokeyrhyme)"], "tags": ["es5"] } !*/ /*! { "name": "ES5 Function", "property": "es5function", "notes": [{ "name": "ECMAScript 5.1 Language Specification", "href": "https://www.ecma-international.org/ecma-262/5.1/" }], "polyfills": ["es5shim"], "authors": ["Ron Waldon (@jokeyrhyme)"], "tags": ["es5"] } !*/ /*! { "name": "ES5 Immutable Undefined", "property": "es5undefined", "notes": [{ "name": "ECMAScript 5.1 Language Specification", "href": "https://www.ecma-international.org/ecma-262/5.1/" }, { "name": "original implementation of detect code", "href": "https://kangax.github.io/compat-table/es5/" }], "authors": ["Ron Waldon (@jokeyrhyme)"], "tags": ["es5"] } !*/ /*! { "name": "ES5 Object", "property": "es5object", "notes": [{ "name": "ECMAScript 5.1 Language Specification", "href": "https://www.ecma-international.org/ecma-262/5.1/" }], "polyfills": ["es5shim", "es5sham"], "authors": ["Ron Waldon (@jokeyrhyme)"], "tags": ["es5"] } !*/ /*! { "name": "ES6 Array", "property": "es6array", "notes": [{ "name": "unofficial ECMAScript 6 draft specification", "href": "https://web.archive.org/web/20180825202128/https://tc39.github.io/ecma262/" }], "polyfills": ["es6shim"], "authors": ["Ron Waldon (@jokeyrhyme)"], "warnings": ["ECMAScript 6 is still a only a draft, so this detect may not match the final specification or implementations."], "tags": ["es6"] } !*/ /*! { "name": "ES6 Collections", "property": "es6collections", "notes": [{ "name": "unofficial ECMAScript 6 draft specification", "href": "https://web.archive.org/web/20180825202128/https://tc39.github.io/ecma262/" }], "polyfills": ["es6shim", "weakmap"], "authors": ["Ron Waldon (@jokeyrhyme)"], "warnings": ["ECMAScript 6 is still a only a draft, so this detect may not match the final specification or implementations."], "tags": ["es6"] } !*/ /*! { "name": "ES6 Promises", "property": "promises", "caniuse": "promises", "polyfills": ["es6promises"], "authors": ["Krister Kari", "Jake Archibald"], "tags": ["es6"], "notes": [{ "name": "The ES6 promises spec", "href": "https://github.com/domenic/promises-unwrapping" }, { "name": "Chromium dashboard - ES6 Promises", "href": "https://www.chromestatus.com/features/5681726336532480" }, { "name": "JavaScript Promises: an Introduction", "href": "https://developers.google.com/web/fundamentals/primers/promises/" }] } !*/ /*! { "name": "ES6 String", "property": "es6string", "notes": [{ "name": "unofficial ECMAScript 6 draft specification", "href": "https://web.archive.org/web/20180825202128/https://tc39.github.io/ecma262/" }], "polyfills": ["es6shim"], "authors": ["Ron Waldon (@jokeyrhyme)"], "warnings": ["ECMAScript 6 is still a only a draft, so this detect may not match the final specification or implementations."], "tags": ["es6"] } !*/ /*! { "name": "Fetch API", "property": "fetch", "tags": ["network"], "caniuse": "fetch", "notes": [{ "name": "WHATWG Spec", "href": "https://fetch.spec.whatwg.org/" }], "polyfills": ["fetch"] } !*/ /*! { "name": "Flexbox", "property": "flexbox", "caniuse": "flexbox", "tags": ["css"], "notes": [{ "name": "The _new_ flexbox", "href": "https://www.w3.org/TR/css-flexbox-1/" }], "warnings": [ "A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect." ] } !*/ /*! { "name": "JSON", "property": "json", "caniuse": "json", "notes": [{ "name": "MDN Docs", "href": "https://developer.mozilla.org/en-US/docs/Glossary/JSON" }], "polyfills": ["json2"] } !*/ /*! { "name": "Local Storage", "property": "localstorage", "caniuse": "namevalue-storage", "tags": ["storage"], "polyfills": [ "joshuabell-polyfill", "cupcake", "storagepolyfill", "amplifyjs", "yui-cacheoffline" ] } !*/ /*! { "name": "ResizeObserver", "property": "resizeobserver", "caniuse": "resizeobserver", "tags": ["ResizeObserver"], "authors": ["Christian Andersson"], "notes": [{ "name": "W3C Spec", "href": "https://www.w3.org/TR/resize-observer/" }, { "name": "MDN Docs", "href": "https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver" }, { "name": "Web.dev Article", "href": "https://web.dev/resize-observer/" }, { "name": "Digital Ocean tutorial", "href": "https://www.digitalocean.com/community/tutorials/js-resize-observer" }] } !*/ /*! { "name": "SVG as an tag source", "property": "svgasimg", "caniuse": "svg-img", "tags": ["svg"], "aliases": ["svgincss"], "authors": ["Chris Coyier"], "notes": [{ "name": "HTML5 Spec", "href": "https://www.w3.org/TR/html5/embedded-content-0.html#the-img-element" }] } !*/ /*! { "name": "SVG filters", "property": "svgfilters", "caniuse": "svg-filters", "tags": ["svg"], "builderAliases": ["svg_filters"], "authors": ["Erik Dahlstrom"], "notes": [{ "name": "W3C Spec", "href": "https://www.w3.org/TR/SVG11/filters.html" }] } !*/ /*! { "name": "SVG", "property": "svg", "caniuse": "svg", "tags": ["svg"], "authors": ["Erik Dahlstrom"], "polyfills": [ "svgweb", "raphael", "amplesdk", "canvg", "svg-boilerplate", "sie", "dojogfx", "fabricjs" ] } !*/ /*! { "name": "URL parser", "property": "urlparser", "notes": [{ "name": "WHATWG Spec", "href": "https://url.spec.whatwg.org/" }], "polyfills": ["urlparser"], "authors": ["Ron Waldon (@jokeyrhyme)"], "tags": ["url"] } !*/ /*! { "name": "Web Audio API", "property": "webaudio", "caniuse": "audio-api", "polyfills": ["xaudiojs", "dynamicaudiojs", "audiolibjs"], "tags": ["audio", "media"], "builderAliases": ["audio_webaudio_api"], "authors": ["Addy Osmani"], "notes": [{ "name": "W3C Spec", "href": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html" }] } !*/ /*! { "name": "Web Cryptography", "property": "cryptography", "caniuse": "cryptography", "tags": ["crypto"], "authors": ["roblarsen"], "notes": [{ "name": "W3C Editor's Draft Spec", "href": "https://www.w3.org/TR/WebCryptoAPI/" }], "polyfills": ["polycrypt"] } !*/ /*! { "name": "iframe[sandbox] Attribute", "property": "sandbox", "caniuse": "iframe-sandbox", "tags": ["iframe"], "builderAliases": ["iframe_sandbox"], "notes": [ { "name": "WHATWG Spec", "href": "https://html.spec.whatwg.org/multipage/embedded-content.html#attr-iframe-sandbox" }], "knownBugs": ["False-positive on Firefox < 29"] } !*/ /*! { "property": "urlsearchparams", "caniuse": "urlsearchparams", "tags": ["querystring", "url"], "authors": ["Cătălin Mariș"], "name": "URLSearchParams API", "notes": [{ "name": "WHATWG Spec", "href": "https://url.spec.whatwg.org/#interface-urlsearchparams" }, { "name": "MDN Docs", "href": "https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams" }] } !*/