# es-shims/es5-shim

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/es-shims-es5-shim).**

7,086 stars · 882 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/es-shims/es5-shim
- awesome-repositories: https://awesome-repositories.com/repository/es-shims-es5-shim.md

## Topics

`ecmascript` `es5` `javascript` `polyfill` `shim`

## Description

es5-shim is an ECMAScript 5 polyfill library and standard library shim. It serves as a JavaScript compatibility layer that adds missing ES5 standard library methods and language features to legacy JavaScript engines.

The project functions by implementing the ECMAScript 5 specification for non-compliant engines to ensure consistent behavior and prevent runtime errors. It provides a bridge for older browser environments, allowing modern JavaScript code to execute in legacy environments.

The library covers cross-browser API standardization and polyfill management. It specifically handles the emulation of standard language methods, object manipulation, and the restoration of missing features across different versions of JavaScript engines.

## Tags

### Programming Languages & Runtimes

- [Standard Library Polyfills](https://awesome-repositories.com/f/programming-languages-runtimes/standard-library-polyfills.md) — Implements missing standard library methods and constructors specifically for the ECMAScript 5 specification. ([source](https://github.com/es-shims/es5-shim/blob/master/CHANGELOG.md))
- [JavaScript Runtime Compatibility Layers](https://awesome-repositories.com/f/programming-languages-runtimes/javascript-runtime-compatibility-layers.md) — Provides a compatibility layer of polyfills and shims to ensure consistent JavaScript standard library behavior.
- [Standard Library Compatibility Shims](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/foreign-function-interfaces/standard-library-compatibility-shims.md) — Implements a collection of global functions and prototype methods that emulate the ECMAScript 5 specification.
- [Language Method Emulations](https://awesome-repositories.com/f/programming-languages-runtimes/language-method-emulations.md) — Injects standard language methods into the global environment to ensure modern code runs on legacy engines. ([source](https://github.com/es-shims/es5-shim#readme))
- [Legacy Runtime Compatibility](https://awesome-repositories.com/f/programming-languages-runtimes/legacy-runtime-compatibility.md) — Adds missing language features to legacy engines so modern JavaScript code can run in older environments. ([source](https://github.com/es-shims/es5-shim/blob/master/bower.json))
- [ECMAScript Behavior Emulators](https://awesome-repositories.com/f/programming-languages-runtimes/python-language-features/language-behavior-emulators/ecmascript-behavior-emulators.md) — Adds missing language features to old engines to ensure consistent behavior across different browser versions. ([source](https://github.com/es-shims/es5-shim/blob/master/package.json))
- [Object Property Accessors](https://awesome-repositories.com/f/programming-languages-runtimes/object-property-accessors.md) — Provides polyfills for object creation and property management in engines lacking native support. ([source](https://github.com/es-shims/es5-shim/blob/master/README.md))

### Software Engineering & Architecture

- [Global](https://awesome-repositories.com/f/software-engineering-architecture/namespace-management/namespace-injections/global.md) — Injects missing standard library functions into the global runtime environment for universal access across the application.
- [Prototype Extensions](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures/prototype-extensions.md) — Extends core JavaScript functionality by adding missing standard methods directly to internal object prototypes.

### Web Development

- [Legacy Browser Support](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-compatibility-utilities/legacy-browser-support.md) — Provides essential language shims to maintain functionality and prevent errors in outdated web browsers.
- [Cross-Browser API Standardizations](https://awesome-repositories.com/f/web-development/cross-browser-api-standardizations.md) — Ensures consistent behavior of global functions and object prototypes across different versions of JavaScript engines.
- [Feature Detection Polyfills](https://awesome-repositories.com/f/web-development/feature-detection-polyfills.md) — Implements runtime utilities that detect existing browser capabilities before applying necessary ES5 polyfills.
- [Core Object Method Polyfills](https://awesome-repositories.com/f/web-development/fetch-api-integrations/fetch-polyfills/core-object-method-polyfills.md) — Provides polyfills for standard methods on global constructors like Object and Array. ([source](https://github.com/es-shims/es5-shim/blob/master/README.md))
- [Legacy Browser Polyfills](https://awesome-repositories.com/f/web-development/legacy-browser-polyfills.md) — Provides technical shims and API functionality to legacy browser environments to prevent runtime crashes.
- [Standards-Compliant Implementations](https://awesome-repositories.com/f/web-development/web-standards/standards-compliant-implementations.md) — Replicates the exact behavior and signatures of official ECMAScript specifications for consistent cross-browser execution.

### Security & Cryptography

- [Runtime Crash Preventions](https://awesome-repositories.com/f/security-cryptography/injection-prevention/reliability-prevention-patterns/logical-error-prevention/runtime-crash-preventions.md) — Provides basic functional stubs for complex methods to prevent runtime errors in extremely old JavaScript engines.
