From 99c6719b7d2fe5aba4e9ff28936173fd0c4f2805 Mon Sep 17 00:00:00 2001 From: KaruroChori Date: Tue, 14 May 2024 07:16:26 +0000 Subject: [PATCH] Fix invalid exception for class method with name "get" Ref: https://github.com/bellard/quickjs/pull/258 --- quickjs.c | 3 ++- tests/test_language.js | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/quickjs.c b/quickjs.c index ef451ec..84c4448 100644 --- a/quickjs.c +++ b/quickjs.c @@ -20810,7 +20810,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 ba8f5d9..083ae43 100644 --- a/tests/test_language.js +++ b/tests/test_language.js @@ -336,6 +336,10 @@ 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() @@ -363,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}');