blob: 353112641ede16bb04e909ed732f800f21146a6a [file] [log] [blame]
{
"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"]
},
{
"name": "Internationalization API",
"status": {
"status": "Work in progress"
},
"url": "http://ecma-international.org/publications/standards/Ecma-402.htm",
"documentation-url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl",
"webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=90906",
"description": "The Internationalization API provides language sensitive operations for string, number, and date.",
"keywords": ["Intl", "Collator", "ECMA-402"],
"contact": {
"name": "Andy VanWagoner",
"email": "thetalecrafter@gmail.com",
"twitter": "@thetalecrafter"
}
}
],
"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": "Generators (ES6)",
"status": {
"status": "No active development"
},
"url": "http://www.ecma-international.org/ecma-262/6.0/index.html#sec-generator-objects",
"specification": "ES6",
"description": "An iterative function object that is interruptable and resumable.",
"contact": {
"name": "Jon Davis",
"twitter": "@jonathandavis",
"email": "web-evangelist@apple.com"
}
},
{
"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 <a href=\"https://en.wikipedia.org/wiki/Associative_array\">associative array data</a> 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": "Proxy Objects (ES6)",
"status": {
"status": "No active development"
},
"url": "http://www.ecma-international.org/ecma-262/6.0/index.html#sec-proxy-objects",
"specification": "ES6",
"description": "An intermediary object that defines custom basic behaviors of another object such as property lookup, assignment, enumeration.",
"contact": {
"name": "Jon Davis",
"twitter": "@jonathandavis",
"email": "web-evangelist@apple.com"
}
},
{
"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 <a href=\"https://en.wikipedia.org/wiki/Associative_array\">associative array data</a> 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."
}
]
}