Comparison of layout engines (ECMAScript)

From Wikipedia, the free encyclopedia

This is meant to be a sister article to other comparison tables for layout engines.


Additionally: Fact checking is required. This article is far from finished!

This information is organized after the name of the Layout engine, in order to make it easier to study it together with the other comparison tables.

[edit] Comparison Table

Trident Tasman Gecko WebCore KHTML Presto iCab
Name of JavaScript Engine JScript JScript SpiderMonkey JavaScriptCore KJS linear_b InScript
JavaScript Version 1.3 Yes Yes 0.6 Yes Yes Yes Yes (?)
1.5 No No 0.6 Yes Yes Yes  ?
1.6 No No 1.8 No No No No
1.7 No No 1.8.1 No No No No
1.9 No No Planned for 1.9 No No No No
2.0 No No No No No No No
Global object Value properties NaN 4.0 (?) 4.0 (?) 0.6  ?  ? Yes  ?
Infinity 4.0 (?) 4.0 (?) 0.6  ?  ? Yes  ?
undefined No (?) No (?) 0.6  ?  ? Yes  ?
Function properties eval(x) 4.0 (?) 4.0 (?) 0.6  ?  ? Yes  ?
parseInt(string [, radix]) 4.0 (?) 4.0 (?) 0.6  ?  ? Yes  ?
parseFloat(string) 4.0 (?) 4.0 (?) 0.6  ?  ? Yes  ?
isNaN(number) 4.0 (?) 4.0 (?) 0.6  ?  ? Yes  ?
isFinite(number) 4.0 (?) 4.0 (?) 0.6  ?  ? Yes  ?
URI handling functions decodeURI(encodedURI) No (?) No (?) 0.6  ?  ? Yes  ?
decodeURIComponent(encodedURIComponent) No (?) No (?) 0.6  ?  ? Yes  ?
encodeURI(uri) No (?) No (?) 0.6  ?  ? Yes  ?
encodeURIComponent(uriComponent) No (?) No (?) 0.6  ?  ? Yes  ?
Constructor properties Object  ?  ?  ?  ?  ?  ?  ?
Function  ?  ?  ?  ?  ?  ?  ?
Array  ?  ?  ?  ?  ?  ?  ?
String  ?  ?  ?  ?  ?  ?  ?
Boolean  ?  ?  ?  ?  ?  ?  ?
Number  ?  ?  ?  ?  ?  ?  ?
Date  ?  ?  ?  ?  ?  ?  ?
RegExp  ?  ?  ?  ?  ?  ?  ?
Error  ?  ?  ?  ?  ?  ?  ?
EvalError  ?  ?  ?  ?  ?  ?  ?
RangeError  ?  ?  ?  ?  ?  ?  ?
ReferenceError  ?  ?  ?  ?  ?  ?  ?
SyntaxError  ?  ?  ?  ?  ?  ?  ?
TypeError  ?  ?  ?  ?  ?  ?  ?
URIError  ?  ?  ?  ?  ?  ?  ?
Other properties Math  ?  ?  ?  ?  ?  ?  ?
Additional properties escape(string)  ?  ?  ?  ?  ?  ?  ?
unescape(string)  ?  ?  ?  ?  ?  ?  ?
Object object Called as function Object([value])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Object([value])  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
toString()  ?  ?  ?  ?  ?  ?  ?
toLocaleString()  ?  ?  ?  ?  ?  ?  ?
valueOf()  ?  ?  ?  ?  ?  ?  ?
hasOwnProperty(V)  ?  ?  ?  ?  ?  ?  ?
isPrototypeOf(V)  ?  ?  ?  ?  ?  ?  ?
propertyIsEnumerable(V)  ?  ?  ?  ?  ?  ?  ?
Function object Called as function Function([[p1 [, p2 [, ...]],] body])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Function([[p1 [, p2 [, ...]],] body])  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
toString()  ?  ?  ?  ?  ?  ?  ?
apply(thisArg, argArray)  ?  ?  ?  ?  ?  ?  ?
call(thisArg [, arg1 [, arg2 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
Properties of instances length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
Array object Called as function Array([item1 [, item2 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Array([item1, item2 [, ...]])  ?  ?  ?  ?  ?  ?  ?
new Array(len)  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
toString()  ?  ?  ?  ?  ?  ?  ?
toLocaleString()  ?  ?  ?  ?  ?  ?  ?
concat([item1 [, item2 [,...]]])  ?  ?  ?  ?  ?  ?  ?
join(separator)  ?  ?  ?  ?  ?  ?  ?
pop()  ?  ?  ?  ?  ?  ?  ?
push([item1 [, item2 [,...]]])  ?  ?  ?  ?  ?  ?  ?
reverse()  ?  ?  ?  ?  ?  ?  ?
shift()  ?  ?  ?  ?  ?  ?  ?
slice(start, end)  ?  ?  ?  ?  ?  ?  ?
sort(comparefn)  ?  ?  ?  ?  ?  ?  ?
splice(start, deleteCount [, item1 [, item2 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
unshift([item1 [, item2 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
Properties of instances length  ?  ?  ?  ?  ?  ?  ?
String object Called as function String([value])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new String([value])  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
fromCharCode([char0 [, char1 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
toString()  ?  ?  ?  ?  ?  ?  ?
valueOf()  ?  ?  ?  ?  ?  ?  ?
charAt(pos)  ?  ?  ?  ?  ?  ?  ?
charCodeAt(pos)  ?  ?  ?  ?  ?  ?  ?
concat([string1 [, string2 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
indexOf(searchString, position)  ?  ?  ?  ?  ?  ?  ?
lastIndexOf(searchString, position)  ?  ?  ?  ?  ?  ?  ?
localeCompare(that)  ?  ?  ?  ?  ?  ?  ?
match(regexp)  ?  ?  ?  ?  ?  ?  ?
replace(searchValue, replaceValue)  ?  ?  ?  ?  ?  ?  ?
search(regexp)  ?  ?  ?  ?  ?  ?  ?
slice(start, end)  ?  ?  ?  ?  ?  ?  ?
split(separator, limit)  ?  ?  ?  ?  ?  ?  ?
substring(start, end)  ?  ?  ?  ?  ?  ?  ?
toLowerCase()  ?  ?  ?  ?  ?  ?  ?
toLocaleLowerCase(comparefn)  ?  ?  ?  ?  ?  ?  ?
toUpperCase()  ?  ?  ?  ?  ?  ?  ?
toLocaleUpperCase()  ?  ?  ?  ?  ?  ?  ?
Additional properties of prototype substr(start, length)  ?  ?  ?  ?  ?  ?  ?
Properties of instances length  ?  ?  ?  ?  ?  ?  ?
Boolean object Called as function Boolean([value])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Boolean([value])  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
toString()  ?  ?  ?  ?  ?  ?  ?
valueOf()  ?  ?  ?  ?  ?  ?  ?
Number object Called as function Number([value])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Number([value])  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
MAX_VALUE  ?  ?  ?  ?  ?  ?  ?
MIN_VALUE  ?  ?  ?  ?  ?  ?  ?
NaN  ?  ?  ?  ?  ?  ?  ?
NEGATIVE_INFINITY  ?  ?  ?  ?  ?  ?  ?
POSITIVE_INFINITY  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
toString([radix])  ?  ?  ?  ?  ?  ?  ?
toLocaleString()  ?  ?  ?  ?  ?  ?  ?
valueOf()  ?  ?  ?  ?  ?  ?  ?
toFixed(fractionDigits)  ?  ?  ?  ?  ?  ?  ?
toExponential(fractionDigits)  ?  ?  ?  ?  ?  ?  ?
toPrecision(precision)  ?  ?  ?  ?  ?  ?  ?
Math object Value properties E  ?  ?  ?  ?  ?  ?  ?
LN10  ?  ?  ?  ?  ?  ?  ?
LN2  ?  ?  ?  ?  ?  ?  ?
LOG2E  ?  ?  ?  ?  ?  ?  ?
LOG10E  ?  ?  ?  ?  ?  ?  ?
SQRT1_2  ?  ?  ?  ?  ?  ?  ?
Function properties abs(x)  ?  ?  ?  ?  ?  ?  ?
acos(x)  ?  ?  ?  ?  ?  ?  ?
asin(x)  ?  ?  ?  ?  ?  ?  ?
atan(x)  ?  ?  ?  ?  ?  ?  ?
atan2(y, x)  ?  ?  ?  ?  ?  ?  ?
ceil(x)  ?  ?  ?  ?  ?  ?  ?
cos(x)  ?  ?  ?  ?  ?  ?  ?
exp(x)  ?  ?  ?  ?  ?  ?  ?
floor(x)  ?  ?  ?  ?  ?  ?  ?
log(x)  ?  ?  ?  ?  ?  ?  ?
max([value1 [, value2 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
min([value1 [, value2 [, ...]]])  ?  ?  ?  ?  ?  ?  ?
pow(x, y)  ?  ?  ?  ?  ?  ?  ?
random(x)  ?  ?  ?  ?  ?  ?  ?
round(x)  ?  ?  ?  ?  ?  ?  ?
sin(x)  ?  ?  ?  ?  ?  ?  ?
sqrt(x)  ?  ?  ?  ?  ?  ?  ?
tan(x)  ?  ?  ?  ?  ?  ?  ?
Date object Called as function Date ([year [, month [, date [, hours [, minutes [, seconds [, ms ]]]]]]])  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Date (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]])  ?  ?  ?  ?  ?  ?  ?
new Date (value)  ?  ?  ?  ?  ?  ?  ?
new Date ()  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
parse(string)  ?  ?  ?  ?  ?  ?  ?
Date.UTC (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]])  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
toString()  ?  ?  ?  ?  ?  ?  ?
toDateString()  ?  ?  ?  ?  ?  ?  ?
toTimeString()  ?  ?  ?  ?  ?  ?  ?
toLocaleString()  ?  ?  ?  ?  ?  ?  ?
toLocaleDateString()  ?  ?  ?  ?  ?  ?  ?
toLocaleTimeString()  ?  ?  ?  ?  ?  ?  ?
valueOf()  ?  ?  ?  ?  ?  ?  ?
getTime()  ?  ?  ?  ?  ?  ?  ?
getFullYear()  ?  ?  ?  ?  ?  ?  ?
getMonth()  ?  ?  ?  ?  ?  ?  ?
getUTCMonth()  ?  ?  ?  ?  ?  ?  ?
getDate()  ?  ?  ?  ?  ?  ?  ?
getUTCDate()  ?  ?  ?  ?  ?  ?  ?
getDay()  ?  ?  ?  ?  ?  ?  ?
getUTCDay()  ?  ?  ?  ?  ?  ?  ?
getHours()  ?  ?  ?  ?  ?  ?  ?
getUTCHours()  ?  ?  ?  ?  ?  ?  ?
getMinutes()  ?  ?  ?  ?  ?  ?  ?
getUTCMinutes()  ?  ?  ?  ?  ?  ?  ?
getSeconds()  ?  ?  ?  ?  ?  ?  ?
getUTCSeconds()  ?  ?  ?  ?  ?  ?  ?
getMilliseconds()  ?  ?  ?  ?  ?  ?  ?
getUTCMilliseconds()  ?  ?  ?  ?  ?  ?  ?
getTimezoneOffset()  ?  ?  ?  ?  ?  ?  ?
setTime(time)  ?  ?  ?  ?  ?  ?  ?
setMilliseconds(ms)  ?  ?  ?  ?  ?  ?  ?
setUTCMilliseconds(ms)  ?  ?  ?  ?  ?  ?  ?
setSeconds(sec [, ms])  ?  ?  ?  ?  ?  ?  ?
setUTCSeconds(sec [, ms])  ?  ?  ?  ?  ?  ?  ?
setMinutes(min [, sec [, ms]])  ?  ?  ?  ?  ?  ?  ?
setUTCMinutes(min [, sec [, ms]])  ?  ?  ?  ?  ?  ?  ?
setHours(hour [, min [, sec [, ms]]])  ?  ?  ?  ?  ?  ?  ?
setUTCHours(hour [, min [, sec [, ms]]])  ?  ?  ?  ?  ?  ?  ?
setDate(date)  ?  ?  ?  ?  ?  ?  ?
setUTCDate(date)  ?  ?  ?  ?  ?  ?  ?
setMonth(month [, date])  ?  ?  ?  ?  ?  ?  ?
setUTCMonth(month [, date])  ?  ?  ?  ?  ?  ?  ?
setFullYear(year [, month [, date]])  ?  ?  ?  ?  ?  ?  ?
setUTCFullYear(year [, month [, date]])  ?  ?  ?  ?  ?  ?  ?
toUTCString()  ?  ?  ?  ?  ?  ?  ?
Additional properties of prototype getYear()  ?  ?  ?  ?  ?  ?  ?
setYear(year)  ?  ?  ?  ?  ?  ?  ?
toGMTString()  ?  ?  ?  ?  ?  ?  ?
RegExp object Called as function RegExp (pattern, flags)  ?  ?  ?  ?  ?  ?  ?
Called as constructor new RegExp (pattern, flags)  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
exec(string)  ?  ?  ?  ?  ?  ?  ?
test(string)  ?  ?  ?  ?  ?  ?  ?
toString()  ?  ?  ?  ?  ?  ?  ?
Properties of instances source  ?  ?  ?  ?  ?  ?  ?
global  ?  ?  ?  ?  ?  ?  ?
ignoreCase  ?  ?  ?  ?  ?  ?  ?
multiline  ?  ?  ?  ?  ?  ?  ?
lastIndex  ?  ?  ?  ?  ?  ?  ?
Error object Called as function Error (message)  ?  ?  ?  ?  ?  ?  ?
Called as constructor new Error (message)  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
name  ?  ?  ?  ?  ?  ?  ?
message  ?  ?  ?  ?  ?  ?  ?
toString()  ?  ?  ?  ?  ?  ?  ?
NativeError objects Called as function EvalError (message)  ?  ?  ?  ?  ?  ?  ?
RangeError (message)  ?  ?  ?  ?  ?  ?  ?
ReferenceError (message)  ?  ?  ?  ?  ?  ?  ?
SyntaxError (message)  ?  ?  ?  ?  ?  ?  ?
TypeError (message)  ?  ?  ?  ?  ?  ?  ?
URIError (message)  ?  ?  ?  ?  ?  ?  ?
Called as constructor new EvalError (message)  ?  ?  ?  ?  ?  ?  ?
new RangeError (message)  ?  ?  ?  ?  ?  ?  ?
new ReferenceError (message)  ?  ?  ?  ?  ?  ?  ?
new SyntaxError (message)  ?  ?  ?  ?  ?  ?  ?
new TypeError (message)  ?  ?  ?  ?  ?  ?  ?
new URIError (message)  ?  ?  ?  ?  ?  ?  ?
Properties length  ?  ?  ?  ?  ?  ?  ?
prototype  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
name  ?  ?  ?  ?  ?  ?  ?
message  ?  ?  ?  ?  ?  ?  ?

[edit] References