JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsLabeledStatement { label: JsLabel { value_token: IDENT@0..6 "label1" [] [], }, colon_token: COLON@6..8 ":" [] [Whitespace(" ")], body: JsBlockStatement { l_curly_token: L_CURLY@8..9 "{" [] [], statements: JsStatementList [ JsLabeledStatement { label: JsLabel { value_token: IDENT@9..18 "label2" [Newline("\n"), Whitespace(" ")] [], }, colon_token: COLON@18..20 ":" [] [Whitespace(" ")], body: JsBlockStatement { l_curly_token: L_CURLY@20..21 "{" [] [], statements: JsStatementList [ JsLabeledStatement { label: JsLabel { value_token: IDENT@21..32 "label1" [Newline("\n"), Whitespace(" ")] [], }, colon_token: COLON@32..34 ":" [] [Whitespace(" ")], body: JsBlockStatement { l_curly_token: L_CURLY@34..35 "{" [] [], statements: JsStatementList [], r_curly_token: R_CURLY@35..36 "}" [] [], }, }, ], r_curly_token: R_CURLY@36..40 "}" [Newline("\n"), Whitespace(" ")] [], }, }, ], r_curly_token: R_CURLY@40..42 "}" [Newline("\n")] [], }, }, ], eof_token: EOF@42..43 "" [Newline("\n")] [], } 0: JS_MODULE@0..43 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..42 0: JS_LABELED_STATEMENT@0..42 0: JS_LABEL@0..6 0: IDENT@0..6 "label1" [] [] 1: COLON@6..8 ":" [] [Whitespace(" ")] 2: JS_BLOCK_STATEMENT@8..42 0: L_CURLY@8..9 "{" [] [] 1: JS_STATEMENT_LIST@9..40 0: JS_LABELED_STATEMENT@9..40 0: JS_LABEL@9..18 0: IDENT@9..18 "label2" [Newline("\n"), Whitespace(" ")] [] 1: COLON@18..20 ":" [] [Whitespace(" ")] 2: JS_BLOCK_STATEMENT@20..40 0: L_CURLY@20..21 "{" [] [] 1: JS_STATEMENT_LIST@21..36 0: JS_LABELED_STATEMENT@21..36 0: JS_LABEL@21..32 0: IDENT@21..32 "label1" [Newline("\n"), Whitespace(" ")] [] 1: COLON@32..34 ":" [] [Whitespace(" ")] 2: JS_BLOCK_STATEMENT@34..36 0: L_CURLY@34..35 "{" [] [] 1: JS_STATEMENT_LIST@35..35 2: R_CURLY@35..36 "}" [] [] 2: R_CURLY@36..40 "}" [Newline("\n"), Whitespace(" ")] [] 2: R_CURLY@40..42 "}" [Newline("\n")] [] 4: EOF@42..43 "" [Newline("\n")] [] -- double_label.js:3:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Duplicate statement labels are not allowed 1 │ label1: { 2 │ label2: { > 3 │ label1: {} │ ^^^^^^ 4 │ } 5 │ } i a second use of `label1` here is not allowed 1 │ label1: { 2 │ label2: { > 3 │ label1: {} │ ^^^^^^ 4 │ } 5 │ } i `label1` is first used as a label here > 1 │ label1: { │ ^^^^^^ 2 │ label2: { 3 │ label1: {} -- label1: { label2: { label1: {} } }