Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ES6 Tools
  3. ES6 shim

ES6 shim

NOASSERTIONJavaScriptv0.1.41

A collection of JavaScript polyfills and shims for web platform features, enabling future-looking code across browsers.

GitHubGitHub
1.4k stars351 forks0 contributors

What is ES6 shim?

Polyfill is a collection of JavaScript polyfills and shims that implement web platform features in browsers that lack native support. It enables developers to use modern ECMAScript and Web APIs while maintaining compatibility with older browsers. The project covers standards from HTML and DOM to Fetch and URL APIs, providing modular scripts for incremental adoption.

Target Audience

Frontend developers and web engineers who need to support legacy browsers while using modern JavaScript and web standards in their projects.

Value Proposition

Developers choose Polyfill for its pragmatic approach to browser compatibility, offering a curated set of polyfills that are actually used in production. It avoids over-engineering by not aiming for 100% spec compliance, focusing instead on practical gaps that matter for real-world code.

Overview

JavaScript Polyfills, Shims and More

Use Cases

Best For

  • Adding support for ES2015+ features in older browsers
  • Implementing the Fetch API in environments without native support
  • Using modern DOM methods like querySelector in IE7 and IE8
  • Enabling HTML5 features like dataset and classList in legacy Internet Explorer
  • Polyfilling the URL API for consistent URL parsing and manipulation
  • Ensuring consistent animation timing with requestAnimationFrame in older browsers

Not Ideal For

  • Projects targeting only modern browsers (e.g., Chrome 80+, Firefox 70+) where polyfills add unnecessary overhead and bloat.
  • Node.js applications or server-side environments, as the project explicitly states it's not packaged as Node.js modules and focuses solely on browser APIs.
  • Teams using advanced build tools (like Webpack or Rollup) that require fine-grained, tree-shakable polyfills, since the bundled versions might include unused code.
  • Developers needing polyfills for very new or niche web standards (e.g., ES2020+ features or specific CSS Grid APIs) not covered in the included ECMAScript up to ES2017 or experimental sections.

Pros & Cons

Pros

Comprehensive ECMAScript Coverage

Covers ES5 through ES2017 standards, providing consistent JavaScript behavior in older browsers, as detailed in the separate es5.js, es6.js, etc., files for incremental adoption.

Modular Web Platform Polyfills

Splits polyfills into files matching Web standards (e.g., html.js, dom.js), allowing developers to include only what's needed, reducing payload size based on browser requirements.

Pragmatic, No-Frills Philosophy

Focuses on filling practical gaps without aiming for 100% spec compliance, making it lightweight and suitable for real-world use, as stated in the README's philosophy section.

Pre-bundled for Convenience

Offers minified bundles like web.js and polyfill.js for common use cases, simplifying quick integration without manual configuration.

Includes Experimental Features

Provides polyfills for proposed ECMAScript features and uncommon APIs (e.g., setImmediate, Geolocation), giving early access to cutting-edge functionality, though noted as unstable.

Cons

No Node.js Support

Explicitly not packaged as Node.js modules; the README states 'there's nothing to require()', limiting its use to browser-only environments and ignoring server-side needs.

Limited Polyfill Scope

The collection is curated and may miss some polyfills; it references an external guide for a more comprehensive list, indicating potential gaps for specific use cases.

Bundled Bloat Risk

Pre-bundled versions (e.g., polyfill.js) include everything, which can add unnecessary code if not carefully managed, especially for projects only needing a subset of polyfills.

Experimental Features Unstable

Experimental polyfills are 'subject to change at any time,' as warned in the README, which could lead to breaking changes in production code relying on them.

Frequently Asked Questions

Quick Stats

Stars1,354
Forks351
Contributors0
Open Issues14
Last commit4 years ago
CreatedSince 2013

Tags

#polyfill#ecmascript#shim#frontend#web-standards#legacy-browser-support#polyfills#javascript#web-api#browser-compatibility

Built With

J
JavaScript

Included in

ES6 Tools4.0k
Auto-fetched 1 day ago

Related Projects

core-jscore-js

Standard Library

Stars25,497
Forks1,697
Last commit1 day ago
es6-promisees6-promise

A polyfill for ES6-style Promises

Stars7,268
Forks585
Last commit3 years ago
es6-shimes6-shim

ECMAScript 6 compatibility shims for legacy JS engines

Stars3,107
Forks379
Last commit1 month ago
Object.assignObject.assign

ES2015 Object.assign() ponyfill

Stars918
Forks75
Last commit2 years 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