shady-css-parser icon indicating copy to clipboard operation
shady-css-parser copied to clipboard

TypeError: Cannot read property 'start' of null

Open maribezler opened this issue 8 years ago • 0 comments

The Parse is unable to gracefully recover css with incomplete @ rule. I'm getting an error on parsing css from the user input:

TypeError: Cannot read property 'start' of null at Tokenizer.getRange (shady-css-parser/src/shady-css/tokenizer.js:88:36) at Parser.parseAtRule (shady-css-parser/src/shady-css/parser.js:148:39) at Parser.parseRule (shady-css-parser/src/shady-css/parser.js:86:25) at Parser.parseRules (shady-css-parser/src/shady-css/parser.js:53:31) at Parser.parseStylesheet (shady-css-parser/src/shady-css/parser.js:41:49) at Parser.parse (shady-css-parser/src/shady-css/parser.js:34:21)

The minimal css input string example : ul {list-style: square); @. The following code is going to fail in Parser.parseAtRule:

    tokenizer.advance();
    const start = tokenizer.currentToken;
    nameRange = tokenizer.getRange(start, end);

The token.advance() function discards the first @ for media rule and nulls tokenizer.currentToken (start) as nothing left in it.

maribezler avatar Dec 05 '17 00:12 maribezler