ECMAScript Shims
Organization@es-shims
A community host for shims and polyfills that are compliant to EcmaScript specs.
54
Published Tools
7,343
Total Stars
20,203,742
Weekly Downloads
172
GitHub Followers
166
Public Repos
Published Tools
54 Skillsacross 1 categoryes5-shim
ljharb
ECMAScript 5 compatibility shims for legacy JavaScript engines
disposablestack
ljharb
An ESnext spec-compliant `DisposableStack`, `AsyncDisposableStack`, `Symbol.dispose`, and `Symbol.asyncDispose` shim/polyfill/replacement that works as far down as ES3.
...morestring.prototype.replaceall
ljharb
Spec-compliant polyfill for String.prototype.replaceAll ESnext proposal
array.prototype.at
ljharb
An ES-spec-compliant (proposed) Array.prototype.at shim/polyfill/replacement that works as far down as ES3
es-iterator-helpers
ljharb
An ESnext spec-compliant iterator helpers shim/polyfill/replacement that works as far down as ES3.
string.prototype.matchall
ljharb
Spec-compliant polyfill for String.prototype.matchAll
object.hasown
ljharb
ES spec-compliant shim for Object.hasOwn
es-aggregate-error
ljharb
ES Proposal spec-compliant shim for AggregateError
array.prototype.tosorted
ljharb
An ESnext spec-compliant `Array.prototype.toSorted` shim/polyfill/replacement that works as far down as ES3.
reflect.ownkeys
ljharb
ES2015 spec-compliant shim for Reflect.ownKeys
array.prototype.filter
ljharb
An ES5 spec-compliant `Array.prototype.filter` shim/polyfill/replacement that works as far down as ES3.
array.prototype.findlast
ljharb
An ESnext spec-compliant `Array.prototype.findLast` shim/polyfill/replacement that works as far down as ES3.
array.prototype.map
ljharb
An ES5 spec-compliant `Array.prototype.map` shim/polyfill/replacement that works as far down as ES3.
array.prototype.reduce
ljharb
An ES5 spec-compliant `Array.prototype.reduce` shim/polyfill/replacement that works as far down as ES3.
object.groupby
ljharb
An ESnext spec-compliant `Object.groupBy` shim/polyfill/replacement that works as far down as ES3.
well-known-symbols
ljharb
An ESnext spec-compliant shim/polyfill/replacement for all Well-Known Symbols that works in any environment with Symbols.
...morearray.prototype.findlastindex
ljharb
An ESnext spec-compliant `Array.prototype.findLastIndex` shim/polyfill/replacement that works as far down as ES3.
object.getprototypeof
ljharb
An ES5 mostly-spec-compliant `Object.getPrototypeOf` sham/polyfill/replacement that works in as many engines as possible
reflect.getprototypeof
ljharb
An ES2015 mostly-spec-compliant `Reflect.getPrototypeOf` sham/polyfill/replacement that works in as many engines as possible
...moresuppressed-error
ljharb
ES Proposal spec-compliant shim for SuppressedError
typedarray.prototype.slice
ljharb
ES spec-compliant shim for TypedArray.prototype.slice
array.prototype.foreach
ljharb
An ES spec-compliant `Array.prototype.forEach` shim/polyfill/replacement that works as far down as ES3.
es-set-tostringtag
ljharb
A helper to optimistically set Symbol.toStringTag, when possible.
math-intrinsics
ljharb
ES Math-related intrinsics and helpers, robustly cached.
dunder-proto
ljharb
If available, the `Object.prototype.__proto__` accessor and mutator, call-bound
array.prototype.toreversed
ljharb
An ESnext spec-compliant `Array.prototype.toReversed` shim/polyfill/replacement that works as far down as ES3.
arraybuffer.prototype.slice
ljharb
ES spec-compliant shim for ArrayBuffer.prototype.slice
symbol.prototype.description
ljharb
Spec-compliant shim for Symbol.prototype.description proposal.
es7-shim
ljharb
ECMAScript 7 compatibility shims for legacy JavaScript engines
array.prototype.every
ljharb
An ES5 spec-compliant `Array.prototype.every` shim/polyfill/replacement that works as far down as ES3.
array.prototype.flat
ljharb
An ES2019 spec-compliant `Array.prototype.flat` shim/polyfill/replacement that works as far down as ES3.
array.prototype.flatmap
ljharb
An ES2019 spec-compliant `Array.prototype.flatMap` shim/polyfill/replacement that works as far down as ES3.
array.prototype.some
ljharb
An ES5 spec-compliant `Array.prototype.some` shim/polyfill/replacement that works as far down as ES3.
function.prototype.name
ljharb
An ES2015 spec-compliant `Function.prototype.name` shim
object.entries
ljharb
ES2017 spec-compliant Object.entries shim.
object.fromentries
ljharb
ES proposal-spec-compliant Object.fromEntries shim.
object.values
ljharb
ES2017 spec-compliant Object.values shim.
promise.allsettled
ljharb
ES Proposal spec-compliant shim for Promise.allSettled
promise.any
ljharb
ES 2021 spec-compliant shim for Promise.any
promise.prototype.finally
ljharb
ES Proposal spec-compliant shim for Promise.prototype.finally
regexp.prototype.flags
ljharb
ES6 spec-compliant RegExp.prototype.flags shim.
string.prototype.padend
ljharb
ES2017 spec-compliant String.prototype.padEnd shim.
string.prototype.padstart
ljharb
ES2017 spec-compliant String.prototype.padStart shim.
string.prototype.trim
ljharb
ES5 spec-compliant shim for String.prototype.trim
string.prototype.trimend
ljharb
ES2019 spec-compliant String.prototype.trimEnd shim.
string.prototype.trimleft
ljharb
ES2019 spec-compliant String.prototype.trimLeft shim.
string.prototype.trimright
ljharb
ES2019 spec-compliant String.prototype.trimLeft shim.
string.prototype.trimstart
ljharb
ES2019 spec-compliant String.prototype.trimStart shim.
@es-shims/api
ljharb
Loosely test a package's compliance with the es-shim API
array-includes
ljharb
An ES7/ES2016 spec-compliant `Array.prototype.includes` shim/polyfill/replacement that works as far down as ES3.
is-nan
ljharb
ES2015-compliant shim for Number.isNaN - the global isNaN returns false positives.
object-is
ljharb
ES2015-compliant shim for Object.is - differentiates between -0 and +0
object.getownpropertydescriptors
ljharb
ES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5.
typedarray
ljharb
TypedArray polyfill for old browsers