Originally posted at michaelzanggl.com. Subscribe to my newsletter to never miss out on new content.
Turns out there is a variety of things that babel-polyfill does not include.
It's important to know that babel-polyfill is using core-js under the hood.
List of missing polyfills:
JSONis missing only in IE7
String#normalizeis missing due to its rare usage and large size. Alternative polyfill: unorm
Proxycan't be polyfilled
window.fetchis not part of ECMAScript, but a web standard. While core-js does include some web standards,
fetchis currently not one of them. Alternative polyfill: github fetch
Intlis missing because of its large size. Alternative polyfill: Intl.js
DOM polyfills. For example
element.closest. What is included however are iterable DOM collections
<script type="module">. Instead, use bundlers like
Also be aware of
- caveats when using Symbol polyfill
- caveats when using typed arrays polyfill
- caveats when using URL and URLSearchParams
If you know of anything else that is not included please leave a comment and I will add it to the list.
Top comments (4)
IE11 doesn't support
SVGElement.classListand core-js doesn't provide that, as well.
Some syntax can't be polyfilled, like lookbehinds in regular expressions. I found that out the hard way recently.
This saved me. Thank you, much appreciated.
You have forgotten the pointer events: