From 5e71d148f229f9a5ee6824902366844178026966 Mon Sep 17 00:00:00 2001 From: Fabrice Bellard Date: Tue, 22 Apr 2025 18:53:48 +0200 Subject: [PATCH] setters cannot have rest arguments --- quickjs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/quickjs.c b/quickjs.c index ba021b7..e3e3074 100644 --- a/quickjs.c +++ b/quickjs.c @@ -34126,6 +34126,8 @@ static __exception int js_parse_function_decl2(JSParseState *s, int idx, has_initializer; if (s->token.val == TOK_ELLIPSIS) { + if (func_type == JS_PARSE_FUNC_SETTER) + goto fail_accessor; fd->has_simple_parameter_list = FALSE; rest = TRUE; if (next_token(s)) @@ -34239,6 +34241,7 @@ static __exception int js_parse_function_decl2(JSParseState *s, } if ((func_type == JS_PARSE_FUNC_GETTER && fd->arg_count != 0) || (func_type == JS_PARSE_FUNC_SETTER && fd->arg_count != 1)) { + fail_accessor: js_parse_error(s, "invalid number of arguments for getter or setter"); goto fail; }