JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsExpressionStatement { expression: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@0..4 "foo" [] [Whitespace(" ")], }, operator_token: PLUSEQ@4..7 "+=" [] [Whitespace(" ")], right: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@7..11 "bar" [] [Whitespace(" ")], }, operator_token: EQ@11..13 "=" [] [Whitespace(" ")], right: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@13..15 "b" [] [Whitespace(" ")], }, operator_token: QUESTION2EQ@15..19 "??=" [] [Whitespace(" ")], right: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@19..20 "3" [] [], }, }, }, }, semicolon_token: SEMICOLON@20..21 ";" [] [], }, JsExpressionStatement { expression: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@21..26 "foo" [Newline("\n")] [Whitespace(" ")], }, operator_token: MINUSEQ@26..29 "-=" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@29..32 "bar" [] [], }, }, }, semicolon_token: SEMICOLON@32..33 ";" [] [], }, JsExpressionStatement { expression: JsParenthesizedExpression { l_paren_token: L_PAREN@33..35 "(" [Newline("\n")] [], expression: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@35..39 "foo" [] [Whitespace(" ")], }, operator_token: EQ@39..41 "=" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@41..44 "bar" [] [], }, }, }, r_paren_token: R_PAREN@44..45 ")" [] [], }, semicolon_token: SEMICOLON@45..46 ";" [] [], }, JsExpressionStatement { expression: JsAssignmentExpression { left: JsArrayAssignmentPattern { l_brack_token: L_BRACK@46..48 "[" [Newline("\n")] [], elements: JsArrayAssignmentPatternElementList [ JsArrayAssignmentPatternElement { pattern: JsIdentifierAssignment { name_token: IDENT@48..51 "foo" [] [], }, init: missing (optional), }, COMMA@51..53 "," [] [Whitespace(" ")], JsArrayAssignmentPatternElement { pattern: JsIdentifierAssignment { name_token: IDENT@53..56 "bar" [] [], }, init: missing (optional), }, ], r_brack_token: R_BRACK@56..58 "]" [] [Whitespace(" ")], }, operator_token: EQ@58..60 "=" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@60..63 "baz" [] [], }, }, }, semicolon_token: SEMICOLON@63..64 ";" [] [], }, JsExpressionStatement { expression: JsAssignmentExpression { left: JsArrayAssignmentPattern { l_brack_token: L_BRACK@64..66 "[" [Newline("\n")] [], elements: JsArrayAssignmentPatternElementList [ JsArrayAssignmentPatternElement { pattern: JsIdentifierAssignment { name_token: IDENT@66..69 "foo" [] [], }, init: missing (optional), }, COMMA@69..71 "," [] [Whitespace(" ")], JsArrayAssignmentPatternElement { pattern: JsIdentifierAssignment { name_token: IDENT@71..75 "bar" [] [Whitespace(" ")], }, init: JsInitializerClause { eq_token: EQ@75..77 "=" [] [Whitespace(" ")], expression: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@77..86 "\"default\"" [] [], }, }, }, COMMA@86..88 "," [] [Whitespace(" ")], JsArrayAssignmentPatternRestElement { dotdotdot_token: DOT3@88..91 "..." [] [], pattern: JsIdentifierAssignment { name_token: IDENT@91..95 "rest" [] [], }, }, ], r_brack_token: R_BRACK@95..97 "]" [] [Whitespace(" ")], }, operator_token: EQ@97..99 "=" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@99..102 "baz" [] [], }, }, }, semicolon_token: SEMICOLON@102..103 ";" [] [], }, JsExpressionStatement { expression: JsAssignmentExpression { left: JsArrayAssignmentPattern { l_brack_token: L_BRACK@103..105 "[" [Newline("\n")] [], elements: JsArrayAssignmentPatternElementList [ JsArrayHole, COMMA@105..106 "," [] [], JsArrayHole, COMMA@106..107 "," [] [], JsArrayHole, COMMA@107..108 "," [] [], JsArrayAssignmentPatternElement { pattern: JsIdentifierAssignment { name_token: IDENT@108..111 "foo" [] [], }, init: missing (optional), }, COMMA@111..112 "," [] [], JsArrayAssignmentPatternElement { pattern: JsIdentifierAssignment { name_token: IDENT@112..115 "bar" [] [], }, init: missing (optional), }, ], r_brack_token: R_BRACK@115..117 "]" [] [Whitespace(" ")], }, operator_token: EQ@117..119 "=" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@119..122 "baz" [] [], }, }, }, semicolon_token: SEMICOLON@122..123 ";" [] [], }, JsExpressionStatement { expression: JsParenthesizedExpression { l_paren_token: L_PAREN@123..125 "(" [Newline("\n")] [], expression: JsAssignmentExpression { left: JsObjectAssignmentPattern { l_curly_token: L_CURLY@125..127 "{" [] [Whitespace(" ")], properties: JsObjectAssignmentPatternPropertyList [ JsObjectAssignmentPatternShorthandProperty { identifier: JsIdentifierAssignment { name_token: IDENT@127..130 "bar" [] [], }, init: missing (optional), }, COMMA@130..132 "," [] [Whitespace(" ")], JsObjectAssignmentPatternShorthandProperty { identifier: JsIdentifierAssignment { name_token: IDENT@132..136 "baz" [] [Whitespace(" ")], }, init: missing (optional), }, ], r_curly_token: R_CURLY@136..138 "}" [] [Whitespace(" ")], }, operator_token: EQ@138..140 "=" [] [Whitespace(" ")], right: JsObjectExpression { l_curly_token: L_CURLY@140..141 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@141..142 "}" [] [], }, }, r_paren_token: R_PAREN@142..143 ")" [] [], }, semicolon_token: SEMICOLON@143..144 ";" [] [], }, JsExpressionStatement { expression: JsParenthesizedExpression { l_paren_token: L_PAREN@144..146 "(" [Newline("\n")] [], expression: JsAssignmentExpression { left: JsObjectAssignmentPattern { l_curly_token: L_CURLY@146..148 "{" [] [Whitespace(" ")], properties: JsObjectAssignmentPatternPropertyList [ JsObjectAssignmentPatternProperty { member: JsLiteralMemberName { value: IDENT@148..151 "bar" [] [], }, colon_token: COLON@151..153 ":" [] [Whitespace(" ")], pattern: JsArrayAssignmentPattern { l_brack_token: L_BRACK@153..154 "[" [] [], elements: JsArrayAssignmentPatternElementList [ JsArrayAssignmentPatternElement { pattern: JsIdentifierAssignment { name_token: IDENT@154..158 "baz" [] [Whitespace(" ")], }, init: JsInitializerClause { eq_token: EQ@158..160 "=" [] [Whitespace(" ")], expression: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@160..165 "\"baz\"" [] [], }, }, }, ], r_brack_token: R_BRACK@165..166 "]" [] [], }, init: missing (optional), }, COMMA@166..168 "," [] [Whitespace(" ")], JsObjectAssignmentPatternShorthandProperty { identifier: JsIdentifierAssignment { name_token: IDENT@168..172 "foo" [] [Whitespace(" ")], }, init: JsInitializerClause { eq_token: EQ@172..174 "=" [] [Whitespace(" ")], expression: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@174..179 "\"foo\"" [] [], }, }, }, COMMA@179..181 "," [] [Whitespace(" ")], JsObjectAssignmentPatternRest { dotdotdot_token: DOT3@181..184 "..." [] [], target: JsIdentifierAssignment { name_token: IDENT@184..189 "rest" [] [Whitespace(" ")], }, }, ], r_curly_token: R_CURLY@189..191 "}" [] [Whitespace(" ")], }, operator_token: EQ@191..193 "=" [] [Whitespace(" ")], right: JsObjectExpression { l_curly_token: L_CURLY@193..194 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@194..195 "}" [] [], }, }, r_paren_token: R_PAREN@195..196 ")" [] [], }, semicolon_token: SEMICOLON@196..197 ";" [] [], }, ], eof_token: EOF@197..198 "" [Newline("\n")] [], } 0: JS_MODULE@0..198 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..197 0: JS_EXPRESSION_STATEMENT@0..21 0: JS_ASSIGNMENT_EXPRESSION@0..20 0: JS_IDENTIFIER_ASSIGNMENT@0..4 0: IDENT@0..4 "foo" [] [Whitespace(" ")] 1: PLUSEQ@4..7 "+=" [] [Whitespace(" ")] 2: JS_ASSIGNMENT_EXPRESSION@7..20 0: JS_IDENTIFIER_ASSIGNMENT@7..11 0: IDENT@7..11 "bar" [] [Whitespace(" ")] 1: EQ@11..13 "=" [] [Whitespace(" ")] 2: JS_ASSIGNMENT_EXPRESSION@13..20 0: JS_IDENTIFIER_ASSIGNMENT@13..15 0: IDENT@13..15 "b" [] [Whitespace(" ")] 1: QUESTION2EQ@15..19 "??=" [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@19..20 0: JS_NUMBER_LITERAL@19..20 "3" [] [] 1: SEMICOLON@20..21 ";" [] [] 1: JS_EXPRESSION_STATEMENT@21..33 0: JS_ASSIGNMENT_EXPRESSION@21..32 0: JS_IDENTIFIER_ASSIGNMENT@21..26 0: IDENT@21..26 "foo" [Newline("\n")] [Whitespace(" ")] 1: MINUSEQ@26..29 "-=" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@29..32 0: JS_REFERENCE_IDENTIFIER@29..32 0: IDENT@29..32 "bar" [] [] 1: SEMICOLON@32..33 ";" [] [] 2: JS_EXPRESSION_STATEMENT@33..46 0: JS_PARENTHESIZED_EXPRESSION@33..45 0: L_PAREN@33..35 "(" [Newline("\n")] [] 1: JS_ASSIGNMENT_EXPRESSION@35..44 0: JS_IDENTIFIER_ASSIGNMENT@35..39 0: IDENT@35..39 "foo" [] [Whitespace(" ")] 1: EQ@39..41 "=" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@41..44 0: JS_REFERENCE_IDENTIFIER@41..44 0: IDENT@41..44 "bar" [] [] 2: R_PAREN@44..45 ")" [] [] 1: SEMICOLON@45..46 ";" [] [] 3: JS_EXPRESSION_STATEMENT@46..64 0: JS_ASSIGNMENT_EXPRESSION@46..63 0: JS_ARRAY_ASSIGNMENT_PATTERN@46..58 0: L_BRACK@46..48 "[" [Newline("\n")] [] 1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@48..56 0: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@48..51 0: JS_IDENTIFIER_ASSIGNMENT@48..51 0: IDENT@48..51 "foo" [] [] 1: (empty) 1: COMMA@51..53 "," [] [Whitespace(" ")] 2: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@53..56 0: JS_IDENTIFIER_ASSIGNMENT@53..56 0: IDENT@53..56 "bar" [] [] 1: (empty) 2: R_BRACK@56..58 "]" [] [Whitespace(" ")] 1: EQ@58..60 "=" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@60..63 0: JS_REFERENCE_IDENTIFIER@60..63 0: IDENT@60..63 "baz" [] [] 1: SEMICOLON@63..64 ";" [] [] 4: JS_EXPRESSION_STATEMENT@64..103 0: JS_ASSIGNMENT_EXPRESSION@64..102 0: JS_ARRAY_ASSIGNMENT_PATTERN@64..97 0: L_BRACK@64..66 "[" [Newline("\n")] [] 1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@66..95 0: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@66..69 0: JS_IDENTIFIER_ASSIGNMENT@66..69 0: IDENT@66..69 "foo" [] [] 1: (empty) 1: COMMA@69..71 "," [] [Whitespace(" ")] 2: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@71..86 0: JS_IDENTIFIER_ASSIGNMENT@71..75 0: IDENT@71..75 "bar" [] [Whitespace(" ")] 1: JS_INITIALIZER_CLAUSE@75..86 0: EQ@75..77 "=" [] [Whitespace(" ")] 1: JS_STRING_LITERAL_EXPRESSION@77..86 0: JS_STRING_LITERAL@77..86 "\"default\"" [] [] 3: COMMA@86..88 "," [] [Whitespace(" ")] 4: JS_ARRAY_ASSIGNMENT_PATTERN_REST_ELEMENT@88..95 0: DOT3@88..91 "..." [] [] 1: JS_IDENTIFIER_ASSIGNMENT@91..95 0: IDENT@91..95 "rest" [] [] 2: R_BRACK@95..97 "]" [] [Whitespace(" ")] 1: EQ@97..99 "=" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@99..102 0: JS_REFERENCE_IDENTIFIER@99..102 0: IDENT@99..102 "baz" [] [] 1: SEMICOLON@102..103 ";" [] [] 5: JS_EXPRESSION_STATEMENT@103..123 0: JS_ASSIGNMENT_EXPRESSION@103..122 0: JS_ARRAY_ASSIGNMENT_PATTERN@103..117 0: L_BRACK@103..105 "[" [Newline("\n")] [] 1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@105..115 0: JS_ARRAY_HOLE@105..105 1: COMMA@105..106 "," [] [] 2: JS_ARRAY_HOLE@106..106 3: COMMA@106..107 "," [] [] 4: JS_ARRAY_HOLE@107..107 5: COMMA@107..108 "," [] [] 6: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@108..111 0: JS_IDENTIFIER_ASSIGNMENT@108..111 0: IDENT@108..111 "foo" [] [] 1: (empty) 7: COMMA@111..112 "," [] [] 8: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@112..115 0: JS_IDENTIFIER_ASSIGNMENT@112..115 0: IDENT@112..115 "bar" [] [] 1: (empty) 2: R_BRACK@115..117 "]" [] [Whitespace(" ")] 1: EQ@117..119 "=" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@119..122 0: JS_REFERENCE_IDENTIFIER@119..122 0: IDENT@119..122 "baz" [] [] 1: SEMICOLON@122..123 ";" [] [] 6: JS_EXPRESSION_STATEMENT@123..144 0: JS_PARENTHESIZED_EXPRESSION@123..143 0: L_PAREN@123..125 "(" [Newline("\n")] [] 1: JS_ASSIGNMENT_EXPRESSION@125..142 0: JS_OBJECT_ASSIGNMENT_PATTERN@125..138 0: L_CURLY@125..127 "{" [] [Whitespace(" ")] 1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@127..136 0: JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY@127..130 0: JS_IDENTIFIER_ASSIGNMENT@127..130 0: IDENT@127..130 "bar" [] [] 1: (empty) 1: COMMA@130..132 "," [] [Whitespace(" ")] 2: JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY@132..136 0: JS_IDENTIFIER_ASSIGNMENT@132..136 0: IDENT@132..136 "baz" [] [Whitespace(" ")] 1: (empty) 2: R_CURLY@136..138 "}" [] [Whitespace(" ")] 1: EQ@138..140 "=" [] [Whitespace(" ")] 2: JS_OBJECT_EXPRESSION@140..142 0: L_CURLY@140..141 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@141..141 2: R_CURLY@141..142 "}" [] [] 2: R_PAREN@142..143 ")" [] [] 1: SEMICOLON@143..144 ";" [] [] 7: JS_EXPRESSION_STATEMENT@144..197 0: JS_PARENTHESIZED_EXPRESSION@144..196 0: L_PAREN@144..146 "(" [Newline("\n")] [] 1: JS_ASSIGNMENT_EXPRESSION@146..195 0: JS_OBJECT_ASSIGNMENT_PATTERN@146..191 0: L_CURLY@146..148 "{" [] [Whitespace(" ")] 1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@148..189 0: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY@148..166 0: JS_LITERAL_MEMBER_NAME@148..151 0: IDENT@148..151 "bar" [] [] 1: COLON@151..153 ":" [] [Whitespace(" ")] 2: JS_ARRAY_ASSIGNMENT_PATTERN@153..166 0: L_BRACK@153..154 "[" [] [] 1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@154..165 0: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@154..165 0: JS_IDENTIFIER_ASSIGNMENT@154..158 0: IDENT@154..158 "baz" [] [Whitespace(" ")] 1: JS_INITIALIZER_CLAUSE@158..165 0: EQ@158..160 "=" [] [Whitespace(" ")] 1: JS_STRING_LITERAL_EXPRESSION@160..165 0: JS_STRING_LITERAL@160..165 "\"baz\"" [] [] 2: R_BRACK@165..166 "]" [] [] 3: (empty) 1: COMMA@166..168 "," [] [Whitespace(" ")] 2: JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY@168..179 0: JS_IDENTIFIER_ASSIGNMENT@168..172 0: IDENT@168..172 "foo" [] [Whitespace(" ")] 1: JS_INITIALIZER_CLAUSE@172..179 0: EQ@172..174 "=" [] [Whitespace(" ")] 1: JS_STRING_LITERAL_EXPRESSION@174..179 0: JS_STRING_LITERAL@174..179 "\"foo\"" [] [] 3: COMMA@179..181 "," [] [Whitespace(" ")] 4: JS_OBJECT_ASSIGNMENT_PATTERN_REST@181..189 0: DOT3@181..184 "..." [] [] 1: JS_IDENTIFIER_ASSIGNMENT@184..189 0: IDENT@184..189 "rest" [] [Whitespace(" ")] 2: R_CURLY@189..191 "}" [] [Whitespace(" ")] 1: EQ@191..193 "=" [] [Whitespace(" ")] 2: JS_OBJECT_EXPRESSION@193..195 0: L_CURLY@193..194 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@194..194 2: R_CURLY@194..195 "}" [] [] 2: R_PAREN@195..196 ")" [] [] 1: SEMICOLON@196..197 ";" [] [] 4: EOF@197..198 "" [Newline("\n")] []