Skip to content
JS
Package category

Polyfills and shims

Backfill missing language and platform features.

622 packages2 comparisons

Packages compared

622 packages
PackageWeekly downloads12-month change52 weeksGzipLast releaseModuleTypesCategories
has-symbols
Determine if the JS environment has Symbol support. Supports spec, or shams.
143.2m+85%-1 year ago
1.1.0
CommonJSBundledPolyfills and shims
object-assign
ES2015 `Object.assign()` ponyfill
131.9m+136%-9 years ago
4.1.1
-NonePolyfills and shims
path-parse
Node.js path.parse() ponyfill
104.5m+75%-5 years ago
1.0.7
CommonJSNonePolyfills and shims
setprototypeof
A small polyfill for Object.setprototypeof
102.1m+74%-7 years ago
1.2.0
CommonJSBundledPolyfills and shims
queue-microtask
fast, tiny `queueMicrotask` shim for modern engines
92.3m+96%-5 years ago
1.2.3
CommonJSNonePolyfills and shims, DOM and browser utilities
p-try
`Start a promise chain
82.2m+51%-4 years ago
3.0.0
ESM onlyNonePolyfills and shims, Promises and async control flow
core-util-is
The `util.is*` functions introduced in Node v0.12.
80.1m+53%-5 years ago
1.0.3
CommonJSNonePolyfills and shims
object-keys
An Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim
79.8m+79%-7 years ago
1.1.1
CommonJSNonePolyfills and shims
object.assign
ES6 spec-compliant Object.assign shim. From https://github.com/es-shims/es6-shim
74.2m+65%-1 year ago
4.1.7
CommonJSNonePolyfills and shims
path-is-absolute
Node.js 0.12 path.isAbsolute() ponyfill
74.2m+45%-7 years ago
2.0.0
-NonePolyfills and shims
fs.realpath
Use node's fs.realpath, but fall back to the JS implementation if the native one fails
73.1m+30%-10 years ago
1.0.0
CommonJSNoneFiles and file systems, Polyfills and shims
regexp.prototype.flags
ES6 spec-compliant RegExp.prototype.flags shim.
69.5m+72%-1 year ago
1.5.4
CommonJSNonePolyfills and shims
es-to-primitive
ECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions.
68.5m+75%-2 months ago
1.3.4
CommonJSBundledPolyfills and shims
string.prototype.trimend
ES2019 spec-compliant String.prototype.trimEnd shim.
67.8m+65%-3 months ago
1.0.10
CommonJSNonePolyfills and shims
globalthis
ECMAScript spec-compliant polyfill/shim for `globalThis`
65.8m+94%-2 years ago
1.0.4
CommonJSNonePolyfills and shims
string.prototype.trimstart
ES2019 spec-compliant String.prototype.trimStart shim.
65.7m+72%-2 years ago
1.0.8
CommonJSNonePolyfills and shims
function.prototype.name
An ES2015 spec-compliant `Function.prototype.name` shim
64.8m+79%-3 months ago
1.2.0
CommonJSBundledPolyfills and shims
array-buffer-byte-length
Get the byte length of an ArrayBuffer, even in engines without a `.byteLength` method.
63.3m+85%-1 year ago
1.0.2
CommonJSBundledPolyfills and shims
string.prototype.trim
ES5 spec-compliant shim for String.prototype.trim
63.1m+88%-3 months ago
1.2.11
CommonJSNonePolyfills and shims, Strings and text
arraybuffer.prototype.slice
ES spec-compliant shim for ArrayBuffer.prototype.slice
60.3m+96%-1 year ago
1.0.4
CommonJSNonePolyfills and shims
reflect.getprototypeof
An ES2015 mostly-spec-compliant `Reflect.getPrototypeOf` sham/polyfill/replacement that works in as many engines as possible
57.5m+102%-1 year ago
1.0.10
CommonJSNonePolyfills and shims
array-includes
An ES7/ES2016 spec-compliant `Array.prototype.includes` shim/polyfill/replacement that works as far down as ES3.
57.1m+64%-15 days ago
3.2.0
CommonJSBundledPolyfills and shims
object.values
ES2017 spec-compliant Object.values shim.
56m+70%-1 year ago
1.2.1
CommonJSNonePolyfills and shims
regenerator-runtime
Runtime for Regenerator-compiled generator and async functions.
55.9m+13%-2 years ago
0.14.1
CommonJSNonePromises and async control flow, Polyfills and shims
web-streams-polyfill
Web Streams, based on the WHATWG spec reference implementation
55.7m+187%-4 months ago
4.3.0
ESM + CommonJSBundledPolyfills and shims
array.prototype.flat
An ES2019 spec-compliant `Array.prototype.flat` shim/polyfill/replacement that works as far down as ES3.
54.4m+67%-1 year ago
1.3.3
CommonJSNonePolyfills and shims
array.prototype.flatmap
An ES2019 spec-compliant `Array.prototype.flatMap` shim/polyfill/replacement that works as far down as ES3.
53.8m+82%-1 year ago
1.3.3
CommonJSNonePolyfills and shims
object.fromentries
ES proposal-spec-compliant Object.fromEntries shim.
53m+72%-2 years ago
2.0.8
CommonJSNonePolyfills and shims
object.entries
ES2017 spec-compliant Object.entries shim.
51.3m+97%-1 year ago
1.1.9
CommonJSNonePolyfills and shims
string.prototype.matchall
Spec-compliant polyfill for String.prototype.matchAll
48.9m+106%-27 days ago
4.1.0
CommonJSNonePolyfills and shims
event-target-shim
An implementation of WHATWG EventTarget interface.
48.1m+118%-5 years ago
6.0.2
ESM + CommonJSNonePolyfills and shims
@tybys/wasm-util
WASI polyfill for browser and some wasm util
47.4m+169%-12 days ago
0.10.4
ESM + CommonJSBundledPolyfills and shims
es-iterator-helpers
An ESnext spec-compliant iterator helpers shim/polyfill/replacement that works as far down as ES3.
42.5m+129%-2 months ago
1.4.0
CommonJSNonePolyfills and shims
array.prototype.tosorted
An ESnext spec-compliant `Array.prototype.toSorted` shim/polyfill/replacement that works as far down as ES3.
42m+117%-2 years ago
1.1.4
CommonJSNonePolyfills and shims
formdata-polyfill
HTML5 `FormData` for Browsers and Node.
41.9m+249%-4 years ago
4.0.10
ESM onlyNonePolyfills and shims, HTTP clients
css.escape
A robust polyfill for the `CSS.escape` utility method as defined in CSSOM.
40.5m+168%-10 years ago
1.5.1
CommonJSNonePolyfills and shims
array.prototype.findlast
An ESnext spec-compliant `Array.prototype.findLast` shim/polyfill/replacement that works as far down as ES3.
39.9m+121%-2 years ago
1.2.5
CommonJSNonePolyfills and shims
array.prototype.findlastindex
An ESnext spec-compliant `Array.prototype.findLastIndex` shim/polyfill/replacement that works as far down as ES3.
39.8m+77%-1 year ago
1.2.6
CommonJSNonePolyfills and shims
string.prototype.repeat
A robust & optimized `String.prototype.repeat` polyfill, based on the ECMAScript 6 specification.
39.5m+141%-6 years ago
1.0.0
CommonJSNonePolyfills and shims
object.groupby
An ESnext spec-compliant `Object.groupBy` shim/polyfill/replacement that works as far down as ES3.
39.3m+90%-2 years ago
1.0.3
CommonJSNonePolyfills and shims
require-main-filename
shim for require.main.filename() that works in as many environments as possible
38.3m+63%-7 years ago
2.0.0
CommonJSNonePolyfills and shims
util
Node.js's util module for all engines
34.7m+12%-3 years ago
0.12.5
CommonJSNonePolyfills and shims, Node.js utilities
string.prototype.includes
A robust & optimized `String.prototype.includes` polyfill, based on the ECMAScript 6 specification.
31m+143%-1 year ago
2.0.1
CommonJSNonePolyfills and shims
create-require
Polyfill for Node.js module.createRequire (<= v12.2.0)
30.9m+29%-5 years ago
1.1.1
CommonJSBundledPolyfills and shims
p-finally
`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome
29.8m+52%-5 years ago
3.0.0
ESM onlyNonePolyfills and shims, Promises and async control flow
typedarray
TypedArray polyfill for old browsers
28.7m+48%-3 years ago
0.0.7
CommonJSNonePolyfills and shims
object-is
ES2015-compliant shim for Object.is - differentiates between -0 and +0
24.2m+37%-2 years ago
1.1.6
CommonJSNonePolyfills and shims
@sec-ant/readable-stream
A tiny, zero-dependency yet spec-compliant asynchronous iterator polyfill/ponyfill for ReadableStreams.
21.2m+339%-4 months ago
0.7.0
ESM onlyBundledPolyfills and shims, Promises and async control flow
os-tmpdir
Node.js os.tmpdir() ponyfill
19.8m-22%-7 years ago
2.0.0
-NonePolyfills and shims
raf
requestAnimationFrame polyfill for node and the browser
16.7m+81%-7 years ago
3.4.1
CommonJSNonePolyfills and shims

12-month change compares the average of the last 4 weeks of downloads with the first 4 weeks of the 52-week series. Gzip size is for the whole package, as measured by Bundlephobia. "-" means the value has not been fetched.

  • has-symbolsDetermine if the JS environment has Symbol support. Supports spec, or shams.
  • object-assignES2015 `Object.assign()` ponyfill
  • path-parseNode.js path.parse() ponyfill
  • setprototypeofA small polyfill for Object.setprototypeof
  • queue-microtaskfast, tiny `queueMicrotask` shim for modern engines
  • p-try`Start a promise chain
  • core-util-isThe `util.is*` functions introduced in Node v0.12.
  • object-keysAn Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim
  • object.assignES6 spec-compliant Object.assign shim. From https://github.com/es-shims/es6-shim
  • path-is-absoluteNode.js 0.12 path.isAbsolute() ponyfill
  • fs.realpathUse node's fs.realpath, but fall back to the JS implementation if the native one fails
  • regexp.prototype.flagsES6 spec-compliant RegExp.prototype.flags shim.
  • es-to-primitiveECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions.
  • string.prototype.trimendES2019 spec-compliant String.prototype.trimEnd shim.
  • globalthisECMAScript spec-compliant polyfill/shim for `globalThis`
  • string.prototype.trimstartES2019 spec-compliant String.prototype.trimStart shim.
  • function.prototype.nameAn ES2015 spec-compliant `Function.prototype.name` shim
  • array-buffer-byte-lengthGet the byte length of an ArrayBuffer, even in engines without a `.byteLength` method.
  • string.prototype.trimES5 spec-compliant shim for String.prototype.trim
  • arraybuffer.prototype.sliceES spec-compliant shim for ArrayBuffer.prototype.slice
  • reflect.getprototypeofAn ES2015 mostly-spec-compliant `Reflect.getPrototypeOf` sham/polyfill/replacement that works in as many engines as possible
  • array-includesAn ES7/ES2016 spec-compliant `Array.prototype.includes` shim/polyfill/replacement that works as far down as ES3.
  • object.valuesES2017 spec-compliant Object.values shim.
  • regenerator-runtimeRuntime for Regenerator-compiled generator and async functions.
  • web-streams-polyfillWeb Streams, based on the WHATWG spec reference implementation
  • array.prototype.flatAn ES2019 spec-compliant `Array.prototype.flat` shim/polyfill/replacement that works as far down as ES3.
  • array.prototype.flatmapAn ES2019 spec-compliant `Array.prototype.flatMap` shim/polyfill/replacement that works as far down as ES3.
  • object.fromentriesES proposal-spec-compliant Object.fromEntries shim.
  • object.entriesES2017 spec-compliant Object.entries shim.
  • string.prototype.matchallSpec-compliant polyfill for String.prototype.matchAll
  • event-target-shimAn implementation of WHATWG EventTarget interface.
  • @tybys/wasm-utilWASI polyfill for browser and some wasm util
  • es-iterator-helpersAn ESnext spec-compliant iterator helpers shim/polyfill/replacement that works as far down as ES3.
  • array.prototype.tosortedAn ESnext spec-compliant `Array.prototype.toSorted` shim/polyfill/replacement that works as far down as ES3.
  • formdata-polyfillHTML5 `FormData` for Browsers and Node.
  • css.escapeA robust polyfill for the `CSS.escape` utility method as defined in CSSOM.
  • array.prototype.findlastAn ESnext spec-compliant `Array.prototype.findLast` shim/polyfill/replacement that works as far down as ES3.
  • array.prototype.findlastindexAn ESnext spec-compliant `Array.prototype.findLastIndex` shim/polyfill/replacement that works as far down as ES3.
  • string.prototype.repeatA robust & optimized `String.prototype.repeat` polyfill, based on the ECMAScript 6 specification.
  • object.groupbyAn ESnext spec-compliant `Object.groupBy` shim/polyfill/replacement that works as far down as ES3.
  • require-main-filenameshim for require.main.filename() that works in as many environments as possible
  • utilNode.js's util module for all engines
  • string.prototype.includesA robust & optimized `String.prototype.includes` polyfill, based on the ECMAScript 6 specification.
  • create-requirePolyfill for Node.js module.createRequire (<= v12.2.0)
  • p-finally`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome
  • typedarrayTypedArray polyfill for old browsers
  • object-isES2015-compliant shim for Object.is - differentiates between -0 and +0
  • @sec-ant/readable-streamA tiny, zero-dependency yet spec-compliant asynchronous iterator polyfill/ponyfill for ReadableStreams.
  • os-tmpdirNode.js os.tmpdir() ponyfill
  • rafrequestAnimationFrame polyfill for node and the browser