This article is being considered for deletion in accordance with Wikipedia's deletion policy. Please share your thoughts on the matter at this article's deletion discussion page. |
This article needs to be updated.(June 2019) |
The following tables compare standards support for some notable JavaScript/ECMAScript engines used in web browsers.
See List of ECMAScript engines for a full list.
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 |
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 |
Parts of this article (those related to Several sections missing Blink) need to be updated.(May 2020) |
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 | 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 | MSHTML | Gecko | WebKit | Presto | Blink |
---|---|---|---|---|---|
Called as function | |||||
{{code|Function([[p1 [, p2 [, ...]],] body])}} | ? | Yes | Yes | ? | Yes |
Called as constructor | |||||
{{code|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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 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 | ? |
The Document Object Model (DOM) is a cross-platform and language-independent interface that treats an XML or HTML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree; with them one can change the structure, style or content of a document. Nodes can have event handlers attached to them. Once an event is triggered, the event handlers get executed.
JavaScript, often abbreviated JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, often incorporating third-party libraries. All major web browsers have a dedicated JavaScript engine to execute the code on users' devices.
Gecko is a browser engine developed by Mozilla. It is used in the Firefox browser, the Thunderbird email client, and many other projects.
ECMAScript (ES) is a JavaScript standard intended to ensure the interoperability of web pages across different browsers. It is standardized by Ecma International in the document ECMA-262.
SpiderMonkey is the first JavaScript engine, written by Brendan Eich at Netscape Communications, later released as open source and currently maintained by the Mozilla Foundation. It is used in the Firefox web browser.
JScript is Microsoft's legacy dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer 11 and older.
Presto was the browser engine of the Opera web browser from the release of Opera 7 on 28 January 2003, until the release of Opera 15 on 2 July 2013, at which time Opera switched to using the Blink engine that was originally created for Chromium. Presto was also used to power the Opera Mini and Opera Mobile browsers.
Ctags is a programming tool that generates an index file of names found in source and header files of various programming languages to aid code comprehension. Depending on the language, functions, variables, class members, macros and so on may be indexed. These tags allow definitions to be quickly and easily located by a text editor, a code search engine, or other utility. Alternatively, there is also an output mode that generates a cross reference file, listing information about various names found in a set of language files in human-readable form.
A JavaScript engine is a software component that executes JavaScript code. The first JavaScript engines were mere interpreters, but all relevant modern engines use just-in-time compilation for improved performance.
The following tables compare XHTML compatibility and support for a number of browser engines.
The following tables compare Document Object Model (DOM) compatibility and support for a number of JavaScript engines used in web browsers.
Cross-browser compatibility is the ability of a website or web application to function across different browsers and degrade gracefully when browser features are absent or lacking.
The Acid3 test is a web test page from the Web Standards Project that checks a web browser's compliance with elements of various web standards, particularly the Document Object Model (DOM) and JavaScript.
Internet Explorer 9 or IE9 is a web browser for Windows. It was released by Microsoft on March 14, 2011, as the ninth version of Internet Explorer and the successor to Internet Explorer 8, and can replace previous versions of Internet Explorer on Windows Vista, Windows Server 2008, Windows 7 and Windows Server 2008 R2 but unlike version 8, this version does not support Windows XP and Windows Server 2003. It and older versions of Internet Explorer are no longer supported. Microsoft released Internet Explorer 9 as a major out-of-band version that was not tied to the release schedule of any particular version of Windows, unlike previous versions. It is the first version of Internet Explorer not to be bundled with a Windows operating system, although some OEMs have installed it with Windows 7 on their PCs, as well as new Windows 7 laptops.
ELinks is a free text-based web browser for Unix-like operating systems.
A browser speed test is a computer benchmark that scores the performance of a web browser, by measuring the browser's efficiency in completing a predefined list of tasks. In general the testing software is available online, located on a website, where different algorithms are loaded and performed in the browser client. Typical test tasks are rendering and animation, DOM transformations, string operations, mathematical calculations, sorting algorithms, graphic performance tests and memory instructions. Browser speed tests have been used during browser wars to prove superiority of specific web browsers. The popular Acid3 test is no particular speed test but checks browser conformity to web standards.
In web development, a polyfill is code that implements a feature on web browsers that do not natively support the feature. Most often, it refers to a JavaScript library that implements an HTML5 or CSS web standard, either an established standard on older browsers, or a proposed standard on existing browsers. Formally, "a polyfill is a shim for a browser API."
JavaScript Interpreter SHell is a scripting language designed for use in embedded systems.
Deno is a runtime for JavaScript, TypeScript, and WebAssembly that is based on the V8 JavaScript engine and the Rust programming language. Deno was co-created by Ryan Dahl, who also created Node.js.