The development of ParallelJS (PJS) has been discontinued due to the limited future prospects, little attention and code complexity. The experimental implementation that had been enabled only on the Nightly channel, including the Array.prototype.mapPar, filterPar and reducePar methods, has been completely removed.

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.

In regular expressions (including String.replace), the matched text for a capturing group is now undefined instead of the empty string when that capturing group didn't get consulted because quantifiers prevented its exercise (see bug 369778 and this example code). Note that due to web compatibility, RegExp.$N will still return an empty string (bug 1053944).

A malformed JSON string parsed by JSON.parse() now yields a more detailed error message containing the line and column number that caused the parsing error. This is useful when debugging large JSON data.

Firefox 23

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.

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.

Firefox 7

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.

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).