Skip to content

Commit bf4ccfd

Browse files
authored
Merge pull request #2 from udhavsethi/master
Fix parsing for minified css with extra semicolons
2 parents e15ca75 + 7ddbc00 commit bf4ccfd

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

src/shady-css/parser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ class Parser {
131131
}
132132

133133
while (tokenizer.currentToken &&
134-
tokenizer.currentToken.is(TokenType.boundary)) {
134+
tokenizer.currentToken.is(TokenType.semicolon)) {
135135
end = tokenizer.advance();
136136
}
137137

src/test/fixtures.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ div {
6868

6969
export const minifiedRuleset = '.foo{bar:baz}div .qux{vim:fet;}';
7070

71+
export const minifiedRulesetWithExtraSemicolons = '.foo{bar:baz;;}div .qux{vim:fet;}';
72+
7173
export const psuedoRuleset = '.foo:bar:not(#rif){baz:qux}';
7274

7375
export const dataUriRuleset = '.foo{bar:url(qux;gib)}';

src/test/parser-test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,18 @@ describe('Parser', () => {
183183
]))
184184
]));
185185
});
186+
187+
it('can parse minified rulelists with extra semicolons', () => {
188+
expect(parser.parse(fixtures.minifiedRulesetWithExtraSemicolons))
189+
.to.containSubset(nodeFactory.stylesheet([
190+
nodeFactory.ruleset(
191+
'.foo', nodeFactory.rulelist([nodeFactory.declaration(
192+
'bar', nodeFactory.expression('baz'))])),
193+
nodeFactory.ruleset(
194+
'div .qux', nodeFactory.rulelist([nodeFactory.declaration(
195+
'vim', nodeFactory.expression('fet'))]))
196+
]));
197+
});
186198
});
187199

188200
describe('when extracting ranges', () => {

0 commit comments

Comments
 (0)