Cette page décrit les changements liés à JavaScript apportés aux différentes versions de Firefox.
Firefox 52
No change.
Voir aussi :
Firefox 51
- The ES2015
Symbol.toStringTag
property has been implemented (bug 1114580). DateTimeFormat.prototype.formatToParts()
got exposed to web content (bug 1289340).const
andlet
are now fully ES2015-compliant (bug 950547).
Voir aussi :
Firefox 50
- The ES2015
Symbol.hasInstance
property has been implemented (bug 1054906). - The ES2017
Object.getOwnPropertyDescriptors()
method has been implemented (bug 1245024). - The behavior of \W in
RegExp
with unicode and ignoreCase flags is changed to match recent draft spec. Now it doesn't match to K, S, k, s, and KELVIN SIGN (U+212A), and LATIN SMALL LETTER LONG S (U+017F) (bug 1281739).
Voir aussi :
Firefox 49
- The ES2015 (ES6)
getPrototypeOf()
andsetPrototypeOf()
Proxy
traps have been implemented (bug 888969). - The ES2015 (ES6)
RegExp.prototype[@@match]()
,RegExp.prototype[@@replace]()
,RegExp.prototype[@@search]()
, andRegExp.prototype[@@split]()
methods, andRegExp[@@species]
getter have been implemented (bug 887016). - The deprecated, non-standard
flags
argument ofString.prototype.
match
/search
/replace
has been removed (bug 1108382). - The behavior of the
Date.parse()
method when parsing 2-digit years has been changed to be more interoperable with the Google Chrome browser (bug 1265136).
Voir aussi :
Firefox 48
New APIs
- The ES2015 (ES6)
Array.prototype.values()
method has been implemented (bug 875433). - The
String.prototype.padStart()
andString.prototype.padEnd()
methods have been implemented (bug 1260509). - The ES2015 (ES6)
Symbol.unscopables
andArray.prototype[@@unscopables]
properties have been implemented (bug 1054759 and bug 1258163). - The ES2015 (ES6)
Symbol.isConcatSpreadable
symbol has been implemented (bug 1041586). - The ES2015 (ES6)
Array[@@species]
getter has been implemented (bug 1165052). - The ES2015 (ES6)
ArrayBuffer[@@species]
getter and%TypedArray%[@@species]
getter have been implemented (bug 1165053). - The
Intl.getCanonicalLocales()
method of the ECMAScript Internationalization API draft has been implemented (bug 1263040).
Deprecations and removals
- The deprecated old Proxy API (
Proxy.create
andProxy.createFunction()
) has been removed. Use the standardProxy
object instead (bug 892903). - The
String.prototype.contains()
method has been removed (it was deprecated since version 40). Use theString.prototype.includes()
method instead (bug 1103588). - The non-standard
RegExp.multiline
property (notRegExp.prototype.multiline
) has been removed. Use the standard m flag instead (bug 1219757). - The
__defineGetter__
and__defineSetter__
methods can no longer be called at the global scope without any object. (bug 1253016).
Voir aussi :
Firefox 47
- The new ES2017 / ES8
Object.values()
andObject.entries()
methods have been implemented (bug 1232639). - The deprecated old Proxy API (
Proxy.create
andProxy.createFunction
) now presents a deprecation warning in the console and will be removed in a future version. Use the standardProxy
object instead (bug 892903). - Support for the deprecated non-standard
flags
argument ofString.prototype.
match
/search
/replace
has been dropped in non-release builds (bug 1245801). - As per the new ES2016/ES7 specification, the
Proxy
enumerate trap forfor...in
statements has been removed (bug 1246318). - The
Array.prototype.indexOf()
andArray.prototype.lastIndexOf()
methods (and theirTypedArray
equivalents) have been updated to never return-0
as per the ECMAScript specification (bug 1242043).
Voir aussi :
Firefox 46
- The ES2015 (ES6) RegExp unicode (u) flag has been implemented (bug 1135377).
- The ES2015 (ES6) block-level functions have been implemented (bug 1071646).
- The ES2015 (ES6)
TypedArray.prototype.sort()
method has been implemented (bug 1121937). - The ES2015 (ES6)
arguments[@@iterator]
has been implemented (bug 1067049). - The experimental EcmaScript Shared Memory API has been implemented. See the
SharedArrayBuffer
andAtomics
objects. To use this experimental API setjavascript.options.shared_memory
totrue
in about:config. - Redeclaration of
let
andconst
variables now throws aSyntaxError
instead of aTypeError
as per the ECMAScript specification (bug 1198833). - In Strict mode, setting properties on primitive values will now throw a
TypeError
(bug 603201). - The non-standard
WeakMap.prototype.clear()
andWeakSet.prototype.clear()
methods have been removed (bug 1101817). - The non-standard, static
RegExp.multiline
property is now deprecated (bug 1220457). - Built-in accessor function names now have a "get" or "set" prefix (bug 1180290, bug 1235656).
- JS1.7/JS1.8 (legacy) array comprehensions and JS1.7/JS1.8 (legacy) generator comprehensions have been removed (bug 1220564).
Voir aussi :
Firefox 45
- ES2015 (ES6) Classes are now enabled by default (bug 1197932).
- Expression closures are deprecated and will now present a warning in the console (bug 995610).
String.prototype.replace
does not restore RegExp static properties after executing function parameter anymore (bug 1226936).Math.random()
has been updated to the better XorShift128+ algorithm (bug 322529).
Voir aussi :
Firefox 44
New APIs
- The new ES2016 methods
Array.prototype.includes()
andTypedArray.prototype.includes()
are now enabled by default (bug 1070767).
Changes regarding the arguments
object
- To match the ES2015 specification, arrow functions no longer have their own
arguments
object. Thearguments
object is now lexically bound (inherited from the outer function). In most cases, rest parameters are a good alternative(...args) => args[i]
, see bug 889158. - The arguments object is now allowed in conjunction with rest parameters (bug 1133298).
- From now on, a mapped
arguments
object in non-strict functions is only provided if the function does not contain any rest parameters, any default parameters or any destructured parameters (bug 1175394).
Other changes
- Generators and generator methods are no longer constructable as per ES2016/ES7 (bug 1191486).
Voir aussi :
Firefox 43
New APIs
- The new ES2016 methods
Array.prototype.includes()
andTypedArray.prototype.includes()
are now enabled by default (bug 1070767).
Changes regarding the arguments
object
- To match the ES2015 specification, arrow functions no longer have their own
arguments
object. Thearguments
object is now lexically bound (inherited from the outer function). In most cases, rest parameters are a good alternative(...args) => args[i]
, see bug 889158. - The arguments object is now allowed in conjunction with rest parameters (bug 1133298).
- From now on, a mapped
arguments
object in non-strict functions is only provided if the function does not contain any rest parameters, any default parameters or any destructured parameters (bug 1175394).
Other changes
- Generators and generator methods are no longer constructable as per ES2016/ES7 (bug 1191486).
Voir aussi :
Firefox 42
- The
Reflect
object has been implemented (bug 987514). - The implementation of the
Proxy
handler.ownKeys()
trap has been updated to match the final ES2015 specification (bug 1049662). - Calling
Map
,Set
, orWeakMap
withoutnew
, will now throw aTypeError
(bug 1083752).
Voir aussi :
Firefox 41
Date.prototype
is now an ordinary object, not aDate
instance anymore (bug 861219).Date.prototype.toString
is now a generic method (bug 861219).Symbol.species
has been added (bug 1131043).Map[@@species]
andSet[@@species]
getters have been added (bug 1131043).- Non-standard let expression support has been dropped (bug 1023609).
- Destructured parameters with default value assignment are now supported (bug 1018628).
- Per ES6, curly braces are required for method definitions. Syntax without them will fail from now on (bug 1150855).
- Method definitions (except for generator methods) are not constructable anymore (bug 1059908 and bug 1166950).
- As part of ES6 specification compliance, parenthesized destructuring patterns, like
([a, b]) = [1, 2]
or({a, b}) = { a: 1, b: 2 }
, are now considered invalid and will throw aSyntaxError
. See Jeff Walden's blog post for more details. - The
new.target
syntax has been added (bug 1141865).
Voir aussi :
Firefox 40
- Unreachable code after
return
statement (including unreachable expression after semicolon-less return statements) will now show a warning in the console (bug 1005110, bug 1151931). Symbol.match
a été ajouté (bug 1054755).- Passing an object which has a property named
Symbol.match
with a truthy value toString.prototype.startsWith
,String.prototype.endsWith
, andString.prototype.contains
now throws aTypeError
(bug 1054755). RegExp
function returns pattern itself if called withoutnew
and pattern object has a property namedSymbol.match
with a truthy value, and the pattern object'sconstructor
property equals toRegExp
function. (bug 1147817).- Support for the non-standard JS1.7 destructuring for-in has been dropped (bug 1083498).
- Les initialiseurs d'expression non-standard dans les boucles for...in sont dorénavant ignorés et seront indiqués par un avertissement dans la console. (bug 748550 et bug 1164741).
\u{xxxxxx}
Unicode code point escapes have been added (bug 320500).String.prototype.contains
has been replaced withString.prototype.includes
,String.prototype.contains
is kept as an alias (bug 1102219).- If the
DataView
constructor is called as a function without thenew
operator, aTypeError
is now thrown as per the ES6 specification. - An issue regressed in Firefox 21, where proxyfied arrays without the
get
trap were not working properly, has been fixed. If theget
trap in aProxy
was not defined,Array.length
returned0
and theset
trap didn't get called. A workaround was to add theget
trap even if was not necessary in your code. This issue has been fixed now (bug 895223). WeakMap.prototype
andWeakSet.prototype
have been updated to be just ordinary objects, per ES6 specification (bug 1055473).- The
RegExp.prototype.source
property is now prototype accessor property rather than own data property ofRegExp
instances (bug 1120169, bug 1150297).
Voir aussi :
Firefox 39
- The
RegExp
constructor no longer throws when the first argument is aRegExp
and the secondflags
argument is present (bug 1108949). - The
Object.prototype.__noSuchMethod__
property is now deprecated and throws a console warning (see bug 1140428 and this platform announcement). - The implementation of the
Proxy
object has been updated to comply more with the ES6 specification:- The
defineProperty
andset
handlers now need to explicitly returntrue
to be successful, otherwise aTypeError
exception will be thrown in strict mode (bug 1132522). - If the
window
object is set as the target, those handlers will now throw aTypeError
(bug 828137).
- The
- When using arrow functions (
=>
), a line terminator (\n
) is no longer allowed after arrow function arguments (() \n => {}
) (bug 1141392). RegExp.prototype.toString
is now a generic function (bug 1079919).- The non-standard
flags
argument ofString.prototype.match()
,String.prototype.search()
, andString.prototype.replace()
is now deprecated and throws a console warning (bug 1142351). - The try/catch behavior of
Object.assign()
has been removed to conform with the latest ES6 draft (bug 1103344).
Voir aussi :
Firefox 38
Generator.prototype.return()
is implemented (bug 1115868).Setter
with a rest parameter is now aSyntaxError
(bug 1089632).- The
name
property of functions is configurable now (bug 1084019). - Several
Array
methods have been implemented for typed arrays as well:- The
of()
andfrom()
methods (bug 896608). - The
forEach()
method (bug 1107645). - The
filter()
andmap()
methods (bug 1121936). - The
slice()
method (bug 1121935).
- The
- Duplicated parameter name is no longer allowed when rest-parameter is present (bug 1096376).
- Duplicated parameter name is no longer allowed in arrow functions (bug 1096377).
- Duplicated parameter name is no longer allowed in concise method definitions (bug 1096378).
- Warning is shown when
Map
/Set
/WeakMap
constructor is called withoutnew
(bug 1108930). - The
get
,has
, anddelete
methods ofWeakMap
objects no longer throw when thekey
parameter is not an object (bug 1127827). - The optional and non-standard second
fallback
parameter forWeakMap.prototype.get()
has been removed (bug 1127827). - When defining a generator method, "
set
" and "get
" are no longer invalid names (bug 1073809). RegExp.prototype.source
now returns "(?:)" instead of an empty string for empty regular expressions (bug 1130798).RegExp.prototype.source
andRegExp.prototype.toString()
now escape regular expression patterns properly (e.g. line terminators, "\n") (bug 1130860).- The
Regexp
global
,ignoreCase
,multiline
, andsticky
properties are now prototype accessor properties rather than own data properties ofRegExp
instances (bug 1120169). - The
RegExp.prototype.source
property is now prototype accessor property rather than own data property ofRegExp
instances (bug 1120169). Available only in non-Release version, due to bug 1150297. Function.prototype.toString()
now throws forProxy
objects (bug 1100936).
Voir aussi :
Firefox 37
- The
Map
,Set
,WeakMap
andWeakSet
constructors now ignore null iterable (bug 1092538). - The
Map
,Set
,WeakMap
andWeakSet
constructors now supports monkey-patchedprototype.set
orprototype.add
(bug 804279). - The Non-standard
String.prototype.quote()
method has been removed (bug 1103181). - The
RegExp.prototype.flags
property has been implemented (bug 1108467). - Several
Array
methods have been implemented for typed arrays as well:- The
every()
andsome()
methods (bug 1116390). - The
find()
andfindIndex()
methods (bug 1078975). - The
fill()
method (bug 1113722). - The
indexOf()
andlastIndexOf()
methods (bug 1107601). - The
join()
method (bug 1115817). - The
reduce()
andreduceRight()
methods (bug 1117350). - The
reverse()
method (bug 1111516). - The
keys()
,values()
, andentries()
methods (bug 1119217).
- The
- ES6 Proxy
enumerate
trap is implemented (bug 783829). - The
configurable
attribute of theFunction.length
property is nowtrue
per the ES6 specification (bug 911142). - 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
andreducePar
methods, has been completely removed.
Voir aussi :
Firefox 36
- The ECMAScript 6 Symbol data type has been enabled by default (was available in the Nightly channel since version 33) (bug 1066322):
- The old placeholder string
"@@iterator"
has been replaced with the real ES6 well-known symbolSymbol.iterator
for the iterable interface property key (bug 918828). - The spec-internal abstract operation
ToNumber(string)
now supports binary (0b
) and octal (0o
) literals, this is a potentially breaking change from ES5 (bug 1079120).Number("0b11")
now returns3
, notNaN
."0o11" == 9
now returnstrue
, notfalse
.
- The
const
declaration is now block-scoped and requires an initializer (bug 611388). It also can not be redeclared anymore (bug 1095439).{const a=1}; a;
now throws aReferenceError
and does not return1
anymore due to block-scoping.const a;
now throws aSyntaxError
("missing = in const declaration"
): An initializer is required.const a = 1; a = 2;
now also throws aSyntaxError
("invalid assignment to const a").
- The ES7 method
Array.prototype.includes
has been implemented, but for now, it is only enabled in Nightly builds (bug 1069063). - The
delete
operator now triggers the "temporal dead zone" when using withlet
andconst
(bug 1074571). - The non-standard
let
blocks andlet
expressions are deprecated and will now log a warning in the console. Do not use them anymore, they will be removed in the future. - WeakMap constructor now handles optional iterable argument (bug 1092537).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript.
- Les notes de versions complètes pour Firefox 36.
Firefox 35
- The "temporal dead zone" for
let
declarations has been implemented. In conformance with ES6let
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.
- Redeclaring existing variables or arguments using
- ES6
Symbols
(only available in the Nightly channel) have been updated to conform with recent specification changes:String(Symbol("1"))
now no longer throws aTypeError
; 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 fromFunction.prototype
andObject.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.
- Now only a single member notated as
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript.
- Les notes de versions complètes pour Firefox 35.
Firefox 34
- The ES6 syntax for computed property names on object literals has been implemented (bug 924688).
- This includes getter and setter method names as well (bug 1048384) and can also be used with destructuring.
- The ES6 shorthand syntax for defining methods on objects has been implemented (bug 924672).
- The ES6
Object
methodObject.assign()
has been implemented (bug 937855). - ES6 template strings and the
String.raw()
method are now supported (bug 1038259, bug 1039774). - A new ES6 object
WeakSet
has been added (bug 792439). - ES6 Symbols (only available in the Nightly channel) have been updated to conform with recent specification changes (bug 1042602):
- When trying to convert a symbol to a number, a
TypeError
will be thrown now. - When using loose equality,
Object(sym) == sym
returnstrue
now.
- When trying to convert a symbol to a number, a
- The experimental
TypedArray.prototype.move()
method (only available in former Nightly and Aurora channels) has been replaced with the now implemented standard ES6TypedArray.prototype.copyWithin()
method (bug 1021379). - In strict mode, setting a duplicate property name in object literals will no longer throw a
SyntaxError
as per ES6 specification (bug 1041128). - In regular expressions (including
String.replace
), the matched text for a capturing group is nowundefined
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). - The ES6 spread operator is now supported in destructuring (bug 933276).
- Destructuring now uses iterator protocol instead of array-like protocol (bug 933276).
- bug 978279). (
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (244).
- Les notes de versions complètes pour Firefox 34.
Firefox 33
- The non-standard method
Number.toInteger()
has been removed (bug 1022396). - The
Map.prototype.set()
,WeakMap.prototype.set()
andSet.prototype.add()
methods are now chainable, return their equivalent objects and no longerundefined
(bug 1031632). - A default parameter is evaluated before function declarations inside the function body, so those functions cannot be referred from default parameter (bug 1022962).
- Shorthand properties are now allowed in object literals: if not explicitly defined, property keys are initialized by variables of the same name. E.g.
function f(x, y) { return {x, y}; }
is equivalent tofunction f(x, y) { return {x: x, y: y}; }
(bug 875002). - The parsing of
yield
andyield*
has been updated to conform with the latest ES6 specification (bug 981599). - The non-standard
hasOwn
trap has been removed (bug 980565).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (298).
- Les notes de versions complètes pour Firefox 33.
Firefox 32
- The following new ECMAScript 6 built-in methods got implemented:
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (294).
- Les notes de versions complètes pour Firefox 32.
Firefox 31
New ECMAScript 6 features implemented:
- New
Array
built-in:Array.prototype.fill()
(bug 911147) - New
Math
function:Math.clz32()
(bug 925123) - New
String
built-in:String.prototype.normalize()
is available in Firefox Desktop (bug 918987). - New
Object
methodObject.setPrototypeOf()
. - New
Number
constants:Number.MAX_SAFE_INTEGER
andNumber.MIN_SAFE_INTEGER
. - The ES6 Proxy
isExtensible
trap have been implemented (bug 978235).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (231).
- Les notes de versions complètes pour Firefox 31.
Firefox 30
- New ES6-compatible array comprehensions
[for (item of iterable) item]
and generator comprehensions(for (item of iterable) item)
have been implemented (bug 979865). - Typed arrays are now extensible and support new named properties (bug 695438).
- The
Error.prototype.stack
property now contains column numbers (bug 762556) and has been improved when usingFunction()
andeval()
calls. This can help you to better debug minified or generated JavaScript code. - The
Promise.cast()
method has been renamed toPromise.resolve()
(bug 966348).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (248).
- Les notes de versions complètes pour Firefox 30.
Firefox 29
- New ECMAScript 6 String methods:
String.prototype.codePointAt()
andString.prototype.fromCodePoint()
have been implemented (bug 918879). - The ECMAScript Internationalization API (ECMA-402) has been implemented and is now enabled by default in Firefox Desktop (bug 853301):
- To match the updated ECMAScript6 draft specification, the
Map
andSet
objects now treat-0
and+0
as the same when checking for key and value equality. Promise
has been enabled by default (bug 918806).- Completed generators now return an
IteratorResult
object instead of throwing (bug 958951). - 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. - The
ArrayBuffer.isView()
method has been added (bug 896105).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (331).
- Les notes de versions complètes pour Firefox 29.
Firefox 28
- ECMAScript 6 (Harmony) implementation continues:
- New
Array
methods have been implemented:Array.prototype.entries()
andArray.prototype.keys()
(bug 894658).
- New
- A bug causing that
Object.getOwnPropertyNames()
did not see unresolved properties ofError
objects has been fixed (bug 724768).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (343).
- Les notes de versions complètes pour Firefox 28.
Firefox 27
EcmaScript 6 (Harmony) implementation continues!
- The spread operator is now supported in Function calls (bug 762363).
- The mathematical function
Math.hypot()
has been implemented (bug 896264). - The
yield*
expression is now implemented (bug 666396). - The
MapIterator
,SetIterator
andArrayIterator
objects now match the specification (bug 881226). - for..of loops now expect the ES6 standard iterator protocol moving away from SpiderMonkey old iterator protocol using
StopIteration
. String.match
andString.replace
now resetRegExp.lastIndex
(bug 501739).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (350).
- Les notes de versions complètes pour Firefox 27.
Firefox 26
EcmaScript 6 (Harmony) implementation continues!
- The ECMAScript 6 compliant syntax for Generators (yield) has been implemented (bug 666399).
- Generator/Iterator results are now boxed like
{ value: foo, done: bool }
(bug 907744). - New mathematical methods have been implemented on
Math
:Math.fround()
(bug 900125). - The reserved words cannot be used for function names:such a usage now throws a
SyntaxError
(bug 907958). - The default parameter syntax has been updated to allow parameters without defaults after default parameters, such as
function f(x=1, y)
. See bug 777060. GeneratorFunction
is implemented (bug 904701).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (318).
- Les notes de versions complètes pour Firefox 26.
Firefox 25
EcmaScript 6 (Harmony) implementation continues!
- The method
Array.of()
is now implemented onArray
(bug 866849). - Support for the methods
Array.prototype.find()
andArray.prototype.findIndex()
has been added (bug 885553). - The methods
Number.parseInt()
andNumber.parseFloat()
have been implemented (bug 886949) - The methods
Map.prototype.forEach()
andSet.prototype.forEach()
are now implemented (bug 866847). - New mathematical methods have been implemented on
Math
:Math.log10()
,Math.log2()
,Math.log1p()
,Math.expm1()
,Math.cosh()
,Math.sinh()
,Math.tanh()
,Math.acosh()
,Math.asinh()
,Math.atanh()
,Math.trunc()
,Math.sign()
andMath.cbrt()
(bug 717379). - Support for binary and octal integer literals has been added:
0b10101010
,0B1010
,0o777
,0O237
are now valid (bug 894026). - The machine epsilon constant, that is the smallest representible number that added to 1 will not be 1, is now available as
Number.EPSILON
(bug 885798). - Typed arrays have been updated to no longer search in the prototype chain for indexed properties (bug 829896).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (376).
- Les notes de versions complètes pour Firefox 25.
Firefox 24
- Les fonctions fléchées ne sont plus automatiquement en mode strict sauf si c'est spécifié avec
"use strict"
(bug 852762). - La méthode
String.prototype.repeat
a été implémentée (bug 815431). - Les méthodes
Set.prototype.values()
,Set.prototype.keys()
etSet.prototype.entries()
de l'objetSet
ont été implémentées (bug 869996).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (321).
- Les notes de versions complètes pour Firefox 24.
Firefox 23
- La méthode
Object.defineProperty
peut désormais être utilisée pour redéfinir la propriétélength
d'un objetArray
. - L'option pour désactiver JavaScript, incluant les options pour permettre de déplacer une fenêtre/remplacer le menu contextuel, a été retirée. Vous pouvez toujours désactiver JavaScript en double-cliquant sur l'option "javascript.enabled" dans about:config.
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (290).
- Les notes de versions complètes pour Firefox 23.
Firefox 22
- Les optimizations Asm.js sont activées, rendant possible la compilation d'applications C / C++ vers un sous-ensemble Javascript pour de meilleures performances.
- La syntaxe ES6 Arrow Function a été implémentée (bug 846406).
- La nouvelle fonction Object.is a été ajoutée (bug 839979).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (255).
- Les notes de versions complètes pour Firefox 22.
Firefox 21
- E4X, une ancienne extension JavaScript, a été retirée. Implementée seulement par Gecko, elle n'a jamais reçu suffisament de soutien (bug 788293).
- parseInt ne traite plus les chaînes de caractères commençant par "0" comme un octal (bug 786135).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (289).
- Les notes de versions complètes pour Firefox 21.
Firefox 20
- Le support de la méthode
Weakmap.prototype.clear()
, récemment ajoutée au brouillon d'Harmony (EcmaScript 6), a été ajouté (bug 814562). - Le support de la méthode
Math.imul()
, une fonction de multiplication 32 bits de type C. Bien qu'elle soit proposée pour Harmony (EcmaScript 6), elle n'a pas encore été acceptée et reste non-standard (bug 808148). - Les applications Web utilisant le déplacement de texte grâce à Kinetic 3.x fonctionnent, même en utilisant le backend Cairo Canvas. (bug 835064)
- L'instruction
for each...in
a été dépréciée et ne doit plus être utilisée. Pensez à utiliser la nouvelle instructionfor...of
(bug 804834).
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (242).
- Les notes de versions complètes pour Firefox 20.
Firefox 19
- La méthode
size()
des objetsMap
etSet
devient la propriétésize
(bug 807001) - Les objets
Map
etSet
ont maintenant une méthodeclear()
. (bug 805003)
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (165).
- Les notes de versions complètes pour Firefox 19.
Firefox 18
- Les Direct Proxies d'Harmony (ECMAScript 6) ont été lancés. (bug 703537)
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (221).
- Les notes de versions complètes pour Firefox 18.
Firefox 17
- L'objet
String
offre à présent les méthodes d'HarmonystartsWith
,endsWith
etcontains
. (bug 772733) - Les méthodes de
String
link
etanchor
échappent désormais à " (guillemet). (bug 352437) - Le support expérimental pour l'objet
ParallelArray
a été implémenté. (bug 778559) - Support des itérateurs
Map
/Set
. (bug 725909) - E4X est désactivé par défaut pour le contenu Web. (bug 778851)
__exposedProps__
doit désormais être défini pour les objets JavaScript Chrome exposés au contenu. Les tentatives d'accès à des objets de contenu sans Chrome__exposedProps__
échoueront ensembles silencieusement. (bug 553102)
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (231).
- Les notes de versions complètes pour Firefox 17.
Firefox 16
- L'objet
Number
offre désormais les méthodesisFinite()
,toInteger()
etisInteger()
. (bug 761480, bug 761495) - L'opérateur de diffusion d'Harmony a été ajouté à l'objet
Array
. (bug 574130)
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (186).
- Les notes de versions complètes pour Firefox 16.
Firefox 15
- Le support de l'interface
DataView
a été ajouté à partir de la spécification des tableaux typés. Cela fournit un accès de bas niveau aux données contenues dans unArrayBuffer
. - Le support de
Number.isNaN
d'ECMAScript Harmony a été ajouté. (bug 749818, bug 761495, bug 761480) - Le support du paramètre default d'ECMAScript Harmony a été ajouté. (bug 757676)
- Le support du paramètre rest d'ECMAScript Harmony a été ajouté. (bug 574132)
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (203).
- Les notes de versions complètes pour Firefox 15.
Firefox 14
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (135).
- Les notes de versions complètes pour Firefox 14.
Firefox 13
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (175).
- Les notes de versions complètes pour Firefox 13.
Firefox 12
- Le support des variables sharp (extension non-standard de Netscape) a été abandonné.
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (177).
- Les notes de versions complètes pour Firefox 12.
Firefox 11
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (167).
- Les notes de versions complètes pour Firefox 11.
Firefox 10
- La méthode
WeakMap.set()
retourne désormaisundefined
, au lieu de lui-même. - Un bug a été introduit dans le traitement des expressions régulières dans Firefox 7, il a été corrigé. Voir le bug 683838.
- Vous ne pouvez plus utiliser E4X en mode strict de l'ECMAScript 5.
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (165).
- Les notes de versions complètes pour Firefox 10.
Firefox 9
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (132).
- Les notes de versions complètes pour Firefox 9.
Firefox 8
RegExp.exec()
etRegExp.test()
appelés sans arguments correspondent maintenant à la chaîne "undefined".String.search()
etString.match()
appelés sans arguments ouundefined
correspondent désormais à une chaîne vide et correspondent donc à chaque chaîne.- Le support des listes de surveillance a été implémenté avec les nouvelles mtéhodes (non standards)
watch()
etunwatch()
.
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (154).
- Les notes de versions complètes pour Firefox 8.
Firefox 7
- La propriété
Function.arity
a été enlevée, utilisezFunction.length
à la place.
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (40).
- Les notes de versions complètes pour Firefox 7.
Firefox 6
- Avant, il était possible d'utiliser l'opérateur
new
sur plusieurs fonctions natives (eval, parseInt, Date.parse, etc) ce qui, conformément à la spécification, n'était pas autorisé. Désormais ce comportement n'est plus supporté. Cette façon d'utiliser l'opérateurnew
n'a jamais été officiellement supportée et était peu utilisée, donc il est peu probable que ce changement vous affecte. - ECMAScript Harmony WeakMaps a été ajouté en tant que prototype.
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (45).
- Les notes de versions complètes pour Firefox 6.
Firefox 5
- Les expressions régulières ne sont plus appelable comme si il s'agissait de fonctions, ce changement a été fait de concert avec l'équipe de WebKit afin d'assurer la compatibilité (voir WebKit bug 28285. Cette fonctionnalité existait depuis longtemps déjà mais n'a jamais été documentée (du moins, pas sur MDN).
- La méthode
Function.prototype.isGenerator()
est désormais supportée, ce qui vous permet de déterminer si une fonction est génératrice. - Les mots suivants ont été réservés :
class
,enum
,export
,extends
,import
etsuper
. Auparavant, ils étaient uniquement considérés comme réservés en mode strict. - Les documents DOM crées dans le chrome ne peuvent plus être exposés à des scripts en sandbox.
- Le parser JSON a été ré-écrit pour améliorer la vitesse et la conformité. Ce qui inclut un correctif pour le bug 572279.
Voir aussi :
- Les corrections de bogues liées au moteur JavaScript (23).
- Les notes de versions complètes pour Firefox 5.
Versions antérieures
Pour les versions antérieures à Firefox 5, voir la page concernant l'historique JavaScript.