File tree Expand file tree Collapse file tree 3 files changed +38
-13
lines changed Expand file tree Collapse file tree 3 files changed +38
-13
lines changed Original file line number Diff line number Diff line change @@ -795,21 +795,21 @@ Parser.prototype = function(){
795
795
col : token . startCol
796
796
} ) ;
797
797
798
- while ( true ) {
799
- if ( tokenStream . peek ( ) === Tokens . PAGE_SYM ) {
800
- this . _page ( ) ;
801
- } else if ( tokenStream . peek ( ) === Tokens . FONT_FACE_SYM ) {
802
- this . _font_face ( ) ;
803
- } else if ( tokenStream . peek ( ) === Tokens . VIEWPORT_SYM ) {
804
- this . _viewport ( ) ;
805
- } else if ( tokenStream . peek ( ) === Tokens . MEDIA_SYM ) {
806
- this . _media ( ) ;
807
- } else if ( ! this . _ruleset ( ) ) {
808
- break ;
798
+ var ok = true ;
799
+ while ( ok ) {
800
+ switch ( tokenStream . peek ( ) ) {
801
+ case Tokens . PAGE_SYM : this . _page ( ) ; break ;
802
+ case Tokens . FONT_FACE_SYM : this . _font_face ( ) ; break ;
803
+ case Tokens . VIEWPORT_SYM : this . _viewport ( ) ; break ;
804
+ case Tokens . MEDIA_SYM : this . _media ( ) ; break ;
805
+ case Tokens . KEYFRAMES_SYM : this . _keyframes ( ) ; break ;
806
+ case Tokens . DOCUMENT_SYM : this . _document ( ) ; break ;
807
+ default : ok = ! ! this . _ruleset ( ) ;
809
808
}
810
809
}
811
810
812
811
tokenStream . mustMatch ( Tokens . RBRACE ) ;
812
+ token = tokenStream . token ( ) ;
813
813
this . _readWhitespace ( ) ;
814
814
815
815
this . fire ( {
@@ -1988,6 +1988,7 @@ Parser.prototype = function(){
1988
1988
1989
1989
this . _readWhitespace ( ) ;
1990
1990
tokenStream . mustMatch ( Tokens . RBRACE ) ;
1991
+ this . _readWhitespace ( ) ;
1991
1992
1992
1993
} ,
1993
1994
Original file line number Diff line number Diff line change @@ -1632,6 +1632,18 @@ <h1>CSS Parser Tests</h1>
1632
1632
assert . isTrue ( valid ) ;
1633
1633
} ,
1634
1634
1635
+ testDocumentWithKeyframes : function ( ) {
1636
+ var parser = new Parser ( { strict : true } ) ,
1637
+ valid = true ;
1638
+
1639
+ parser . addListener ( "error" , function ( event ) {
1640
+ valid = false ;
1641
+ } ) ;
1642
+
1643
+ var result = parser . parse ( "@document url-prefix() { @keyframes 'diagonal-slide' { from { left: 0; top: 0; } to { left: 100px; top: 100px; } } }" ) ;
1644
+ assert . isTrue ( valid ) ;
1645
+ } ,
1646
+
1635
1647
testDocumentEventFires : function ( ) {
1636
1648
var parser = new Parser ( { strict :true } ) ,
1637
1649
calledStart = false ,
@@ -1645,7 +1657,7 @@ <h1>CSS Parser Tests</h1>
1645
1657
1646
1658
parser . addListener ( "enddocument" , function ( event ) {
1647
1659
assert . areEqual ( 1 , event . line , "Line should be 1" ) ;
1648
- assert . areEqual ( 1 , event . col , "Column should be 1 " ) ;
1660
+ assert . areEqual ( 25 , event . col , "Column should be 25 " ) ;
1649
1661
calledEnd = true ;
1650
1662
} ) ;
1651
1663
Original file line number Diff line number Diff line change 1808
1808
Assert . isTrue ( valid ) ;
1809
1809
} ,
1810
1810
1811
+ testDocumentWithKeyframes : function ( ) {
1812
+ var parser = new Parser ( { strict : true } ) ,
1813
+ valid = true ;
1814
+
1815
+ parser . addListener ( "error" , function ( event ) {
1816
+ valid = false ;
1817
+ } ) ;
1818
+
1819
+ var result = parser . parse ( "@document url-prefix() { @keyframes 'diagonal-slide' { from { left: 0; top: 0; } to { left: 100px; top: 100px; } } }" ) ;
1820
+ Assert . isTrue ( valid ) ;
1821
+ } ,
1822
+
1811
1823
testDocumentEventFires : function ( ) {
1812
1824
var parser = new Parser ( { strict :true } ) ,
1813
1825
calledStart = false ,
1821
1833
1822
1834
parser . addListener ( "enddocument" , function ( event ) {
1823
1835
Assert . areEqual ( 1 , event . line , "Line should be 1" ) ;
1824
- Assert . areEqual ( 1 , event . col , "Column should be 1 " ) ;
1836
+ Assert . areEqual ( 25 , event . col , "Column should be 25 " ) ;
1825
1837
calledEnd = true ;
1826
1838
} ) ;
1827
1839
You can’t perform that action at this time.
0 commit comments