14

Is there an equivalent to caniuse.com for HTML5 APIs / ECMAScript5 / ECMAScript6 in the various browsers?

caniuse.com does have some javascript coverage, but pages like http://caniuse.com/#feat=filesystem don't really tell you anything other than yes/no/partially. Realistically, I'm looking for something like quirksmode crossed with caniuse, where I could look in detail at any API or method and see where it is currently implemented (and bug free). A site where, for example, I could look and see which versions of which browsers will currently work with this:

Object.keys(CONSTANTS.TEXT).forEach(function(key) {
    languages.push([key, CONSTANTS.TEXT[key].languageName]);
});
BrianFreud
  • 7,094
  • 6
  • 33
  • 50

1 Answers1

10

Just found something like this in the references to a different question. ES5: http://kangax.github.com/es5-compat-table/ ES6: http://kangax.github.com/es5-compat-table/es6/ nonstandardized: http://kangax.github.com/es5-compat-table/non-standard/

BrianFreud
  • 7,094
  • 6
  • 33
  • 50
  • Hm, the "proxies" line in the ES6 table is weird. Both FF and Chrome have supported them for a while, and the used test should succeed. – Andreas Rossberg May 30 '12 at 16:43
  • The test they show as using for that one is test((function () { return typeof Proxy !== 'undefined' && typeof Proxy.create == 'function' && typeof Proxy.createFunction == 'function'; })()) at least in Chrome 19.0.1084.30 beta on Linux, running that test in the console while on that page, I get is "No". Is there some different test you're using? – BrianFreud May 31 '12 at 01:26
  • For me, the argument expression returns `true` in both FF 12 and Chrome 19 with Experimental JavaScript turned on (as mentioned on the page). – Andreas Rossberg May 31 '12 at 10:07
  • Ah, I didn't notice the asterisk. However, it doesn't seem to be universally required; in Chrome 19 with experimental JS turned off, I still see 4 tests pass: const, Object.is, Number.isFinite, and Number.isNaN – BrianFreud Jun 01 '12 at 05:14
  • Indeed, but you get a different const when you don't activate the flag (the old, broken, never standardized version implemented by some browsers and not allowed in strict mode). The three predicates are available by default because there is no easy way to control feature activation on the granularity of individual object properties. – Andreas Rossberg Jun 01 '12 at 12:02