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..8 "obj" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@8..10 "=" [] [Whitespace(" ")], expression: JsObjectExpression { l_curly_token: L_CURLY@10..11 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@11..12 "}" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@12..13 ";" [] [], }, JsExpressionStatement { expression: JsxTagExpression { tag: JsxSelfClosingElement { l_angle_token: L_ANGLE@13..15 "<" [Newline("\n")] [], name: JsxName { value_token: JSX_IDENT@15..17 "a" [] [Whitespace(" ")], }, type_arguments: missing (optional), attributes: JsxAttributeList [ JsxSpreadAttribute { l_curly_token: L_CURLY@17..18 "{" [] [], dotdotdot_token: DOT3@18..21 "..." [] [], argument: JsBogusExpression { items: [ JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@21..24 "obj" [] [], }, }, COMMA@24..26 "," [] [Whitespace(" ")], JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@26..31 "other" [] [], }, }, ], }, r_curly_token: R_CURLY@31..33 "}" [] [Whitespace(" ")], }, ], slash_token: SLASH@33..34 "/" [] [], r_angle_token: R_ANGLE@34..35 ">" [] [], }, }, semicolon_token: SEMICOLON@35..36 ";" [] [], }, JsExpressionStatement { expression: JsxTagExpression { tag: JsxSelfClosingElement { l_angle_token: L_ANGLE@36..38 "<" [Newline("\n")] [], name: JsxName { value_token: JSX_IDENT@38..40 "a" [] [Whitespace(" ")], }, type_arguments: missing (optional), attributes: JsxAttributeList [ JsxSpreadAttribute { l_curly_token: missing (required), dotdotdot_token: DOT3@40..43 "..." [] [], argument: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@43..46 "obj" [] [], }, }, r_curly_token: R_CURLY@46..48 "}" [] [Whitespace(" ")], }, ], slash_token: SLASH@48..49 "/" [] [], r_angle_token: R_ANGLE@49..50 ">" [] [], }, }, semicolon_token: SEMICOLON@50..51 ";" [] [], }, JsExpressionStatement { expression: JsxTagExpression { tag: JsxSelfClosingElement { l_angle_token: L_ANGLE@51..53 "<" [Newline("\n")] [], name: JsxName { value_token: JSX_IDENT@53..55 "a" [] [Whitespace(" ")], }, type_arguments: missing (optional), attributes: JsxAttributeList [ JsxSpreadAttribute { l_curly_token: L_CURLY@55..56 "{" [] [], dotdotdot_token: missing (required), argument: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@56..59 "obj" [] [], }, }, r_curly_token: R_CURLY@59..61 "}" [] [Whitespace(" ")], }, ], slash_token: SLASH@61..62 "/" [] [], r_angle_token: R_ANGLE@62..63 ">" [] [], }, }, semicolon_token: SEMICOLON@63..64 ";" [] [], }, JsExpressionStatement { expression: JsxTagExpression { tag: JsxSelfClosingElement { l_angle_token: L_ANGLE@64..66 "<" [Newline("\n")] [], name: JsxName { value_token: JSX_IDENT@66..69 "div" [] [], }, type_arguments: missing (optional), attributes: JsxAttributeList [ JsxSpreadAttribute { l_curly_token: L_CURLY@69..77 "{" [Newline("\n"), Whitespace(" ")] [], dotdotdot_token: DOT3@77..80 "..." [] [], argument: JsObjectExpression { l_curly_token: L_CURLY@80..81 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@81..130 "}" [] [Whitespace(" "), Comments("/*\n // @ts-ignor ..."), Whitespace(" "), Comments("/* prettier-ignore */")], }, r_curly_token: missing (required), }, JsxAttribute { name: JsxName { value_token: JSX_IDENT@130..148 "invalidProp" [Newline("\n"), Whitespace(" ")] [], }, initializer: JsxAttributeInitializerClause { eq_token: EQ@148..149 "=" [] [], value: JsxString { value_token: JSX_STRING_LITERAL@149..161 "\"HelloWorld\"" [] [], }, }, }, ], slash_token: SLASH@161..167 "/" [Newline("\n"), Whitespace(" ")] [], r_angle_token: R_ANGLE@167..168 ">" [] [], }, }, semicolon_token: SEMICOLON@168..169 ";" [] [], }, ], eof_token: EOF@169..170 "" [Newline("\n")] [], } 0: JS_MODULE@0..170 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..169 0: JS_VARIABLE_STATEMENT@0..13 0: JS_VARIABLE_DECLARATION@0..12 0: (empty) 1: LET_KW@0..4 "let" [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@4..12 0: JS_VARIABLE_DECLARATOR@4..12 0: JS_IDENTIFIER_BINDING@4..8 0: IDENT@4..8 "obj" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@8..12 0: EQ@8..10 "=" [] [Whitespace(" ")] 1: JS_OBJECT_EXPRESSION@10..12 0: L_CURLY@10..11 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@11..11 2: R_CURLY@11..12 "}" [] [] 1: SEMICOLON@12..13 ";" [] [] 1: JS_EXPRESSION_STATEMENT@13..36 0: JSX_TAG_EXPRESSION@13..35 0: JSX_SELF_CLOSING_ELEMENT@13..35 0: L_ANGLE@13..15 "<" [Newline("\n")] [] 1: JSX_NAME@15..17 0: JSX_IDENT@15..17 "a" [] [Whitespace(" ")] 2: (empty) 3: JSX_ATTRIBUTE_LIST@17..33 0: JSX_SPREAD_ATTRIBUTE@17..33 0: L_CURLY@17..18 "{" [] [] 1: DOT3@18..21 "..." [] [] 2: JS_BOGUS_EXPRESSION@21..31 0: JS_IDENTIFIER_EXPRESSION@21..24 0: JS_REFERENCE_IDENTIFIER@21..24 0: IDENT@21..24 "obj" [] [] 1: COMMA@24..26 "," [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@26..31 0: JS_REFERENCE_IDENTIFIER@26..31 0: IDENT@26..31 "other" [] [] 3: R_CURLY@31..33 "}" [] [Whitespace(" ")] 4: SLASH@33..34 "/" [] [] 5: R_ANGLE@34..35 ">" [] [] 1: SEMICOLON@35..36 ";" [] [] 2: JS_EXPRESSION_STATEMENT@36..51 0: JSX_TAG_EXPRESSION@36..50 0: JSX_SELF_CLOSING_ELEMENT@36..50 0: L_ANGLE@36..38 "<" [Newline("\n")] [] 1: JSX_NAME@38..40 0: JSX_IDENT@38..40 "a" [] [Whitespace(" ")] 2: (empty) 3: JSX_ATTRIBUTE_LIST@40..48 0: JSX_SPREAD_ATTRIBUTE@40..48 0: (empty) 1: DOT3@40..43 "..." [] [] 2: JS_IDENTIFIER_EXPRESSION@43..46 0: JS_REFERENCE_IDENTIFIER@43..46 0: IDENT@43..46 "obj" [] [] 3: R_CURLY@46..48 "}" [] [Whitespace(" ")] 4: SLASH@48..49 "/" [] [] 5: R_ANGLE@49..50 ">" [] [] 1: SEMICOLON@50..51 ";" [] [] 3: JS_EXPRESSION_STATEMENT@51..64 0: JSX_TAG_EXPRESSION@51..63 0: JSX_SELF_CLOSING_ELEMENT@51..63 0: L_ANGLE@51..53 "<" [Newline("\n")] [] 1: JSX_NAME@53..55 0: JSX_IDENT@53..55 "a" [] [Whitespace(" ")] 2: (empty) 3: JSX_ATTRIBUTE_LIST@55..61 0: JSX_SPREAD_ATTRIBUTE@55..61 0: L_CURLY@55..56 "{" [] [] 1: (empty) 2: JS_IDENTIFIER_EXPRESSION@56..59 0: JS_REFERENCE_IDENTIFIER@56..59 0: IDENT@56..59 "obj" [] [] 3: R_CURLY@59..61 "}" [] [Whitespace(" ")] 4: SLASH@61..62 "/" [] [] 5: R_ANGLE@62..63 ">" [] [] 1: SEMICOLON@63..64 ";" [] [] 4: JS_EXPRESSION_STATEMENT@64..169 0: JSX_TAG_EXPRESSION@64..168 0: JSX_SELF_CLOSING_ELEMENT@64..168 0: L_ANGLE@64..66 "<" [Newline("\n")] [] 1: JSX_NAME@66..69 0: JSX_IDENT@66..69 "div" [] [] 2: (empty) 3: JSX_ATTRIBUTE_LIST@69..161 0: JSX_SPREAD_ATTRIBUTE@69..130 0: L_CURLY@69..77 "{" [Newline("\n"), Whitespace(" ")] [] 1: DOT3@77..80 "..." [] [] 2: JS_OBJECT_EXPRESSION@80..130 0: L_CURLY@80..81 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@81..81 2: R_CURLY@81..130 "}" [] [Whitespace(" "), Comments("/*\n // @ts-ignor ..."), Whitespace(" "), Comments("/* prettier-ignore */")] 3: (empty) 1: JSX_ATTRIBUTE@130..161 0: JSX_NAME@130..148 0: JSX_IDENT@130..148 "invalidProp" [Newline("\n"), Whitespace(" ")] [] 1: JSX_ATTRIBUTE_INITIALIZER_CLAUSE@148..161 0: EQ@148..149 "=" [] [] 1: JSX_STRING@149..161 0: JSX_STRING_LITERAL@149..161 "\"HelloWorld\"" [] [] 4: SLASH@161..167 "/" [Newline("\n"), Whitespace(" ")] [] 5: R_ANGLE@167..168 ">" [] [] 1: SEMICOLON@168..169 ";" [] [] 4: EOF@169..170 "" [Newline("\n")] [] -- jsx_spread_attribute_error.jsx:2:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Comma operator isn't a valid value for a JSX spread argument. 1 │ let obj = {}; > 2 │ ; │ ^^^^^^^^^^ 3 │ ; 4 │ ; -- jsx_spread_attribute_error.jsx:3:4 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `{` but instead found `...` 1 │ let obj = {}; 2 │ ; > 3 │ ; │ ^^^ 4 │ ; 5 │
; 3 │ ; > 4 │ ; │ ^^^ 5 │