browser-shims
browser-shims copied to clipboard
Browser and JS shims used by Airbnb.
airbnb-browser-shims 
Browser and JS language shims used by Airbnb.
Just require/import airbnb-browser-shims
, and the environment will be shimmed.
import 'airbnb-browser-shims';
Included shims
- JS language shims from airbnb-js-shims
-
ima-babel6-polyfill - fixes Babel 6 bugs with
super
calls in IE 9 and 10 - document.contains
- classlist-polyfill - Element.prototype.classList polyfill (only in browsers)
- raf - requestAnimationFrame polyfill for browsers and node
- requestIdleCallback
- matchmedia-polyfill - window.matchMedia polyfill (only in browsers)
- whatwg-fetch - fetch polyfill (only in browsers, supports IE9+)
- shim-keyboard-event-key - KeyboardEvent.key shim
-
TouchList[Symbol.iterator]
- whenSymbol
andTouchList
are both present - element-closest - Element.prototype.closest polyfill (only in browsers)
- smoothscroll-polyfill - Scroll behavior specification polyfill (only in browsers)
- window-location-origin - window.location.origin (for IE < 11)
- input-placeholder-polyfill - input placeholder polyfill (for IE < 10)
- intersection-observer - IntersectionObserver (only in browsers)
Only browser shims
If you only want to bring in the browser shims and not the JS language shims
(from airbnb-js-shims
), you can import airbnb-browser-shims/browser-only
. If
you choose this route, you will want to be sure that you are properly bringing
in the language shims for the browsers you support somehow. For example:
import 'airbnb-js-shims/target/es2015';
import 'airbnb-browser-shims/browser-only';