Implement standard features for old browsers
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
tests
.gitignore
README.md
base64.js
domparser.js
index.js
package.json
promise.js

README.md

@version    1.3.0
@date       2016-07-08
@stability  3 - Stable

Browser upgrade

Implement EcmaScript 5 methods for older browsers.

Contains

  • Function.prototype.bind
  • Object.keys
  • Object.create
  • Array.isArray
  • Array.prototype.indexOf
  • Array.prototype.lastIndexOf
  • Array.prototype.reduce
  • Array.prototype.reduceRight
  • Array.prototype.forEach
  • Array.prototype.every
  • Array.prototype.map
  • Array.prototype.filter
  • Array.prototype.some
  • Date.prototype.toJSON
  • Date.now
  • String.prototype.trim
  • JSON
  • performance.now
  • Object.assign (Use this for optional load)
  • fixes FF3 escape second non-standard argument (bug)
  • removes background image flickers on hover in IE6
  • atob/btoa (base64) // In separate file
  • Promise // In separate file

Notes

  • If no !DOCTYPE is specified, IE6-9 renders the page in IE5 mode!
  • document.createDocumentFragment is unsupported in IE5.5
  • IE 5.5 doesn't support the * collection (all elements) in document.getElementByTagName — it returns a collection with zero members
  • instanceof is not implemented in IE5 MAC
  • Safari 2.0.2: 416 hasOwnProperty introduced October 31, 2005 (Mac OS X v10.4)
// hasOwnProperty polyfill
Object.prototype.hasOwnProperty = function(name, obj) {
    try {
        obj = this.constructor
        while (obj=obj.prototype) if (obj[name]===this[name]) return false
    } catch(e) {}
    return true
}

External links

Licence

Copyright (c) 2012-2016 Lauri Rooden <lauri@rooden.ee>
The MIT License