From f05e4d8c96ad7bd8f384333db41b88e5a4ee058b Mon Sep 17 00:00:00 2001 From: karurochari Date: Tue, 14 May 2024 01:23:45 +0000 Subject: [PATCH 1/2] https://github.com/bellard/quickjs/pull/258 --- quickjs.c | 4 ++-- tests/test_language.js | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/quickjs.c b/quickjs.c index ef451ec0a..47f075674 100644 --- a/quickjs.c +++ b/quickjs.c @@ -20810,8 +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 == '(') { - is_non_reserved_ident = TRUE; + s->token.val == '}' || s->token.val == '(' || + s->token.val == '=' ) {is_non_reserved_ident = TRUE; goto ident_found; } prop_type = PROP_TYPE_GET + (name == JS_ATOM_set); diff --git a/tests/test_language.js b/tests/test_language.js index ba8f5d904..b4a316468 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,10 @@ function test_template_skip() function test_object_literal() { var x = 0, get = 1, set = 2; async = 3; - 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}'); + 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}'); From e8b43fea332f00670add66a79b6f99373b3096b4 Mon Sep 17 00:00:00 2001 From: karurochari Date: Tue, 14 May 2024 06:16:27 +0000 Subject: [PATCH 2/2] Fixed indentation from the original commit and removed duplicated line. --- quickjs.c | 3 ++- tests/test_language.js | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/quickjs.c b/quickjs.c index 47f075674..84c444800 100644 --- a/quickjs.c +++ b/quickjs.c @@ -20811,7 +20811,8 @@ static int __exception js_parse_property_name(JSParseState *s, goto fail1; if (s->token.val == ':' || s->token.val == ',' || s->token.val == '}' || s->token.val == '(' || - s->token.val == '=' ) {is_non_reserved_ident = TRUE; + s->token.val == '=' ) { + is_non_reserved_ident = TRUE; goto ident_found; } prop_type = PROP_TYPE_GET + (name == JS_ATOM_set); diff --git a/tests/test_language.js b/tests/test_language.js index b4a316468..083ae4303 100644 --- a/tests/test_language.js +++ b/tests/test_language.js @@ -338,8 +338,8 @@ function test_class() assert(S.z === 42); class P { get = () => "123" - } - assert(new P().get() === "123"); + } + assert(new P().get() === "123"); }; function test_template() @@ -368,7 +368,6 @@ function test_object_literal() { var x = 0, get = 1, set = 2; async = 3; a = { get: 2, set: 3, async: 4, get a(){ return this.get} }; - assert(JSON.stringify(a), '{"get":2,"set":3,"async":4}'); assert(JSON.stringify(a), '{"get":2,"set":3,"async":4,"a":2}'); assert(a.a === 2);