Please note that some of these tests represent existence, not functionality or full conformance.

V8 SpiderMonkey JavaScriptCore Chakra Carakan KJS Other
Feature name Current browser es5-shim IE 7 IE 8 IE 9 IE 10+ FF 3 FF 3.5, 3.6 FF 4-20 FF 21+ SF 3.2 SF 4 SF 5 SF 5.1.4 SF 6+ WebKit CH 5 CH 6 CH 7-12 CH 13-16 CH 19-22 CH 23+,
OP 15+
OP 10.1 OP 10.50-11.50 OP 12 OP 12.10 Konq 4.3 Konq 4.9 Konq 4.13 BESEN Rhino 1.7 PhantomJS 2.0 EJS iOS7/8
§Object.create No No No Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.defineProperty No No Yes[1] Yes Yes No No Yes Yes No No Yes[2] Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.defineProperties No No No Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.getPrototypeOf No No No Yes Yes No Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No Yes Yes Yes Yes Yes Yes Yes
§Object.keys Yes No No Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No Yes Yes Yes Yes Yes Yes Yes
§Object.seal No No No Yes Yes No No Yes Yes No No No Yes Yes Yes No Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.freeze No No No Yes Yes No No Yes Yes No No No Yes Yes Yes No Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.preventExtensions No No No Yes Yes No No Yes Yes No No No Yes Yes Yes No Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.isSealed No No No Yes Yes No No Yes Yes No No No Yes Yes Yes No Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.isFrozen No No No Yes Yes No No Yes Yes No No No Yes Yes Yes No Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.isExtensible No No No Yes Yes No No Yes Yes No No No Yes Yes Yes No Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.getOwnPropertyDescriptor No No Yes[3] Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§Object.getOwnPropertyNames No No No Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No Yes Yes Yes Yes Yes Yes Yes
§Date.prototype.toISOString Yes No No Yes Yes No Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes No No Yes Yes Yes Yes No Yes
§Date.now Yes No No Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.isArray Yes No No Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes
§JSON No No Yes Yes Yes No Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes
§Function.prototype.bind Yes No No Yes Yes No No Yes Yes No No No Yes Yes Yes No No Yes Yes Yes Yes No No Yes Yes No No Yes Yes Yes Yes Yes Yes
§String.prototype.trim Yes No No Yes Yes No Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.indexOf Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.lastIndexOf Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.every Yes[4] No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.some Yes[4] No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.forEach Yes[4] No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.map Yes[4] No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.filter Yes[4] No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.reduce Yes[4] No No Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Array.prototype.reduceRight Yes[4] No No Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Getter in property initializer No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Setter in property initializer No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Property access on strings No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
§Reserved words as property names No No No Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes No No Yes Yes Yes Yes No No Yes Yes No No Yes Yes No Yes Yes Yes
§Zero-width chars in identifiers No No No Yes Yes No No Yes[5] Yes No No No No Yes Yes No No No No Yes Yes No No No Yes No No No Yes Yes Yes Yes Yes
§parseInt() ignores leading zeros Yes No No Yes Yes No No No Yes No No No No Yes Yes No No No No No Yes No No No No No No No Yes No Yes Yes Yes
§Immutable undefined No No No Yes Yes No No Yes Yes No No Yes Yes Yes Yes No No No No Yes Yes No No Yes Yes No Yes Yes Yes Yes Yes No Yes
§Strict mode No No No No Yes[6] No No Yes Yes[7] No No No Yes Yes Yes No No No Yes Yes Yes No No Yes Yes No No No Yes No Yes Yes Yes

[1] In Internet Explorer 8 Object.defineProperty only accepts DOM objects (MSDN reference).

[2] In some versions of Safari 5, Object.defineProperty does not work with DOM objects.

[3] In Internet Explorer 8 Object.getOwnPropertyDescriptor only accepts DOM objects (MSDN reference).

[4] Internet Explorer 6 - 8 do not differentiate between a dense array with undefined values, and a sparse array. Specifically, `0 in [,]` and `0 in [undefined]` both yield false - whereas in a compliant browser, the former would give `false`, the latter `true`. As such, ES5 array iteration methods can only be shimmed reliably when dealing with dense arrays.

[5] Firefox 4 & 5 fail this test

[6] IE10 PP2 has a bug with strict mode which makes the following expression "fail", even though strict mode is more or less supported: (function(){ "use strict"; return !this })()

[7] In Firefox, strict getters on String, Boolean and Number prototypes receive wrapped this values (Bugzilla reference).