Program (script) @2:1
├─ FunctionDeclaration "uses_arguments" [might-need-arguments] @2:1
│  └─ body
│     └─ FunctionBody @3:5
│        └─ ReturnStatement @3:5
│           └─ MemberExpression [computed] @3:21
│              ├─ Identifier "arguments" [variable:0] @3:12
│              └─ NumericLiteral 0 @3:22
├─ FunctionDeclaration "arguments_as_param" [might-need-arguments] @7:1
│  ├─ parameters
│  │  └─ Identifier "arguments" [argument:0] @7:29
│  └─ body
│     └─ FunctionBody @8:5
│        └─ ReturnStatement @8:5
│           └─ Identifier "arguments" [argument:0] @8:12
├─ FunctionDeclaration "arguments_as_second_param" [might-need-arguments] @12:1
│  ├─ parameters
│  │  ├─ Identifier "x" [argument:0] @12:36
│  │  └─ Identifier "arguments" [argument:1] @12:36
│  └─ body
│     └─ FunctionBody @13:5
│        └─ ReturnStatement @13:5
│           └─ BinaryExpression (+) @13:14
│              ├─ Identifier "x" [argument:0] @13:12
│              └─ Identifier "arguments" [argument:1] @13:16
├─ FunctionDeclaration "arrow_arguments" [might-need-arguments] @17:1
│  └─ body
│     └─ FunctionBody @18:5
│        ├─ VariableDeclaration (let) @18:5
│        │  └─ VariableDeclarator @18:5
│        │     ├─ Identifier "f" [variable:0] (let) @18:9
│        │     └─ FunctionExpression "" [arrow] @18:13
│        │        └─ body
│        │           └─ FunctionBody @18:13
│        │              └─ ReturnStatement @18:13
│        │                 └─ MemberExpression [computed] @18:28
│        │                    ├─ Identifier "arguments" @18:19
│        │                    └─ NumericLiteral 0 @18:29
│        └─ ReturnStatement @19:5
│           └─ CallExpression @19:13
│              └─ Identifier "f" [variable:0] (let) @19:12
├─ FunctionDeclaration "destructured_with_arguments" [might-need-arguments] @23:1
│  ├─ parameters
│  │  └─ BindingPattern (object)
│  │     └─ entry
│  │        └─ name
│  │           └─ Identifier "x" @23:40
│  └─ body
│     └─ FunctionBody @24:5
│        └─ ReturnStatement @24:5
│           └─ MemberExpression [computed] @24:21
│              ├─ Identifier "arguments" [variable:0] @24:12
│              └─ NumericLiteral 0 @24:22
└─ FunctionDeclaration "rest_and_arguments" [might-need-arguments] @28:1
   ├─ parameters
   │  └─ rest
   │     └─ Identifier "args" [argument:0] @28:29
   └─ body
      └─ FunctionBody @29:5
         └─ ReturnStatement @29:5
            └─ MemberExpression @29:21
               ├─ Identifier "arguments" [variable:0] @29:12
               └─ Identifier "length" @29:22
