Desktop browsers
Feature name IE 104%IE 1114%Edge[3]63%FF 11-128%FF 139%FF 1613%FF 1715%FF 1817%FF 2321%FF 2421%FF 2523%FF 2728%FF 2828%FF 2932%FF 3033%FF 31
ESR
34%
FF 3235%FF 3337%FF 3448%FF 3549%FF 3657%FF 3759%FF 3860%FF 3965%FF 4066%CH <195%CH 19[4]6%CH 21-29[4]6%CH 30,
OP 17
[4]7%
CH 31,
OP 18
[4]7%
CH 32-33,
OP 19-20
[4]9%
CH 34,
OP 21
[4]11%
CH 35,
OP 22
[4]11%
CH 36,
OP 23
[4]12%
CH 37,
OP 24
[4]12%
CH 38,
OP 25
[4]21%
CH 39,
OP 26
[4]24%
CH 40,
OP 27
[4]24%
CH 41,
OP 28
[4]38%
CH 42,
OP 29
[4]39%
CH 43,
OP 30
[4]41%
CH 44,
OP 31
[4]45%
CH 45,
OP 32
[4]45%
SF 5.14%SF 65%SF 6.1,
SF 7
6%
SF 7.1,
SF 8
16%
WK52%OP 126%RH0%
§direct recursion NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§mutual recursion NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
Syntax
§default function parameters 0/60/60/60/60/62/62/63/63/63/63/63/63/63/63/63/63/63/63/63/63/63/63/63/63/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/6
§basic functionality NoNoFlagNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§explicit undefined defers to the default NoNoFlagNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§defaults can refer to previous params NoNoFlagNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§temporal dead zone NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§separate scope NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§new Function() support NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§rest parameters 0/50/55/50/50/53/53/53/53/53/53/53/53/53/53/53/53/53/53/53/53/53/54/54/54/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/50/5
§basic functionality NoNoYesNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§function 'length' property NoNoYesNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§arguments object interaction nonoyesnonononononononononononononononononononononononononononononononononononononoflagflagnononononono
§can't be used in setters NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagNoNoNoNoNoNo
§new Function() support NoNoYesNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§spread (...) operator 0/120/1210/120/120/121/122/122/122/122/122/128/128/128/128/128/128/128/128/128/1212/1212/1212/1212/1212/120/120/120/120/120/120/120/120/120/120/120/120/120/120/120/120/120/120/120/120/120/122/126/120/12
§with arrays, in function calls NoNoYesNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoYesYesNo
§with arrays, in array literals NoNoYesNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§with strings, in function calls NoNoYesNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§with strings, in array literals NoNoYesNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§with astral plane strings, in function calls NoNoYesNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§with astral plane strings, in array literals NoNoYesNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§with generator instances, in calls NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§with generator instances, in arrays NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§with generic iterables, in calls NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§with generic iterables, in arrays NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§with instances of iterables, in calls NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNo
§with instances of iterables, in arrays NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§object literal extensions 0/60/66/60/60/60/60/60/60/60/60/60/60/60/60/60/60/61/66/66/66/66/66/66/66/60/60/60/60/60/60/60/60/60/60/60/60/60/60/60/63/66/66/60/60/60/61/65/60/6
§computed properties NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNoNoNoYesYesNo
§shorthand properties NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagYesYesYesNoNoNoNoYesNo
§shorthand methods NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[10]Yes[10]Yes[10]Yes[10]Yes[10]Yes[10]Yes[10]NoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagYesYesYesNoNoNoNoYesNo
§string-keyed shorthand methods NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagYesYesYesNoNoNoNoYesNo
§computed shorthand methods NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNoNoNoNoYesNo
§computed accessors NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNoNoNoNoNoNo
§with arrays NoNoYesNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesNoNoNoYesYesNo
§with strings NoNoYesNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesNoNoNoNoYesNo
§with astral plane strings NoNoYesNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesNoNoNoNoYesNo
§with generator instances NoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesYesNoNoNoNoNoNo
§with generic iterables NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesYesNoNoNoNoYesNo
§with instances of generic iterables NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoFlagFlagFlagYesYesYesYesYesYesYesYesNoNoNoNoYesNo
§iterator closing, break NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§iterator closing, throw NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§octal literals NoNoYesNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoYesNo
§binary literals NoNoYesNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoYesNo
§octal supported by Number() NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoYesNo
§binary supported by Number() NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoYesNo
§template strings 0/30/32/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/33/33/33/33/33/33/33/30/30/30/30/30/30/30/30/30/30/30/30/30/33/33/33/33/33/30/30/30/30/33/30/3
§basic functionality NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoYesNo
§tagged template strings NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoYesNo
§line break normalisation NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoYesNo
§"y" flag NoNoFlagYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoFlagNoNoNoNoNoNoNoNoNoNoNoNo
§"u" flag NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§destructuring 0/320/320/3214/3215/3217/3217/3217/3217/3217/3217/3217/3217/3217/3217/3217/3217/3217/3221/3222/3223/3223/3223/3223/3223/320/320/320/320/320/320/320/320/320/320/320/320/320/320/320/320/320/320/320/320/320/3216/3225/320/32
§with arrays NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§with strings NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§with astral plane strings NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§with generator instances NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§with generic iterables NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§with instances of generic iterables NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§iterator closing NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§iterable destructuring expression NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§chained iterable destructuring NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§trailing commas in iterable patterns NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§with objects NoNoNoYes[11]Yes[11]YesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§object destructuring with primitives NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§trailing commas in object patterns NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§object destructuring expression NoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§parenthesised left-hand-side is a syntax error NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§chained object destructuring NoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§throws on null and undefined NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§computed properties NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§multiples in a single var statement NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§nested NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§in parameters NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§in parameters, new Function() support NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§in parameters, function 'length' property NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§in for-in loop heads NoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§in for-of loop heads NoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNo
§rest NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§nested rest NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§defaults NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§defaults in parameters NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§defaults, let temporal dead zone NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNo
§defaults in parameters, separate scope NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§defaults in parameters, new Function() support NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§in strings NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNoNoNoNoYesNo
§in identifiers NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNoNoNoNoYesNo
§in constructors NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§can't be assigned to NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§basic support NoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYes
§is block-scoped NoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§redefining a const is an error NoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§temporal dead zone NoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§basic support (strict mode) NoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
§is block-scoped (strict mode) NoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
§redefining a const (strict mode) NoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
§temporal dead zone (strict mode) NoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
§basic support NoYesYesFlag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§is block-scoped NoYesYesFlag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§for-loop statement scope NoYesYesFlag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§temporal dead zone NoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§for-loop iteration scope NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§basic support (strict mode) NoYesYesFlag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]NoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
§is block-scoped (strict mode) NoYesYesFlag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]NoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
§for-loop statement scope (strict mode) NoYesYesFlag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]NoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
§temporal dead zone (strict mode) NoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[12]Flag[12]Flag[12]Flag[12]Flag[12]Flag[12]NoFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
§for-loop iteration scope (strict mode) NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlagFlagFlagFlagYesYesYesYesYesNoNoNoNoNoNo
Functions
§arrow functions 0/110/119/110/110/110/110/110/118/117/117/117/117/117/117/117/117/117/117/117/117/117/117/118/118/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/110/11
§0 parameters NoNoYesNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNoNoNoNoNoNoNo
§1 parameter, no brackets NoNoYesNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNoNoNoNoNoNoNo
§multiple parameters NoNoYesNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoFlagFlagNoNoNoNoNoNoNoNoNoNoNoNo
§lexical "this" binding NoNoYesNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§"this" unchanged by call or apply NoNoYesNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§can't be bound, can be curried NoNoYesNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§lexical "arguments" binding NoNoYesNoNoNoNoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§no line break between params and => NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§no "prototype" property NoNoYesNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoFlagNoNoNoNoNoNoNoNoNoNoNoNo
§lexical "super" binding NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§lexical "new.target" binding NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§class 0/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/2320/2320/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/230/2315/230/23
§class statement NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§is block-scoped NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoNoNo
§class expression NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§anonymous class NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§constructor NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§prototype methods NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§string-keyed methods NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§computed prototype methods NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§static methods NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§computed static methods NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§accessor properties NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§computed accessor properties NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§static accessor properties NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§computed static accessor properties NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§class name is lexically scoped NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoNoNo
§computed names, temporal dead zone NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§methods aren't enumerable NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§implicit strict mode NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§constructor requires new NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]NoNoNoNoYesNo
§extends NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§extends expressions NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§extends null NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§new.target NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§super 0/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/70/76/70/7
§statement in constructors NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§expression in constructors NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]NoNoNoNoYesNo
§in methods, property access NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§in methods, method calls NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§method calls use correct "this" binding NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§constructor calls use correct "new.target" binding NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§is statically bound NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoYesNo
§basic functionality NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§generator function expressions NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§correct "this" binding NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§can't use "this" with new NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§sending NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§%GeneratorPrototype% NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§%GeneratorPrototype%.throw NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§%GeneratorPrototype%.return NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§yield operator precedence NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§yield *, arrays NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§yield *, strings NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§yield *, astral plane strings NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§yield *, generator instances NoNoFlagNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§yield *, generic iterables NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoFlagFlagFlagFlagFlagFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§yield *, instances of iterables NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesNoNoNoNoNoNoNoFlagFlagFlagFlagYesYesYesYesYesYesYesNoNoNoNoNoNo
§yield *, iterator closing NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§yield *, iterator closing via throw() NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
§shorthand generator methods NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoFlagYesYesYesYesNoNoNoNoNoNo
§string-keyed shorthand generator methods NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoFlagYesYesYesYesNoNoNoNoNoNo
§computed shorthand generators NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesYesNoNoNoNoNoNo
§shorthand generator methods, classes NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoFlag[15]Flag[15]Flag[15]Flag[15]Flag[15]NoNoNoNoNoNo
§computed shorthand generators, classes NoNoFlagNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYes[14]Yes[14]NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo