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