const formal parameters?
Mark S. Miller
erights at google.com
Thu Jun 19 16:07:46 PDT 2008
As previously mentioned, we've decided to allow "const" variable
declarations into ES3.1 under the "parses on 3/4 browser rule"
(FF,Safari,Opera) since it also aids integrity. However, it's a bit
mysterious how to declare formal parameter variables to be const in a
way that'll parse on 3/4 browsers. Both Firefox and Safari reject
function foo(x, const y) { return [x, y];}
as a syntax error. However, they both accept
function foo(x, y) { var y; return [x, y];}
and they correctly do not treat the "var x;" as shadowing the "x"
parameter variable. So I thought I'd try
function foo(x, y) { const y; return [x, y];}
On FF 2.0.0.14 under squarefree this gives a "TypeError on line 1:
redeclaration of formal parameter y". On Safari it parses fine, but of
course that the const-ness is not yet enforced. Would ES4 interpret
the above syntax as declaring the "y" parameter variable to be const?
If so, what immediate plans do FF and Opera have re this syntax? If
both expect this to parse soon, perhaps we should stretch our 3/4 rule
and permit it? If not, any other suggestions for declaring formal
parameter variables to be const in ES3.1?
--
Cheers,
--MarkM
More information about the Es4-discuss
mailing list