Please note that these tests represent existence, not functionality or full conformance. I hope to test conformance sometime in the future.
| IE 7 | IE 8 | IE 9 | IE 10 | FF 3 | FF 3.5, 3.6 | FF 4-8 | SF 3.2 | SF 4 | SF 5 | SF 5.1 | WebKit | CH 5 | CH 6 | CH 7-12 | CH 13-16 | OP 10.1 | OP 10.50-11.50 | OP 12 | Konq 4.3 | BESEN | Rhino 1.7 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Object.create | No | No | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.defineProperty | No | Yes [1] | Yes | Yes | No | No | Yes | No | No | Yes [5] | Yes | Yes [5] | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.defineProperties | No | No | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.getPrototypeOf | No | No | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.keys | No | No | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.seal | No | No | Yes | Yes | No | No | Yes | No | No | No | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.freeze | No | No | Yes | Yes | No | No | Yes | No | No | No | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.preventExtensions | No | No | Yes | Yes | No | No | Yes | No | No | No | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.isSealed | No | No | Yes | Yes | No | No | Yes | No | No | No | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.isFrozen | No | No | Yes | Yes | No | No | Yes | No | No | No | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.isExtensible | No | No | Yes | Yes | No | No | Yes | No | No | No | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.getOwnPropertyDescriptor | No | Yes | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Object.getOwnPropertyNames | No | No | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| Date.prototype.toISOString | No | No | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
| Date.now | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
| Array.isArray | No | No | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
| JSON | No | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
| Function.prototype.bind | No | No | Yes | Yes | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes | No | No | Yes | No | Yes | Yes |
| String.prototype.trim | No | No | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
| Array.prototype.indexOf | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Array.prototype.lastIndexOf | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Array.prototype.every | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Array.prototype.some | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Array.prototype.forEach | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Array.prototype.map | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Array.prototype.filter | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Array.prototype.reduce | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
| Array.prototype.reduceRight | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
| Getter in property initializer | No | No | 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Property access on strings [2] | No | 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 [3] | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | No | No | Yes | Yes | No | No | Yes | No | Yes | No |
| Strict mode [4] | No | No | No | No[6] | No | No | Yes | No | No | No | Yes | Yes | No | No | No | Yes | No | No | Yes | No | Yes | No |
[1] In Internet Explorer 8 Object.defineProperty only accepts DOM objects
(MSDN reference).
[2] For example: "foobar"[3] === "b"
[3] For example: ({ if: 1 })
[4] Strict mode is assumed to be supported when the following expression evaluates to true —
(function(){ "use strict"; return !this; })();
[5] In some versions of WebKit Object.defineProperty does not work with DOM objects.
[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 })()