Program (script) @2:1 ├─ FunctionDeclaration* "counter" @2:1 │ ├─ parameters │ │ └─ Identifier "start" [argument:0] @2:19 │ └─ body │ └─ FunctionBody @3:5 │ ├─ VariableDeclaration (let) @3:5 │ │ └─ VariableDeclarator @3:5 │ │ ├─ Identifier "i" [variable:0] (let) @3:9 │ │ └─ Identifier "start" [argument:0] @3:13 │ └─ WhileStatement @4:5 │ ├─ test │ │ └─ BooleanLiteral true @4:12 │ └─ body │ └─ BlockStatement @4:18 │ ├─ ExpressionStatement @5:9 │ │ └─ YieldExpression @5:9 │ │ └─ Identifier "i" [variable:0] (let) @5:15 │ └─ ExpressionStatement @6:9 │ └─ AssignmentExpression (=) @6:11 │ ├─ Identifier "i" [variable:0] (let) @6:9 │ └─ BinaryExpression (+) @6:15 │ ├─ Identifier "i" [variable:0] (let) @6:13 │ └─ NumericLiteral 1 @6:17 ├─ FunctionDeclaration async "fetch_data" @11:1 │ ├─ parameters │ │ └─ Identifier "url" [argument:0] @11:27 │ └─ body │ └─ FunctionBody @12:5 │ ├─ VariableDeclaration (let) @12:5 │ │ └─ VariableDeclarator @12:5 │ │ ├─ Identifier "result" [variable:0] (let) @12:9 │ │ └─ AwaitExpression @12:18 │ │ └─ Identifier "url" [argument:0] @12:24 │ └─ ReturnStatement @13:5 │ └─ Identifier "result" [variable:0] (let) @13:12 ├─ FunctionDeclaration async* "stream" @17:1 │ ├─ parameters │ │ └─ Identifier "items" [argument:0] @17:24 │ └─ body │ └─ FunctionBody @18:5 │ └─ ForOfStatement @18:19 │ ├─ lhs │ │ └─ VariableDeclaration (let) @18:10 │ │ └─ VariableDeclarator @18:10 │ │ └─ Identifier "item" [variable:0] (let) @18:14 │ ├─ rhs │ │ └─ Identifier "items" [argument:0] @18:22 │ └─ body │ └─ BlockStatement @18:29 │ └─ ExpressionStatement @19:9 │ └─ YieldExpression @19:9 │ └─ Identifier "item" [variable:0] (let) @19:15 └─ FunctionDeclaration* "gen_with_eval" [direct-eval] [uses-this] [might-need-arguments] @24:1 └─ body └─ FunctionBody @25:5 ├─ VariableDeclaration (let) @25:5 │ └─ VariableDeclarator @25:5 │ ├─ Identifier "x" (let) @25:9 │ └─ NumericLiteral 1 @25:13 ├─ ExpressionStatement @26:5 │ └─ CallExpression @26:9 │ ├─ Identifier "eval" [in-eval-scope] @26:5 │ └─ StringLiteral "" @26:12 └─ ExpressionStatement @27:5 └─ YieldExpression @27:5 └─ Identifier "x" (let) @27:11