Fix invalid exception for class method with name "get"

Ref: https://github.com/bellard/quickjs/pull/258
This commit is contained in:
KaruroChori 2024-05-14 07:16:26 +00:00 committed by GitHub
parent 5ca3c509d0
commit 99c6719b7d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 3 deletions

View file

@ -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;
}

View file

@ -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}');