{{>header}} {{>nav}}

Features and browsers supported

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.

Feature list

{{#compat}} {{#if notes}} {{/if}} {{/compat}}

Key: Feature missing, Feature supported with Polyfill service, Feature supported natively, Included by default

IE Firefox Chrome Safari Your browser

{{feature}}ΒΆ

  • {{dispBytes size}}
  • {{#if isDefault}}
  • {{/if}} {{#if notes}}
  • {{/if}}
{{#ie}}{{version}}{{/ie}} {{#firefox}}{{version}}{{/firefox}} {{#chrome}}{{version}}{{/chrome}} {{#safari}}{{version}}{{/safari}}
    {{#notes}}
  • {{{.}}}
  • {{/notes}}

Bundle sizes

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:

{{#sizes}} {{/sizes}}
BrowserVersionSize (raw)Size (min)Size (gzip)
{{family}}{{ver}}{{dispBytes rawbytes}}{{dispBytes minbytes}}{{dispBytes gzipbytes}}

Default sets

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:

AliasConstituents
default-3.3Array.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.4Added 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.5Added Object.getOwnPropertyDescriptor
default-3.6Added Map, Set
{{>footer}}