Program (script) @1:1 ├─ FunctionDeclaration "array_destructured" @1:1 │ ├─ parameters │ │ └─ BindingPattern (array) │ │ ├─ entry │ │ │ └─ alias │ │ │ └─ Identifier "x" [variable:0] @1:30 │ │ └─ entry │ │ └─ alias │ │ └─ Identifier "y" [variable:1] @1:33 │ └─ body │ └─ FunctionBody @2:5 │ └─ ReturnStatement @2:5 │ └─ BinaryExpression (+) @2:14 │ ├─ Identifier "x" [variable:0] @2:12 │ └─ Identifier "y" [variable:1] @2:16 ├─ FunctionDeclaration "object_destructured" @5:1 │ ├─ parameters │ │ └─ BindingPattern (object) │ │ ├─ entry │ │ │ └─ name │ │ │ └─ Identifier "a" [variable:0] @5:32 │ │ └─ entry │ │ └─ name │ │ └─ Identifier "b" [variable:1] @5:35 │ └─ body │ └─ FunctionBody @6:5 │ └─ ReturnStatement @6:5 │ └─ BinaryExpression (+) @6:14 │ ├─ Identifier "a" [variable:0] @6:12 │ └─ Identifier "b" [variable:1] @6:16 ├─ FunctionDeclaration "mixed" @9:1 │ ├─ parameters │ │ ├─ Identifier "first" [argument:0] @9:16 │ │ ├─ BindingPattern (object) │ │ │ └─ entry │ │ │ └─ name │ │ │ └─ Identifier "x" [variable:0] @9:25 │ │ └─ rest │ │ └─ Identifier "rest" [argument:2] @9:16 │ └─ body │ └─ FunctionBody @10:5 │ └─ ReturnStatement @10:5 │ └─ BinaryExpression (+) @10:22 │ ├─ BinaryExpression (+) @10:18 │ │ ├─ Identifier "first" [argument:0] @10:12 │ │ └─ Identifier "x" [variable:0] @10:20 │ └─ MemberExpression @10:28 │ ├─ Identifier "rest" [argument:2] @10:24 │ └─ Identifier "length" @10:29 ├─ FunctionDeclaration "nested" @13:1 │ ├─ parameters │ │ └─ BindingPattern (object) │ │ └─ entry │ │ ├─ name │ │ │ └─ Identifier "a" [global] @13:19 │ │ └─ alias │ │ └─ BindingPattern (object) │ │ └─ entry │ │ └─ name │ │ └─ Identifier "b" [variable:0] @13:24 │ └─ body │ └─ FunctionBody @14:5 │ └─ ReturnStatement @14:5 │ └─ Identifier "b" [variable:0] @14:12 ├─ FunctionDeclaration "with_defaults" @17:1 │ ├─ parameters │ │ └─ BindingPattern (object) │ │ └─ entry │ │ ├─ name │ │ │ └─ Identifier "x" [variable:0] @17:26 │ │ └─ initializer │ │ └─ NumericLiteral 10 @17:30 │ │ └─ default │ │ └─ ObjectExpression @17:37 │ └─ body │ └─ FunctionBody @18:5 │ └─ ReturnStatement @18:5 │ └─ Identifier "x" [variable:0] @18:12 └─ FunctionDeclaration "aliased" @21:1 ├─ parameters │ └─ BindingPattern (object) │ └─ entry │ ├─ name │ │ └─ Identifier "a" [global] @21:20 │ └─ alias │ └─ Identifier "renamed" [variable:0] @21:23 └─ body └─ FunctionBody @22:5 └─ ReturnStatement @22:5 └─ Identifier "renamed" [variable:0] @22:12