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
         └─ ClassMethod @1:1
            ├─ StringLiteral "method" @3:5
            └─ FunctionExpression "" [strict] [uses-this] @3:5
               └─ body
                  └─ FunctionBody @4:9
                     ├─ ExpressionStatement @4:9
                     │  └─ MemberExpression @4:13
                     │     ├─ ThisExpression @4:9
                     │     └─ PrivateIdentifier "#x" @4:14
                     ├─ ExpressionStatement @5:9
                     │  └─ OptionalChain @5:13
                     │     ├─ ThisExpression @5:9
                     │     └─ PrivateMemberReference(optional)
                     │        └─ PrivateIdentifier "#x" @5:15
                     ├─ ExpressionStatement @6:9
                     │  └─ OptionalChain @6:13
                     │     ├─ ThisExpression @6:9
                     │     ├─ MemberReference(optional)
                     │     │  └─ Identifier "foo" @6:15
                     │     └─ PrivateMemberReference(not optional)
                     │        └─ PrivateIdentifier "#x" @6:19
                     └─ ExpressionStatement @7:9
                        └─ BinaryExpression (in) @7:12
                           ├─ PrivateIdentifier "#x" @7:9
                           └─ ThisExpression @7:15
