Package category
Polyfills and shims
Backfill missing language and platform features.
622 packages2 comparisons
Packages compared
622 packages
| Package | Weekly downloads | 12-month change | 52 weeks | Gzip | Last release | Module | Types | Categories |
|---|---|---|---|---|---|---|---|---|
| has-symbols Determine if the JS environment has Symbol support. Supports spec, or shams. | 143.2m | +85% | - | 1 year ago 1.1.0 | CommonJS | Bundled | Polyfills and shims | |
| object-assign ES2015 `Object.assign()` ponyfill | 131.9m | +136% | - | 9 years ago 4.1.1 | - | None | Polyfills and shims | |
| path-parse Node.js path.parse() ponyfill | 104.5m | +75% | - | 5 years ago 1.0.7 | CommonJS | None | Polyfills and shims | |
| setprototypeof A small polyfill for Object.setprototypeof | 102.1m | +74% | - | 7 years ago 1.2.0 | CommonJS | Bundled | Polyfills and shims | |
| queue-microtask fast, tiny `queueMicrotask` shim for modern engines | 92.3m | +96% | - | 5 years ago 1.2.3 | CommonJS | None | Polyfills and shims, DOM and browser utilities | |
| p-try `Start a promise chain | 82.2m | +51% | - | 4 years ago 3.0.0 | ESM only | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills and shims | |
| path-is-absolute Node.js 0.12 path.isAbsolute() ponyfill | 74.2m | +45% | - | 7 years ago 2.0.0 | - | None | Polyfills 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 | CommonJS | None | Files 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 | CommonJS | None | Polyfills and shims | |
| es-to-primitive ECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions. | 68.5m | +75% | - | 2 months ago 1.3.4 | CommonJS | Bundled | Polyfills and shims | |
| string.prototype.trimend ES2019 spec-compliant String.prototype.trimEnd shim. | 67.8m | +65% | - | 3 months ago 1.0.10 | CommonJS | None | Polyfills and shims | |
| globalthis ECMAScript spec-compliant polyfill/shim for `globalThis` | 65.8m | +94% | - | 2 years ago 1.0.4 | CommonJS | None | Polyfills and shims | |
| string.prototype.trimstart ES2019 spec-compliant String.prototype.trimStart shim. | 65.7m | +72% | - | 2 years ago 1.0.8 | CommonJS | None | Polyfills and shims | |
| function.prototype.name An ES2015 spec-compliant `Function.prototype.name` shim | 64.8m | +79% | - | 3 months ago 1.2.0 | CommonJS | Bundled | Polyfills 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 | CommonJS | Bundled | Polyfills and shims | |
| string.prototype.trim ES5 spec-compliant shim for String.prototype.trim | 63.1m | +88% | - | 3 months ago 1.2.11 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | Bundled | Polyfills and shims | |
| object.values ES2017 spec-compliant Object.values shim. | 56m | +70% | - | 1 year ago 1.2.1 | CommonJS | None | Polyfills and shims | |
| regenerator-runtime Runtime for Regenerator-compiled generator and async functions. | 55.9m | +13% | - | 2 years ago 0.14.1 | CommonJS | None | Promises 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 + CommonJS | Bundled | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills and shims | |
| object.fromentries ES proposal-spec-compliant Object.fromEntries shim. | 53m | +72% | - | 2 years ago 2.0.8 | CommonJS | None | Polyfills and shims | |
| object.entries ES2017 spec-compliant Object.entries shim. | 51.3m | +97% | - | 1 year ago 1.1.9 | CommonJS | None | Polyfills and shims | |
| string.prototype.matchall Spec-compliant polyfill for String.prototype.matchAll | 48.9m | +106% | - | 27 days ago 4.1.0 | CommonJS | None | Polyfills and shims | |
| event-target-shim An implementation of WHATWG EventTarget interface. | 48.1m | +118% | - | 5 years ago 6.0.2 | ESM + CommonJS | None | Polyfills and shims | |
| @tybys/wasm-util WASI polyfill for browser and some wasm util | 47.4m | +169% | - | 12 days ago 0.10.4 | ESM + CommonJS | Bundled | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills and shims | |
| formdata-polyfill HTML5 `FormData` for Browsers and Node. | 41.9m | +249% | - | 4 years ago 4.0.10 | ESM only | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills and shims | |
| util Node.js's util module for all engines | 34.7m | +12% | - | 3 years ago 0.12.5 | CommonJS | None | Polyfills 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 | CommonJS | None | Polyfills and shims | |
| create-require Polyfill for Node.js module.createRequire (<= v12.2.0) | 30.9m | +29% | - | 5 years ago 1.1.1 | CommonJS | Bundled | Polyfills 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 only | None | Polyfills and shims, Promises and async control flow | |
| typedarray TypedArray polyfill for old browsers | 28.7m | +48% | - | 3 years ago 0.0.7 | CommonJS | None | Polyfills and shims | |
| object-is ES2015-compliant shim for Object.is - differentiates between -0 and +0 | 24.2m | +37% | - | 2 years ago 1.1.6 | CommonJS | None | Polyfills 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 only | Bundled | Polyfills and shims, Promises and async control flow | |
| os-tmpdir Node.js os.tmpdir() ponyfill | 19.8m | -22% | - | 7 years ago 2.0.0 | - | None | Polyfills and shims | |
| raf requestAnimationFrame polyfill for node and the browser | 16.7m | +81% | - | 7 years ago 3.4.1 | CommonJS | None | Polyfills 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