JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@0..4 "let" [] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@4..6 "a" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@6..8 "=" [] [Whitespace(" ")], expression: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@8..11 "\"b\"" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@11..12 ";" [] [], }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@12..17 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@17..18 "[" [] [], elements: JsArrayBindingPatternElementList [ JsArrayBindingPatternElement { pattern: JsIdentifierBinding { name_token: IDENT@18..19 "c" [] [], }, init: missing (optional), }, COMMA@19..21 "," [] [Whitespace(" ")], JsArrayBindingPatternElement { pattern: JsIdentifierBinding { name_token: IDENT@21..22 "b" [] [], }, init: missing (optional), }, ], r_brack_token: R_BRACK@22..24 "]" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@24..26 "=" [] [Whitespace(" ")], expression: JsArrayExpression { l_brack_token: L_BRACK@26..27 "[" [] [], elements: JsArrayElementList [ JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@27..28 "1" [] [], }, COMMA@28..30 "," [] [Whitespace(" ")], JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@30..31 "2" [] [], }, ], r_brack_token: R_BRACK@31..32 "]" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@32..33 ";" [] [], }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@33..38 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@38..39 "[" [] [], elements: JsArrayBindingPatternElementList [ JsArrayBindingPatternElement { pattern: JsIdentifierBinding { name_token: IDENT@39..40 "d" [] [], }, init: missing (optional), }, COMMA@40..42 "," [] [Whitespace(" ")], JsArrayBindingPatternRestElement { dotdotdot_token: DOT3@42..45 "..." [] [], pattern: JsIdentifierBinding { name_token: IDENT@45..49 "abcd" [] [], }, }, ], r_brack_token: R_BRACK@49..51 "]" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@51..53 "=" [] [Whitespace(" ")], expression: JsArrayExpression { l_brack_token: L_BRACK@53..54 "[" [] [], elements: JsArrayElementList [ JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@54..55 "1" [] [], }, ], r_brack_token: R_BRACK@55..56 "]" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@56..57 ";" [] [], }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@57..62 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@62..63 "[" [] [], elements: JsArrayBindingPatternElementList [ JsArrayBindingPatternElement { pattern: JsIdentifierBinding { name_token: IDENT@63..65 "e" [] [Whitespace(" ")], }, init: JsInitializerClause { eq_token: EQ@65..67 "=" [] [Whitespace(" ")], expression: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@67..76 "\"default\"" [] [], }, }, }, COMMA@76..78 "," [] [Whitespace(" ")], JsArrayBindingPatternElement { pattern: JsIdentifierBinding { name_token: IDENT@78..79 "x" [] [], }, init: missing (optional), }, ], r_brack_token: R_BRACK@79..81 "]" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@81..83 "=" [] [Whitespace(" ")], expression: JsArrayExpression { l_brack_token: L_BRACK@83..84 "[" [] [], elements: JsArrayElementList [], r_brack_token: R_BRACK@84..85 "]" [] [], }, }, }, ], }, semicolon_token: missing (optional), }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@85..90 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@90..91 "[" [] [], elements: JsArrayBindingPatternElementList [ JsArrayHole, COMMA@91..93 "," [] [Whitespace(" ")], JsArrayBindingPatternElement { pattern: JsIdentifierBinding { name_token: IDENT@93..94 "f" [] [], }, init: missing (optional), }, COMMA@94..96 "," [] [Whitespace(" ")], JsArrayBindingPatternRestElement { dotdotdot_token: DOT3@96..99 "..." [] [], pattern: JsIdentifierBinding { name_token: IDENT@99..103 "rest" [] [], }, }, ], r_brack_token: R_BRACK@103..105 "]" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@105..107 "=" [] [Whitespace(" ")], expression: JsArrayExpression { l_brack_token: L_BRACK@107..108 "[" [] [], elements: JsArrayElementList [], r_brack_token: R_BRACK@108..109 "]" [] [], }, }, }, ], }, semicolon_token: missing (optional), }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@109..114 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@114..115 "[" [] [], elements: JsArrayBindingPatternElementList [ JsArrayBindingPatternElement { pattern: JsArrayBindingPattern { l_brack_token: L_BRACK@115..116 "[" [] [], elements: JsArrayBindingPatternElementList [ JsArrayBindingPatternRestElement { dotdotdot_token: DOT3@116..119 "..." [] [], pattern: JsIdentifierBinding { name_token: IDENT@119..124 "rest2" [] [], }, }, ], r_brack_token: R_BRACK@124..125 "]" [] [], }, init: missing (optional), }, COMMA@125..127 "," [] [Whitespace(" ")], JsArrayBindingPatternElement { pattern: JsObjectBindingPattern { l_curly_token: L_CURLY@127..129 "{" [] [Whitespace(" ")], properties: JsObjectBindingPatternPropertyList [ JsObjectBindingPatternShorthandProperty { identifier: JsIdentifierBinding { name_token: IDENT@129..131 "g" [] [Whitespace(" ")], }, init: missing (optional), }, ], r_curly_token: R_CURLY@131..132 "}" [] [], }, init: missing (optional), }, ], r_brack_token: R_BRACK@132..134 "]" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@134..136 "=" [] [Whitespace(" ")], expression: JsArrayExpression { l_brack_token: L_BRACK@136..137 "[" [] [], elements: JsArrayElementList [], r_brack_token: R_BRACK@137..138 "]" [] [], }, }, }, ], }, semicolon_token: missing (optional), }, ], eof_token: EOF@138..139 "" [Newline("\n")] [], } 0: JS_MODULE@0..139 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..138 0: JS_VARIABLE_STATEMENT@0..12 0: JS_VARIABLE_DECLARATION@0..11 0: (empty) 1: LET_KW@0..4 "let" [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@4..11 0: JS_VARIABLE_DECLARATOR@4..11 0: JS_IDENTIFIER_BINDING@4..6 0: IDENT@4..6 "a" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@6..11 0: EQ@6..8 "=" [] [Whitespace(" ")] 1: JS_STRING_LITERAL_EXPRESSION@8..11 0: JS_STRING_LITERAL@8..11 "\"b\"" [] [] 1: SEMICOLON@11..12 ";" [] [] 1: JS_VARIABLE_STATEMENT@12..33 0: JS_VARIABLE_DECLARATION@12..32 0: (empty) 1: LET_KW@12..17 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@17..32 0: JS_VARIABLE_DECLARATOR@17..32 0: JS_ARRAY_BINDING_PATTERN@17..24 0: L_BRACK@17..18 "[" [] [] 1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@18..22 0: JS_ARRAY_BINDING_PATTERN_ELEMENT@18..19 0: JS_IDENTIFIER_BINDING@18..19 0: IDENT@18..19 "c" [] [] 1: (empty) 1: COMMA@19..21 "," [] [Whitespace(" ")] 2: JS_ARRAY_BINDING_PATTERN_ELEMENT@21..22 0: JS_IDENTIFIER_BINDING@21..22 0: IDENT@21..22 "b" [] [] 1: (empty) 2: R_BRACK@22..24 "]" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@24..32 0: EQ@24..26 "=" [] [Whitespace(" ")] 1: JS_ARRAY_EXPRESSION@26..32 0: L_BRACK@26..27 "[" [] [] 1: JS_ARRAY_ELEMENT_LIST@27..31 0: JS_NUMBER_LITERAL_EXPRESSION@27..28 0: JS_NUMBER_LITERAL@27..28 "1" [] [] 1: COMMA@28..30 "," [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@30..31 0: JS_NUMBER_LITERAL@30..31 "2" [] [] 2: R_BRACK@31..32 "]" [] [] 1: SEMICOLON@32..33 ";" [] [] 2: JS_VARIABLE_STATEMENT@33..57 0: JS_VARIABLE_DECLARATION@33..56 0: (empty) 1: LET_KW@33..38 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@38..56 0: JS_VARIABLE_DECLARATOR@38..56 0: JS_ARRAY_BINDING_PATTERN@38..51 0: L_BRACK@38..39 "[" [] [] 1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@39..49 0: JS_ARRAY_BINDING_PATTERN_ELEMENT@39..40 0: JS_IDENTIFIER_BINDING@39..40 0: IDENT@39..40 "d" [] [] 1: (empty) 1: COMMA@40..42 "," [] [Whitespace(" ")] 2: JS_ARRAY_BINDING_PATTERN_REST_ELEMENT@42..49 0: DOT3@42..45 "..." [] [] 1: JS_IDENTIFIER_BINDING@45..49 0: IDENT@45..49 "abcd" [] [] 2: R_BRACK@49..51 "]" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@51..56 0: EQ@51..53 "=" [] [Whitespace(" ")] 1: JS_ARRAY_EXPRESSION@53..56 0: L_BRACK@53..54 "[" [] [] 1: JS_ARRAY_ELEMENT_LIST@54..55 0: JS_NUMBER_LITERAL_EXPRESSION@54..55 0: JS_NUMBER_LITERAL@54..55 "1" [] [] 2: R_BRACK@55..56 "]" [] [] 1: SEMICOLON@56..57 ";" [] [] 3: JS_VARIABLE_STATEMENT@57..85 0: JS_VARIABLE_DECLARATION@57..85 0: (empty) 1: LET_KW@57..62 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@62..85 0: JS_VARIABLE_DECLARATOR@62..85 0: JS_ARRAY_BINDING_PATTERN@62..81 0: L_BRACK@62..63 "[" [] [] 1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@63..79 0: JS_ARRAY_BINDING_PATTERN_ELEMENT@63..76 0: JS_IDENTIFIER_BINDING@63..65 0: IDENT@63..65 "e" [] [Whitespace(" ")] 1: JS_INITIALIZER_CLAUSE@65..76 0: EQ@65..67 "=" [] [Whitespace(" ")] 1: JS_STRING_LITERAL_EXPRESSION@67..76 0: JS_STRING_LITERAL@67..76 "\"default\"" [] [] 1: COMMA@76..78 "," [] [Whitespace(" ")] 2: JS_ARRAY_BINDING_PATTERN_ELEMENT@78..79 0: JS_IDENTIFIER_BINDING@78..79 0: IDENT@78..79 "x" [] [] 1: (empty) 2: R_BRACK@79..81 "]" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@81..85 0: EQ@81..83 "=" [] [Whitespace(" ")] 1: JS_ARRAY_EXPRESSION@83..85 0: L_BRACK@83..84 "[" [] [] 1: JS_ARRAY_ELEMENT_LIST@84..84 2: R_BRACK@84..85 "]" [] [] 1: (empty) 4: JS_VARIABLE_STATEMENT@85..109 0: JS_VARIABLE_DECLARATION@85..109 0: (empty) 1: LET_KW@85..90 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@90..109 0: JS_VARIABLE_DECLARATOR@90..109 0: JS_ARRAY_BINDING_PATTERN@90..105 0: L_BRACK@90..91 "[" [] [] 1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@91..103 0: JS_ARRAY_HOLE@91..91 1: COMMA@91..93 "," [] [Whitespace(" ")] 2: JS_ARRAY_BINDING_PATTERN_ELEMENT@93..94 0: JS_IDENTIFIER_BINDING@93..94 0: IDENT@93..94 "f" [] [] 1: (empty) 3: COMMA@94..96 "," [] [Whitespace(" ")] 4: JS_ARRAY_BINDING_PATTERN_REST_ELEMENT@96..103 0: DOT3@96..99 "..." [] [] 1: JS_IDENTIFIER_BINDING@99..103 0: IDENT@99..103 "rest" [] [] 2: R_BRACK@103..105 "]" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@105..109 0: EQ@105..107 "=" [] [Whitespace(" ")] 1: JS_ARRAY_EXPRESSION@107..109 0: L_BRACK@107..108 "[" [] [] 1: JS_ARRAY_ELEMENT_LIST@108..108 2: R_BRACK@108..109 "]" [] [] 1: (empty) 5: JS_VARIABLE_STATEMENT@109..138 0: JS_VARIABLE_DECLARATION@109..138 0: (empty) 1: LET_KW@109..114 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@114..138 0: JS_VARIABLE_DECLARATOR@114..138 0: JS_ARRAY_BINDING_PATTERN@114..134 0: L_BRACK@114..115 "[" [] [] 1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@115..132 0: JS_ARRAY_BINDING_PATTERN_ELEMENT@115..125 0: JS_ARRAY_BINDING_PATTERN@115..125 0: L_BRACK@115..116 "[" [] [] 1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@116..124 0: JS_ARRAY_BINDING_PATTERN_REST_ELEMENT@116..124 0: DOT3@116..119 "..." [] [] 1: JS_IDENTIFIER_BINDING@119..124 0: IDENT@119..124 "rest2" [] [] 2: R_BRACK@124..125 "]" [] [] 1: (empty) 1: COMMA@125..127 "," [] [Whitespace(" ")] 2: JS_ARRAY_BINDING_PATTERN_ELEMENT@127..132 0: JS_OBJECT_BINDING_PATTERN@127..132 0: L_CURLY@127..129 "{" [] [Whitespace(" ")] 1: JS_OBJECT_BINDING_PATTERN_PROPERTY_LIST@129..131 0: JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY@129..131 0: JS_IDENTIFIER_BINDING@129..131 0: IDENT@129..131 "g" [] [Whitespace(" ")] 1: (empty) 2: R_CURLY@131..132 "}" [] [] 1: (empty) 2: R_BRACK@132..134 "]" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@134..138 0: EQ@134..136 "=" [] [Whitespace(" ")] 1: JS_ARRAY_EXPRESSION@136..138 0: L_BRACK@136..137 "[" [] [] 1: JS_ARRAY_ELEMENT_LIST@137..137 2: R_BRACK@137..138 "]" [] [] 1: (empty) 4: EOF@138..139 "" [Newline("\n")] []