Abstract

“ECMAScript is a stan­dard for object-oriented pro­gram­ming languages. Superficially, its im­ple­men­ta­tions, like JavaScript and JScript, are very sim­i­lar. They are there­fore often discussed in a sim­pli­fied way. But does this approach hold water against me­thod­i­cal testing?

In this work, fea­tures of ECMAScript and its com­mon im­ple­men­ta­tions are com­pared with re­gard to their stan­dards com­pli­ance and com­pat­i­bil­i­ty. A web ap­pli­ca­tion is cre­at­ed for the reg­is­tra­tion of fea­tures and as­so­ci­at­ed test cases. Using this ap­pli­ca­tion, the test cases are run in web brows­ers and the test results are stored in a da­ta­base. The results are cor­re­lat­ed with the mar­ket share of the used web brows­ers and their de­gree of vendor support. Thus, fea­tures can be defined as safe for use in web brows­ers, which makes efficiency-reducing com­pat­i­bil­i­ty measures un­nec­es­sary.”[1]

Foreword and Rationale

↑ Table of contents

“Learn reason above all. Learn clear thought: learn to know what is from what seems to be, and what you wish to be.
This is the key to everything: the truth of reality, the reality of truth. What is will set you free.”

—Surak

In a discussion, especially a technical one, it is very important that all participants know what is being talked about, so that misunderstandings can be avoided. Clear lan­guage is required. It can be achieved only by using terms that are well-defined; they should be unambiguous and one should be able to look them up in official reference material.

Some people talk about a pro­gram­ming language they call “javascript”. This is supposed to be one fully specified and universally implemented pro­gram­ming language that provides, in dialects to a varying de­gree, the capabilities to manipulate runtime environments such as web brows­ers.

In fact, there is no “javascript”; there is JavaScript. This is not just a matter of letter case: Originally, “JavaScript” was only the name of one implementation of ECMAScript.

“A scripting lan­guage is a pro­gram­ming language that is used to manipulate, customise, and automate the facilities of an existing system.”[2] The ECMAScript Language Specification is a stan­dard for extensible scripting languages. It is published in Editions. Several current versions of scripting languages are im­ple­men­ta­tions of an Edition of ECMAScript.[3][4][5][6][7][8][9] But its first Edition was based itself on two scripting languages that were already implemented for use in web brows­ers: Netscape JavaScript 1.1 and Microsoft JScript 1.0.[10]

There are no dialects of “javascript”; there are several im­ple­men­ta­tions of ECMAScript that are widely distributed, primarily through web brows­ers. The fea­tures that allow one to manipulate web brows­ers are not part of any such pro­gram­ming language; they are environment-dependent im­ple­men­ta­tions of language-independent APIs for which lan­guage bindings are specified[11] so that they can be used with pro­gram­ming languages.[12]

The same, but not the same

Superficially, ECMAScript im­ple­men­ta­tions are very sim­i­lar. Several of them even bear or are advertized using the “JavaScript” name now. It is there­fore tempting to dis­cuss them in a sim­pli­fied way using an umbrella term such as “javascript”.[13] But this approach is not without problems. ECMAScript gives its conforming im­ple­men­ta­tions a wide latitude. The Editions of ECMAScript and their im­ple­men­ta­tions have been developed in parallel, and are partially informing each other. Also, some im­ple­men­ta­tions are not conforming in some fea­tures. As a result, ECMAScript im­ple­men­ta­tions are in fact very different from one another.

It does matter which implementation is being discussed. Using ambiguous umbrella terms, without providing a clear definition for them, cannot be considered appropriate style in a technical discussion.

Hence, for lack of a better alternative, the precise and equally concise term ECMAScript implementation(s) should be used when talking about fea­tures that several im­ple­men­ta­tions (ought to) have in com­mon (per the ECMAScript Language Specification). And whenever it was talked about one particular implementation, its full name should be used, like Mozilla JavaScript. In all other instances, the term “JavaScript” (in any letter case) should not be used.

What is the Matrix?

This overview – the ECMAScript Support Matrix – began as a comparison of different “JavaScript” fea­tures and, as time passed and understanding grew, evolved into a comparison between the major ECMAScript im­ple­men­ta­tions, detailing the differences, the quirks and the bugs. It has been serving its author (and its dedicated readers) for years in writing client-side scripts that work cross-browser, and has been helping to see the distinction between core lan­guage features, and APIs with lan­guage binding, like the DOM. (The fea­tures of the latter API will be com­pared in another Matrix.)

Whenever you read from this author that key line from arguably the most groundbreaking hacker movie ―“The Matrix has you!”― a suggestion is being considered as a contribution to this work. See below.

Reloaded

Despite several valuable contributions, the previous version of this work has primarily suffered from the fact that most lan­guage features could only be tested, and test results documented, as far as the resources of its author permitted. Furthermore, it was not possible without considerable effort to detail the differences between versions of the same implementation. Test cases were incomplete and sketchy at best.

This version is based on a novel, scientific approach[1], with which fea­tures can be tested by anyone in the runtime environments available to them, and those test results can be fed back to the overview immediately, detailing automatically the differences between the im­ple­men­ta­tions and the versions of the same implementation.

As a result, the general recommendation as to whether a feature can be considered safe (see below) can be updated immediately and semi-automatically as well. This is assumed to further improve the overall quality of design decisions with re­gard to lan­guage features (although the caveat as to that must stay in place).

Language Features

↑ Table of contents

The following table lists fea­tures of ECMAScript and its im­ple­men­ta­tions, with the Edition or version that introduced it; furthermore, information about fea­tures that have been deprecated is included.

Features are highlighted with a greenish background color if they can be considered safe to use without prior feature test even when they do not appear to be formally specified or to be supported among all versions of all im­ple­men­ta­tions considered here. This is based on the fact that all minimum versions of the im­ple­men­ta­tions that a feature requires can be considered obsolete because the user agents known to implement them can be considered obsolete (see the respective version information for details). Note that this assessment is likely to be subject to change as more im­ple­men­ta­tions are investigated. If taken as a recommendation for design decisions, it should be taken as a light one.

The contents of this table are based on what could be found in the Editions of ECMAScript and in vendor's online documentation to date. They are completed with results from test cases that have been run in a careful selection of host environments, and do not claim to be accurate or complete. Any correction/addition as to how things really are is welcome and will be credited where it is due.

Known display problems

  • Firefox 3.0.x: If the scrollable table body flows out of the table, you are observing Bug 423823, fixed since Firefox 3.0.2. The Firefox 3.0 branch has met its end-of-life on 2010-03-30 CE. If you are still using Firefox 3.0.x as your primary browser, you are strongly recommended to update Firefox (but see below). As an alternative, you can toggle table body scrollability.
  • Firefox 4.0+: The support for scrollable table body has been removed per Bug 28800. This violates the CSS3 Basic Box Model specification, which is only a Working Draft at the time of writing but is intended to replace the corresponding parts of CSS 2.1. If you want this useful feature (back), please comment on and vote for Bug 67421.

Since both of these were regressions, this author deems it necessary not to cover any of them with a workaround.

Language features
! A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ECMAScript This impl.[14]
JavaScript JScript Opera KJS JSC V8
The following host environments have been used for the tests:
  • Netscape/Mozilla JavaScript
    • Version 1.5 in Firefox 1.0.8 for Windows
      (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.13) Gecko/20060410 Firefox/1.0.8)
    • Version 1.6 in Firefox for Windows 1.5.0.12
      (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12)
    • Version 1.7 in Firefox for Windows 2.0
      (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0)
    • Version 1.8 in Firefox for Windows 3.0.19
      (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19)
    • Version 1.8.1 in Debian Iceape (SeaMonkey) 2.0.11-9
      (Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20111108 Iceape/2.0.11)
    • Version 10 in Debian Iceweasel (Firefox) 10.0.2
      (Mozilla/5.0 (X11; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 Iceweasel/10.0.2)
    • Version 21 in Mozilla Firefox 21 for Linux
      (Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0)
    • Version 21 in
      ()
    • Version 22 in Mozilla Firefox 22 for Windows on Windows 7 64-bit
      (Mozilla/5.0 (Windows NT 6.0; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0)
    • Version 23 in
      (Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0)
    • Version 27 in
      (Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0)
  • Microsoft JScript
    • Version 5.5.6330 in Microsoft Internet Explorer 5.50.4807.2300
      (Mozilla/4.0 (compatible; MSIE 5.5; Windows 98))
    • Version 5.6.6626 in Internet Explorer 6.0.2800.1106
      (Mozilla/4.0 (compatible; MSIE 6.0; Windows 98))
    • Version 5.7.22589 in Microsoft Internet Explorer 7.0.5730.13 for Windows Server 2003
      (Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729))
    • Version 5.8.23141 in Microsoft Internet Explorer 8.0.6001.18702IC for Windows XP Pro 2002 SP3
      (Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729))
    • Version 9.0.16440 in Microsoft Internet Explorer 9.0.8112.16421 for Windows 7 Pro 32-bit SP1
      (Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0))
    • Version 9.0.16496 in
      (Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0))
    • Version 10.0.16578 in Internet Explorer 10.0 for Windows 8
      (Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0))
    • Version 10.0.16660 in
      (Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0))
    • Version 11.0.0 in
      (Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko)
    • Version 11.0.16384 in
      (Mozilla/5.0 (Windows NT 10.0; Win64; x64; Trident/7.0; rv:11.0) like Gecko)
    • Version 11.0.16384 in
      (Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko)
    • Version 11.0.16412 in
      (Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko)
    • Version 11.0.16428 in
      (Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)
    • Version 11.0.16518 in
      (Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko)
    • Version 11.0.17278 in
      (Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MAMIJS; rv:11.0) like Gecko)
    • Version 11.0.17640 in
      (Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko)
    • Version 11.0.17840 in
      (Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; MDDRJS; rv:11.0) like Gecko)
    • Version 11.0.18231 in
      (Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko)
    • Version 11.0.18538 in
      (Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko)
  • Opera ECMAScript
    • Version 7.02 in Opera 7.02.2668 for Windows XP 32-bit
      (Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.02 [en])
    • Version 8.0 in Opera 8.0.7561 for Windows
      (Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.0)
    • Version 9.27 in Opera 9.27.8841 for Windows
      (Opera/9.27 (Windows NT 5.1; U; en))
    • Version 9.52 in Opera 9.52.10108 for Windows
      (Opera/9.52 (Windows NT 5.1; U; en))
    • Version 9.62 in Opera 9.62.10467 for Windows
      (Opera/9.62 (Windows NT 5.1; U; en) Presto/2.1.1)
    • Version 9.64 in Opera 9.64.10487 for Windows
      (Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1)
    • Version 10.53 in Opera 10.53.3374 for Windows
      (Opera/9.80 (Windows NT 5.1; U; en) Presto/2.5.24 Version/10.53)
    • Version 10.54 in Opera 10.54.3423 for Windows
      (Opera/9.80 (Windows NT 5.1; U; en) Presto/2.5.24 Version/10.54)
    • Version 11.61 in Opera 11.61.1250 for Linux
      (Opera/9.80 (X11; Linux i686; U; en) Presto/2.10.229 Version/11.61)
    • Version 12.15 in Opera 12.15 for Windows on Windows 7 64-bit
      (Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.15)
  • KDE JavaScript
    • Version 4.6.5 in Konqueror for Linux 4.6.5
      (Mozilla/5.0 (compatible; Konqueror/4.6; Linux 2.6.39.3-pe; X11; i686; de) KHTML/4.6.5 (like Gecko))
  • Apple JavaScriptCore
    • Version 531.22.7 in Apple Safari for Windows 4.0.5 (531.22.7)
      (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7)
    • Version 7533.18.5 in Apple Safari for Windows 5.0.2 (7533.18.5)
      (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5)
    • Version 7534.52.7 in Apple Safari 5.1.2 (7534.52.7) for Windows 7 32-bit SP1
      (Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7)
  • Google V8 JavaScript
    • Version 3.19.17 in Chrome 29.0.1535.2 for Mac OS X
      (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1535.2 Safari/537.36)
    • Version 3.7.12.12 in Chrome 17.0.963.78 (Developer Build 125577 Linux)
      (Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11)
    • Version 3.8.9.5 in Google Chrome 18.0.1025.45 beta for Linux
      (Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19)
    • Version 3.11.10.6 in Chromium 21.0.1180.89 for Linux
      (Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1)
    • Version 3.12.19.4 in Chromium 22.0.1229.94 for Linux
      (Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4)
    • Version 3.15.11.5 in Chromium/Chrome 25.0.1364.160 for Linux
      (Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22)
    • Version 3.17.6.14 in Chromium 27.0.1453.110 for Linux
      (Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36)
! 1 [11.4.9]
1.5 10/10 (+)
5.5.6330 10/10 (+)
11.0.16384 20/10 (+)
11.0.16412 10/10 (+)
7.02 10/10 (+)
4.6.5 10/10 (+)
531.22.7 10/10 (+)
3.19.17 10/10 (+)
!== 3 [11.9.5]
1.5 12/12 (+)
5.5.6330 12/12 (+)
11.0.16384 24/12 (+)
11.0.16412 12/12 (+)
7.02 12/12 (+)
4.6.5 12/12 (+)
531.22.7 12/12 (+)
3.19.17 12/12 (+)
"\uhhhh" : string 1 [7.8.4]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
"foo\
bar"
: string
5 [7.8.4]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
8.0 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
"use strict"; 5 [Annex C]
1.5 4/12 (*)
10 11/12 (*)
5.5.6330 4/12 (*)
9.0.16440 0/12 (−)
10.0.16578 11/12 (*)
11.0.16384 22/12 (+)
11.0.16412 11/12 (*)
7.02 4/12 (*)
8.0 0/12 (−)
9.52 4/12 (*)
11.61 11/12 (*)
12.15 4/12 (*)
4.6.5 4/12 (*)
531.22.7 4/12 (*)
7533.18.5 1/12 (*)
7534.52.7 11/12 (*)
3.19.17 8/12 (*)
3.7.12.12 12/12 (+)
3.11.10.6 11/12 (*)
3.15.11.5 8/12 (*)
(String in Object) : boolean 3 [11.8.7]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
+expression : number 1 [11.4.6]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
/(?!)/ : RegExp 3 [15.10.2.8]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
/(?:)/ : RegExp 3 [15.10.2.8]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
/(?=)/ : RegExp 3 [15.10.2.8]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
/()\1/ : RegExp 3 [15.10.2.9]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
/(+?|*?)/ : RegExp 3 [15.10.2.7]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
/[/]/ : RegExp 5 [7.8.5]
1.5 0/1 (−)
1.6 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
/[^]/ : RegExp 3 [15.10.2.13]
1.5 1/1 (+)
5.5.6330 0/1 (−)
9.0.16440 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
10.53 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
/\uhhhh/ : RegExp 3 [15.10.2.10]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
//[g][i] : RegExp
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
//[g][i][m]: RegExp 3 [15.10.4.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
//[g][i][m][y] : RegExp
1.5 0/1 (−)
10 1/1 (+)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
= function identifier() {} : Function 3 [13]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
= function () expression : Function
1.5 0/1 (−)
1.8 1/1 (+)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
= function () {} : Function 3 [13]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
== 1 [11.9.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
=== 3 [11.9.4]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
@cc_on
@debug
@if
@position
@set
[expression for each (propertyValue in Object) [if (condition)]] : Array[V]
1.5 0/1 (−)
1.7 1/1 (+)
5.5.6330 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
[value, ] : Array 3 [11.1.4]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
[value, ] : Array 3 [11.1.4]
1.5 1/1 (+)
5.5.6330 0/1 (−)
9.0.16440 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
[var] [var1, [var2], var3, ] = Array
1.5 0/2 (−)
1.7 2/2 (+)
5.5.6330 0/2 (−)
11.0.16384 0/2 (−)
11.0.16412 0/2 (−)
7.02 0/2 (−)
8.0 1/2 (*)
10.53 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
abstract 4
new ActiveXObject("serverName.typeName"[, location : String])
1.5 0/1 (−)
5.5.6330 1/1 (+)
11.0.0 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
arguments 1 [10.6]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
arguments : Arguments 5 [10.6]
1.5 0/1 (−)
10 1/1 (+)
5.5.6330 0/1 (−)
9.0.16440 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
11.61 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
arguments.callee : Function 1 [10.6]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
arguments.length : int 1
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Array() 1 [15.4.1]
1.5 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
8.0 4/6 (*)
9.52 6/6 (+)
12.15 4/6 (*)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Array.every(iterable, callback : Function) : boolean
1.5 0/3 (−)
1.6 3/3 (+)
5.5.6330 0/3 (−)
11.0.16384 0/3 (−)
11.0.16412 0/3 (−)
7.02 0/3 (−)
12.15 3/3 (+)
4.6.5 0/3 (−)
531.22.7 0/3 (−)
3.19.17 0/3 (−)
Array.isArray(arg) : boolean 5 [15.4.3.2]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
array.length : int 1 [15.4.5.2]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Array.prototype : Array 1 [15.4.3.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Array.prototype.concat([item1[, item2[, ]]]) : Array 3 [15.4.4.4][G]
1.5 5/6 (*)
1.6 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
9.27 4/6 (*)
9.52 6/6 (+)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Array.prototype.constructor : Array 1 [15.4.4.1]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Array.prototype.every(callback : Function[, thisValue]) : boolean 5 [15.4.4.16][G]
1.5 0/6 (−)
1.6 6/6 (+)
5.5.6330 0/6 (−)
9.0.16440 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 0/6 (−)
8.0 1/6 (*)
9.52 6/6 (+)
12.15 5/6 (*)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Array.prototype.filter(callback : Function[, thisArg : Object]) : int 5 [15.4.4.20][G]
1.5 0/6 (−)
1.6 6/6 (+)
5.5.6330 0/6 (−)
9.0.16440 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 0/6 (−)
8.0 1/6 (*)
9.52 6/6 (+)
12.15 5/6 (*)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Array.prototype.forEach(callback : Function[, thisArg : Object]) 5 [15.4.4.18][G]
1.5 0/7 (−)
1.6 7/7 (+)
5.5.6330 0/7 (−)
9.0.16440 7/7 (+)
11.0.16384 14/7 (+)
11.0.16412 7/7 (+)
7.02 0/7 (−)
9.52 7/7 (+)
12.15 6/7 (*)
4.6.5 7/7 (+)
531.22.7 7/7 (+)
3.19.17 7/7 (+)
Array.prototype.indexOf(searchElement[, fromIndex : int]) : int 5 [15.4.4.14][G]
1.5 0/12 (−)
1.6 12/12 (+)
1.7 11/12 (*)
1.8 12/12 (+)
5.5.6330 0/12 (−)
9.0.16440 12/12 (+)
11.0.16384 24/12 (+)
11.0.16412 12/12 (+)
7.02 0/12 (−)
8.0 1/12 (*)
9.52 12/12 (+)
4.6.5 12/12 (+)
531.22.7 12/12 (+)
3.19.17 12/12 (+)
! A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ECMAScript This impl.[14]
JavaScript JScript Opera KJS JSC V8
Array.prototype.join(separator : String) : string 1 [15.4.4.3][G]
1.5 9/9 (+)
5.5.6330 9/9 (+)
11.0.16384 18/9 (+)
11.0.16412 9/9 (+)
7.02 9/9 (+)
4.6.5 9/9 (+)
531.22.7 9/9 (+)
3.19.17 9/9 (+)
Array.prototype.lastIndexOf(searchElement[, fromIndex : Number|int]) : number|int 5 [15.4.4.15][G]
1.5 0/12 (−)
1.6 12/12 (+)
5.5.6330 0/12 (−)
9.0.16440 12/12 (+)
11.0.16384 24/12 (+)
11.0.16412 12/12 (+)
7.02 0/12 (−)
8.0 1/12 (*)
9.52 12/12 (+)
4.6.5 12/12 (+)
531.22.7 12/12 (+)
3.19.17 12/12 (+)
Array.prototype.length : int 1 [15.4.4]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Array.prototype.map(callback : Function[, thisArg : Object]) : Array 5 [15.4.4.19]
1.5 1/11 (*)
1.6 11/11 (+)
5.5.6330 1/11 (*)
9.0.16440 11/11 (+)
11.0.16384 22/11 (+)
11.0.16412 11/11 (+)
7.02 1/11 (*)
8.0 4/11 (*)
9.52 11/11 (+)
4.6.5 11/11 (+)
531.22.7 11/11 (+)
3.19.17 11/11 (+)
Array.prototype.pop() 3 [15.4.4.6][G]
1.5 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
4.6.5 5/6 (*)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Array.prototype.push([item1[, item2[, ]]]) : int 3 [15.4.4.7][G]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
Array.prototype.reduce(callback : Function[, initialValue]) : any 5 [15.4.4.21][G]
1.5 0/7 (−)
1.8 7/7 (+)
5.5.6330 0/7 (−)
9.0.16440 7/7 (+)
11.0.16384 14/7 (+)
11.0.16412 7/7 (+)
7.02 0/7 (−)
8.0 2/7 (*)
9.52 0/7 (−)
10.53 7/7 (+)
12.15 5/7 (*)
4.6.5 7/7 (+)
531.22.7 7/7 (+)
3.19.17 7/7 (+)
Array.prototype.reduceRight(callback : Function[, initialValue]) : any 5 [15.4.4.22][G]
1.5 0/8 (−)
1.8 8/8 (+)
5.5.6330 0/8 (−)
9.0.16440 8/8 (+)
11.0.16384 16/8 (+)
11.0.16412 8/8 (+)
7.02 0/8 (−)
8.0 2/8 (*)
9.52 0/8 (−)
10.53 8/8 (+)
12.15 5/8 (*)
4.6.5 7/8 (*)
531.22.7 8/8 (+)
3.19.17 8/8 (+)
Array.prototype.reverse() : Array 1 [15.4.4.4][G]
1.5 4/4 (+)
5.5.6330 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 4/4 (+)
4.6.5 4/4 (+)
531.22.7 4/4 (+)
3.19.17 4/4 (+)
Array.prototype.shift() 3 [15.4.4.9][G]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
Array.prototype.slice(start : int[, end : int]) : Array 3 [15.4.4.10][G]
1.5 7/8 (*)
1.6 8/8 (+)
5.5.6330 8/8 (+)
11.0.16384 16/8 (+)
11.0.16412 8/8 (+)
7.02 7/8 (*)
9.52 8/8 (+)
4.6.5 8/8 (+)
531.22.7 8/8 (+)
3.19.17 8/8 (+)
Array.prototype.some(callback : Function[, thisValue]) : boolean 5 [15.4.4.17][G]
1.5 1/11 (*)
1.6 11/11 (+)
5.5.6330 1/11 (*)
9.0.16440 11/11 (+)
11.0.16384 22/11 (+)
11.0.16412 11/11 (+)
7.02 1/11 (*)
8.0 3/11 (*)
9.52 11/11 (+)
12.15 10/11 (*)
4.6.5 11/11 (+)
531.22.7 11/11 (+)
3.19.17 11/11 (+)
Array.prototype.sort([comparator : Function]) : Object 1 [15.4.4.5][G]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
Array.prototype.splice(start : int, deleteCount : int[, item1[, item2[, ]]]) : Array 3 [15.4.4.12][G]
1.5 5/6 (*)
1.6 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Array.prototype.toSource() : string
1.5 2/2 (+)
5.5.6330 0/2 (−)
11.0.16384 0/2 (−)
11.0.16412 0/2 (−)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
Array.prototype.toString() : string 1 [15.4.4.4][G]
1.5 3/5 (*)
10 5/5 (+)
5.5.6330 3/5 (*)
9.0.16440 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 3/5 (*)
10.53 5/5 (+)
4.6.5 3/5 (*)
531.22.7 3/5 (*)
3.19.17 5/5 (+)
Array.prototype.unshift() : number|int 3 [15.4.4.13][G]
1.5 5/5 (+)
5.5.6330 4/5 (*)
5.8.23141 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
Array.some(iterable, callback : Function) : boolean
1.5 0/10 (−)
1.6 9/10 (*)
10 10/10 (+)
5.5.6330 0/10 (−)
11.0.16384 0/10 (−)
11.0.16412 0/10 (−)
7.02 0/10 (−)
8.0 3/10 (*)
9.52 0/10 (−)
12.15 8/10 (*)
4.6.5 0/10 (−)
531.22.7 0/10 (−)
3.19.17 0/10 (−)
boolean 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
Boolean() 1 [15.6.1.1]
1.5 11/11 (+)
5.5.6330 11/11 (+)
11.0.16384 22/11 (+)
11.0.16412 11/11 (+)
7.02 11/11 (+)
4.6.5 11/11 (+)
531.22.7 11/11 (+)
3.19.17 11/11 (+)
Boolean.prototype : Boolean 1 [15.6.3.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Boolean.prototype.toSource() : string
1.5 1/3 (*)
5.5.6330 0/3 (−)
11.0.16384 0/3 (−)
11.0.16412 0/3 (−)
7.02 0/3 (−)
4.6.5 0/3 (−)
531.22.7 0/3 (−)
3.19.17 0/3 (−)
Boolean.prototype.toString() : string 1 [15.6.4.2]
1.5 4/4 (+)
5.5.6330 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 4/4 (+)
8.0 3/4 (*)
9.52 4/4 (+)
12.15 3/4 (*)
4.6.5 4/4 (+)
531.22.7 4/4 (+)
3.19.17 4/4 (+)
Boolean.prototype.valueOf() : boolean 1 [15.6.4.3]
1.5 4/4 (+)
5.5.6330 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 4/4 (+)
8.0 3/4 (*)
9.52 4/4 (+)
12.15 3/4 (*)
4.6.5 4/4 (+)
531.22.7 4/4 (+)
3.19.17 4/4 (+)
byte 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
char 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
class 4
const 4
1.5 2/2 (+)
5.5.6330 0/2 (−)
11.0.0 1/2 (*)
11.0.16384 2/2 (+)
11.0.16412 1/2 (*)
7.02 0/2 (−)
9.27 1/2 (*)
4.6.5 0/2 (−)
531.22.7 1/2 (*)
3.19.17 2/2 (+)
Date.now() 5 [15.9.4.4]
1.5 2/2 (+)
5.5.6330 0/2 (−)
9.0.16440 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
10.53 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Date.prototype : Date 1 [15.9.4.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Date.prototype.getFullYear() : number|int 1 [15.9.5.6]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getMilliseconds() : number|int 1 [15.9.5.20]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getUTCDate() : number|int 1 [15.9.5.11]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getUTCDay() : number|int 1 [15.9.5.13]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getUTCFullYear() : number|int 1 [15.9.5.7]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getUTCHours() : number|int 1 [15.9.5.14]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getUTCMilliseconds() : number|int 1 [15.9.5.21]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getUTCMinutes() : number|int 1 [15.9.5.17]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getUTCMonth() : number|int 1 [15.9.5.9]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getUTCSeconds() : number|int 1 [15.9.5.19]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.getVarDate()
1.5 0/1 (−)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
Date.prototype.setFullYear(year : Number|int[, month : Number|int[, date : Number|int]]) : number|int 1 [15.9.5.36]
1.5 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Date.prototype.setMilliseconds(Number|int) : number|int 1 [15.9.5.24]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.setUTCDate(Number|int) : number|int 1 [15.9.5.33]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.setUTCFullYear(year : Number|int[, month : Number|int[, date : Number|int]]) : number|int 1 [15.9.5.37]
1.5 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Date.prototype.setUTCHours(hours : Number|int[, minutes : Number|int[, seconds : Number|int[, ms : Number|int]]]) : number|int 1 [15.9.5.31]
1.5 7/7 (+)
5.5.6330 7/7 (+)
11.0.16384 14/7 (+)
11.0.16412 7/7 (+)
7.02 7/7 (+)
4.6.5 7/7 (+)
531.22.7 7/7 (+)
3.19.17 7/7 (+)
Date.prototype.setUTCMilliseconds(Number|int) : number|int 1 [15.9.5.25]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.setUTCMinutes(minutes : Number|int[, seconds : Number|int[, ms : Number|int]]) : number|int 1 [15.9.5.29]
1.5 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
Date.prototype.setUTCMonth(month : Number|int[, date : Number|int]) : number|int 1 [15.9.5.35]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
Date.prototype.setUTCSeconds(seconds : Number|int[, ms : Number|int]) : number|int 1 [15.9.5.27]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
! A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ECMAScript This impl.[14]
JavaScript JScript Opera KJS JSC V8
Date.prototype.toDateString() : string 3 [15.9.5.13]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Date.prototype.toGMTString() : string 1 [15.9.5.41]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Date.prototype.toISOString() : string 5 [15.9.5.43]
1.5 0/4 (−)
1.8.1 3/4 (*)
10 4/4 (+)
5.5.6330 0/4 (−)
9.0.16440 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 0/4 (−)
8.0 1/4 (*)
9.52 0/4 (−)
10.53 2/4 (*)
11.61 4/4 (+)
12.15 3/4 (*)
4.6.5 0/4 (−)
531.22.7 2/4 (*)
7533.18.5 3/4 (*)
3.19.17 4/4 (+)
Date.prototype.toJSON([key]) : string 5 [15.9.5.44]
1.5 0/6 (−)
1.8.1 4/6 (*)
10 6/6 (+)
5.5.6330 0/6 (−)
5.8.23141 3/6 (*)
9.0.16440 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 0/6 (−)
8.0 1/6 (*)
9.52 0/6 (−)
10.53 3/6 (*)
11.61 4/6 (*)
12.15 5/6 (*)
4.6.5 0/6 (−)
531.22.7 4/6 (*)
7533.18.5 5/6 (*)
3.19.17 6/6 (+)
Date.prototype.toLocaleDateString() : string 3
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Date.prototype.toLocaleFormat(format : String) : string
1.5 0/2 (−)
1.6 2/2 (+)
5.5.6330 0/2 (−)
11.0.16384 0/2 (−)
11.0.16412 0/2 (−)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
Date.prototype.toLocaleString() : string 1 [15.9.5.39]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Date.prototype.toLocaleTimeString() : string 3 [15.9.5.7]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Date.prototype.toSource() : string
1.5 2/2 (+)
5.5.6330 0/2 (−)
11.0.16384 0/2 (−)
11.0.16412 0/2 (−)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
Date.prototype.toString() : string 1 [15.9.5.2]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Date.prototype.toTimeString() : string 3 [15.9.5.4]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Date.prototype.toUTCString() : string 1 [15.9.5.40]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
debugger 5 [12.15]
decimal 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
decodeURI(String) : string 3 [15.1.3.1]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
8.0 2/3 (*)
9.52 3/3 (+)
12.15 2/3 (*)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
decodeURIComponent(String) : string 3 [15.1.3.2]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
8.0 2/3 (*)
9.52 3/3 (+)
12.15 2/3 (*)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
delete 1 [11.4.1]
1.5 4/4 (+)
5.5.6330 2/4 (*)
9.0.16440 3/4 (*)
10.0.16578 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 2/4 (*)
8.0 3/4 (*)
10.53 4/4 (+)
4.6.5 4/4 (+)
531.22.7 4/4 (+)
3.19.17 4/4 (+)
double 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
dowhile 3 [12.6.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
encodeURI(String) 3 [15.1.3.3]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
encodeURIComponent(String) : string 3 [15.1.3.4]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
enum 4
Enumerator()
1.5 0/1 (−)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
Error([message : String]) 3 [15.11]
1.5 3/3 (+)
5.5.6330 2/3 (*)
9.0.16440 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 1/3 (*)
8.0 2/3 (*)
9.52 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
error.description : string
1.5 0/1 (−)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
error.number : number|int
1.5 0/1 (−)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
Error.prototype.message : string 3 [15.11.4.3]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Error.prototype.name : string 3 [15.11.4.2]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
error.stack : string
1.5 1/1 (+)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
10.53 1/1 (+)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 1/1 (+)
expando
final 4
float 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
for each ([var] identifier in Object) E4X [12.3]
1.5 0/4 (−)
1.6 4/4 (+)
21 0/4 (−)
5.5.6330 0/4 (−)
11.0.16384 0/4 (−)
11.0.16412 0/4 (−)
7.02 0/4 (−)
4.6.5 0/4 (−)
531.22.7 0/4 (−)
3.19.17 0/4 (−)
function get identifier() : Function
function set identifier() : Function
Function([p1 : String[, p2 : String[, [, pn : String]]],] body : String) : Function 1 [15.3.1]
1.5 8/8 (+)
5.5.6330 8/8 (+)
11.0.16384 16/8 (+)
11.0.16412 8/8 (+)
7.02 8/8 (+)
8.0 6/8 (*)
9.52 8/8 (+)
12.15 6/8 (*)
4.6.5 8/8 (+)
531.22.7 8/8 (+)
3.19.17 8/8 (+)
function.arguments : arguments 1 [15.3.5.3]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
8.0 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
function.arguments.callee : Function
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
function.arguments.length : number|int
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
function.arity : number|int
1.5 1/1 (+)
10 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
function.caller : Function|null
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
9.62 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
function.length : number|int 1 [15.3.5.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
function.name : string
22 1/1 (+)
9.0.16440 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
12.15 1/1 (+)
3.17.6.14 1/1 (+)
function.prototype 1 [15.3.5.2]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Function.prototype : Function 1 [15.3.3.1]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Function.prototype.apply([thisArg : Object|undefined[, argArray : Array|arguments]]) 3 [15.3.4.3]
1.5 11/11 (+)
5.5.6330 10/11 (*)
9.0.16440 11/11 (+)
11.0.16384 22/11 (+)
11.0.16412 11/11 (+)
7.02 11/11 (+)
8.0 9/11 (*)
9.52 11/11 (+)
12.15 9/11 (*)
4.6.5 11/11 (+)
531.22.7 11/11 (+)
3.19.17 11/11 (+)
Function.prototype.arguments.caller : Function|null
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
Function.prototype.bind(thisArg[, arg1[, arg2, ]]) : Function 5 [15.3.4.5]
1.5 0/4 (−)
10 4/4 (+)
5.5.6330 0/4 (−)
9.0.16440 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 0/4 (−)
11.61 4/4 (+)
12.15 3/4 (*)
4.6.5 0/4 (−)
531.22.7 0/4 (−)
3.19.17 4/4 (+)
Function.prototype.call([thisArg : Object|undefined[, arg1[, arg2, ]]) 3 [15.3.4.4]
1.5 8/8 (+)
5.5.6330 8/8 (+)
11.0.16384 16/8 (+)
11.0.16412 8/8 (+)
7.02 8/8 (+)
8.0 7/8 (*)
9.52 8/8 (+)
12.15 7/8 (*)
4.6.5 8/8 (+)
531.22.7 8/8 (+)
3.19.17 8/8 (+)
Function.prototype.toSource() : string
1.5 2/2 (+)
5.5.6330 0/2 (−)
11.0.16384 0/2 (−)
11.0.16412 0/2 (−)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
! A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ECMAScript This impl.[14]
JavaScript JScript Opera KJS JSC V8
generator.close()
1.5 0/1 (−)
1.7 1/1 (+)
5.5.6330 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
generator.next()
1.5 0/1 (−)
1.7 1/1 (+)
5.5.6330 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
generator.send(expression)
1.5 0/1 (−)
1.7 1/1 (+)
5.5.6330 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
generator.throw(expression)
1.5 0/1 (−)
1.7 1/1 (+)
5.5.6330 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
GetObject()
1.5 0/1 (−)
5.5.6330 1/1 (+)
9.0.16440 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
Global object 1 [15.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
hide 4
identifier : type 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
if () { function f() { }; }
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
import 4
Infinity : number 1 [15.1.1.1]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
instanceof 3 [11.8.6]
1.5 2/3 (*)
1.6 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
8.0 1/3 (*)
9.52 3/3 (+)
4.6.5 2/3 (*)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
int 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
interface 4
internal 4
isFinite() : boolean 1 [15.1.2.5]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
Iterator(Object) : Iterator
1.5 0/4 (−)
1.7 4/4 (+)
5.5.6330 0/4 (−)
11.0.16384 0/4 (−)
11.0.16412 0/4 (−)
7.02 0/4 (−)
4.6.5 0/4 (−)
531.22.7 0/4 (−)
3.19.17 0/4 (−)
JSON.parse(text : String[,reviver : Function]) : Object 5 [15.12.2]
1.5 0/10 (−)
1.8.1 9/10 (*)
10 10/10 (+)
5.5.6330 0/10 (−)
5.8.23141 10/10 (+)
11.0.16384 20/10 (+)
11.0.16412 10/10 (+)
7.02 0/10 (−)
10.53 7/10 (*)
12.15 6/10 (*)
4.6.5 0/10 (−)
531.22.7 9/10 (*)
3.19.17 10/10 (+)
JSON.stringify(value[, replacer[, space]]) : string 5 [15.12.3]
1.5 0/3 (−)
1.8.1 3/3 (+)
5.5.6330 0/3 (−)
5.8.23141 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 0/3 (−)
10.53 3/3 (+)
4.6.5 0/3 (−)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
label: 3 [12.12]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
let (assignment[, ]) { [statements] }
let (assignment[, ]) expression
let assignment[, ]
long 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
Math.atan2(y : Number, x : Number) : number 1 [15.8.2.5]
11.0.0 24/24 (+)
11.0.16384 48/24 (+)
11.0.17278 24/24 (+)
Math.max(a : Number, b : Number) : number 1 [15.8.2.11]
1.5 9/9 (+)
5.5.6330 9/9 (+)
11.0.16384 18/9 (+)
11.0.16412 9/9 (+)
7.02 9/9 (+)
4.6.5 9/9 (+)
531.22.7 9/9 (+)
3.19.17 9/9 (+)
Math.max(a : Number, b : Number, ) : number 3 [15.8.2.11]
1.5 7/7 (+)
5.5.6330 7/7 (+)
11.0.16384 14/7 (+)
11.0.16412 7/7 (+)
7.02 7/7 (+)
4.6.5 7/7 (+)
531.22.7 7/7 (+)
3.19.17 7/7 (+)
Math.min(a : Number, b : Number) : number 1 [15.8.2.12]
1.5 9/9 (+)
5.5.6330 9/9 (+)
11.0.16384 18/9 (+)
11.0.16412 9/9 (+)
7.02 9/9 (+)
4.6.5 9/9 (+)
531.22.7 9/9 (+)
3.19.17 9/9 (+)
Math.min(a : Number, b : Number, ) : number 3 [15.8.2.12]
1.5 7/7 (+)
5.5.6330 7/7 (+)
11.0.16384 14/7 (+)
11.0.16412 7/7 (+)
7.02 7/7 (+)
4.6.5 7/7 (+)
531.22.7 7/7 (+)
3.19.17 7/7 (+)
Math.sign(x : Number) : number 6 [20.2.2.28]
11.0.0 0/6 (−)
11.0.16384 0/6 (−)
11.0.17278 0/6 (−)
NaN : number 1 [15.1.1.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Number([expression]) : number 1 [15.7.1]
1.5 15/15 (+)
5.5.6330 15/15 (+)
11.0.16384 30/15 (+)
11.0.16412 15/15 (+)
7.02 15/15 (+)
4.6.5 15/15 (+)
531.22.7 15/15 (+)
3.19.17 15/15 (+)
Number.isNaN(value) : boolean 6 [20.1.2.4]
11.0.0 0/3 (−)
11.0.16384 0/3 (−)
11.0.17278 0/3 (−)
Number.MAX_VALUE : number 1 [15.7.3.2]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Number.MIN_VALUE : number 1 [15.7.3.3]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Number.NaN : number 1 [15.7.3.4]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Number.NEGATIVE_INFINITY : number 1 [15.7.3.5]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Number.POSITIVE_INFINITY : number 1 [15.7.3.6]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Number.prototype : Number 1 [15.7.3.1]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Number.prototype.constructor 5.1 [15.7.4.1]
21 1/1 (+)
9.0.16440 0/1 (−)
9.0.16496 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
12.15 1/1 (+)
3.19.17 1/1 (+)
Number.prototype.toFixed(fractionDigits : Number) 5.1 [15.7.4.5]
21 1/1 (+)
9.0.16440 0/1 (−)
9.0.16496 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
12.15 1/1 (+)
3.19.17 1/1 (+)
Number.prototype.toPrecision(precision: Number) 5.1 [15.7.4.7]
21 1/1 (+)
9.0.16440 0/1 (−)
9.0.16496 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
12.15 1/1 (+)
3.19.17 1/1 (+)
Number.prototype.toString() : string 1 [15.7.4.2]
1.5 9/11 (*)
10 11/11 (+)
5.5.6330 9/11 (*)
9.0.16440 11/11 (+)
11.0.16384 22/11 (+)
11.0.16412 11/11 (+)
7.02 9/11 (*)
8.0 8/11 (*)
9.52 9/11 (*)
10.53 11/11 (+)
12.15 8/11 (*)
4.6.5 11/11 (+)
531.22.7 11/11 (+)
3.19.17 11/11 (+)
Object([expression]) : Object 1 [15.2.1]
1.5 8/8 (+)
5.5.6330 8/8 (+)
11.0.16384 16/8 (+)
11.0.16412 8/8 (+)
7.02 8/8 (+)
4.6.5 8/8 (+)
531.22.7 8/8 (+)
3.19.17 8/8 (+)
object.__iterator__
object.__noSuchMethod__ : Function
1.5 1/1 (+)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
8.0 1/1 (+)
9.52 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
Object.create(o : Object[, properties]) 5 [15.2.3.5]
1.5 0/5 (−)
10 5/5 (+)
5.5.6330 0/5 (−)
9.0.16440 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 0/5 (−)
8.0 1/5 (*)
9.52 0/5 (−)
11.61 5/5 (+)
12.15 4/5 (*)
4.6.5 0/5 (−)
531.22.7 0/5 (−)
7533.18.5 5/5 (+)
3.19.17 5/5 (+)
Object.defineProperties(o : Object, properties : Object) : Object 5 [15.2.3.7]
1.5 0/17 (−)
10 17/17 (+)
5.5.6330 0/17 (−)
9.0.16440 17/17 (+)
11.0.16384 34/17 (+)
11.0.16412 17/17 (+)
7.02 0/17 (−)
8.0 3/17 (*)
9.52 0/17 (−)
11.61 17/17 (+)
12.15 7/17 (*)
4.6.5 0/17 (−)
531.22.7 0/17 (−)
7533.18.5 17/17 (+)
3.19.17 17/17 (+)
Object.defineProperty(o : Object, property : String, attr : Object) : Object 5 [15.2.3.6]
1.5 0/17 (−)
10 17/17 (+)
5.5.6330 0/17 (−)
5.8.23141 9/17 (*)
9.0.16440 17/17 (+)
11.0.16384 34/17 (+)
11.0.16412 17/17 (+)
7.02 0/17 (−)
8.0 3/17 (*)
9.52 0/17 (−)
11.61 17/17 (+)
12.15 7/17 (*)
4.6.5 0/17 (−)
531.22.7 0/17 (−)
7533.18.5 17/17 (+)
3.19.17 17/17 (+)
Object.freeze(o : Object) : Object 5 [15.2.3.9]
1.5 0/7 (−)
10 7/7 (+)
5.5.6330 0/7 (−)
9.0.16440 7/7 (+)
11.0.16384 14/7 (+)
11.0.16412 7/7 (+)
7.02 0/7 (−)
8.0 2/7 (*)
9.52 0/7 (−)
11.61 7/7 (+)
12.15 5/7 (*)
4.6.5 0/7 (−)
531.22.7 0/7 (−)
7534.52.7 7/7 (+)
3.19.17 7/7 (+)
! A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ECMAScript This impl.[14]
JavaScript JScript Opera KJS JSC V8
Object.getOwnPropertyDescriptor(obj : Object, property : String) : Object 5 [15.2.3.3]
1.5 0/9 (−)
10 9/9 (+)
5.5.6330 0/9 (−)
5.8.23141 2/9 (*)
9.0.16440 9/9 (+)
11.0.16384 18/9 (+)
11.0.16412 9/9 (+)
7.02 0/9 (−)
8.0 1/9 (*)
9.52 0/9 (−)
11.61 9/9 (+)
12.15 8/9 (*)
4.6.5 0/9 (−)
531.22.7 0/9 (−)
7533.18.5 9/9 (+)
3.19.17 9/9 (+)
Object.getOwnPropertyNames(o : Object) : Array 5 [15.2.3.4]
1.5 0/4 (−)
10 4/4 (+)
5.5.6330 0/4 (−)
9.0.16440 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 0/4 (−)
11.61 4/4 (+)
12.15 3/4 (*)
4.6.5 0/4 (−)
531.22.7 0/4 (−)
7533.18.5 4/4 (+)
3.19.17 4/4 (+)
Object.getPrototypeOf(o : Object) : Object 5 [15.2.3.2]
1.5 0/3 (−)
1.8.1 2/3 (*)
10 3/3 (+)
5.5.6330 0/3 (−)
9.0.16440 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 0/3 (−)
11.61 3/3 (+)
12.15 2/3 (*)
4.6.5 0/3 (−)
531.22.7 0/3 (−)
7533.18.5 3/3 (+)
3.19.17 3/3 (+)
Object.isExtensible(o : Object) : boolean 5 [15.2.3.13]
1.5 0/4 (−)
10 4/4 (+)
5.5.6330 0/4 (−)
9.0.16440 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 0/4 (−)
8.0 1/4 (*)
9.52 0/4 (−)
11.61 4/4 (+)
12.15 3/4 (*)
4.6.5 0/4 (−)
531.22.7 0/4 (−)
7534.52.7 4/4 (+)
3.19.17 4/4 (+)
Object.isFrozen(o : Object) : boolean 5 [15.2.3.12]
1.5 0/4 (−)
10 4/4 (+)
5.5.6330 0/4 (−)
9.0.16440 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 0/4 (−)
8.0 2/4 (*)
9.52 0/4 (−)
11.61 4/4 (+)
12.15 3/4 (*)
4.6.5 0/4 (−)
531.22.7 0/4 (−)
7534.52.7 4/4 (+)
3.19.17 4/4 (+)
Object.isSealed(o : Object) : boolean 5 [15.2.3.11]
1.5 0/5 (−)
10 5/5 (+)
5.5.6330 0/5 (−)
9.0.16440 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 0/5 (−)
8.0 2/5 (*)
9.52 0/5 (−)
11.61 5/5 (+)
12.15 4/5 (*)
4.6.5 0/5 (−)
531.22.7 0/5 (−)
7534.52.7 5/5 (+)
3.19.17 5/5 (+)
Object.keys(o : Object) : Array 5 [15.2.3.14]
1.5 0/4 (−)
10 4/4 (+)
5.5.6330 0/4 (−)
9.0.16440 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 0/4 (−)
8.0 1/4 (*)
9.52 0/4 (−)
11.61 4/4 (+)
12.15 3/4 (*)
4.6.5 0/4 (−)
531.22.7 0/4 (−)
7533.18.5 4/4 (+)
3.19.17 4/4 (+)
Object.preventExtensions(o : Object) : Object 5 [15.2.3.10]
1.5 0/5 (−)
10 5/5 (+)
5.5.6330 0/5 (−)
9.0.16440 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 0/5 (−)
11.61 5/5 (+)
12.15 3/5 (*)
4.6.5 0/5 (−)
531.22.7 0/5 (−)
7534.52.7 5/5 (+)
3.19.17 5/5 (+)
Object.prototype : Object 1 [15.2.3.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
Object.prototype.__defineGetter__(propertyName : String, getter : Function)
1.5 2/2 (+)
5.5.6330 0/2 (−)
11.0.0 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
8.0 1/2 (*)
9.52 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Object.prototype.__defineSetter__(propertyName : String, setter : Function)
1.5 2/2 (+)
5.5.6330 0/2 (−)
11.0.0 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
8.0 1/2 (*)
9.52 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Object.prototype.__proto__
1.5 2/2 (+)
5.5.6330 0/2 (−)
11.0.0 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
10.53 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Object.prototype.constructor : Function 1 [15.2.4.1]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
Object.prototype.hasOwnProperty(propertyName : String) : boolean 3 [15.2.4.5]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
Object.prototype.isPrototypeOf(o : Object) : boolean 3 [15.2.4.6]
1.5 5/6 (*)
10 6/6 (+)
5.5.6330 5/6 (*)
9.0.16440 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 5/6 (*)
11.61 6/6 (+)
4.6.5 5/6 (*)
531.22.7 5/6 (*)
7533.18.5 6/6 (+)
3.19.17 6/6 (+)
Object.prototype.propertyIsEnumerable(propertyName : String) : boolean 3 [15.2.4.7]
1.5 4/4 (+)
5.5.6330 4/4 (+)
5.6.6626 2/4 (*)
5.7.22589 4/4 (+)
11.0.16384 8/4 (+)
11.0.16412 4/4 (+)
7.02 4/4 (+)
4.6.5 4/4 (+)
531.22.7 4/4 (+)
3.19.17 4/4 (+)
Object.prototype.toSource() : string
1.5 2/2 (+)
5.5.6330 0/2 (−)
11.0.16384 0/2 (−)
11.0.16412 0/2 (−)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
Object.seal(obj : Object) : Object 5 [15.2.3.8]
1.5 0/6 (−)
10 6/6 (+)
5.5.6330 0/6 (−)
9.0.16440 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 0/6 (−)
8.0 1/6 (*)
9.52 0/6 (−)
11.61 6/6 (+)
12.15 4/6 (*)
4.6.5 0/6 (−)
531.22.7 0/6 (−)
7534.52.7 6/6 (+)
3.19.17 6/6 (+)
override 4
package 4
print(string)
1.5 1/1 (+)
5.5.6330 0/1 (−)
9.0.16440 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
private 4
protected 4
public 4
reArray.index 3 [15.10.6.2]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
reArray.input 3 [15.10.6.2]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
RegExp([, "[g][i]"]) : RegExp
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
RegExp([, "[g][i][m]"]) : RegExp 3 [15.10.4.1]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
RegExp.$integer
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
regExp.global 3 [15.10.7.2]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
regExp.ignoreCase 3 [15.10.7.3]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
regExp.multiline 3 [15.10.7.4]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
RegExp.prototype.compile()
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
RegExp.prototype.exec() 3 [15.10.6.2]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
regExp.source 3 [15.10.7.1]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
RegExp{["$&"] | .lastMatch}
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
10.53 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
RegExp{["$'"] | .rightContext}
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
8.0 1/2 (*)
10.53 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
RegExp{["$+"] | .lastParen}
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
10.53 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
RegExp{["$`"] | .leftContext}
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
8.0 1/2 (*)
10.53 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
sbyte 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
ScriptEngine()
1.5 0/2 (−)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
ScriptEngineBuildVersion()
1.5 0/2 (−)
5.5.6330 2/2 (+)
11.0.0 1/2 (*)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
ScriptEngineMajorVersion()
1.5 0/2 (−)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
ScriptEngineMinorVersion()
1.5 0/2 (−)
5.5.6330 2/2 (+)
9.0.16440 1/2 (*)
11.0.16384 2/2 (+)
11.0.16412 1/2 (*)
7.02 0/2 (−)
4.6.5 0/2 (−)
531.22.7 0/2 (−)
3.19.17 0/2 (−)
Set 6?
21 1/1 (+)
9.0.16440 0/1 (−)
11.0.0 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
12.15 0/1 (−)
3.19.17 0/1 (−)
short 4
1.5 0/1 (−)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
String.fromCharCode(Number|uint) 1 [15.5.3.2]
1.5 5/5 (+)
5.5.6330 4/5 (*)
9.0.16440 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
String.prototype 1 [15.5.3.1]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
String.prototype.charCodeAt(Number|uint) 1 [15.5.4.5][G]
1.5 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
String.prototype.concat() 3 [15.5.4.6][G]
1.5 5/6 (*)
1.8 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
! A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ECMAScript This impl.[14]
JavaScript JScript Opera KJS JSC V8
String.prototype.localeCompare(string) 3 [15.5.4.9][G]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
String.prototype.match(RegExp) 3 [15.5.4.10][G]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
String.prototype.replace(string|RegExp, Function) 3 [15.5.4.11][G]
1.5 3/3 (+)
5.5.6330 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 3/3 (+)
4.6.5 3/3 (+)
531.22.7 3/3 (+)
3.19.17 3/3 (+)
String.prototype.replace(string|RegExp, string) 3 [15.5.4.11][G]
1.5 6/6 (+)
5.5.6330 6/6 (+)
11.0.16384 12/6 (+)
11.0.16412 6/6 (+)
7.02 6/6 (+)
4.6.5 6/6 (+)
531.22.7 6/6 (+)
3.19.17 6/6 (+)
String.prototype.search(RegExp) 3 [15.5.4.12][G]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
String.prototype.slice() 3 [15.5.4.13][G]
1.5 9/10 (*)
1.8 10/10 (+)
5.5.6330 9/10 (*)
9.0.16440 10/10 (+)
11.0.16384 20/10 (+)
11.0.16412 10/10 (+)
7.02 10/10 (+)
4.6.5 10/10 (+)
531.22.7 10/10 (+)
3.19.17 10/10 (+)
String.prototype.split(separator : String|RegExp[, limit : Number|int]) 3 [15.5.4.14][G]
1.5 7/7 (+)
5.5.6330 7/7 (+)
11.0.16384 14/7 (+)
11.0.16412 7/7 (+)
7.02 7/7 (+)
4.6.5 7/7 (+)
531.22.7 7/7 (+)
3.19.17 7/7 (+)
String.prototype.split(String) 1 [15.5.4.8][G]
1.5 5/5 (+)
5.5.6330 5/5 (+)
11.0.16384 10/5 (+)
11.0.16412 5/5 (+)
7.02 5/5 (+)
4.6.5 5/5 (+)
531.22.7 5/5 (+)
3.19.17 5/5 (+)
String.prototype.substr(start[, length]) 3 [B.2.3][G]
1.5 8/8 (+)
5.5.6330 6/8 (*)
9.0.16440 8/8 (+)
11.0.16384 16/8 (+)
11.0.16412 8/8 (+)
7.02 8/8 (+)
4.6.5 8/8 (+)
531.22.7 8/8 (+)
3.19.17 8/8 (+)
String.prototype.trim() : string 5 [15.5.4.20][G]
1.5 0/3 (−)
1.8.1 1/3 (*)
10 3/3 (+)
5.5.6330 0/3 (−)
9.0.16440 3/3 (+)
11.0.16384 6/3 (+)
11.0.16412 3/3 (+)
7.02 0/3 (−)
10.53 3/3 (+)
4.6.5 0/3 (−)
531.22.7 0/3 (−)
7533.18.5 1/3 (*)
7534.52.7 3/3 (+)
3.19.17 3/3 (+)
string[Number|uint] 5 [15.5.5.2]
1.5 1/1 (+)
5.5.6330 0/1 (−)
5.8.23141 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
9.27 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
switch (expression) { case value: statements; [break;] default: statements; [break;] } 3 [12.11]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
throw expression 3 [12.13]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
8.0 0/1 (−)
9.52 1/1 (+)
12.15 0/1 (−)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
try { [statements}
catch (identifier) { 
[statements}
3 [12.14]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
8.0 1/2 (*)
9.52 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
try { [statements] }
catch (identifier) { 
[statements] }
finally { 
[statements] }
3 [12.14]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 0/2 (−)
9.52 2/2 (+)
10.53 0/2 (−)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
try { [statements] }
catch (identifier if expression) { 
[statements}
[catch (identifier) { [statements] }]
[finally { [statements] }]
1.5 1/1 (+)
5.5.6330 0/1 (−)
11.0.16384 0/1 (−)
11.0.16412 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
try { [statements] }
finally { 
[statements] }
3 [12.15]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
9.52 1/1 (+)
10.53 0/1 (−)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
typeof expression 1 [11.4.3]
1.5 9/9 (+)
5.5.6330 9/9 (+)
11.0.16384 18/9 (+)
11.0.16412 9/9 (+)
7.02 9/9 (+)
4.6.5 9/9 (+)
531.22.7 9/9 (+)
3.19.17 9/9 (+)
undefined 3 [15.1.1.3]
1.5 2/2 (+)
5.5.6330 2/2 (+)
11.0.16384 4/2 (+)
11.0.16412 2/2 (+)
7.02 2/2 (+)
4.6.5 2/2 (+)
531.22.7 2/2 (+)
3.19.17 2/2 (+)
var \uhhhh 3 [7.6]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
var π 3 [7.6]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
VBArray.prototype.dimensions()
1.5 0/1 (−)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
VBArray.prototype.getItem()
1.5 0/1 (−)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
VBArray.prototype.lbound()
1.5 0/1 (−)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
window
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
window.setInterval(functionReference, msec[, arg1[, , argN]])
window.setInterval(string, msec)
window.setTimeout(functionReference, msec[, arg1[, , argN]])
window.setTimeout(string, msec)
yield expression
1.5 0/1 (−)
1.7 1/1 (+)
5.5.6330 0/1 (−)
7.02 0/1 (−)
4.6.5 0/1 (−)
531.22.7 0/1 (−)
3.19.17 0/1 (−)
{propertyName: propertyValue, } : Object 3 [11.1.5]
1.5 1/1 (+)
5.5.6330 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
{propertyName: propertyValue, } : Object 5 [11.1.5]
1.5 1/1 (+)
5.5.6330 0/1 (−)
5.8.23141 1/1 (+)
11.0.16384 2/1 (+)
11.0.16412 1/1 (+)
7.02 0/1 (−)
9.52 1/1 (+)
4.6.5 1/1 (+)
531.22.7 1/1 (+)
3.19.17 1/1 (+)
1 Lahn, Thomas (2012-03-12). Features von ECMAScript-basierten Programmiersprachen – Eine vergleichende Analyse (“Features of ECMAScript-based programming languages – A comparative analysis”) (revised). BSc SUPSI in Computer Science. Fernfachhochschule Schweiz (Swiss Distance University of Applied Sciences).
2 Ecma International (2011‐06). Standard ECMA‒262. ECMAScript Language Specification. 5.1 Edition. (retrieved 2011‐08‐27)
3 Mozilla Developer Network and individual contributors (2014-10-18). A re-introduction to JavaScript (JS tutorial). (retrieved 2014‐10‐18)
4 Microsoft Corporation (2014). MSDN Library: JScript (ECMAScript3). (retrieved 2014‐10‐18)
5 Microsoft Corporation (2014). MSDN Library: JavaScript Language Reference. (retrieved 2014‐10‐18)
6 Opera Software ASA (2013). Opera browser: ECMAScript support in Opera Presto 2.12. (retrieved 2014‐10‐18)
7 The KDE developers (2013). KDE API Reference: KDE JavaScript/EcmaScript Engine. (retrieved 2014‐10‐18)
8 Apple Inc. (2014). The WebKit Open Source Project: JavaScriptCore. (retrieved 2014‐10‐18)
9 Google Inc. (2014). Google Developers: Chrome V8. (retrieved 2014‐10‐18)
10 Ecma International (1997‐06). ECMAScript Language Specification (1st edition) (retrieved 2012‐12‐10)
11 See W3C DOM Level 2 HTML for an example of language binding.
12 The distinction between core language and browser API was not made in Netscape JavaScript before version 1.4. JavaScript was designed to be the programming language for scripts in Netscape Navigator, therefore the Netscape API was part of JavaScript. This changed when JavaScript needed to work server-side in Netscape Enterprise Server as well.
13 Smith, Garrett and individual contributors (2010-10-08). comp.lang.javascript FAQ. Version 32.2. (updated by: Lahn, Thomas and individual contributors. FAQ for comp.lang.javascript)
14
  • This user agent:

    Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

  • This ECMAScript implementation cannot be detected directly. Inference suggests it is

    Apple JavaScriptCore 537.36

    but I could be wrong.
G This method is intentionally specified or implemented as generic; it does not require that its this value be an object of the same type. Therefore, it can be transferred to other kinds of objects for use as a method.[2]
V At least the version of the implementation that introduced the feature needs to be declared in order to use this feature (without syntax error).

Version Information

↑ Table of contents

Timeline

↑ Version information
Timeline of ECMAScript and its implementations
Timeline of ECMAScript and its implementations (click to enlarge)

Netscape/Mozilla JavaScript1)

↑ Version information
JavaScript versions and the user agents that support them
JavaScript 1.0 1.1 1.2 1.3 1.4 2.0 (historic) 1.5 1.6 1.7 1.8 1.8.1 1.8.2 1.8.5 5 6 7 8 10 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1) Version information from the JavaScript Guides and References; release dates from about: documents, mozilla.org and Wikipedia.
Implementations
Netscape Mocha 1.0 1.1
Netscape/Mozilla SpiderMonkey (in C)   1.2 1.3 1.4   1.5 1.6 1.7 1.8 1.8.1 (TraceMonkey) 1.8.2 1.8.5 (JägerMonkey) 5 6 7 8 10 12 13 15 16 17 18 (IonMonkey) 19 20 (Baseline) 21 22 (OdinMonkey) 23 24 25 26 27 28
Mozilla Epimetheus (in C++) + (2002)
Netscape/Mozilla Rhino (in Java) 1.4R3 (1999)   1.5R11.5R5 (2000/2004) 1.6R11.6R7 (2004/2007) 1.7R11.7R2 (2008/2009) 1.7R31.7R4 (2011‐06‐03/ 2012‐06‐18)
Layout Engines
Netscape/Mozilla NGLayout/Gecko 0.6–1.8a6 1.8b1–1.8 1.8.1 1.9 1.9.1 1.9.2 1.9.3, 2.0 5.0 6.0 7.0 8.0–9.0 10.0–11.0 12.0 13.0–14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22 23 24 25 26 27 28
Web Browsers
Netscape Navigator/Browser  Navigator 2.0  (1996) 3.0  (1996) 4.0–4.05  (1997) 4.06–4.8  (1998/2002)   Navigator 6.x – Browser 8.1.3 
(2000/2007)
- Navigator 9.0b1 – 9.0.0.6 
(2007/2008)
Mozilla Phoenix/Firebird/Firefox Phoenix 0.1 – Firefox 1.0.8 
(2002/2006)
Firefox 1.5a1–1.5.0.12 
(2005/2007)
2.0b1–2.0.0.18 
(2006/2008)
3.0a2–3.0.19 
(2007/2010)
3.1a1–3.5.19 
(2008/2011)
3.6a1–3.6.19 
(2010/2011)
3.7a1–4.0.1 
(2010/2011)
5.0–5.0.1 
(2011)

(2011)

(2011)
8–9 
(2011/2012)
10–11 
(2012)
12 
(2012)
13–14 
(2012)
15 
(2012)
16 
(2012)
17
(2012)
18 
(2013)
19 
(2013)
20.0–20.0.1  (2013) 21  (2013) 22  (2013) 23.0–23.0.1  (2013‐08‐16) 24.0–24.4.0esr (2013‐09‐17/ 2014‐03‐18) 25  (2013) 26 
(2013)
27 
(2014‐02)
28
(2014‐03‐18)
Other Clients
Mozilla Application Suite  0.6–1.8a6–1.7.13 
(2000/2006)
1.8b1 
(2005)
Mozilla SeaMonkey 1.0a–1.0.9 
(2005/2007)
1.1a–1.1.19 
(2006/2010)
  2.0a1–2.0.12
(2008‐10‐05/ 2011‐03‐02)
  2.1a1–2.1
(2010‐05‐18/ 2011‐06‐10)
2.2b1–2.2
(2011‐06‐22/ 2011‐07‐07)
Mozilla Thunderbird 0.1–1.0.8 
(2003/2006)
1.1a1–1.5.0.14 
(2005/2007)
2.0a1–2.0.0.24 
(2006/2010)
3.0a1, 3.0a2 
(2008)
3.0a3–3.0.11 
(2008/2010)
3.1a1–3.1.12
(2010‐02‐03/ 2011‐08‐16)
3.3a1–3.3a3
(2010‐11‐23/ 2011‐01‐20)
5.0b1–5.0
(2011‐06‐02/ 2011‐06‐28)
Web Servers
Netscape Enterprise Server/
iPlanet Web Server/
Sun ONE Web Server/
Sun Java System Web Server
2.0 3.0 4.0/4.1 (1999)   6.0
NihonSoft firecat   1.0.x Beta4 (2008)

Microsoft JScript2)

↑ Version information
JScript versions and the user agents that support them
JScript 1.0 2.0 3.0 3.1.3510 4.0 5.0 5.1.5010 5.5.6330 5.6.6626–5.6.8819 5.7.5730 5.7.17184 5.8.18241   9.0.16421 (Chakra)   10.0.16578 11
JScript .NET   7.0 (.NET) 7.1 (.NET) 8.0   10.0
2) Version information from MSDN Library; release dates from MSDN Library, blooberry.com and Wikipedia, end-of-life (†) dates from support.microsoft.com.
Note that the language version supported by an environment may be greater than specified here due to security updates. When in doubt, use the script engine test above to determine the true version.
Implementations
Microsoft .NET Framework 1.0 (2002‐01) 1.1 (2003) 2.0–3.5 SP1 (2005/2008)   4.0 (2010‐04‐12)
Web Browsers
Microsoft Internet Explorer 3.0 
(1996‐08 CE)
4.0
(1997‐09)
4.01
(1997‐11)
5.0 
(1999‐03/ 2005‐06)
5.01 5.5 
(2000‐07/ 2005‐12)
6.0 for Win9x/NT/XP 
(2001‐10)
7.0 for WinXP+
(2006‐10)
8.0 beta 1 for WinXP SP2+
(2008‐03)
8.0 beta 2 for WinXP SP2+
(2008‐08)
  9.0 for Vista SP2+ / Server 2008
(2011‐03‐14)
  10 for Windows 8 (2012‐08) 11.0.16518 (2013‐10)
Web Servers
Microsoft Internet Information Server/Services 4.0 
(1998/2002)>
5.1–6.0 
(2000/2005)
7.0
(2008)
7.5
(2009)
Operating Systems
Microsoft Windows NT 4.0 
(1996)
2000 
(2000‐02/ 2005‐06)
Me 
(2000‐09/ 2005‐12)
XP
(2001‐10)
Vista
(2008‐03)
7
(2009‐10)
  7   8 (2012‐10‐26) 8.1 (2013‐10‐17)
Microsoft Windows Server 2003
(2003‐04)
2008
(2008‐02)
2008 R2
(2009‐09)
  2008   2008 R2
IDEs
Microsoft Visual Studio 6.0 
(1998/2005)
.NET 7.0
(2002)
.NET 7.1
(2003)
8.0–9.0
(2005/2008)
10.0
(2010‐04‐12)

Google V8 JavaScript

↑ Version information
V8 versions and the user agents that support them
V8 0.3 0.4 1.2 1.3 2.0 2.1 2.2 2.3 2.4 2.5 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23
Google Chrome 0.2–1.0
(2008 CE)
2.0
(2009)
3.0
(2009)
4.0.249–4.1.249
(2010)
5.0.307
(2010)
5.0.342–5.0.375
(2010)
6
(2010)
7
(2010)
8
(2010)
9
(2011)
10
(2011)
11
(2011)
12
(2011)
13
(2011)
14
(2011)
15
(2011)
16
(2011)
17
(2012)
18 (2012) 19 (2012) 20 (2012) 21 (2012) 22 (2012) 23 (2012) 24 (2013) 25 (2013) 26 (2013) 27 (2013) 28 (2013) 29 (2013) 30 (2013) 31 (2013) 32 (2014‐01) 33 (2014‐02)

Apple JavaScriptCore

↑ Version information
Apple JavaScriptCore versions and the user agents that support them
JSC 48–312.6 412–419.13 522–523 525.13–525.20 525.19–525.21 525.27–525.28 530.17–530.19 531.9 531.21 531.22.7 533.16–533.19 533.16–534.48 534.51–534.53 534.54–534.59 536.25–537.73 537.71–537.73
Apple Safari 0.8–1.3.2 
(2003/2006 CE)
2.0.x 
(2005/2006)
3.0.x 
(2007)
3.1–3.1.1 
(2008)
3.1.2–3.2 
(2008)
3.2.1–3.2.3 
(2008/2009)
4.0–4.0.2 
(2009)
4.0.3 
(2009)
4.0.4 
(2009)
4.0.5 
(2010)
4.1.x 
(2010)
5.0–5.1 
(2010/2011)
5.1.1–5.1.3 
(2011/2012)
5.1.4–5.1.10 
(2012/2013)
6.0–6.1.1
(2012‐07‐25/ 2013‐12‐16)
7.0–7.0.1
(2013‐10‐22/ 2013‐12‐16)

Opera ECMAScript

↑ Version information
Opera ECMAScript versions and the user agents that support them
Opera ECMAScript 3.60 5.02 6.06 7.02 8.0 9.27 9.52 9.62 9.64 10.10 10.50 10.51 10.54 10.63 11.50 11.60–12.15
Implementations
Linear A Linear B Futhark Carakan 
Layout Engines
Elektra Presto 1.0 2.0 2.1 2.1.1 2.4 2.5 2.6 2.7 
Web Browsers
Opera Browser 3.60 
(1999‐05)
5.02 
(2000‐12)
6.06
(2001‐11)
7.02
(2003/2005)
8.0
(2005/2008)
9.27
(2008)
9.52
(2008)
9.62
(2008/2009)
9.64
(2009)
10.10
(2009/2010)
10.50
(2010‐03‐02)
10.51
(2010‐03‐22)
10.54
(2010‐06‐21)
10.63
(2010‐10‐12)
11.50
(2011‐06‐28)
11.60–12.15
(2011‐12‐06/ 2013‐04‐04)

Macromedia/Adobe ActionScript3)

↑ Version information
ActionScript versions and the user agents that support them
ActionScript 1.0 2.0 3.0
3) Version information from Macromedia and Wikipedia
Macromedia Flash 5.0–MX (2000/2003) 7.1.1 (MX 2004) (2004/2006)
Macromedia/Adobe Flash Player 2–6 (1997/2002‐03) 7–8 (2003‐09/2005‐08) 9 (2006-06)—
Adobe Flex   2.0 (2006-06)—

ECMAScript Compatibility

↑ Version information

The following table provides a rough overview of ECMAScript Editions and relations between them and versions of their implementations. Note that conforming implementations are allowed to extend ECMAScript, so these are by no means 1:n relations; instead, this is the result of a comparison of most common language features.

See Language Features above for details.

ECMAScript editions and versions of implementations that implement them best
ECMAScript Edition 1 2 3 4
(Working Draft; abandoned)
5–5.1 6
("Harmony", Working Draft)
1997‐06 1998‐08 1999‐12/2000‐03 2000‐08/2003‐06/2008 2009‐04/2009/12 since 2009‐04
ActionScript 2.0 (2004/2006) 3.0 (2006)—
JavaScript 1.1, 1.3, 1.4 1.5–1.8.1.x 2.0 1.8.1–14 (2008‐05/2012‐07‐17) 15 (2012‐08‐28)—
JavaScriptCore 48–? ? ?   528–537.70 (2009‐08/2013) 537.71 (2009‐08)—
JScript 1.0 (1996) 5.5–5.7 (2000/2008‐03)   5.8 (2008‐08)—
JScript .NET   7.0–10.0 (2000/2010)
KJS 1.0   4.6.5–
Opera 6.0 (2001-12)   11.60–12.15 (2011‐12‐06/2013‐04‐04)
V8 0.3   1.3.12–3.15.1 (2009‐09‐22/2012‐11‐06) 3.15.2 (2012-11-12)—
Editions of ECMAScript for XML and implementations that implement them best
ECMAScript for XML (E4X)
June 2004
ActionScript 2.0–3
JavaScript 1.6–20
JavaScriptCore -
JScript -
JScript .NET -
KJS -
Opera -
V8 -

Contributors

↑ Table of contents

Thanks to (in alphabetical order):