Welcome to dextri.com on July 5 2009.
This is an internet experiment running to monitor browsing habbits of individuals through wikipedia contents.

Comparison of layout engines (ECMAScript)

From Wikipedia, the free encyclopedia

Jump to: navigation, search

The following tables compare ECMAScript (particularly JavaScript) support for a number of layout engines. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up-to-date. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

Contents

[edit] Explanation of the tables

[edit] Engine nomenclature

Rather than the names of web browsers, the names of the underlying engines are used. The browsers that use the various engines are listed below.

Layout Engine Used By
Trident Internet Explorer and other Internet Explorer shells
Tasman Internet Explorer for Mac; MSN for Mac OS X
Gecko All Mozilla software, including Firefox; SeaMonkey; Galeon; Camino; K-Meleon; Flock; also Epiphany-gecko
WebKit Safari; Google Chrome; Shiira; iCab 4; experimentally Epiphany; Adobe Air; Midori; OmniWeb; Adobe Dreamweaver CS4
KHTML Konqueror
Presto Opera; Opera Mobile, Nintendo DS Browser; Internet Channel; future Adobe Systems products
iCab iCab 1-3
Prince XML Prince XML
Amaya Amaya

[edit] Values

Values indicate the level of support in the most recent version of the layout engine, or (if a version number is given) in the specified version. Version numbers without any other value indicate the version at which the layout engine first fully supported the feature.

Value Meaning
Yes Indicates that the layout engine fully supports this property/element when valid values are used.
No Indicates that the property/element is completely ignored.
Partial Indicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly.
Incorrect Indicates that the property/element is understood, but that it is not implemented correctly in all cases.
Experimental Indicates that the property/element is provided in experimental form under an alternative name, generally with only partial functionality.

[edit] ECMAScript version support

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of ECMAScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
ECMAScript Version Edition 3 Yes Yes 0.6 Yes Yes 7.0 Yes
JavaScript 1.5 extensions No No 0.6 Yes Yes 7.0  ?
JavaScript 1.6 extensions
(excluding E4X)
No No 1.8 Partial  ? No No
JavaScript 1.7 extensions No No 1.8.1 No No No No
JavaScript 1.8 extensions No No 1.9 No No No No
JScript .NET extensions No No No No No No No
ActionScript extensions No No No No No No No
E4X No No 1.8 No No No No
Edition 4 (future) No No Planned for 2.0 No No No No

[edit] Standard Library

[edit] Global object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Value properties NaN 4.0  ? 0.6 Yes  ? Yes  ?
Infinity 4.0  ? 0.6 Yes  ? Yes  ?
undefined 5.5  ? 0.6 Yes  ? Yes  ?
Function properties eval(x) 3.0  ? 0.6 Yes  ? Yes  ?
parseInt(string [, radix]) 3.0  ? 0.6 Yes  ? Yes  ?
parseFloat(string) 3.0  ? 0.6 Yes  ? Yes  ?
isNaN(number) 4.0  ? 0.6 Yes  ? Yes  ?
isFinite(number) 4.0  ? 0.6 Yes  ? Yes  ?
URI handling functions decodeURI(encodedURI) 5.5  ? 0.6 Yes  ? Yes  ?
decodeURIComponent(encodedURIComponent) 5.5  ? 0.6 Yes  ? Yes  ?
encodeURI(uri) 5.5  ? 0.6 Yes  ? Yes  ?
encodeURIComponent(uriComponent) 5.5  ? 0.6 Yes  ? Yes  ?
Constructor properties Object 4.0  ? Yes Yes  ? Yes  ?
Function 4.0  ? Yes Yes  ? Yes  ?
Array 4.0  ? Yes Yes  ? Yes  ?
String 3.0  ? Yes Yes  ? Yes  ?
Boolean 3.0  ? Yes Yes  ? Yes  ?
Number 3.0  ? Yes Yes  ? Yes  ?
Date 3.0  ? Yes Yes  ? Yes  ?
RegExp 4.0  ? Yes Yes  ? Yes  ?
Error 5.0  ? Yes Yes  ? Yes  ?
EvalError 5.0  ? Yes No  ? No  ?
RangeError 5.0  ? Yes No  ? No  ?
ReferenceError 5.0  ? Yes No  ? No  ?
SyntaxError 5.0  ? Yes No  ? No  ?
TypeError 5.0  ? Yes No  ? No  ?
URIError 5.0  ? Yes No  ? No  ?
Other properties Math 3.0  ? Yes Yes  ? Yes  ?
Additional properties escape(string) 3.0  ? Yes Yes  ? Yes  ?
unescape(string) 3.0  ? Yes Yes  ? Yes  ?

[edit] Object object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function Object([value]) Yes  ? Yes Yes  ? Yes  ?
Called as constructor new Object([value]) 4.0  ? Yes Yes  ? Yes  ?
Properties
prototype 4.0  ? Yes Yes  ? Yes  ?
Properties of prototype constructor 4.0  ? Yes Yes  ? Yes  ?
toString() 4.0  ? Yes Yes  ? Yes  ?
toLocaleString() 4.0  ? Yes Yes  ? Yes  ?
valueOf() 4.0  ? Yes Yes  ? Yes  ?
hasOwnProperty(V) 5.5  ? Yes 3  ? Yes  ?
isPrototypeOf(V) 5.5  ? Yes 3  ? Yes  ?
propertyIsEnumerable(V) 5.5  ? Yes 3  ? Yes  ?

[edit] Function object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function Function([[p1 [, p2 [, ...]],] body])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Function([[p1 [, p2 [, ...]],] body]) 4.0  ? 1.0 Yes  ? 7.0  ?
Properties length  ?  ?  ?  ?  ? Yes  ?
prototype 4.0  ? 1.0 Yes  ? 7.0  ?
Properties of prototype length  ?  ?  ?  ?  ?  ?  ?
constructor 4.0  ? 1.0 Yes  ? 7.0  ?
toString() 4.0  ? 1.0 Yes  ? 7.0  ?
apply(thisArg, argArray) 4.0  ? 1.0 Yes  ? 7.0  ?
call(thisArg [, arg1 [, arg2 [, ...]]]) 4.0  ? 1.0 Yes  ? 7.0  ?
Properties of instances length 4.0  ? 1.0 Yes  ? 7.0  ?
prototype 4.0  ? 1.0 Yes  ? 7.0  ?

[edit] Array object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function Array([item1 [, item2 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Array([item1, item2 [, ...]]) 4.0  ? 1.0 Yes  ? 7.0  ?
new Array(len) 4.0  ? 1.0 Yes  ? 7.0  ?
Properties
prototype 4.0  ? 1.0 Yes  ? 7.0  ?
Properties of prototype
constructor 4.0  ? 1.0 Yes  ? 7.0  ?
toString() 4.0  ? 1.0 Yes  ? 7.0  ?
toLocaleString() 5.5  ? 1.0 Yes  ? 7.0  ?
concat([item1 [, item2 [,...]]]) 4.0  ? 1.0 Yes  ? 7.0  ?
join(separator) 4.0  ? 1.0 Yes  ? 7.0  ?
pop() 5.5  ? 1.0 Yes  ? 7.0  ?
push([item1 [, item2 [,...]]]) 5.5  ? 1.0 Yes  ? 7.0  ?
reverse() 4.0  ? 1.0 Yes  ? 7.0  ?
shift() 5.5  ? 1.0 Yes  ? 7.0  ?
slice(start, end) 4.0  ? 1.0 Yes  ? 7.0  ?
sort(comparefn) 4.0  ? 1.0 Yes  ? 7.0  ?
splice(start, deleteCount [, item1 [, item2 [, ...]]]) 5.5  ? 1.0 Yes  ? 7.0  ?
unshift([item1 [, item2 [, ...]]]) 5.5  ? 1.0 Yes  ? 7.0  ?
indexOf(searchElement[, fromIndex])  ?  ? 1.8  ?  ?  ?  ?
lastIndexOf(searchElement[, fromIndex])  ?  ? 1.8  ?  ?  ?  ?
filter(callback[, thisObject])  ?  ? 1.8  ?  ?  ?  ?
forEach(callback[, thisObject])  ?  ? 1.8  ?  ?  ?  ?
every(callback[, thisObject])  ?  ? 1.8  ?  ?  ?  ?
map(callback[, thisObject])  ?  ? 1.8  ?  ?  ?  ?
some(callback[, thisObject])  ?  ? 1.8  ?  ?  ?  ?
reduce(callback[, initialValue])  ?  ? 1.9  ?  ?  ?  ?
reduceRight(callback[, initialValue])  ?  ? 1.9  ?  ?  ?  ?
Properties of instances length 4.0  ? 1.0 Yes  ? 7.0  ?

[edit] String object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function String([value])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new String([value]) 3.0  ? 1.0 Yes  ? 7.0  ?
Properties
prototype 4.0  ? 1.0 Yes  ? 7.0  ?
fromCharCode([char0 [, char1 [, ...]]]) 4.0  ? 1.0 Yes  ? 7.0  ?
Properties of prototype
constructor 4.0  ? 1.0 Yes  ? 7.0  ?
toString() 3.0  ? 1.0 Yes  ? 7.0  ?
valueOf() 3.0  ? 1.0 Yes  ? 7.0  ?
charAt(pos) 3.0  ? 1.0 Yes  ? 7.0  ?
charCodeAt(pos) 5.5  ? 1.0 Yes  ? 7.0  ?
concat([string1 [, string2 [, ...]]]) 4.0  ? 1.0 Yes  ? 7.0  ?
indexOf(searchString, position) 3.0  ? 1.0 Yes  ? 7.0  ?
lastIndexOf(searchString, position) 3.0  ? 1.0 Yes  ? 7.0  ?
localeCompare(that) 5.5  ? 1.0 Yes  ? 7.0  ?
match(regexp) 4.0  ? 1.0 Yes  ? 7.0  ?
replace(searchValue, replaceValue) 3.0  ? 1.0 Yes  ? 7.0  ?
search(regexp) 4.0  ? 1.0 Yes  ? 7.0  ?
slice(start, end) 4.0  ? 1.0 Yes  ? 7.0  ?
split(separator, limit) 4.0  ? 1.0 Yes  ? 7.0  ?
substring(start, end) 3.0  ? 1.0 Yes  ? 7.0  ?
toLowerCase() 3.0  ? 1.0 Yes  ? 7.0  ?
toLocaleLowerCase(comparefn) 3.0  ? 1.0 No  ? 7.0  ?
toUpperCase() 3.0  ? 1.0 Yes  ? 7.0  ?
toLocaleUpperCase() 3.0  ? 1.0 No  ? 7.0  ?
Additional properties of prototype substr(start, length) 4.0  ? 1.0 Yes  ? 7.0  ?
Properties of instances length 3.0  ? 1.0 Yes  ? 7.0  ?

[edit] Boolean object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function Boolean([value])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Boolean([value]) 3.0  ? Yes Yes  ? Yes  ?
Properties
prototype 4.0  ? Yes Yes  ? Yes  ?
Properties of prototype constructor 4.0  ? Yes Yes  ? Yes  ?
toString() 4.0  ? Yes Yes  ? Yes  ?
valueOf() 4.0  ? Yes Yes  ? Yes  ?

[edit] Number object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function Number([value])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Number([value]) 3.0  ? 1.0 Yes  ? 7.0  ?
Properties
prototype 4.0  ? 1.0 Yes  ? 7.0  ?
MAX_VALUE 4.0  ? 1.0 Yes  ? 7.0  ?
MIN_VALUE 4.0  ? 1.0 Yes  ? 7.0  ?
NaN 4.0  ? 1.0 Yes  ? 7.0  ?
NEGATIVE_INFINITY 4.0  ? 1.0 Yes  ? 7.0  ?
POSITIVE_INFINITY 4.0  ? 1.0 Yes  ? 7.0  ?
Properties of prototype constructor 4.0  ? 1.0 Yes  ? 7.0  ?
toString([radix]) 4.0  ? 1.0 Yes  ? 7.0  ?
toLocaleString() 5.5  ? 1.0 Yes  ? 7.0  ?
valueOf() 4.0  ? 1.0 Yes  ? 7.0  ?
toFixed(fractionDigits) 5.5  ? 1.0 Yes  ? 7.0  ?
toExponential(fractionDigits) 5.5  ? 1.0 Yes  ? 7.0  ?
toPrecision(precision) 5.5  ? 1.0 Yes  ? 7.0  ?

[edit] Math object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Value properties E 3.0  ? 1.0 Yes  ? 7.0  ?
LN10 3.0  ? 1.0 Yes  ? 7.0  ?
LN2 3.0  ? 1.0 Yes  ? 7.0  ?
LOG2E 3.0  ? 1.0 Yes  ? 7.0  ?
LOG10E 3.0  ? 1.0 Yes  ? 7.0  ?
PI Yes  ? Yes Yes  ? Yes  ?
SQRT1_2 3.0  ? 1.0 Yes  ? 7.0  ?
SQRT2 Yes  ? Yes Yes  ? Yes  ?
Function properties abs(x) 3.0  ? 1.0 Yes  ? 7.0  ?
acos(x) 3.0  ? 1.0 Yes  ? 7.0  ?
asin(x) 3.0  ? 1.0 Yes  ? 7.0  ?
atan(x) 3.0  ? 1.0 Yes  ? 7.0  ?
atan2(y, x) 3.0  ? 1.0 Yes  ? 7.0  ?
ceil(x) 3.0  ? 1.0 Yes  ? 7.0  ?
cos(x) 3.0  ? 1.0 Yes  ? 7.0  ?
exp(x) 3.0  ? 1.0 Yes  ? 7.0  ?
floor(x) 3.0  ? 1.0 Yes  ? 7.0  ?
log(x) 3.0  ? 1.0 Yes  ? 7.0  ?
max([value1 [, value2 [, ...]]]) 3.0  ? 1.0 Yes  ? 7.0  ?
min([value1 [, value2 [, ...]]]) 3.0  ? 1.0 Yes  ? 7.0  ?
pow(x, y) 3.0  ? 1.0 Yes  ? 7.0  ?
random() 3.0  ? 1.0 Yes  ? 7.0  ?
round(x) 3.0  ? 1.0 Yes  ? 7.0  ?
sin(x) 3.0  ? 1.0 Yes  ? 7.0  ?
sqrt(x) 3.0  ? 1.0 Yes  ? 7.0  ?
tan(x) 3.0  ? 1.0 Yes  ? 7.0  ?

[edit] Date object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
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  ? 7.0  ?
new Date (value) 4.0  ? 1.0 Yes  ? 7.0  ?
new Date () 4.0  ? 1.0 Yes  ? 7.0  ?
Properties
prototype 4.0  ? 1.0 Yes  ? 7.0  ?
parse(string) 3.0  ? 1.0 Yes  ? 7.0  ?
UTC (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]]) 3.0  ? 1.0 Yes  ? 7.0  ?
Properties of prototype constructor 4.0  ? 1.0 Yes  ? 7.0  ?
toString() 4.0  ? 1.0 Yes  ? 7.0  ?
toDateString() 4.0  ? 1.0 Yes  ? 7.0  ?
toTimeString() 4.0  ? 1.0 Yes  ? 7.0  ?
toLocaleString() 4.0  ? 1.0 Yes  ? 7.0  ?
toLocaleDateString() 4.0  ? 1.0 Yes  ? 7.0  ?
toLocaleTimeString() 4.0  ? 1.0 Yes  ? 7.0  ?
valueOf() 4.0  ? 1.0 Yes  ? 7.0  ?
getTime() 3.0  ? 1.0 Yes  ? 7.0  ?
getFullYear() 4.0  ? 1.0 Yes  ? 7.0  ?
getMonth() 3.0  ? 1.0 Yes  ? 7.0  ?
getUTCMonth() 4.0  ? 1.0 Yes  ? 7.0  ?
getDate() 3.0  ? 1.0 Yes  ? 7.0  ?
getUTCDate() 4.0  ? 1.0 Yes  ? 7.0  ?
getDay() 3.0  ? 1.0 Yes  ? 7.0  ?
getUTCDay() 4.0  ? 1.0 Yes  ? 7.0  ?
getHours() 3.0  ? 1.0 Yes  ? 7.0  ?
getUTCHours() 4.0  ? 1.0 Yes  ? 7.0  ?
getMinutes() 3.0  ? 1.0 Yes  ? 7.0  ?
getUTCMinutes() 4.0  ? 1.0 Yes  ? 7.0  ?
getSeconds() 3.0  ? 1.0 Yes  ? 7.0  ?
getUTCSeconds() 4.0  ? 1.0 Yes  ? 7.0  ?
getMilliseconds() 4.0  ? 1.0 Yes  ? 7.0  ?
getUTCMilliseconds() 4.0  ? 1.0 Yes  ? 7.0  ?
getTimezoneOffset() 4.0  ? 1.0 Yes  ? 7.0  ?
setTime(time) 3.0  ? 1.0 Yes  ? 7.0  ?
setMilliseconds(ms) 4.0  ? 1.0 Yes  ? 7.0  ?
setUTCMilliseconds(ms) 4.0  ? 1.0 Yes  ? 7.0  ?
setSeconds(sec [, ms]) 3.0  ? 1.0 Yes  ? 7.0  ?
setUTCSeconds(sec [, ms]) 4.0  ? 1.0 Yes  ? 7.0  ?
setMinutes(min [, sec [, ms]]) 3.0  ? 1.0 Yes  ? 7.0  ?
setUTCMinutes(min [, sec [, ms]]) 4.0  ? 1.0 Yes  ? 7.0  ?
setHours(hour [, min [, sec [, ms]]]) 4.0  ? 1.0 Yes  ? 7.0  ?
setUTCHours(hour [, min [, sec [, ms]]]) 4.0  ? 1.0 Yes  ? 7.0  ?
setDate(date) 4.0  ? 1.0 Yes  ? 7.0  ?
setUTCDate(date) 4.0  ? 1.0 Yes  ? 7.0  ?
setMonth(month [, date]) 3.0  ? 1.0 Yes  ? 7.0  ?
setUTCMonth(month [, date]) 4.0  ? 1.0 Yes  ? 7.0  ?
setFullYear(year [, month [, date]]) 4.0  ? 1.0 Yes  ? 7.0  ?
setUTCFullYear(year [, month [, date]]) 4.0  ? 1.0 Yes  ? 7.0  ?
toUTCString() 4.0  ? 1.0 Yes  ? 7.0  ?
Additional properties of prototype getYear() 3.0  ? 1.0 Yes  ? 7.0  ?
setYear(year) 3.0  ? 1.0 Yes  ? 7.0  ?
toGMTString() 4.0  ? 1.0 Yes  ? 7.0  ?

[edit] RegExp object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function RegExp (pattern, flags)  ?  ?  ?  ?  ?  ?  ?
Called as constructor new RegExp (pattern, flags) 4.0  ? 1.0 Yes  ? 7.0  ?
Properties
prototype 4.0  ? 1.0 Yes  ? 7.0  ?
Properties of prototype constructor 4.0  ? 1.0 Yes  ? 7.0  ?
exec(string) 4.0  ? 1.0 Yes  ? 7.0  ?
test(string) 4.0  ? 1.0 Yes  ? 7.0  ?
toString() 4.0  ? 1.0 Yes  ? 7.0  ?
Properties of instances source 4.0  ? 1.0 Yes  ? 7.0  ?
global 4.0  ? 1.0 Yes  ? 7.0  ?
ignoreCase 5.5  ? 1.0 Yes  ? 7.0  ?
multiline 5.5  ? 1.0 Yes  ? 7.0  ?
lastIndex 4.0  ? 1.0 Yes  ? 7.0  ?

[edit] Error object

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function Error (message)  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Error (message) 5.0  ? 1.0 Yes  ? 7.0  ?
Properties
prototype 5.0  ? 1.0 Yes  ? 7.0  ?
Properties of prototype constructor 5.0  ? 1.0 Yes  ? 7.0  ?
name 5.5  ? 1.0 Yes  ? 7.0  ?
message 5.5  ? 1.0 Yes  ? 7.0  ?
toString() 5.0  ? 1.0 Yes  ? 7.0  ?

[edit] NativeError objects

Trident Tasman Gecko WebKit KHTML Presto iCab
Name of JavaScript Engine JScript JScript Spidermonkey JavaScriptCore KJS linear b/futhark InScript
Called as function EvalError (message)  ?  ? 1.0  ?  ?  ?  ?
RangeError (message)  ?  ? 1.0  ?  ?  ?  ?
ReferenceError (message)  ?  ? 1.0  ?  ?  ?  ?
SyntaxError (message)  ?  ? 1.0  ?  ?  ?  ?
TypeError (message)  ?  ? 1.0  ?  ?  ?  ?
URIError (message)  ?  ? 1.0  ?  ?  ?  ?
Called as constructor new EvalError (message)  ?  ? 1.0  ?  ?  ?  ?
new RangeError (message)  ?  ? 1.0  ?  ?  ?  ?
new ReferenceError (message)  ?  ? 1.0  ?  ?  ?  ?
new SyntaxError (message)  ?  ? 1.0  ?  ?  ?  ?
new TypeError (message)  ?  ? 1.0  ?  ?  ?  ?
new URIError (message)  ?  ? 1.0  ?  ?  ?  ?
Properties
prototype  ?  ? 1.0  ?  ?  ?  ?
Properties of prototype constructor  ?  ? 1.0  ?  ?  ?  ?
name  ?  ? 1.0  ?  ?  ?  ?
message  ?  ? 1.0  ?  ?  ?  ?

[edit] References

[edit] External links

  • Webdevout — mostly covers Windows browsers. Extensive bug testing.
Personal tools

Visit joltnews for the latest headlines
Visit bloit.com for company information
Geed Media does computer consulting on long island.
This page viewed times. See Logs