Skip to content

Some new polyfills #1456

@unhighghlow

Description

@unhighghlow

Unfortunately I'm not an experienced javascript developer, nor can I tell if the code I provided is ES3, so I'm submitting these in the form of an issue instead of a PR. With these (passed through babel with this script) I was able to run a fairly complex web app (the nowebsite example) on IE>=9, Chrome>=10 and Firefox>=4 (see: my tests)

A few notes:

  1. Most of these weren't written by me. I provide a source in that case
  2. There're versions of these polyfills for IE8 (modified by me), but they only barely work on IE8, don't make the app functional (just allow it to render a single page without crashing), and require a nasty patch to core-js (though that is only for the code generated by the bundler, so maybe it's fine)
  3. The most important one of these is requestIdleCallback, which has been requested in Add support for requestIdleCallback #846

Element.classList (caniuse) -- source: Unlicense, ie9+ version, ie8 version, diff

Element.append (caniuse) and Element.prepend (caniuse) -- source: no license, ie9+ version, ie8 version (requires hasproperty.js (own work: BSD0)), diff

Element.remove (caniuse) -- source: MIT, ie9+ version, ie8 version (requires hasproperty.js (own work: BSD0)), diff

Element.replaceWith (caniuse) -- own work: BSD0, ie9+ version, ie8 version (requires hasproperty.js (own work: BSD0)), diff

Element.innerText (caniuse) -- source: no license, ie8+ version

IE9 oninput fix (stackoverflow) -- source: probably MIT, ie9+ version

requestIdleCallback (caniuse) -- source: MIT and Apache-2.0, ie8+ version

Test pages built with these polyfills:

ie8-test.html
ie9-test.html

Hope this helps

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions