'undefined' is a valid let/const variable name. It gives a SyntaxError at top level because it is already defined (#370)

This commit is contained in:
Fabrice Bellard 2025-04-05 15:52:55 +02:00
parent f121cbdb5a
commit beeb2725cd

View File

@ -23731,7 +23731,7 @@ static __exception int js_define_var(JSParseState *s, JSAtom name, int tok)
&& (fd->js_mode & JS_MODE_STRICT)) {
return js_parse_error(s, "invalid variable name in strict mode");
}
if ((name == JS_ATOM_let || name == JS_ATOM_undefined)
if (name == JS_ATOM_let
&& (tok == TOK_LET || tok == TOK_CONST)) {
return js_parse_error(s, "invalid lexical variable name");
}