Changes in the Unicode Standard can affect the JavaScript language. A snippet of JavaScript code can go from being syntactically invalid to being valid overnight, when a new version of the Unicode Standard gets released. 🤯 This page gives concrete examples and tracks which exact Unicode version each browser supports for each feature.
The latest available Unicode version is v16.0.0. Your current browser supports Unicode v??? for JavaScript identifiers, and Unicode v??? for property escapes in regular expressions.
The JavaScript identifier grammar determines (among other things) which Unicode symbols can be used within variable names. Every new version of the Unicode Standard potentially changes the set of ID_Start
and ID_Continue
symbols, thereby changing what’s valid in JavaScript identifiers.
// Valid since the release of Unicode v11.0.0:
const Ღ = 42;
JavaScript regular expressions with the u
(Unicode) flag support Unicode property escape syntax of the form \p{Script=Greek}
. Every new version of the Unicode Standard potentially introduces new properties, thereby changing what’s valid in JavaScript regular expression patterns.
// Valid since the release of Unicode v16.0.0:
const re = /\p{Script=Garay}/u;