Program (script) @1:1 ├─ FunctionDeclaration "rest_params" @1:1 │ ├─ parameters │ │ ├─ Identifier "a" [argument:0] @1:22 │ │ └─ rest │ │ └─ Identifier "rest" [argument:1] @1:22 │ └─ body │ └─ FunctionBody @2:5 │ └─ ReturnStatement @2:5 │ └─ BinaryExpression (+) @2:14 │ ├─ Identifier "a" [argument:0] @2:12 │ └─ MemberExpression @2:20 │ ├─ Identifier "rest" [argument:1] @2:16 │ └─ Identifier "length" @2:21 ├─ FunctionDeclaration "default_params" @5:1 │ ├─ parameters │ │ ├─ Identifier "a" [argument:0] @5:25 │ │ └─ Identifier "b" [argument:1] @5:25 │ │ └─ default │ │ └─ NumericLiteral 10 @5:32 │ └─ body │ └─ FunctionBody @6:5 │ └─ ReturnStatement @6:5 │ └─ BinaryExpression (+) @6:14 │ ├─ Identifier "a" [argument:0] @6:12 │ └─ Identifier "b" [argument:1] @6:16 ├─ FunctionDeclaration "destructured_array" @9:1 │ ├─ parameters │ │ └─ BindingPattern (array) │ │ ├─ entry │ │ │ └─ alias │ │ │ └─ Identifier "x" [variable:0] @9:30 │ │ └─ entry │ │ └─ alias │ │ └─ Identifier "y" [variable:1] @9:33 │ └─ body │ └─ FunctionBody @10:5 │ └─ ReturnStatement @10:5 │ └─ BinaryExpression (+) @10:14 │ ├─ Identifier "x" [variable:0] @10:12 │ └─ Identifier "y" [variable:1] @10:16 ├─ FunctionDeclaration "destructured_object" @13:1 │ ├─ parameters │ │ └─ BindingPattern (object) │ │ ├─ entry │ │ │ └─ name │ │ │ └─ Identifier "a" [variable:0] @13:32 │ │ └─ entry │ │ └─ name │ │ └─ Identifier "b" [variable:1] @13:35 │ └─ body │ └─ FunctionBody @14:5 │ └─ ReturnStatement @14:5 │ └─ BinaryExpression (+) @14:14 │ ├─ Identifier "a" [variable:0] @14:12 │ └─ Identifier "b" [variable:1] @14:16 └─ FunctionDeclaration "mixed" @17:1 ├─ parameters │ ├─ Identifier "first" [argument:0] @17:16 │ ├─ BindingPattern (object) │ │ └─ entry │ │ └─ name │ │ └─ Identifier "x" [variable:0] @17:25 │ └─ rest │ └─ Identifier "rest" [argument:2] @17:16 └─ body └─ FunctionBody @18:5 └─ ReturnStatement @18:5 └─ BinaryExpression (+) @18:22 ├─ BinaryExpression (+) @18:18 │ ├─ Identifier "first" [argument:0] @18:12 │ └─ Identifier "x" [variable:0] @18:20 └─ MemberExpression @18:28 ├─ Identifier "rest" [argument:2] @18:24 └─ Identifier "length" @18:29