Skip to content

Commit 1370e1e

Browse files
committed
allow @supports rule to be nested in @media rule
1 parent 444d2e1 commit 1370e1e

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/css/Parser.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Parser.prototype = function(){
8787
* : [ CHARSET_SYM S* STRING S* ';' ]?
8888
* [S|CDO|CDC]* [ import [S|CDO|CDC]* ]*
8989
* [ namespace [S|CDO|CDC]* ]*
90-
* [ [ ruleset | media | page | font_face | keyframes ] [S|CDO|CDC]* ]*
90+
* [ [ ruleset | media | page | font_face | keyframes_rule | supports_rule ] [S|CDO|CDC]* ]*
9191
* ;
9292
*/
9393

@@ -525,6 +525,8 @@ Parser.prototype = function(){
525525
this._viewport();
526526
} else if (tokenStream.peek() === Tokens.DOCUMENT_SYM){
527527
this._document();
528+
} else if (tokenStream.peek() === Tokens.SUPPORTS_SYM) {
529+
this._supports();
528530
} else if (!this._ruleset()){
529531
break;
530532
}

tests/css/Parser.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1622,6 +1622,18 @@ var YUITest = require("yuitest"),
16221622
Assert.isTrue(valid);
16231623
},
16241624

1625+
testMediaWithSupports: function(){
1626+
var parser = new Parser({ strict: true});
1627+
var valid = true;
1628+
1629+
parser.addListener("error", function() {
1630+
valid = false;
1631+
});
1632+
1633+
parser.parse("@media { @supports (display: table-cell) {} }");
1634+
Assert.isTrue(valid);
1635+
},
1636+
16251637
testMediaWithTypeOnly: function(){
16261638
var parser = new Parser({ strict: true});
16271639
var valid = true;

0 commit comments

Comments
 (0)