Program (script) @3:1
├─ VariableDeclaration (var) @3:1
│  └─ VariableDeclarator @3:1
│     ├─ Identifier "f" [global] (var) @3:5
│     └─ FunctionExpression "myFunc" @3:9
│        └─ body
│           └─ FunctionBody @4:5
│              └─ ReturnStatement @4:5
│                 └─ Identifier "myFunc" [in-eval-scope] @4:12
├─ VariableDeclaration (var) @8:1
│  └─ VariableDeclarator @8:1
│     ├─ Identifier "g" [global] (var) @8:5
│     └─ FunctionExpression "gName" @8:9
│        ├─ parameters
│        │  └─ Identifier "x" [argument:0] @8:24
│        └─ body
│           └─ FunctionBody @9:5
│              └─ ReturnStatement @9:5
│                 └─ CallExpression @9:17
│                    ├─ Identifier "gName" [in-eval-scope] @9:12
│                    └─ BinaryExpression (-) @9:20
│                       ├─ Identifier "x" [argument:0] @9:18
│                       └─ NumericLiteral 1 @9:22
├─ FunctionDeclaration "outer" @13:1
│  └─ body
│     └─ FunctionBody @14:5
│        ├─ VariableDeclaration (var) @14:5
│        │  └─ VariableDeclarator @14:5
│        │     ├─ Identifier "inner" [variable:0] (var) @14:9
│        │     └─ FunctionExpression "innerName" @14:17
│        │        └─ body
│        │           └─ FunctionBody @15:9
│        │              └─ ReturnStatement @15:9
│        │                 └─ Identifier "innerName" [in-eval-scope] @15:16
│        └─ ReturnStatement @17:5
│           └─ Identifier "inner" [variable:0] (var) @17:12
└─ FunctionDeclaration "make_counter" @21:1
   └─ body
      └─ FunctionBody @22:5
         ├─ VariableDeclaration (let) @22:5
         │  └─ VariableDeclarator @22:5
         │     ├─ Identifier "count" (let) @22:9
         │     └─ NumericLiteral 0 @22:17
         └─ ReturnStatement @23:5
            └─ FunctionExpression "tick" @23:12
               └─ body
                  └─ FunctionBody @24:9
                     ├─ ExpressionStatement @24:9
                     │  └─ UpdateExpression (++, postfix) @24:14
                     │     └─ Identifier "count" (let) @24:9
                     └─ ReturnStatement @25:9
                        └─ Identifier "tick" [in-eval-scope] @25:16
