{ "javascript": { "grammar": { "array_literals": { "__compat": { "description": "Array literals (`[1, 2, 3]`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/Array#array_literal_notation", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-array-initializer", "tags": [ "web-features:array", "web-features:snapshot:ecmascript-1" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "4" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "4" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "binary_numeric_literals": { "__compat": { "description": "Binary numeric literals (`0b`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#binary", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-BinaryIntegerLiteral", "tags": [ "web-features:snapshot:ecmascript-2015", "web-features:number" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "41" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "25" }, "firefox_android": "mirror", "nodejs": { "version_added": "4.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 } } }, "boolean_literals": { "__compat": { "description": "Boolean literals (`true`/`false`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#boolean_literal", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#sec-boolean-literals", "tags": [ "web-features:snapshot:ecmascript-1", "web-features:javascript" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "3" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "3" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "decimal_numeric_literals": { "__compat": { "description": "Decimal numeric literals (`1234567890`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#decimal", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-DecimalLiteral", "tags": [ "web-features:snapshot:ecmascript-1", "web-features:number" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "3" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "3" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "hashbang_comments": { "__compat": { "description": "Hashbang (`#!`) comment syntax", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#hashbang_comments", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#sec-hashbang", "tags": [ "web-features:snapshot:ecmascript-2023", "web-features:hashbang-comments" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "74" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": "mirror", "firefox": { "version_added": "67" }, "firefox_android": "mirror", "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "13.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "hexadecimal_escape_sequences": { "__compat": { "description": "Hexadecimal escape sequences (`'\\xA9'`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#hexadecimal_escape_sequences", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence", "tags": [ "web-features:javascript" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "4" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "4" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "hexadecimal_numeric_literals": { "__compat": { "description": "Hexadecimal numeric literals (`0xAF`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#hexadecimal", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-HexIntegerLiteral", "tags": [ "web-features:snapshot:ecmascript-1", "web-features:number" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "3" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "3" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "null_literal": { "__compat": { "description": "Null literal (`null`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#null_literal", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#sec-null-literals", "tags": [ "web-features:snapshot:ecmascript-1", "web-features:javascript" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "3" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "3" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "numeric_separators": { "__compat": { "description": "Numeric separators (`1_000_000_000_000`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#numeric_separators", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator", "tags": [ "web-features:numeric-separators" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "75" }, "chrome_android": "mirror", "deno": { "version_added": "1.2" }, "edge": "mirror", "firefox": { "version_added": "70" }, "firefox_android": "mirror", "nodejs": { "version_added": "12.5.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "13" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "octal_numeric_literals": { "__compat": { "description": "Octal numeric literals (`0o`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#octal", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-OctalIntegerLiteral", "tags": [ "web-features:snapshot:ecmascript-2015", "web-features:number" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "41" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "25" }, "firefox_android": "mirror", "nodejs": { "version_added": "4.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 } } }, "regular_expression_literals": { "__compat": { "description": "Regular expression literals (`/ab+c/g`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#regular_expression_literals", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#sec-literals-regular-expression-literals", "tags": [ "web-features:snapshot:ecmascript-3", "web-features:regexp" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "4" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "5" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "string_literals": { "__compat": { "description": "String literals (`'Hello world'`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#string_literals", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#sec-literals-string-literals", "tags": [ "web-features:snapshot:ecmascript-1", "web-features:strings" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "3" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "3" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "unicode_escape_sequences": { "__compat": { "description": "Unicode escape sequences (`'\\u00A9'`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#unicode_escape_sequences", "spec_url": "https://tc39.es/ecma262/multipage/structured-data.html#sec-unicodeescape", "tags": [ "web-features:snapshot:ecmascript-1", "web-features:javascript" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "4" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "4" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "unicode_point_escapes": { "__compat": { "description": "Unicode point escapes (`\\u{}`)", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#unicode_code_point_escapes", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence", "tags": [ "web-features:snapshot:ecmascript-2015", "web-features:unicode-point-escapes" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "44" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "40" }, "firefox_android": "mirror", "nodejs": { "version_added": "4.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 } } }, "shorthand_object_literals": { "__compat": { "description": "Shorthand notation for object literals", "tags": [ "web-features:snapshot:ecmascript-2015", "web-features:object-object" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "43" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "33" }, "firefox_android": "mirror", "nodejs": { "version_added": "4.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 } } }, "template_literals": { "__compat": { "description": "Template literals", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Template_literals", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-template-literals", "tags": [ "web-features:snapshot:ecmascript-2015", "web-features:template-literals" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "41" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "34" }, "firefox_android": "mirror", "nodejs": { "version_added": "4.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 } }, "template_literal_revision": { "__compat": { "description": "Escape sequences allowed in tagged template literals", "tags": [ "web-features:snapshot:ecmascript-2018", "web-features:template-literals" ], "support": { "bun": { "version_added": "1.1.35" }, "chrome": { "version_added": "62" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": "mirror", "firefox": { "version_added": "53" }, "firefox_android": "mirror", "nodejs": { "version_added": "8.10.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "11" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } } }, "trailing_commas": { "__compat": { "description": "Trailing commas", "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Trailing_commas", "spec_url": [ "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#prod-Elision", "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#prod-ObjectLiteral", "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#prod-ArrayLiteral", "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#prod-Arguments", "https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#prod-FormalParameters", "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#prod-CoverParenthesizedExpressionAndArrowParameterList", "https://tc39.es/ecma262/multipage/ecmascript-language-scripts-and-modules.html#prod-NamedImports", "https://tc39.es/ecma262/multipage/ecmascript-language-scripts-and-modules.html#prod-NamedExports", "https://tc39.es/ecma262/multipage/text-processing.html#prod-QuantifierPrefix", "https://tc39.es/ecma262/multipage/additional-ecmascript-features-for-web-browsers.html#prod-annexB-InvalidBracedQuantifier" ], "tags": [ "web-features:javascript" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "9" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "9.5" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } }, "trailing_commas_in_dynamic_import": { "__compat": { "description": "Trailing comma in dynamic import", "spec_url": "https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-import-call-runtime-semantics-evaluation", "tags": [ "web-features:json-modules" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "91" }, "chrome_android": "mirror", "deno": { "version_added": "1.17" }, "edge": "mirror", "firefox": { "version_added": "138" }, "firefox_android": "mirror", "nodejs": [ { "version_added": "17.5.0" }, { "version_added": "16.15.0", "version_removed": "17.0.0" }, { "version_added": "16.14.0", "version_removed": "16.15.0", "partial_implementation": true, "notes": "The second parameter no longer throws a parser error, but the `--experimental-json-modules` flag is still needed to load JSON modules." } ], "oculus": "mirror", "opera": { "version_added": false }, "opera_android": { "version_added": false }, "safari": { "version_added": "15" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "trailing_commas_in_functions": { "__compat": { "description": "Trailing comma in function parameters", "tags": [ "web-features:functions" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "58" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "14" }, "firefox": { "version_added": "52" }, "firefox_android": "mirror", "nodejs": { "version_added": "8.0.0" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "10" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "trailing_commas_in_object_literals": { "__compat": { "description": "Trailing comma in object literals", "tags": [ "web-features:javascript" ], "support": { "bun": { "version_added": "1.0.0" }, "chrome": { "version_added": "1" }, "chrome_android": "mirror", "deno": { "version_added": "1.0" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "1" }, "firefox_android": "mirror", "ie": { "version_added": "9" }, "nodejs": { "version_added": "0.10.0" }, "oculus": "mirror", "opera": { "version_added": "9.5" }, "opera_android": { "version_added": "10.1" }, "safari": { "version_added": "3" }, "safari_ios": { "version_added": "1" }, "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } } } } } }