From d9c699f528755360e32f7d2755ad3f91b575b4f9 Mon Sep 17 00:00:00 2001 From: Richard Davison Date: Sun, 5 May 2024 18:46:30 +0200 Subject: [PATCH] fix class method with name get (#258) Co-authored-by: Richard Davison --- quickjs.c | 3 ++- tests/test_language.js | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/quickjs.c b/quickjs.c index 2834195..798d509 100644 --- a/quickjs.c +++ b/quickjs.c @@ -22380,7 +22380,8 @@ static int __exception js_parse_property_name(JSParseState *s, if (next_token(s)) goto fail1; if (s->token.val == ':' || s->token.val == ',' || - s->token.val == '}' || s->token.val == '(') { + s->token.val == '}' || s->token.val == '(' || + s->token.val == '=' ) { is_non_reserved_ident = TRUE; goto ident_found; } diff --git a/tests/test_language.js b/tests/test_language.js index 0e9bb31..f00c4be 100644 --- a/tests/test_language.js +++ b/tests/test_language.js @@ -335,6 +335,11 @@ function test_class() assert(S.x === 42); assert(S.y === 42); assert(S.z === 42); + + class P { + get = () => "123" + } + assert(new P().get() === "123"); }; function test_template() @@ -362,8 +367,9 @@ function test_template_skip() function test_object_literal() { var x = 0, get = 1, set = 2; async = 3; - a = { get: 2, set: 3, async: 4 }; - assert(JSON.stringify(a), '{"get":2,"set":3,"async":4}'); + a = { get: 2, set: 3, async: 4, get a(){ return this.get} }; + assert(JSON.stringify(a), '{"get":2,"set":3,"async":4,"a":2}'); + assert(a.a === 2); a = { x, get, set, async }; assert(JSON.stringify(a), '{"x":0,"get":1,"set":2,"async":3}');