Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ES6 Tools
  3. core-js

core-js

MITJavaScriptv3.49.0

A modular standard library for JavaScript with polyfills for ECMAScript up to 2025 and web standards.

Visit WebsiteGitHubGitHub
25.5k stars1.7k forks0 contributors

What is core-js?

core-js is a modular JavaScript standard library that provides polyfills for ECMAScript features up to the latest proposals and web standards. It solves the problem of missing or inconsistent JavaScript APIs in older browsers and Node.js versions, enabling developers to write modern code that works across environments.

Target Audience

JavaScript developers building applications that need to support older browsers or Node.js versions, as well as library authors who require consistent runtime behavior across different environments.

Value Proposition

Developers choose core-js for its extensive and accurate polyfill coverage, modular design that minimizes bundle size, and seamless integration with tools like Babel and swc. It is the de facto standard for polyfilling JavaScript features in the ecosystem.

Overview

Standard Library

Use Cases

Best For

  • Polyfilling missing ECMAScript features in legacy browsers like Internet Explorer
  • Ensuring consistent JavaScript API behavior across different Node.js versions
  • Using modern JavaScript syntax (e.g., promises, async/await) in older environments
  • Integrating with Babel or swc for automatic polyfill injection based on target environments
  • Building libraries that need to run in diverse JavaScript environments without global pollution
  • Experimenting with ECMAScript proposals and web standards before they are widely supported

Not Ideal For

  • Projects exclusively targeting modern browsers (e.g., Chrome 120+, Firefox 120+) that natively support all ECMAScript features used
  • Applications with ultra-strict bundle size limits where any polyfill overhead is unacceptable, such as performance-critical web apps
  • Server-side environments like Deno or Bun that have built-in, up-to-date JavaScript support and discourage polyfilling
  • Teams preferring on-demand polyfill services like polyfill.io for dynamic, browser-specific delivery

Pros & Cons

Pros

Comprehensive Feature Support

Covers ECMAScript features up to 2025 and stage 0-3 proposals, including promises, symbols, and iterator helpers, as detailed in the extensive feature list.

Modular and Lightweight

Allows importing only necessary polyfills via entry points like /actual/ or /stable/, minimizing bundle size compared to loading the entire library.

Pollution-Free Option

The core-js-pure version imports polyfills as modules without modifying global objects, ideal for libraries or strict environments, as shown in the examples.

Seamless Build Tool Integration

Integrates with Babel's @babel/preset-env and swc for automatic polyfill injection based on target environments, simplifying setup with useBuiltIns options.

Cons

Bundle Bloat Risk

Even with modular imports, polyfilling many features can significantly increase JavaScript bundle size, impacting load times, especially for legacy browser support.

Configuration Complexity

Requires careful setup with tools like Babel to avoid conflicts; the README warns about issues with libraries like Google Maps due to global namespace pollution.

Unstable Proposal Dependencies

Includes polyfills for early-stage ECMAScript proposals that may change or be removed, leading to potential breaking changes in future updates.

Frequently Asked Questions

Quick Stats

Stars25,484
Forks1,697
Contributors0
Open Issues31
Last commit1 day ago
CreatedSince 2013

Tags

#js#ponyfill#polyfill#ecmascript#web-standards#nodejs#standard-library#es6#javascript#compatibility#es2015#babel

Links & Resources

Website

Included in

ES6 Tools4.0kPonyfills63
Auto-fetched 1 day ago

Related Projects

es6-promisees6-promise

A polyfill for ES6-style Promises

Stars7,282
Forks586
Last commit3 years ago
es6-shimes6-shim

ECMAScript 6 compatibility shims for legacy JS engines

Stars3,107
Forks381
Last commit8 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub