- Comparison of layout engines (ECMAScript)
-
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
Explanation of the tables
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 Release version Preview version Used by Amaya 11.3.1 11.3-pre Amaya Gecko 6.0.2 8.0a2 All Mozilla software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Flock (up to 2.x); Epiphany-gecko; Debian IceWeasel; GNU IceCat (formerly GNU IceWeasel); Icedove, Iceape and Iceowl; Fennec KHTML N/A Konqueror Presto 2.9.168 2.9.168 Opera; Opera Mobile, Nintendo DS & DSi Browser; Internet Channel Prince 7.1 N/A Prince XML Tasman (IE 5.2.3 for Mac) none (aborted in 2003) Internet Explorer 5+ for Mac OS X Trident 5.0 (IE 9) 6.0 (IE 10) Internet Explorer and other Internet Explorer shells like Maxthon (Microsoft Windows operating systems only), Windows Phone 7 WebKit 534.20 r83424 Safari (both desktop and mobile), Google Chrome, Maxthon 3, Shiira, iCab 4, OmniWeb 5.5+, Epiphany, Adobe AIR, Midori, Adobe Dreamweaver CS4 and CS5, Android browser, Palm webOS browser, Symbian S60 browser, OWB, Steam, Rekonq, Arora, Flock (version 3+), RockMelt 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 understood, but supported under an alternate name. May be incomplete or buggy. Dropped Indicates that the property/element is no longer supported. Nightly build Indicates that the property/element is supported to some extent in an experimental/nightly build. Future support is expected. Depends Indicates that the property/element is supported only on certain platforms, or if certain settings are configured. ECMAScript version support
Trident Gecko WebKit Presto Name of ECMAScript Engine JScript/Chakra Spidermonkey/TraceMonkey JavaScriptCore/SquirrelFish Extreme Linear B/Futhark/Carakan ECMAScript Edition 3 Yes 0.6 Yes 1.0 ECMAScript Edition 5 5.0 2.0 No No JavaScript 1.5 extensions No 0.6 Yes 1.0 JavaScript 1.6 extensions
(excluding E4X)No 1.8 Partial Partial JavaScript 1.7 extensions No 1.8.1 No Partial JavaScript 1.8 extensions No 1.9 Partial No JavaScript 1.8.1 extensions No 1.9.1 No No JScript .NET extensions No No No No ActionScript extensions No No No No E4X No 1.8 No No Standard Library
Global object
Trident Gecko WebKit Presto 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 Object object
Trident Gecko WebKit Presto 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 Function object
Trident Gecko WebKit Presto Called as function Function([[p1 [, p2 [, ...]],] body])
? ? ? ? Called as constructor new Function([[p1 [, p2 [, ...]],] body])
4.0 1.0 Yes 1.0 Properties length
? 1.0 ? Yes prototype
4.0 1.0 Yes 1.0 Properties of prototype length
? 1.0 ? ? constructor
4.0 1.0 Yes 1.0 toString()
4.0 1.0 Yes 1.0 apply(thisArg, argArray)
4.0 1.0 Yes 1.0 call(thisArg [, arg1 [, arg2 [, ...]]])
4.0 1.0 Yes 1.0 Properties of instances length
4.0 1.0 Yes 1.0 prototype
4.0 1.0 Yes 1.0 Array object
Trident Gecko WebKit Presto Called as function Array([item1 [, item2 [, ...]]])
? ? ? ? Called as constructor new Array([item1, item2 [, ...]])
4.0 1.0 Yes 1.0 new Array(len)
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 toString()
4.0 1.0 Yes 1.0 toLocaleString()
5.5 1.0 Yes 1.0 concat([item1 [, item2 [,...]]])
4.0 1.0 Yes 1.0 join(separator)
4.0 1.0 Yes 1.0 pop()
5.5 1.0 Yes 1.0 push([item1 [, item2 [,...]]])
5.5 1.0 Yes 1.0 reverse()
4.0 1.0 Yes 1.0 shift()
5.5 1.0 Yes 1.0 slice(start, end)
4.0 1.0 Yes 1.0 sort(comparefn)
4.0 1.0 Yes 1.0 splice(start, deleteCount [, item1 [, item2 [, ...]]])
5.5 1.0 Yes 1.0 unshift([item1 [, item2 [, ...]]])
5.5 1.0 Yes 1.0 indexOf(searchElement[, fromIndex])
9.0[1] 1.8 522 2.1 lastIndexOf(searchElement[, fromIndex])
1.8 522 2.1 filter(callback[, thisObject])
1.8 522 2.1 forEach(callback[, thisObject])
1.8 522 2.1 every(callback[, thisObject])
1.8 522 2.1 map(callback[, thisObject])
1.8 522 2.1 some(callback[, thisObject])
1.8 522 2.1 reduce(callback[, initialValue])
1.9 528 2.5.22 reduceRight(callback[, initialValue])
1.9 528 2.5.22 Properties of instances length
4.0 1.0 Yes 1.0 String object
Trident Gecko WebKit Presto Called as function String([value])
? ? ? ? Called as constructor new String([value])
3.0 1.0 Yes 1.0 Properties prototype
4.0 1.0 Yes 1.0 fromCharCode([char0 [, char1 [, ...]]])
4.0 1.0 Yes 1.0 Properties of prototype constructor
4.0 1.0 Yes 1.0 toString()
3.0 1.0 Yes 1.0 valueOf()
3.0 1.0 Yes 1.0 charAt(pos)
3.0 1.0 Yes 1.0 charCodeAt(pos)
5.5 1.0 Yes 1.0 concat([string1 [, string2 [, ...]]])
4.0 1.0 Yes 1.0 indexOf(searchString, position)
3.0 1.0 Yes 1.0 lastIndexOf(searchString, position)
3.0 1.0 Yes 1.0 localeCompare(that)
5.5 1.0 Yes 1.0 match(regexp)
4.0 1.0 Yes 1.0 replace(searchValue, replaceValue)
3.0 1.0 Yes 1.0 search(regexp)
4.0 1.0 Yes 1.0 slice(start, end)
4.0 1.0 Yes 1.0 split(separator, limit)
4.0 1.0 Yes 1.0 substring(start, end)
3.0 1.0 Yes 1.0 toLowerCase()
3.0 1.0 Yes 1.0 toLocaleLowerCase(comparefn)
3.0 1.0 No 1.0 toUpperCase()
3.0 1.0 Yes 1.0 toLocaleUpperCase()
3.0 1.0 No 1.0 Additional properties of prototype substr(start, length)
4.0 1.0 Yes 1.0 Properties of instances length
3.0 1.0 Yes 1.0 Boolean object
Trident Gecko WebKit Presto Called as function Boolean([value])
? ? Yes ? 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 Number object
Trident Gecko WebKit Presto Called as function Number([value])
? ? 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
Trident 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
Trident 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
Trident 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
Trident 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
Trident Gecko WebKit Presto 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 ? ? References
External links
- Webdevout — mostly covers Windows browsers. Extensive bug testing.
ECMAScript Dialects ActionScript · Caja · JavaScript (engines) · JScript · JScript .NET · Objective-J · QtScript · WMLScriptEngines
(comparison)Carakan · Futhark · InScript · JavaScriptCore (SquirrelFish) · JScript · KJS · Linear B · Narcissus · QtScript · Rhino · SpiderMonkey (TraceMonkey, JägerMonkey) · Tamarin · V8 · ChakraFrameworks,
librariesJavaScript
(comparison)Ample SDK · Clean AJAX · CougarXML · Dojo · Echo · Ext · Google Web Toolkit · jQuery · Lively Kernel · midori · MochiKit · MooTools · OpenLink AJAX · Prototype · Pyjamas · qooxdoo · Rialto · Rico · script.aculo.us · SmartClient · SproutCore · Spry · YUI LibraryLibraries
(list)PDFObject · SWFObject · SWFAddressActionScriptMultiple
implementationsPeople Other Web browser engines Actively developed web browser engines Inactive web browser engines Comparison of web browser engines Categories:- Software comparisons
- Web browser engines
Wikimedia Foundation. 2010.