JavaScript language features coverage
August 2, 2025 ยท View on GitHub
List below is based on the ES3 Standard, mainly sections 11, 12 and 15.
Statements
- Block statement
-
var - Empty statement
- Expression statement
-
ifelse -
dowhile -
while -
for -
forof -
forin -
continue -
break -
return -
switch -
with - Labelled statements
-
throw -
try(maximum 10 directly or indirectly nested try-catch blocks) - Function definition
functionident() {...}
Expressions
- Primary Expressions
-
this(partial: global this not supported) - Identifier reference
- Literal
-
null -
true/false - number literal (partial: only 16-bit integers)
- string literal
- regular expression literal (partial: backreferences and regexp flags not supported)
-
- Array initializer
[...] - Object initializer
{...} - Grouping operator
()
-
- Left-hand-side Expressions
- Property accessors
-
newoperator - Function call
- Argument list
- Function expression
function() {...}
- Postfix expressions
-
-- -
++
-
- Unary operators
-
delete -
void -
typeof - Prefix increment operator
++ - Prefix decrement operator
-- - Unary
+ - Unary
- - Bitwise NOT
~ - Logical NOT
!
-
- Multiplicative operators
-
* -
/ -
%
-
- Additive operators
-
+ -
-
-
- Bitwise shift operators
-
<< -
>> -
>>>
-
- Relational operators
-
< -
> -
<= -
>= -
instanceof -
in
-
- Equality operators
-
== -
!= -
=== -
!==
-
- Binary bitwise operators
-
& -
| -
^
-
- Binary logical operators
-
&& -
||
-
- Conditional operator
?: - Assignment operators
- Simple assignment
= - Compound assignments
-
+= -
-= -
*= -
/= -
%= -
<<= -
>>= -
>>>= -
&= -
^= -
|=
-
- Simple assignment
- Comma operator
Built-in objects
- Global
- NaN
- Infinity
- undefined
-
eval(will not be implemented) - parseInt (partial: radix parameter not supported)
- parseFloat
- isNaN
- isFinite
- decodeURI
- decodeURIComponent
- encodeURI
- encodeURIComponent
- Object
- new (partial: without argument)
- toString
- toLocaleString
- hasOwnProperty
- isPrototypeOf
- propertyIsEnumerable
-
prototypeand prototypal inheritance
- Function
-
new(will not be implemented) - toString
- apply
- call
-
argumentsobject
-
- Array
- new
- toString
- toLocaleString
- concat
- join
- pop
- push
- reverse
- shift
- slice (partial: no bounds checking)
- sort (partial: sort function as parameter not supported)
- splice (partial: no bounds checking)
- unshift
- length
- indexOf
- lastIndexOf
- String
- new
- toString
- valueOf
- charAt
- charCodeAt (partial: UTF8 symbols of length 3 and 4 bytes aren't supported)
- concat
- indexOf
- lastIndexOf
- localeCompare
- match
- replace
- search
- slice
- split
- substring
- toLowerCase
- toLocaleLowerCase
- toUpperCase
- toLocaleUpperCase
- length
- Boolean
- new
- toString
- valueOf
- Number
- Number (as function)
- new
- MAX_VALUE
- MIN_VALUE
- NaN
- NEGATIVE_INFINITY
- POSITIVE_INFINITY
- toString
- toLocaleString
- valueOf
- toFixed
- toExponential
- toPrecision
- Math
- LN10
- LN2
- LOG2E
- LOG10E
- PI
- SQRT1_2
- SQRT2
- abs
- acos
- asin
- atan
- atan2
- ceil
- cos
- exp
- floor
- log
- max
- min
- pow
- random
- round
- sin
- sqrt
- tan
- Date
- new
- Date (as function)
- now
- parse
- UTC
- toString
- toDateString
- toTimeString
- toLocaleString
- toLocaleTimeString
- valueOf
- getTime
- getFullYear
- getUTCFullYear
- getMonth
- getUTCMonth
- getDay
- getUTCDay
- getHours
- getUTCHours
- getMinutes
- getUTCMinutes
- getSeconds
- getUTCSeconds
- getMilliseconds
- getUTCMilliseconds
- getTimezoneOffset
- setTime
- setFullYear
- setUTCFullYear
- setMonth
- setUTCMonth
- setDay
- setUTCDay
- setHours
- setUTCHours
- setMinutes
- setUTCMinutes
- setSeconds
- setUTCSeconds
- setMilliseconds
- setUTCMilliseconds
- toUTCString
- RegExp
- RegExp (as function)
- new
- exec
- test
- toString
- source
- global
- ignoreCase
- multiline
- lastIndex
- Error objects