Comparison of JavaScript engines
This article needs to be updated.June 2019) ( |
The following tables compare standards support for some notable JavaScript/ECMAScript engines used in web browsers.
Explanation of tables[edit]
See List of ECMAScript engines for a full list.
Values[edit]
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[edit]
Browser engine | MSHTML | Gecko | WebKit | Presto | Blink |
---|---|---|---|---|---|
Corresponding JavaScript engine | JScript / Chakra | SpiderMonkey | JavaScriptCore | Linear B / Futhark / Carakan | V8 |
ECMAScript Edition 3 | Yes | 0.6 | Yes | 1.0 | Yes |
ECMAScript Edition 5 | 5.0 | 2.0 | Partial | Yes | Yes |
ECMAScript Edition 6 | ? | ? | ? | ? | ? |
JavaScript 1.5 extensions | No | 0.6 | Yes | 1.0 | Yes |
JavaScript 1.6 extensions (excluding E4X) |
No | 1.8 | Partial | Partial | Partial |
JavaScript 1.7 extensions | No | 1.8.1 | No | Partial | No |
JavaScript 1.8 extensions | No | 1.9 | Partial | No | Partial |
JavaScript 1.8.1 extensions | No | 1.9.1 | No | No | No |
JScript .NET extensions | No | No | No | No | No |
ActionScript extensions | No | No | No | No | No |
E4X | No | Dropped[1] | No | No | No |
Standard library[edit]
Parts of this article (those related to Several sections missing Blink) need to be updated.May 2020) ( |
Global object[edit]
Global object | MSHTML | 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[edit]
Object object | MSHTML | 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[edit]
Function object | MSHTML | 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[edit]
Array object | MSHTML | 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[edit]
String object | MSHTML | 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[edit]
Boolean object | MSHTML | 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[edit]
Number object | MSHTML | 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[edit]
Math object | MSHTML | 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[edit]
Date object | MSHTML | 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[edit]
RegExp object | MSHTML | 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[edit]
Error object | MSHTML | 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[edit]
NativeError object | MSHTML | 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 | ? |
References[edit]
- ↑ E4X, Mozilla
- ↑ ECMAScript 5 Arrays, Microsoft, archived from the original on 2010-06-27, retrieved 2010-06-24 Unknown parameter
|url-status=
ignored (help)
Further reading[edit]
- ECMAScript object support in Opera
- JavaScript tests & Compatibility tables
- ECMAScript 6 compatibility table
External links[edit]
- Webdevout – mostly covers Windows browsers. Extensive bug testing.
This article "Comparison of JavaScript engines" is from Wikipedia. The list of its authors can be seen in its historical. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.