{ "specification": [ { "name": "ES6", "url": "http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts", "keywords": ["es6", "es2015", "ecmascript"] }, { "name": "ES7", "url": "https://github.com/tc39/ecma262", "keywords": ["es7", "ecmascript"] } ], "features": [ { "name": "ASM.js", "status": { "status": "Continuously improving", "enabled-by-default": true }, "url": "http://asmjs.org", "description": "ASM.js defines a subset of JavaScript that enforce stronger typing and has specific patterns of memory access. ASM.js is rarely hand-written, it is typically generated from other languages by compiler such as Emscripten.", "comment": "There is no \"use asm\" mode in JavaScriptCore. Instead WebKit integrates ASM.js optimizations directly in the optimizer. As a result, it is possible to mix ASM-style typing with regular code and still get great performance and power efficiency." }, { "name": "Array.prototype.copyWithin", "status": { "status": "Done", "enabled-by-default": true }, "url": "https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.copywithin", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=145107", "specification": "ES6", "contact": { "name": "Yusuke Suzuki", "email": "utatane.tea@gmail.com" } }, { "name": "Array.prototype.includes", "status": { "status": "Done", "enabled-by-default": true }, "url": "https://github.com/tc39/Array.prototype.includes", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142707", "specification": "ES7" }, { "name": "Classes", "status": { "status": "Done", "enabled-by-default": true }, "url": "https://people.mozilla.org/~jorendorff/es6-draft.html#sec-class-definitions", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142774", "specification": "ES6", "description": "The new class syntax of ES6 provides a new syntax to define and extend JavaScript objects. The class syntax is a new notation, objects still use prototypal inheritance." }, { "name": "Map data structure", "status": { "status": "Done", "enabled-by-default": true }, "url": "http://people.mozilla.org/~jorendorff/es6-draft.html#sec-map-constructor", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=120333", "description": "Map provides an associative array data structure that maps keys to values.", "specification": "ES6" }, { "name": "Number extensions (ES6)", "status": { "status": "Done", "enabled-by-default": true }, "url": "http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number-objects", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=131707", "specification": "ES6", "description": "ES6 extend Number with the methods Number.isFinite(), Number.isInteger(), Number.isSafeInteger(), Number.isNaN() and the attributes Number.EPSILON, Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER." }, { "name": "Octal and binary literals", "status": { "status": "Done", "enabled-by-default": true }, "url": "https://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-numeric-literals", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142681", "specification": "ES6", "description": "New syntax for number literals. Numbers can be provided as binary (e.g. 0b001001) or octal (e.g. 0o24)." }, { "name": "Promise Objects", "status": { "status": "Done", "enabled-by-default": true, "shipped": ["ios8-safari", "osx-safari-7.1"] }, "url": "https://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-objects", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=120260", "specification": "ES6" }, { "name": "Set data structure", "status": { "status": "Done", "enabled-by-default": true }, "url": "https://people.mozilla.org/~jorendorff/es6-draft.html#sec-set-constructor", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=120549", "description": "Set is a collection of unique objects.", "specification": "ES6" }, { "name": "Symbol Objects", "status": { "status": "Done", "enabled-by-default": true }, "url": "https://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-objects", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=140435", "specification": "ES6", "contact": { "name": "Yusuke Suzuki", "email": "utatane.tea@gmail.com" } }, { "name": "Tagged templates", "status": { "status": "Done", "enabled-by-default": true }, "url": "http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tagged-templates", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=143183", "description": "The tagged-templates (like String.raw`Hello ${World}`) provides a way to modify the produced string from a given template-literals with a function.", "specification": "ES6", "contact": { "name": "Yusuke Suzuki", "email": "utatane.tea@gmail.com" } }, { "name": "Template literals", "status": { "status": "Done", "enabled-by-default": true }, "url": "http://people.mozilla.org/~jorendorff/es6-draft.html#sec-template-literals", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142691", "description": "The template-literals (like `Hello ${World}`) provides string interpolation feature. Line terminators are also allowed in the template-literals.", "specification": "ES6", "contact": { "name": "Yusuke Suzuki", "email": "utatane.tea@gmail.com" } }, { "name": "WeakMap", "status": { "status": "Done", "enabled-by-default": true }, "url": "http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap-objects", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=120912", "description": "WeakMap provides an associative array data structure that maps keys to values. WeakMap's keys must be objects.", "specification": "ES6" }, { "name": "WeakSet", "status": { "status": "Done", "enabled-by-default": true }, "url": "http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakset-objects", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet", "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142408", "description": "WeakSet is a collection of unique objects. Keys stored in WeakSet are referenced weakly.", "specification": "ES6", "contact": { "name": "Yusuke Suzuki", "email": "utatane.tea@gmail.com" } }, { "name": "for...of loops", "status": { "status": "Done", "enabled-by-default": true }, "url": "http://people.mozilla.org/~jorendorff/es6-draft.html#sec-for-in-and-for-of-statements", "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of", "description": "The for...of loops iterate over the values provided by the iterator of the target object.", "specification": "ES6", "comment": "Older versions of WebKit only supported iterating JavaScript arrays." } ] }