Explanation of tables
See List of ECMAScript engines for a full list.
Values
These indicate the level of support for the given item in each engine. By default, the most recent version of the engine is implied. However, a specific version number can be listed; when this indicates full support, it's the initial version of the engine fully supporting the item.
Value |
Meaning |
Yes |
Fully supported |
No |
Has never been supported |
Partial |
Only some values are supported |
Incorrect |
Not implemented correctly in all cases |
Experimental |
May be incomplete or buggy |
Nightly build |
Currently in development; full support is expected |
Depends |
Only supported for the specified conditions |
Dropped |
No longer supported |
ECMAScript version support
Standard Library
Global object
|
Trident |
Gecko |
WebKit |
Presto |
Blink |
Value properties |
NaN |
4.0 |
0.6 |
Yes |
Yes |
Yes |
Infinity |
4.0 |
0.6 |
Yes |
Yes |
Yes |
undefined |
5.5 |
0.6 |
Yes |
Yes |
Yes |
Function properties |
eval(x) |
3.0 |
0.6 |
Yes |
Yes |
Yes |
parseInt(string [, radix]) |
3.0 |
0.6 |
Yes |
Yes |
Yes |
parseFloat(string) |
3.0 |
0.6 |
Yes |
Yes |
Yes |
isNaN(number) |
4.0 |
0.6 |
Yes |
Yes |
Yes |
isFinite(number) |
4.0 |
0.6 |
Yes |
Yes |
Yes |
URI handling functions |
decodeURI(encodedURI) |
5.5 |
0.6 |
Yes |
Yes |
Yes |
decodeURIComponent(encodedURIComponent) |
5.5 |
0.6 |
Yes |
Yes |
Yes |
encodeURI(uri) |
5.5 |
0.6 |
Yes |
Yes |
Yes |
encodeURIComponent(uriComponent) |
5.5 |
0.6 |
Yes |
Yes |
Yes |
Constructor properties |
Object |
4.0 |
Yes |
Yes |
Yes |
Yes |
Function |
4.0 |
Yes |
Yes |
Yes |
Yes |
Array |
4.0 |
Yes |
Yes |
Yes |
Yes |
String |
3.0 |
Yes |
Yes |
Yes |
Yes |
Boolean |
3.0 |
Yes |
Yes |
Yes |
Yes |
Number |
3.0 |
Yes |
Yes |
Yes |
Yes |
Date |
3.0 |
Yes |
Yes |
Yes |
Yes |
RegExp |
4.0 |
Yes |
Yes |
Yes |
Yes |
Error |
5.0 |
Yes |
Yes |
Yes |
Yes |
EvalError |
5.0 |
Yes |
Yes |
Yes |
Yes |
RangeError |
5.0 |
Yes |
Yes |
Yes |
Yes |
ReferenceError |
5.0 |
Yes |
Yes |
Yes |
Yes |
SyntaxError |
5.0 |
Yes |
Yes |
Yes |
Yes |
TypeError |
5.0 |
Yes |
Yes |
Yes |
Yes |
URIError |
5.0 |
Yes |
Yes |
Yes |
Yes |
Other properties |
Math |
3.0 |
Yes |
Yes |
Yes |
Yes |
Additional properties |
escape(string) |
3.0 |
Yes |
Yes |
Yes |
Yes |
unescape(string) |
3.0 |
Yes |
Yes |
Yes |
Yes |
Object object
|
Trident |
Gecko |
WebKit |
Presto |
Blink |
Called as function |
Object([value]) |
Yes |
Yes |
Yes |
Yes |
Yes |
Called as constructor |
new Object([value]) |
4.0 |
Yes |
Yes |
Yes |
Yes |
Properties |
prototype |
4.0 |
Yes |
Yes |
Yes |
Yes |
Properties of prototype |
constructor |
4.0 |
Yes |
Yes |
Yes |
Yes |
toString() |
4.0 |
Yes |
Yes |
Yes |
Yes |
toLocaleString() |
4.0 |
Yes |
Yes |
Yes |
Yes |
valueOf() |
4.0 |
Yes |
Yes |
Yes |
Yes |
hasOwnProperty(V) |
5.5 |
Yes |
3 |
Yes |
Yes |
isPrototypeOf(V) |
5.5 |
Yes |
3 |
Yes |
Yes |
propertyIsEnumerable(V) |
5.5 |
Yes |
3 |
Yes |
Yes |
Function object
|
Trident |
Gecko |
WebKit |
Presto |
Blink |
Called as function |
Function([[p1 [, p2 [, ...]],] body]) |
? |
Yes |
Yes |
? |
Yes |
Called as constructor |
new Function([[p1 [, p2 [, ...]],] body]) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
Properties |
length |
? |
1.0 |
Yes |
Yes |
Yes |
prototype |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
Properties of prototype |
length |
? |
1.0 |
Yes |
? |
Yes |
constructor |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
toString() |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
apply(thisArg, argArray) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
call(thisArg [, arg1 [, arg2 [, ...]]]) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
Properties of instances |
length |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
prototype |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
Array object
|
Trident |
Gecko |
WebKit |
Presto |
Blink |
Called as function |
Array([item1 [, item2 [, ...]]]) |
Yes |
Yes |
Yes |
Yes |
Yes |
Called as constructor |
new Array([item1, item2 [, ...]]) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
new Array(len) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
Properties |
prototype |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
Properties of prototype |
constructor |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
toString() |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
toLocaleString() |
5.5 |
1.0 |
Yes |
1.0 |
Yes |
concat([item1 [, item2 [,...]]]) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
join(separator) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
pop() |
5.5 |
1.0 |
Yes |
1.0 |
Yes |
push([item1 [, item2 [,...]]]) |
5.5 |
1.0 |
Yes |
1.0 |
Yes |
reverse() |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
shift() |
5.5 |
1.0 |
Yes |
1.0 |
Yes |
slice(start, end) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
sort(comparefn) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
splice(start, deleteCount [, item1 [, item2 [, ...]]]) |
5.5 |
1.0 |
Yes |
1.0 |
Yes |
unshift([item1 [, item2 [, ...]]]) |
5.5 |
1.0 |
Yes |
1.0 |
Yes |
indexOf(searchElement[, fromIndex]) |
9.0[2] |
1.8 |
522 |
2.1 |
Yes |
lastIndexOf(searchElement[, fromIndex]) |
1.8 |
522 |
2.1 |
Yes |
filter(callback[, thisObject]) |
1.8 |
522 |
2.1 |
Yes |
forEach(callback[, thisObject]) |
1.8 |
522 |
2.1 |
Yes |
every(callback[, thisObject]) |
1.8 |
522 |
2.1 |
Yes |
map(callback[, thisObject]) |
1.8 |
522 |
2.1 |
Yes |
some(callback[, thisObject]) |
1.8 |
522 |
2.1 |
Yes |
reduce(callback[, initialValue]) |
1.9 |
528 |
2.5.22 |
Yes |
reduceRight(callback[, initialValue]) |
1.9 |
528 |
2.5.22 |
Yes |
Properties of instances |
length |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
String object
|
Trident |
Gecko |
WebKit |
Presto |
Blink |
Called as function |
String([value]) |
Yes |
Yes |
Yes |
Yes |
Yes |
Called as constructor |
new String([value]) |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
Properties |
prototype |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
fromCharCode([char0 [, char1 [, ...]]]) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
Properties of prototype |
constructor |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
toString() |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
valueOf() |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
charAt(pos) |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
charCodeAt(pos) |
5.5 |
1.0 |
Yes |
1.0 |
Yes |
concat([string1 [, string2 [, ...]]]) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
indexOf(searchString, position) |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
lastIndexOf(searchString, position) |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
localeCompare(that) |
5.5 |
1.0 |
Yes |
1.0 |
Yes |
match(regexp) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
replace(searchValue, replaceValue) |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
search(regexp) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
slice(start, end) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
split(separator, limit) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
substring(start, end) |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
toLowerCase() |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
toLocaleLowerCase(comparefn) |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
toUpperCase() |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
toLocaleUpperCase() |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
Additional properties of prototype |
substr(start, length) |
4.0 |
1.0 |
Yes |
1.0 |
Yes |
Properties of instances |
length |
3.0 |
1.0 |
Yes |
1.0 |
Yes |
Boolean object
|
Trident |
Gecko |
WebKit |
Presto |
Blink |
Called as function |
Boolean([value]) |
Yes |
Yes |
Yes |
Yes |
Yes |
Called as constructor |
new Boolean([value]) |
3.0 |
Yes |
Yes |
Yes |
Yes |
Properties |
prototype |
4.0 |
Yes |
Yes |
Yes |
Yes |
Properties of prototype |
constructor |
4.0 |
Yes |
Yes |
Yes |
Yes |
toString() |
4.0 |
Yes |
Yes |
Yes |
Yes |
valueOf() |
4.0 |
Yes |
Yes |
Yes |
Yes |
Number object
|
Trident |
Gecko |
WebKit |
Presto |
Called as function |
Number([value]) |
? |
Yes |
Yes |
? |
Called as constructor |
new Number([value]) |
3.0 |
1.0 |
Yes |
1.0 |
Properties |
prototype |
4.0 |
1.0 |
Yes |
1.0 |
MAX_VALUE |
4.0 |
1.0 |
Yes |
1.0 |
MIN_VALUE |
4.0 |
1.0 |
Yes |
1.0 |
NaN |
4.0 |
1.0 |
Yes |
1.0 |
NEGATIVE_INFINITY |
4.0 |
1.0 |
Yes |
1.0 |
POSITIVE_INFINITY |
4.0 |
1.0 |
Yes |
1.0 |
Properties of prototype |
constructor |
4.0 |
1.0 |
Yes |
1.0 |
toString([radix]) |
4.0 |
1.0 |
Yes |
1.0 |
toLocaleString() |
5.5 |
1.0 |
Yes |
1.0 |
valueOf() |
4.0 |
1.0 |
Yes |
1.0 |
toFixed(fractionDigits) |
5.5 |
1.0 |
Yes |
1.0 |
toExponential(fractionDigits) |
5.5 |
1.0 |
Yes |
1.0 |
toPrecision(precision) |
5.5 |
1.0 |
Yes |
1.0 |
Math object
|
Trident |
Gecko |
WebKit |
Presto |
Value properties |
E |
3.0 |
1.0 |
Yes |
1.0 |
LN10 |
3.0 |
1.0 |
Yes |
1.0 |
LN2 |
3.0 |
1.0 |
Yes |
1.0 |
LOG2E |
3.0 |
1.0 |
Yes |
1.0 |
LOG10E |
3.0 |
1.0 |
Yes |
1.0 |
PI |
Yes |
Yes |
Yes |
Yes |
SQRT1_2 |
3.0 |
1.0 |
Yes |
1.0 |
SQRT2 |
Yes |
Yes |
Yes |
Yes |
Function properties |
abs(x) |
3.0 |
1.0 |
Yes |
1.0 |
acos(x) |
3.0 |
1.0 |
Yes |
1.0 |
asin(x) |
3.0 |
1.0 |
Yes |
1.0 |
atan(x) |
3.0 |
1.0 |
Yes |
1.0 |
atan2(y, x) |
3.0 |
1.0 |
Yes |
1.0 |
ceil(x) |
3.0 |
1.0 |
Yes |
1.0 |
cos(x) |
3.0 |
1.0 |
Yes |
1.0 |
exp(x) |
3.0 |
1.0 |
Yes |
1.0 |
floor(x) |
3.0 |
1.0 |
Yes |
1.0 |
log(x) |
3.0 |
1.0 |
Yes |
1.0 |
max([value1 [, value2 [, ...]]]) |
3.0 |
1.0 |
Yes |
1.0 |
min([value1 [, value2 [, ...]]]) |
3.0 |
1.0 |
Yes |
1.0 |
pow(x, y) |
3.0 |
1.0 |
Yes |
1.0 |
random() |
3.0 |
1.0 |
Yes |
1.0 |
round(x) |
3.0 |
1.0 |
Yes |
1.0 |
sin(x) |
3.0 |
1.0 |
Yes |
1.0 |
sqrt(x) |
3.0 |
1.0 |
Yes |
1.0 |
tan(x) |
3.0 |
1.0 |
Yes |
1.0 |
Date object
|
Trident |
Gecko |
WebKit |
Presto |
Called as function |
Date ([year [, month [, date [, hours [, minutes [, seconds [, ms ]]]]]]]) |
? |
? |
? |
? |
Called as constructor |
new Date (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]]) |
4.0 |
1.0 |
Yes |
1.0 |
new Date (value) |
4.0 |
1.0 |
Yes |
1.0 |
new Date () |
4.0 |
1.0 |
Yes |
1.0 |
Properties |
prototype |
4.0 |
1.0 |
Yes |
1.0 |
parse(string) |
3.0 |
1.0 |
Yes |
1.0 |
UTC (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]]) |
3.0 |
1.0 |
Yes |
1.0 |
Properties of prototype |
constructor |
4.0 |
1.0 |
Yes |
1.0 |
toString() |
4.0 |
1.0 |
Yes |
1.0 |
toDateString() |
4.0 |
1.0 |
Yes |
1.0 |
toTimeString() |
4.0 |
1.0 |
Yes |
1.0 |
toLocaleString() |
4.0 |
1.0 |
Yes |
1.0 |
toLocaleDateString() |
4.0 |
1.0 |
Yes |
1.0 |
toLocaleTimeString() |
4.0 |
1.0 |
Yes |
1.0 |
valueOf() |
4.0 |
1.0 |
Yes |
1.0 |
getTime() |
3.0 |
1.0 |
Yes |
1.0 |
getFullYear() |
4.0 |
1.0 |
Yes |
1.0 |
getMonth() |
3.0 |
1.0 |
Yes |
1.0 |
getUTCMonth() |
4.0 |
1.0 |
Yes |
1.0 |
getDate() |
3.0 |
1.0 |
Yes |
1.0 |
getUTCDate() |
4.0 |
1.0 |
Yes |
1.0 |
getDay() |
3.0 |
1.0 |
Yes |
1.0 |
getUTCDay() |
4.0 |
1.0 |
Yes |
1.0 |
getHours() |
3.0 |
1.0 |
Yes |
1.0 |
getUTCHours() |
4.0 |
1.0 |
Yes |
1.0 |
getMinutes() |
3.0 |
1.0 |
Yes |
1.0 |
getUTCMinutes() |
4.0 |
1.0 |
Yes |
1.0 |
getSeconds() |
3.0 |
1.0 |
Yes |
1.0 |
getUTCSeconds() |
4.0 |
1.0 |
Yes |
1.0 |
getMilliseconds() |
4.0 |
1.0 |
Yes |
1.0 |
getUTCMilliseconds() |
4.0 |
1.0 |
Yes |
1.0 |
getTimezoneOffset() |
4.0 |
1.0 |
Yes |
1.0 |
setTime(time) |
3.0 |
1.0 |
Yes |
1.0 |
setMilliseconds(ms) |
4.0 |
1.0 |
Yes |
1.0 |
setUTCMilliseconds(ms) |
4.0 |
1.0 |
Yes |
1.0 |
setSeconds(sec [, ms]) |
3.0 |
1.0 |
Yes |
1.0 |
setUTCSeconds(sec [, ms]) |
4.0 |
1.0 |
Yes |
1.0 |
setMinutes(min [, sec [, ms]]) |
3.0 |
1.0 |
Yes |
1.0 |
setUTCMinutes(min [, sec [, ms]]) |
4.0 |
1.0 |
Yes |
1.0 |
setHours(hour [, min [, sec [, ms]]]) |
4.0 |
1.0 |
Yes |
1.0 |
setUTCHours(hour [, min [, sec [, ms]]]) |
4.0 |
1.0 |
Yes |
1.0 |
setDate(date) |
4.0 |
1.0 |
Yes |
1.0 |
setUTCDate(date) |
4.0 |
1.0 |
Yes |
1.0 |
setMonth(month [, date]) |
3.0 |
1.0 |
Yes |
1.0 |
setUTCMonth(month [, date]) |
4.0 |
1.0 |
Yes |
1.0 |
setFullYear(year [, month [, date]]) |
4.0 |
1.0 |
Yes |
1.0 |
setUTCFullYear(year [, month [, date]]) |
4.0 |
1.0 |
Yes |
1.0 |
toUTCString() |
4.0 |
1.0 |
Yes |
1.0 |
Additional properties of prototype |
getYear() |
3.0 |
1.0 |
Yes |
1.0 |
setYear(year) |
3.0 |
1.0 |
Yes |
1.0 |
toGMTString() |
4.0 |
1.0 |
Yes |
1.0 |
RegExp object
|
Trident |
Gecko |
WebKit |
Presto |
Called as function |
RegExp (pattern, flags) |
? |
? |
? |
? |
Called as constructor |
new RegExp (pattern, flags) |
4.0 |
1.0 |
Yes |
1.0 |
Properties |
prototype |
4.0 |
1.0 |
Yes |
1.0 |
Properties of prototype |
constructor |
4.0 |
1.0 |
Yes |
1.0 |
exec(string) |
4.0 |
1.0 |
Yes |
1.0 |
test(string) |
4.0 |
1.0 |
Yes |
1.0 |
toString() |
4.0 |
1.0 |
Yes |
1.0 |
Properties of instances |
source |
4.0 |
1.0 |
Yes |
1.0 |
global |
4.0 |
1.0 |
Yes |
1.0 |
ignoreCase |
5.5 |
1.0 |
Yes |
1.0 |
multiline |
5.5 |
1.0 |
Yes |
1.0 |
lastIndex |
4.0 |
1.0 |
Yes |
1.0 |
Error object
|
Trident |
Gecko |
WebKit |
Presto |
Called as function |
Error (message) |
? |
? |
? |
? |
Called as constructor |
new Error (message) |
5.0 |
1.0 |
Yes |
1.0 |
Properties |
prototype |
5.0 |
1.0 |
Yes |
1.0 |
Properties of prototype |
constructor |
5.0 |
1.0 |
Yes |
1.0 |
name |
5.5 |
1.0 |
Yes |
1.0 |
message |
5.5 |
1.0 |
Yes |
1.0 |
toString() |
5.0 |
1.0 |
Yes |
1.0 |
NativeError objects
|
Trident |
Gecko |
WebKit |
Presto |
Called as function |
EvalError (message) |
? |
1.0 |
Yes |
? |
RangeError (message) |
? |
1.0 |
Yes |
? |
ReferenceError (message) |
? |
1.0 |
Yes |
? |
SyntaxError (message) |
? |
1.0 |
Yes |
? |
TypeError (message) |
? |
1.0 |
Yes |
? |
URIError (message) |
? |
1.0 |
Yes |
? |
Called as constructor |
new EvalError (message) |
? |
1.0 |
Yes |
? |
new RangeError (message) |
? |
1.0 |
Yes |
? |
new ReferenceError (message) |
? |
1.0 |
Yes |
? |
new SyntaxError (message) |
? |
1.0 |
Yes |
? |
new TypeError (message) |
? |
1.0 |
Yes |
? |
new URIError (message) |
? |
1.0 |
Yes |
? |
Properties |
prototype |
? |
1.0 |
? |
? |
Properties of prototype |
constructor |
? |
1.0 |
? |
? |
name |
? |
1.0 |
Yes |
? |
message |
? |
1.0 |
Yes |
? |
External links
- Webdevout — mostly covers Windows browsers. Extensive bug testing.