{"record":{"id":"26e5e6aba229d2ae","repo":"swc-project/swc","slug":"unterminated-regexp-literal","errorCode":null,"errorMessage":"Unterminated regexp literal","messagePattern":"Unterminated regexp literal","errorType":"validation","errorClass":"SyntaxError","httpStatus":null,"severity":"error","filePath":"crates/swc_ecma_lexer/src/common/lexer/mod.rs","lineNumber":1605,"sourceCode":"\n        debug_assert_eq!(self.cur(), Some(b'/'));\n\n        let start = self.cur_pos();\n\n        self.bump(); // bump '/'\n\n        let slice_start = self.cur_pos();\n\n        let (mut escaped, mut in_class) = (false, false);\n\n        while let Some(c) = self.cur() {\n            let c = c as char;\n            // This is ported from babel.\n            // Seems like regexp literal cannot contain linebreak.\n            if c.is_line_terminator() {\n                let span = self.span(start);\n\n                return Err(crate::error::Error::new(\n                    span,\n                    SyntaxError::UnterminatedRegExp,\n                ));\n            }\n\n            if escaped {\n                escaped = false;\n            } else {\n                match c {\n                    '[' => in_class = true,\n                    ']' if in_class => in_class = false,\n                    // Terminates content part of regex literal\n                    '/' if !in_class => break,\n                    _ => {}\n                }\n\n                escaped = c == '\\\\';\n            }","sourceCodeStart":1587,"sourceCodeEnd":1623,"githubUrl":"https://github.com/swc-project/swc/blob/5176682b65416c6b5de6b47379ae1588ea3ecb3f/crates/swc_ecma_lexer/src/common/lexer/mod.rs#L1587-L1623","documentation":"Lexer error from read_regexp: while scanning a regular expression literal the lexer hit a line terminator before the closing '/', which is illegal because regexp literals cannot span lines (behavior ported from Babel). The span starts at the opening '/'.","triggerScenarios":"Thrown at crates/swc_ecma_lexer/src/common/lexer/mod.rs:1605 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Close the regexp literal with '/' on the same line","Move the pattern onto one line or build the RegExp via new RegExp with a string"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5176682b65416c6b5de6b47379ae1588ea3ecb3f","analyzedAt":"2026-08-17T16:16:52.067Z","contentChangedAt":"2026-08-17T16:16:52.067Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}