{{>header}} {{>nav}}
We test browser support with a test suite for each feature. A browser is considered compliant only if it passes all the tests, so this is a reasonably comprehensive test rather than a naive feature-detect. To view the test suite for a feature in the browser you're using right now, click the Tests link in the feature list. The results below are generated using browsers hosted by Sauce Labs.
| IE | Firefox | Chrome | Safari | Your browser | ||
|---|---|---|---|---|---|---|
{{feature}}ΒΆ |
{{#ie}}{{version}}{{/ie}} | {{#firefox}}{{version}}{{/firefox}} | {{#chrome}}{{version}}{{/chrome}} | {{#safari}}{{version}}{{/safari}} | ||
| ||||||
The table above lists a data size for each polyfill, which is the size of the polyfill including a feature detect, after minification, and before gzip. Two very important things to remember about these sizes are:
The following table shows the total size of the polyfill bundle for the default set, in all our test browsers:
| Browser | Version | Size (raw) | Size (min) | Size (gzip) |
|---|---|---|---|---|
| {{family}} | {{ver}} | {{dispBytes rawbytes}} | {{dispBytes minbytes}} | {{dispBytes gzipbytes}} |
The alias default includes a set of polyfills that comprise features with high demands, small polyfill sizes, good performance and at least one good native implementation in a stable browser. The set evolves over time to include new features as they become a more stable part of the web platform.
Although you cannot request an immutable version of a polyfill, you can reduce the risk of future releases of the polyfill service breaking compatibility with your code by using an immutable default set. Each time we make a release, if we have changed the features included in the default set we will issue a new immutable alias for the set, which won't change when the default set changes again. The components of these sets are shown below:
| Alias | Constituents |
|---|---|
default-3.3 | Array.isArray, Array.prototype.every, Array.prototype.filter, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.lastIndexOf, Array.prototype.map, Array.prototype.reduce, Array.prototype.reduceRight, Array.prototype.some, atob, CustomEvent, Date.now, Date.prototype.toISOString, Document, document.querySelector, document.visibilityState, DOMTokenList, Element, Element.prototype.classList, Element.prototype.cloneNode, Element.prototype.closest, Element.prototype.matches, Event, Event.DOMContentLoaded, Event.focusin, Event.hashchange, Function.prototype.bind, JSON, Object.assign, Object.create, Object.defineProperties, Object.defineProperty, Object.getOwnPropertyNames, Object.getPrototypeOf, Object.keys, requestAnimationFrame, String.prototype.includes, String.prototype.trim, Window, XMLHttpRequest, ~html5-elements |
default-3.4 | Added Array.from, Array.of, Array.prototype.fill, Element.prototype.after, Element.prototype.append, Element.prototype.before, Element.prototype.prepend, Element.prototype.remove, Element.prototype.replaceWith, Node.prototype.contains, Number.isNaN, Promise, String.prototype.endsWith, String.prototype.startsWith, URL, location.origin |
default-3.5 | Added Object.getOwnPropertyDescriptor |
default-3.6 | Added Map, Set |