LibJS: Disallow comma after rest parameter in formal parameters

This commit is contained in:
davidot 2021-09-27 22:29:49 +02:00 committed by Linus Groh
commit 9cb5700398
Notes: sideshowbarker 2024-07-18 03:18:23 +09:00

View file

@ -1990,11 +1990,9 @@ Vector<FunctionNode::Parameter> Parser::parse_formal_parameters(int& function_le
syntax_error("Generator function parameter initializer cannot contain a reference to an identifier named \"yield\"");
}
parameters.append({ move(parameter), default_value, is_rest });
if (match(TokenType::ParenClose))
if (match(TokenType::ParenClose) || is_rest)
break;
consume(TokenType::Comma);
if (is_rest)
break;
}
if (parse_options & FunctionNodeParseOptions::IsSetterFunction && parameters.is_empty())
syntax_error("Setter function must have one argument");