Warning: expression closures are deprecated
The JavaScript warning "expression closures are deprecated" occurs when the non-standard expression closure syntax (shorthand function syntax) is used. This syntax is now removed and the warning message is obsolete.
Message
Warning: expression closures are deprecated
Error type
Warning. JavaScript execution won't be halted.
What went wrong?
The non-standard expression closure
syntax (shorthand function syntax) is deprecated and shouldn't be used
anymore. This syntax has been removed entirely in bug 1083458 and
scripts using it will throw a SyntaxError
in newer versions of Firefox.
Examples
Deprecated syntax
Expression closures omit curly braces or return statements from function declarations or from method definitions in objects.
var x = function () 1;
var obj = {
count: function () 1
};
Standard syntax
To convert the non-standard expression closures syntax to standard ECMAScript syntax, you can add curly braces and return statements.
const x = function () {
return 1;
};
const obj = {
count() {
return 1;
},
};
Standard syntax using arrow functions
Alternatively, you can use arrow functions:
const x = () => 1;
Standard syntax using shorthand method syntax
Expression closures can also be found with getter and setter, like this:
var obj = {
get x() 1,
set x(v) this.v = v
};
With method definitions, this can be converted to:
const obj = {
get x() {
return 1;
},
set x(v) {
this.v = v;
},
};