This is a collection of polyfills covering web platform features, from those defined as part of the ECMAScript standard to new web browser functionality. Most are for features shipping in major browsers. A few are experimental and called out as such, subject to change at any time.
My philosophy is that it's better to write future-looking code that takes advantage of new Web platform APIs where possible, and fill in the gaps with polyfills. There is no effort to produce 100% compliant behavior, or to completely hide differences in browser behavior.
(look at Releases for the tag name, e.g. "v1.2.3")
Files
The polyfills are roughly split up into files matching 1:1 with Web standards (specifications, living standards documents, etc). So there is html.js for HTML, dom.js for DOM, etc.
Since I generally use several in my hobby projects, bundled/minified versions are available:
web.js (minified: web.min.js) includes the most common Web polyfills - it assumes ES2015 support
Some of the files use console.assert() calls to catch bugs during development. These are
automatically removed from the included minified versions. If you use your own minifying
processor it may cause to assertions to appear when unnecessary function names are stripped.
You can safely remove these lines as part of a build step (e.g. using grep -V), or use a
minifier that does this automatically. For UglifyJS2
the option is: drop_console
ECMAScript / JavaScript Polyfills
ECMAScript 5 - Previous standard, supported by browsers circa 2012..
ECMAScript 2015 - Previous standard, supported by browsers circa 2016.
ECMAScript 2016 - Previous standard, supported by browsers circa 2017.
ECMAScript 2017 - Most recent standard. Implementation in progress or complete in latest browsers.
ECMAScript proposed - Proposals for future editions of the standard. Here there be dragons.
请发表评论