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(){
795795 col : token . startCol
796796 } ) ;
797797
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 ( ) ;
809808 }
810809 }
811810
812811 tokenStream . mustMatch ( Tokens . RBRACE ) ;
812+ token = tokenStream . token ( ) ;
813813 this . _readWhitespace ( ) ;
814814
815815 this . fire ( {
@@ -1988,6 +1988,7 @@ Parser.prototype = function(){
19881988
19891989 this . _readWhitespace ( ) ;
19901990 tokenStream . mustMatch ( Tokens . RBRACE ) ;
1991+ this . _readWhitespace ( ) ;
19911992
19921993 } ,
19931994
Original file line number Diff line number Diff line change @@ -1632,6 +1632,18 @@ <h1>CSS Parser Tests</h1>
16321632 assert . isTrue ( valid ) ;
16331633 } ,
16341634
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+
16351647 testDocumentEventFires : function ( ) {
16361648 var parser = new Parser ( { strict :true } ) ,
16371649 calledStart = false ,
@@ -1645,7 +1657,7 @@ <h1>CSS Parser Tests</h1>
16451657
16461658 parser . addListener ( "enddocument" , function ( event ) {
16471659 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 " ) ;
16491661 calledEnd = true ;
16501662 } ) ;
16511663
Original file line number Diff line number Diff line change 18081808 Assert . isTrue ( valid ) ;
18091809 } ,
18101810
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+
18111823 testDocumentEventFires : function ( ) {
18121824 var parser = new Parser ( { strict :true } ) ,
18131825 calledStart = false ,
18211833
18221834 parser . addListener ( "enddocument" , function ( event ) {
18231835 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 " ) ;
18251837 calledEnd = true ;
18261838 } ) ;
18271839
You can’t perform that action at this time.
0 commit comments