Supported environments
core-js is tested against and supports the following engines:| Engine | Notes |
|---|---|
| Chrome | Fully supported |
| Firefox | Fully supported |
| Safari | Fully supported |
| Edge | Fully supported |
| Internet Explorer | IE 8+ supported; IE 8 does not support setters, so some APIs have limited behavior |
| Node.js | Fully supported; use 'current' as the version value to target the running version |
| Bun | Fully supported |
| Deno | Fully supported |
| Hermes | Fully supported |
| React Native | Fully supported (uses Hermes as default engine) |
| Electron | Fully supported |
| Rhino | Fully supported |
Testing in IE7 and other very old engines has been discontinued. If you encounter issues with a specific engine, open an issue.
How compatibility data is organized
Thecore-js-compat package contains the full compatibility dataset. Data is keyed by module name and maps to an object of engine-to-version pairs. A version entry means that engine first gained a correct native implementation at that version — so core-js needs to polyfill that module for any target older than the listed version.
For example, this is what a slice of the raw data looks like:
<namespace>.<type>.<method>, where namespace is es for ECMAScript standard features, esnext for stage proposals, or web for web platform APIs.
Programmatic access via core-js-compat
Thecore-js-compat package exposes the full dataset and a compat() function that resolves which modules a given set of targets actually needs:
core-js-compat package
Full API reference and dataset for programmatic compatibility queries.
Browserslist integration
How to use browserslist queries and target objects with core-js-compat.