User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome Ponyfills

A curated list of awesome ponyfills for writing cross-platform and cross-browser code.

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Nov. 26, 2020, 6:02 a.m.

Thank you Richienb & contributors
View Topic on GitHub:
Richienb/awesome-ponyfills

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Articles

Main

Standard Library

13.82K
972
2d
MIT

Uncategorised

A polyfill for ES6-style Promises

7.07K
596
1y 5m
MIT

Map collection as specified in ECMAScript6

72
11
1y 5m
MIT

WeakMap collection as specified in ECMAScript6

28
6
1y 5m
ISC

Set collection as specified in ECMAScript 6

46
7
1y 5m
MIT

ECMAScript 6 Symbol polyfill

173
26
1y 29d
ISC

Regular expressions with named capture groups and named back-references

9
2
1y 32d
MIT

ECMAScript spec-compliant polyfill/shim for globalThis.

117
7
92d
MIT

Numbers

A JavaScript library for arbitrary-precision decimal and non-decimal arithmetic

4.33K
577
58d
MIT

ES2015 Number.isNaN() ponyfill

24
6
9m
MIT

ES2015 Number.isFinite() ponyfill

16
4
9m
MIT

ES2015 (ES6) Number.isInteger polyfill

12
3
3y 6m
n/a

Strings

Thanks microsoft

13
8
5y 8m
MIT

ES5 spec-compliant shim for String.prototype.trim

13
3
5d
MIT

ES2019 spec-compliant shim for String.prototype.trimLeft.

7
3
4d
MIT

ES2019 spec-compliant shim for String.prototype.trimRight.

8
2
4d
MIT

Spec-compliant polyfill for String.prototype.replaceAll ESnext proposal.

14
0
1y 28d
MIT

Objects

Official ES proposal-compliant polyfill for Object.fromEntries

24
2
8m
MIT

ES2017 spec-compliant shim for Object.entries

52
5
6m
MIT

Object.keys shim

38
15
89d
MIT

ES2017 spec-compliant shim for Object.values

68
5
6m
MIT

ES2015 Object.assign() ponyfill

871
73
5m
MIT

ES6-compliant shim for Object.is - differentiates between -0 and +0, and can compare to NaN.

23
5
57d
MIT

A JSON polyfill. No longer maintained.

1.03K
162
1y 6m
n/a

Arrays

A ponyfill for the ES 2015 Array.from()

17
5
4y 7m
MIT

Array.prototype.every spec-compliant polyfill

6
1
8d
MIT

Simple ES6 Array.prototype.find polyfill for older environments.

37
18
9m
MIT

Array.prototype.some spec-compliant polyfill

2
0
8d
MIT

An ESnext spec-compliant Array.prototype.flatMap shim/polyfill/replacement that works as far down as ES3.

28
3
8d
MIT

[].map(f) for old browsers

11
4
6y 11m
n/a

Array#forEach ponyfill for older browsers

8
0
4y 57d
MIT

Array.prototype.includes spec-compliant polyfill

38
12
3d
MIT

Thanks microsoft

13
8
5y 8m
MIT

Array#isArray for older browsers.

107
34
1y 25d
MIT

Browser Features

Universal WHATWG Fetch API for Node, Browsers and React Native.

998
53
26d
MIT

Cross-platform Blob implementation for Node.js and the Web.

7
1
4m
MIT

Cross-platform FormData support.

1
0
8m
MIT

Polyfill for the AbortController DOM API and abortable fetch (stub that calls catch, doesn't actually abort request).

266
22
4m
MIT

๐Ÿ”Ž Polyfill for the PerformanceObserver API

20
2
71d
n/a

Implements performance.now (based on process.hrtime).

156
24
3y 9m
MIT

Adds console.table method that prints an array of objects as a table in console

124
15
9m
MIT

Node.js implementation of the Web Bluetooth Specification

80
10
80d
MIT

A polyfill for the Resize Observer API

1.35K
91
1y 11m
MIT

Web Cryptography API shim for legacy browsers

109
32
66d
MIT

Client-side support for CSS custom properties (aka "CSS variables") in legacy and modern browsers

1K
50
4m
MIT

requestAnimationFrame polyfill library

685
54
1y 9m
MIT

XMLHttpRequest emulator for node.js

88
33
1y 6m
MIT

Node.js Features

Node's event emitter for all engines.

956
144
112d
MIT

Tiny library (<200B gzip) for deferring something by a "tick"

212
15
2y 7m
MIT

A ponyfill for Buffer.from

16
4
7m
MIT

Gracefully terminate a script in Node.js or browsers.

1
0
10m
MIT

Environment agnostic nextTick polyfill

65
6
6m
ISC