Program (script) @1:1
├─ VariableDeclaration (let) @1:1
│  └─ VariableDeclarator @1:1
│     ├─ Identifier "obj" [global] (let) @1:5
│     └─ ObjectExpression @1:11
│        └─ ObjectProperty (method) @1:11
│           ├─ StringLiteral "foo" @2:12
│           └─ FunctionExpression async* "" @2:5
│              └─ body
│                 └─ FunctionBody @3:9
│                    └─ ExpressionStatement @3:9
│                       └─ YieldExpression @3:9
│                          └─ NumericLiteral 1 @3:15
└─ ClassDeclaration @7:1
   └─ ClassExpression "C" @7:1
      ├─ constructor
      │  └─ FunctionExpression "C" [strict] [uses-this] [uses-this-from-environment] @7:1
      │     └─ body
      │        └─ BlockStatement @7:1
      └─ elements
         └─ ClassMethod @7:1
            ├─ StringLiteral "bar" @8:12
            └─ FunctionExpression async* "" [strict] @8:5
               └─ body
                  └─ FunctionBody @9:9
                     └─ ExpressionStatement @9:9
                        └─ YieldExpression @9:9
                           └─ NumericLiteral 2 @9:15
