Program (script) [strict] @1:1
├─ ExpressionStatement @1:1
│  └─ StringLiteral "use strict" @1:13
├─ FunctionDeclaration "strict_function" [strict] @3:1
│  ├─ parameters
│  │  ├─ Identifier "a" [argument:0] @3:26
│  │  └─ Identifier "b" [argument:1] @3:26
│  └─ body
│     └─ FunctionBody @4:5
│        ├─ VariableDeclaration (let) @4:5
│        │  └─ VariableDeclarator @4:5
│        │     ├─ Identifier "c" [variable:0] (let) @4:9
│        │     └─ BinaryExpression (+) @4:15
│        │        ├─ Identifier "a" [argument:0] @4:13
│        │        └─ Identifier "b" [argument:1] @4:17
│        └─ ReturnStatement @5:5
│           └─ Identifier "c" [variable:0] (let) @5:12
└─ FunctionDeclaration "inner_strict" [strict] @8:1
   └─ body
      └─ FunctionBody @9:5
         ├─ ExpressionStatement @9:5
         │  └─ StringLiteral "use strict" @9:17
         ├─ VariableDeclaration (let) @10:5
         │  └─ VariableDeclarator @10:5
         │     ├─ Identifier "x" [variable:0] (let) @10:9
         │     └─ NumericLiteral 1 @10:13
         └─ ReturnStatement @11:5
            └─ Identifier "x" [variable:0] (let) @11:12
