Program (script) @6:1
└─ FunctionDeclaration "outer" [uses-this] @6:1
   └─ body
      └─ FunctionBody @7:5
         ├─ VariableDeclaration (var) @7:5
         │  └─ VariableDeclarator @7:5
         │     ├─ Identifier "f" [variable:0] (var) @7:9
         │     └─ FunctionExpression "" [uses-this] @7:13
         │        ├─ parameters
         │        │  └─ Identifier "a" [argument:0] @7:22
         │        └─ body
         │           └─ FunctionBody @8:9
         │              ├─ ExpressionStatement @8:9
         │              │  └─ AssignmentExpression (=) @8:12
         │              │     ├─ Identifier "a" [argument:0] @8:10
         │              │     └─ ThisExpression @8:14
         │              └─ ReturnStatement @9:9
         │                 └─ Identifier "a" [argument:0] @9:16
         └─ ReturnStatement @11:5
            └─ Identifier "f" [variable:0] (var) @11:12
