Teknik Informatika    
   
Daftar Isi
(Sebelumnya) Comparison of layout engines ( ...Comparison of layout engines ( ... (Berikutnya)

Perbandingan -- 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 engineRelease versionPreview versionUsed by
Amaya11.3.111.3-preAmaya
Gecko19.0.220.0All Mozilla software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Flock (up to 2.x); Debian IceWeasel; GNU IceCat (formerly GNU IceWeasel); Icedove, Iceape and Iceowl; Fennec. Also used by the Maple platform in 2010 and 2011 Samsung "SmartTV" devices which are based on the build used in Firefox 3.0.
KHTML N/AKonqueror
Presto2.12.388 Opera; Opera Mobile, Nintendo DS & DSi Browser; Internet Channel
Tasman(IE 5.2.3 for Mac)none (aborted in 2003)Internet Explorer 5+ for Mac OS X
Trident6.0 (IE 10)6.0 (IE 10)Internet Explorer and other Internet Explorer shells like Maxthon (Microsoft Windows operating systems only), Windows Phone 8
WebKit534.20r146740Tizen (both OS and browser), Safari (both desktop and mobile), Google Chrome, Maxthon 3, Shiira, iCab 4, OmniWeb 5.5+, Web, Adobe AIR, Midori, Adobe Dreamweaver CS4 and CS5, Android browser, Palm webOS browser, Symbian S60 browser, OWB, Steam, Rekonq, Arora, Flock (version 3+), RockMelt, Dolphin Browser, Sleipnir, Konqueror, rekonq. Used by the LG Smart TV platform to enable web content on TVs.

In Konqueror, the user can switch layout engine.

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.

ValueMeaning
YesIndicates that the layout engine fully supports this property/element when valid values are used.
NoIndicates that the property/element is completely ignored.
PartialIndicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly.
IncorrectIndicates that the property/element is understood, but that it is not implemented correctly in all cases.
ExperimentalIndicates that the property/element is understood, but supported under an alternate name. May be incomplete or buggy.
DroppedIndicates that the property/element is no longer supported.
Nightly buildIndicates that the property/element is supported to some extent in an experimental/nightly build. Future support is expected.
DependsIndicates that the property/element is supported only on certain platforms, or if certain settings are configured.

ECMAScript version support

TridentGeckoWebKitPrestoChrome Webkit
Name of ECMAScript EngineJScript/ChakraSpidermonkey/TraceMonkeyJavaScriptCore/SquirrelFish ExtremeLinear B/Futhark/CarakanV8
ECMAScript Edition 3Yes0.6Yes1.0Yes
ECMAScript Edition 55.02.0PartialYesYes
JavaScript 1.5 extensionsNo0.6Yes1.0Yes
JavaScript 1.6 extensions
(excluding E4X)
No1.8PartialPartialPartial
JavaScript 1.7 extensionsNo1.8.1NoPartialNo
JavaScript 1.8 extensionsNo1.9PartialNoPartial
JavaScript 1.8.1 extensionsNo1.9.1NoNoNo
JScript .NET extensionsNoNoNoNoNo
ActionScript extensionsNoNoNoNoNo
E4XNoDropped[1]NoNoNo

Standard Library

Global object

TridentGeckoWebKitPrestoChrome WebKit
Value properties
NaN4.00.6YesYesYes
Infinity4.00.6YesYesYes
undefined5.50.6YesYesYes
Function properties
eval(x)3.00.6YesYesYes
parseInt(string [, radix])3.00.6YesYesYes
parseFloat(string)3.00.6YesYesYes
isNaN(number)4.00.6YesYesYes
isFinite(number)4.00.6YesYesYes
URI handling functions
decodeURI(encodedURI)5.50.6YesYesYes
decodeURIComponent(encodedURIComponen t)5.50.6YesYesYes
encodeURI(uri)5.50.6YesYesYes
encodeURIComponent(uriComponent)5.50.6YesYesYes
Constructor properties
Object4.0YesYesYesYes
Function4.0YesYesYesYes
Array4.0YesYesYesYes
String3.0YesYesYesYes
Boolean3.0YesYesYesYes
Number3.0YesYesYesYes
Date3.0YesYesYesYes
RegExp4.0YesYesYesYes
Error5.0YesYesYesYes
EvalError5.0YesYesYesYes
RangeError5.0YesYesYesYes
ReferenceError5.0YesYesYesYes
SyntaxError5.0YesYesYesYes
TypeError5.0YesYesYesYes
URIError5.0YesYesYesYes
Other properties
Math3.0YesYesYesYes
Additional properties
escape(string)3.0YesYesYesYes
unescape(string)3.0YesYesYesYes

Object object

TridentGeckoWebKitPrestoChrome WebKit
Called as function
Object([value])YesYesYesYesYes
Called as constructor
new Object([value])4.0YesYesYesYes
Properties
prototype4.0YesYesYesYes
Properties of prototype
constructor4.0YesYesYesYes
toString()4.0YesYesYesYes
toLocaleString()4.0YesYesYesYes
valueOf()4.0YesYesYesYes
hasOwnProperty(V)5.5Yes3YesYes
isPrototypeOf(V)5.5Yes3YesYes
propertyIsEnumerable(V)5.5Yes3YesYes

Function object

TridentGeckoWebKitPrestoChrome WebKit
Called as function
Function([[p1 [, p2 [, ...]],] body]) ? ?Yes ?Yes
Called as constructor
new Function([[p1 [, p2 [, ...]],] body])4.01.0Yes1.0Yes
Properties
length ?1.0YesYesYes
prototype4.01.0Yes1.0Yes
Properties of prototype
length ?1.0Yes ?Yes
constructor4.01.0Yes1.0Yes
toString()4.01.0Yes1.0Yes
apply(thisArg, argArray)4.01.0Yes1.0Yes
call(thisArg [, arg1 [, arg2 [, ...]]])4.01.0Yes1.0Yes
Properties of instances
length4.01.0Yes1.0Yes
prototype4.01.0Yes1.0Yes

Array object

TridentGeckoWebKitPrestoChrome WebKit
Called as function
Array([item1 [, item2 [, ...]]])YesYesYesYesYes
Called as constructor
new Array([item1, item2 [, ...]])4.01.0Yes1.0Yes
new Array(len)4.01.0Yes1.0Yes
Properties
prototype4.01.0Yes1.0Yes
Properties of prototype
constructor4.01.0Yes1.0Yes
toString()4.01.0Yes1.0Yes
toLocaleString()5.51.0Yes1.0Yes
concat([item1 [, item2 [,...]]])4.01.0Yes1.0Yes
join(separator)4.01.0Yes1.0Yes
pop()5.51.0Yes1.0Yes
push([item1 [, item2 [,...]]])5.51.0Yes1.0Yes
reverse()4.01.0Yes1.0Yes
shift()5.51.0Yes1.0Yes
slice(start, end)4.01.0Yes1.0Yes
sort(comparefn)4.01.0Yes1.0Yes
splice(start, deleteCount [, item1 [, item2 [, ...]]])5.51.0Yes1.0Yes
unshift([item1 [, item2 [, ...]]])5.51.0Yes1.0Yes
indexOf(searchElement[, fromIndex])9.0[2]1.85222.1Yes
lastIndexOf(searchElement[, fromIndex])1.85222.1Yes
filter(callback[, thisObject])1.85222.1Yes
forEach(callback[, thisObject])1.85222.1Yes
every(callback[, thisObject])1.85222.1Yes
map(callback[, thisObject])1.85222.1Yes
some(callback[, thisObject])1.85222.1Yes
reduce(callback[, initialValue])1.95282.5.22Yes
reduceRight(callback[, initialValue])1.95282.5.22Yes
Properties of instances
length4.01.0Yes1.0Yes

String object

TridentGeckoWebKitPrestoChrome WebKit
Called as function
String([value])YesYesYesYesYes
Called as constructor
new String([value])3.01.0Yes1.0Yes
Properties
prototype4.01.0Yes1.0Yes
fromCharCode([char0 [, char1 [, ...]]])4.01.0Yes1.0Yes
Properties of prototype
constructor4.01.0Yes1.0Yes
toString()3.01.0Yes1.0Yes
valueOf()3.01.0Yes1.0Yes
charAt(pos)3.01.0Yes1.0Yes
charCodeAt(pos)5.51.0Yes1.0Yes
concat([string1 [, string2 [, ...]]])4.01.0Yes1.0Yes
indexOf(searchString, position)3.01.0Yes1.0Yes
lastIndexOf(searchString, position)3.01.0Yes1.0Yes
localeCompare(that)5.51.0Yes1.0Yes
match(regexp)4.01.0Yes1.0Yes
replace(searchValue, replaceValue)3.01.0Yes1.0Yes
search(regexp)4.01.0Yes1.0Yes
slice(start, end)4.01.0Yes1.0Yes
split(separator, limit)4.01.0Yes1.0Yes
substring(start, end)3.01.0Yes1.0Yes
toLowerCase()3.01.0Yes1.0Yes
toLocaleLowerCase(comparefn)3.01.0Yes1.0Yes
toUpperCase()3.01.0Yes1.0Yes
toLocaleUpperCase()3.01.0Yes1.0Yes
Additional properties of prototype
substr(start, length)4.01.0Yes1.0Yes
Properties of instances
length3.01.0Yes1.0Yes

Boolean object

TridentGeckoWebKitPrestoChrome WebKit
Called as function
Boolean([value])YesYesYesYesYes
Called as constructor
new Boolean([value])3.0YesYesYesYes
Properties
prototype4.0YesYesYesYes
Properties of prototype
constructor4.0YesYesYesYes
toString()4.0YesYesYesYes
valueOf()4.0YesYesYesYes

Number object

TridentGeckoWebKitPresto
Called as function
Number([value]) ? ?Yes ?
Called as constructor
new Number([value])3.01.0Yes1.0
Properties
prototype4.01.0Yes1.0
MAX_VALUE4.01.0Yes1.0
MIN_VALUE4.01.0Yes1.0
NaN4.01.0Yes1.0
NEGATIVE_INFINITY4.01.0Yes1.0
POSITIVE_INFINITY4.01.0Yes1.0
Properties of prototype
constructor4.01.0Yes1.0
toString([radix])4.01.0Yes1.0
toLocaleString()5.51.0Yes1.0
valueOf()4.01.0Yes1.0
toFixed(fractionDigits)5.51.0Yes1.0
toExponential(fractionDigits)5.51.0Yes1.0
toPrecision(precision)5.51.0Yes1.0

Math object

TridentGeckoWebKitPresto
Value properties
E3.01.0Yes1.0
LN103.01.0Yes1.0
LN23.01.0Yes1.0
LOG2E3.01.0Yes1.0
LOG10E3.01.0Yes1.0
PIYesYesYesYes
SQRT1_23.01.0Yes1.0
SQRT2YesYesYesYes
Function properties
abs(x)3.01.0Yes1.0
acos(x)3.01.0Yes1.0
asin(x)3.01.0Yes1.0
atan(x)3.01.0Yes1.0
atan2(y, x)3.01.0Yes1.0
ceil(x)3.01.0Yes1.0
cos(x)3.01.0Yes1.0
exp(x)3.01.0Yes1.0
floor(x)3.01.0Yes1.0
log(x)3.01.0Yes1.0
max([value1 [, value2 [, ...]]])3.01.0Yes1.0
min([value1 [, value2 [, ...]]])3.01.0Yes1.0
pow(x, y)3.01.0Yes1.0
random()3.01.0Yes1.0
round(x)3.01.0Yes1.0
sin(x)3.01.0Yes1.0
sqrt(x)3.01.0Yes1.0
tan(x)3.01.0Yes1.0

Date object

TridentGeckoWebKitPresto
Called as function
Date ([year [, month [, date [, hours [, minutes [, seconds [, ms ]]]]]]]) ? ? ? ?
Called as constructor
new Date (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]])4.01.0Yes1.0
new Date (value)4.01.0Yes1.0
new Date ()4.01.0Yes1.0
Properties
prototype4.01.0Yes1.0
parse(string)3.01.0Yes1.0
UTC (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]])3.01.0Yes1.0
Properties of prototype
constructor4.01.0Yes1.0
toString()4.01.0Yes1.0
toDateString()4.01.0Yes1.0
toTimeString()4.01.0Yes1.0
toLocaleString()4.01.0Yes1.0
toLocaleDateString()4.01.0Yes1.0
toLocaleTimeString()4.01.0Yes1.0
valueOf()4.01.0Yes1.0
getTime()3.01.0Yes1.0
getFullYear()4.01.0Yes1.0
getMonth()3.01.0Yes1.0
getUTCMonth()4.01.0Yes1.0
getDate()3.01.0Yes1.0
getUTCDate()4.01.0Yes1.0
getDay()3.01.0Yes1.0
getUTCDay()4.01.0Yes1.0
getHours()3.01.0Yes1.0
getUTCHours()4.01.0Yes1.0
getMinutes()3.01.0Yes1.0
getUTCMinutes()4.01.0Yes1.0
getSeconds()3.01.0Yes1.0
getUTCSeconds()4.01.0Yes1.0
getMilliseconds()4.01.0Yes1.0
getUTCMilliseconds()4.01.0Yes1.0
getTimezoneOffset()4.01.0Yes1.0
setTime(time)3.01.0Yes1.0
setMilliseconds(ms)4.01.0Yes1.0
setUTCMilliseconds(ms)4.01.0Yes1.0
setSeconds(sec [, ms])3.01.0Yes1.0
setUTCSeconds(sec [, ms])4.01.0Yes1.0
setMinutes(min [, sec [, ms]])3.01.0Yes1.0
setUTCMinutes(min [, sec [, ms]])4.01.0Yes1.0
setHours(hour [, min [, sec [, ms]]])4.01.0Yes1.0
setUTCHours(hour [, min [, sec [, ms]]])4.01.0Yes1.0
setDate(date)4.01.0Yes1.0
setUTCDate(date)4.01.0Yes1.0
setMonth(month [, date])3.01.0Yes1.0
setUTCMonth(month [, date])4.01.0Yes1.0
setFullYear(year [, month [, date]])4.01.0Yes1.0
setUTCFullYear(year [, month [, date]])4.01.0Yes1.0
toUTCString()4.01.0Yes1.0
Additional properties of prototype
getYear()3.01.0Yes1.0
setYear(year)3.01.0Yes1.0
toGMTString()4.01.0Yes1.0

RegExp object

TridentGeckoWebKitPresto
Called as function
RegExp (pattern, flags) ? ? ? ?
Called as constructor
new RegExp (pattern, flags)4.01.0Yes1.0
Properties
prototype4.01.0Yes1.0
Properties of prototype
constructor4.01.0Yes1.0
exec(string)4.01.0Yes1.0
test(string)4.01.0Yes1.0
toString()4.01.0Yes1.0
Properties of instances
source4.01.0Yes1.0
global4.01.0Yes1.0
ignoreCase5.51.0Yes1.0
multiline5.51.0Yes1.0
lastIndex4.01.0Yes1.0

Error object

TridentGeckoWebKitPresto
Called as function
Error (message) ? ? ? ?
Called as constructor
new Error (message)5.01.0Yes1.0
Properties
prototype5.01.0Yes1.0
Properties of prototype
constructor5.01.0Yes1.0
name5.51.0Yes1.0
message5.51.0Yes1.0
toString()5.01.0Yes1.0

NativeError objects

TridentGeckoWebKitPresto
Called as function
EvalError (message) ?1.0Yes ?
RangeError (message) ?1.0Yes ?
ReferenceError (message) ?1.0Yes ?
SyntaxError (message) ?1.0Yes ?
TypeError (message) ?1.0Yes ?
URIError (message) ?1.0Yes ?
Called as constructor
new EvalError (message) ?1.0Yes ?
new RangeError (message) ?1.0Yes ?
new ReferenceError (message) ?1.0Yes ?
new SyntaxError (message) ?1.0Yes ?
new TypeError (message) ?1.0Yes ?
new URIError (message) ?1.0Yes ?
Properties
prototype ?1.0 ? ?
Properties of prototype
constructor ?1.0 ? ?
name ?1.0Yes ?
message ?1.0Yes ?

References

External links

  • Webdevout — mostly covers Windows browsers. Extensive bug testing.
(Sebelumnya) Comparison of layout engines ( ...Comparison of layout engines ( ... (Berikutnya)