mozilla
Your Search Results

    Firefox JavaScript changelog

    The following is a changelog for JavaScript features in Firefox releases.

    Firefox 40

    See also:

    Firefox 39

    See also:

    Firefox 38

    See also:

    Firefox 37

    See also:

    Firefox 36

    See also:

    Firefox 35

    • The "temporal dead zone" for let declarations has been implemented. In conformance with ES6 let semantics, the following situations
      now throw errors. See also this newsgroup announcement and bug 1001090.
      • Redeclaring existing variables or arguments using let within the same scope in function bodies is now a syntax error.
      • Using a variable declared using let in function bodies before the declaration is reached and evaluated is now a runtime error.
    • ES6 Symbols (only available in the Nightly channel) have been updated to conform with recent specification changes:
      • String(Symbol("1")) now no longer throws a TypeError; instead a string ("Symbol(1)") gets returned (bug 1058396).
    • The various TypedArray constructors now have as their [[Prototype]] a single function, denoted %TypedArray%  in ES6 (but otherwise not directly exposed).  Each typed array prototype now inherits from %TypedArray%.prototype.  (%TypedArray% and %TypedArray%.prototype inherit from Function.prototype and Object.prototype, respectively, so that typed array constructors and instances still have the properties found on those objects.)  Typed array function properties now reside on %TypedArray%.prototype and work on any typed array.  See TypedArray and bug 896116 for more information.
    • ES6 semantics for prototype mutations using object literals have been implemented (bug 1061853).
      • Now only a single member notated as __proto__:value will mutate the [[Prototype]] in the object literal syntax.
      • Method members like __proto__() {} will not overwrite the [[Prototype]] anymore.

    See also:

    Firefox 34

    See also:

    Firefox 33

    See also:

    Firefox 32

    See also:

    Firefox 31

    New ECMAScript 6 features implemented:

    See also:

    Firefox 30

    See also:

    Firefox 29

    See also:

    Firefox 28

    See also:

    Firefox 27

    EcmaScript 6 (Harmony) implementation continues!

    See also:

    Firefox 26

    EcmaScript 6 (Harmony) implementation continues!

    See also:

    Firefox 25

    EcmaScript 6 (Harmony) implementation continues!

    See also:

    Firefox 24

    See also:

    Firefox 23

    • The Object.defineProperty method can now be used to redefine the length property of an Array object.
    • The option to disable JavaScript, including the options to allow moving windows/replace context menu, have been removed. You may still disable JavaScript by double clicking the "javascript.enabled" option in about:config.

    See also:

    Firefox 22

    See also:

    Firefox 21

    • E4X, an ancient JavaScript extension, has been removed. Implemented only in Gecko, it never got significant traction (bug 788293).
    • parseInt no longer treats strings with leading "0" as octal (bug 786135).

    See also:

    Firefox 20

    See also:

    Firefox 19

    See also:

    Firefox 18

    • Harmony's (ECMAScript 6) Direct Proxies have been landed (bug 703537). Warning: the implementation contains a couple of known bugs, missing features and misalignements with the current state of the spec. Do not rely on it for production code.
    • The ECMAScript 6 contains() method is now implemented on strings. This is unfortunately not compatible with Mootools 1.2, which expects different behavior from contains() on strings but does not ensure it. Newer versions of Mootools fix this issue; sites should upgrade their Mootools version to something newer than 1.2.

    See also:

    Firefox 17

    See also:

    Firefox 16

    See also:

    Firefox 15

    See also:

    Firefox 14

    No change.

    See also:

    Firefox 13

    • Support for the ECMAScript 6 for..of construct has been added.
    • Experimental support for ECMAScript 6 Map and Set objects has been implemented.

    See also:

    Firefox 12

    See also:

    Firefox 11

    No change.

    See also:

    Firefox 10

    • The method WeakMap.set() now returns undefined, instead of itself.
    • A bug was introduced in regular expression handling in Firefox 7; this has been fixed. See bug 683838 if you want the gory details.
    • You can no longer use E4X syntax while in ECMAScript 5 strict mode (that is, after "use strict;").

    See also:

    Firefox 9

    No change.

    See also:

    Firefox 8

    See also:

    Firefox 7

    See also:

    Firefox 6

    • In the past, it was possible to use the new operator on several built-in functions (eval, parseInt, Date.parse...) that should not have allowed it, according to the specification. This behavior is no longer supported. Using the new operator in this way was never officially supported and was not widely done, so it's unlikely that this change affects you.
    • ECMAScript Harmony WeakMaps have been added as a prototype implementation.

    See also:

    Firefox 5

    • Regular expressions are no longer callable as if they were functions; this change has been made in concert with the WebKit team to ensure compatibility (see WebKit bug 28285. This feature had existed for a long time but was never documented (at least, not here on MDC).
    • The Function.prototype.isGenerator() method is now supported; this lets you determine if a function is a generator.
    • The following reserved words were previously only treated as reserved when in strict mode; now they're always treated as reserved: class, enum, export, extends, import, and super.
    • DOM documents created in chrome code may no longer be exposed to sandboxed scripts.
    • The JSON parser has been re-written for improved speed and compliance. This includes a fix for bug 572279.

    See also:

    Older versions

    For versions prior to Firefox 5, see the old JavaScript versions.

     

    Document Tags and Contributors

    Contributors to this page: fscholz
    Last updated by: fscholz,
    Hide Sidebar