Program (script) @1:1 └─ ClassDeclaration @1:1 └─ ClassExpression "C" @1:1 ├─ constructor │ └─ FunctionExpression "C" [strict] [uses-this] [uses-this-from-environment] @1:1 │ └─ body │ └─ BlockStatement @1:1 └─ elements ├─ ClassField @1:1 │ ├─ PrivateIdentifier "#x" @2:5 │ └─ initializer │ └─ NumericLiteral 1 @2:10 ├─ ClassMethod (getter) @1:1 │ ├─ PrivateIdentifier "#y" @3:9 │ └─ FunctionExpression "" [strict] [uses-this] @3:5 │ └─ body │ └─ FunctionBody @4:9 │ └─ ReturnStatement @4:9 │ └─ MemberExpression @4:20 │ ├─ ThisExpression @4:16 │ └─ PrivateIdentifier "#x" @4:21 ├─ ClassMethod (setter) @1:1 │ ├─ PrivateIdentifier "#y" @6:9 │ └─ FunctionExpression "" [strict] [uses-this] @6:5 │ ├─ parameters │ │ └─ Identifier "v" [argument:0] @6:12 │ └─ body │ └─ FunctionBody @7:9 │ └─ ExpressionStatement @7:9 │ └─ AssignmentExpression (=) @7:17 │ ├─ MemberExpression @7:13 │ │ ├─ ThisExpression @7:9 │ │ └─ PrivateIdentifier "#x" @7:14 │ └─ Identifier "v" [argument:0] @7:19 └─ ClassMethod @1:1 ├─ StringLiteral "method" @9:5 └─ FunctionExpression "" [strict] [uses-this] @9:5 └─ body └─ FunctionBody @10:9 └─ ReturnStatement @10:9 └─ MemberExpression @10:20 ├─ ThisExpression @10:16 └─ PrivateIdentifier "#x" @10:21