{ "javascript": { "classes": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#sec-class-definitions", "tags": [ "web-features:class-syntax", "web-features:snapshot:ecmascript-2015" ], "support": { "chrome": [ { "version_added": "49" }, { "version_added": "42", "version_removed": "49", "notes": "Strict mode is required." } ], "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "13" }, "firefox": { "version_added": "45" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "6.0.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "9" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } }, "constructor": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/constructor", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#sec-static-semantics-constructormethod", "tags": [ "web-features:class-syntax", "web-features:snapshot:ecmascript-2015" ], "support": { "chrome": [ { "version_added": "49" }, { "version_added": "42", "version_removed": "49", "notes": "Strict mode is required." } ], "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "13" }, "firefox": { "version_added": "45" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "6.0.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "9" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "extends": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/extends", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#sec-class-definitions", "tags": [ "web-features:class-syntax", "web-features:snapshot:ecmascript-2015" ], "support": { "chrome": [ { "version_added": "49" }, { "version_added": "42", "version_removed": "49", "notes": "Strict mode is required." } ], "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "13" }, "firefox": { "version_added": "45" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "6.0.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "9" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "private_class_fields": { "__compat": { "description": "Private class fields", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/Private_properties", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-PrivateIdentifier", "tags": [ "web-features:class-syntax" ], "support": { "chrome": { "version_added": "74" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": "mirror", "firefox": { "version_added": "90" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "12.0.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "14.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "private_class_fields_in": { "__compat": { "description": "Private class fields 'in'", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/Private_properties", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#prod-00OK517S", "tags": [ "web-features:class-syntax" ], "support": { "chrome": { "version_added": "91" }, "chrome_android": "mirror", "deno": { "version_added": "1.9" }, "edge": "mirror", "firefox": { "version_added": "90" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "16.4.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "15" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "private_class_methods": { "__compat": { "description": "Private class methods", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/Private_properties", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-PrivateIdentifier", "tags": [ "web-features:class-syntax" ], "support": { "chrome": { "version_added": "84" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": "mirror", "firefox": { "version_added": "90" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "14.6.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "15" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "public_class_fields": { "__compat": { "description": "Public class fields", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/Public_class_fields", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#prod-FieldDefinition", "tags": [ "web-features:class-syntax" ], "support": { "chrome": { "version_added": "72" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": "mirror", "firefox": { "version_added": "69" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "12.0.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": [ { "version_added": "16" }, { "version_added": "14.1", "version_removed": "16", "partial_implementation": true, "notes": "Parentheses in field initializers can lead to `ReferenceError`s. See [bug 236843](https://webkit.org/b/236843)." }, { "version_added": "14", "version_removed": "14.1", "partial_implementation": true, "notes": "Doesn't support public static fields. See [bug 194095](https://webkit.org/b/194095)." } ], "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "static": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/static", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#sec-class-definitions", "tags": [ "web-features:class-syntax", "web-features:snapshot:ecmascript-2015" ], "support": { "chrome": [ { "version_added": "49" }, { "version_added": "42", "version_removed": "49", "notes": "Strict mode is required." } ], "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "13" }, "firefox": { "version_added": "45" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "6.0.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "9" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "static_class_fields": { "__compat": { "description": "Static class fields", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/Public_class_fields", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#prod-FieldDefinition", "tags": [ "web-features:class-syntax" ], "support": { "chrome": { "version_added": "72" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": "mirror", "firefox": { "version_added": "75" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "12.0.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "14.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "static_initialization_blocks": { "__compat": { "description": "Class static initialization blocks", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/Static_initialization_blocks", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#prod-ClassStaticBlock", "tags": [ "web-features:class-syntax" ], "support": { "chrome": { "version_added": "94" }, "chrome_android": "mirror", "deno": { "version_added": "1.14" }, "edge": "mirror", "firefox": { "version_added": "93" }, "firefox_android": "mirror", "ie": { "version_added": false }, "nodejs": { "version_added": "16.11.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "16.4" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } } } } }