fix class method with name get (#258)

Co-authored-by: Richard Davison <ridaviso@amazon.com>
This commit is contained in:
Richard Davison 2024-05-05 18:46:30 +02:00 committed by GitHub
parent 7a2c6f42d4
commit d9c699f528
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 3 deletions

View file

@ -22380,7 +22380,8 @@ static int __exception js_parse_property_name(JSParseState *s,
if (next_token(s)) if (next_token(s))
goto fail1; goto fail1;
if (s->token.val == ':' || s->token.val == ',' || 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; is_non_reserved_ident = TRUE;
goto ident_found; goto ident_found;
} }

View file

@ -335,6 +335,11 @@ function test_class()
assert(S.x === 42); assert(S.x === 42);
assert(S.y === 42); assert(S.y === 42);
assert(S.z === 42); assert(S.z === 42);
class P {
get = () => "123"
}
assert(new P().get() === "123");
}; };
function test_template() function test_template()
@ -362,8 +367,9 @@ function test_template_skip()
function test_object_literal() function test_object_literal()
{ {
var x = 0, get = 1, set = 2; async = 3; 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 }; a = { x, get, set, async };
assert(JSON.stringify(a), '{"x":0,"get":1,"set":2,"async":3}'); assert(JSON.stringify(a), '{"x":0,"get":1,"set":2,"async":3}');