Comparison of layout engines (ECMAScript)

From Wikipedia, the free encyclopedia

Jump to: navigation, search

The following tables compare ECMAScript (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

Trident Tasman Gecko WebCore 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 Yes Yes (?)
JavaScript 1.5 extensions No No 0.6 Yes (?) Yes (?) Yes (?)  ?
JavaScript 1.6 extensions No No 1.8  ?  ?  ? 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
Edition 4 (future) No No Planned for 2.0 No No No No

Trident Tasman Gecko WebCore KHTML Presto iCab
Name of JavaScript Engine JScript JScript SpiderMonkey JavaScriptCore KJS linear b/futhark InScript
Value properties NaN 4.0 4.0 (?) 0.6 Yes  ? Yes  ?
Infinity 4.0 4.0 (?) 0.6 Yes  ? Yes  ?
undefined 5.5 No (?) 0.6 Yes  ? Yes  ?
Function properties eval(x) 3.0 4.0 (?) 0.6 Yes  ? Yes  ?
parseInt(string [, radix]) 3.0 4.0 (?) 0.6 Yes  ? Yes  ?
parseFloat(string) 3.0 4.0 (?) 0.6 Yes  ? Yes  ?
isNaN(number) 4.0 4.0 (?) 0.6 Yes  ? Yes  ?
isFinite(number) 4.0 4.0 (?) 0.6 Yes  ? Yes  ?
URI handling functions decodeURI(encodedURI) 5.5 No (?) 0.6 Yes  ? Yes  ?
decodeURIComponent(encodedURIComponent) 5.5 No (?) 0.6 Yes  ? Yes  ?
encodeURI(uri) 5.5 No (?) 0.6 Yes  ? Yes  ?
encodeURIComponent(uriComponent) 5.5 No (?) 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  ?

Trident Tasman Gecko WebCore 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 No  ? Yes  ?
isPrototypeOf(V) 5.5  ? Yes No  ? Yes  ?
propertyIsEnumerable(V) 5.5  ? Yes No  ? Yes  ?

Trident Tasman Gecko WebCore 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  ?

Trident Tasman Gecko WebCore 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  ?
Properties of instances length 4.0  ? 1.0 Yes  ? 7.0  ?

Trident Tasman Gecko WebCore 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 No  ? 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  ?

Trident Tasman Gecko WebCore 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  ?

Trident Tasman Gecko WebCore 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  ?

Trident Tasman Gecko WebCore 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  ?
SQRT1_2 3.0  ? 1.0 Yes  ? 7.0  ?
SQRT2  ?  ? 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(x) 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  ?

Trident Tasman Gecko WebCore 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  ?

Trident Tasman Gecko WebCore 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  ?

Trident Tasman Gecko WebCore 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  ?

Trident Tasman Gecko WebCore KHTML Presto iCab
Name of JavaScript Engine JScript JScript SpiderMonkey JavaScriptCore KJS linear b/futhark InScript
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
prototype  ?  ?  ?  ?  ?  ?  ?
Properties of prototype constructor  ?  ?  ?  ?  ?  ?  ?
name  ?  ?  ?  ?  ?  ?  ?
message  ?  ?  ?  ?  ?  ?  ?


  • Webdevout — mostly covers Windows browsers. Extensive bug testing.
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.