@@ -51,7 +51,7 @@ CSSOM.parse = function parse(token) {
5151 var hasAncestors = false ;
5252 var prevScope ;
5353
54- var name , priority = "" , styleRule , mediaRule , supportsRule , importRule , fontFaceRule , keyframesRule , documentRule , hostRule ;
54+ var name , priority = "" , styleRule , mediaRule , supportsRule , importRule , fontFaceRule , keyframesRule , documentRule , hostRule , startingStyleRule ;
5555
5656 var atKeyframesRegExp = / @ ( - (?: \w + - ) + ) ? k e y f r a m e s / g;
5757
@@ -171,6 +171,13 @@ CSSOM.parse = function parse(token) {
171171 hostRule . __starts = i ;
172172 buffer = "" ;
173173 break ;
174+ } else if ( token . indexOf ( "@starting-style" , i ) === i ) {
175+ state = "startingStyleRule-begin" ;
176+ i += "startingStyle" . length ;
177+ startingStyleRule = new CSSOM . CSSStartingStyleRule ( ) ;
178+ startingStyleRule . __starts = i ;
179+ buffer = "" ;
180+ break ;
174181 } else if ( token . indexOf ( "@import" , i ) === i ) {
175182 state = "importRule-begin" ;
176183 i += "import" . length ;
@@ -238,6 +245,16 @@ CSSOM.parse = function parse(token) {
238245 hostRule . parentStyleSheet = styleSheet ;
239246 buffer = "" ;
240247 state = "before-selector" ;
248+ } else if ( state === "startingStyleRule-begin" ) {
249+ if ( parentRule ) {
250+ ancestorRules . push ( parentRule ) ;
251+ }
252+
253+ currentScope = parentRule = startingStyleRule ;
254+ startingStyleRule . parentStyleSheet = styleSheet ;
255+ buffer = "" ;
256+ state = "before-selector" ;
257+
241258 } else if ( state === "fontFaceRule-begin" ) {
242259 if ( parentRule ) {
243260 fontFaceRule . parentRule = parentRule ;
@@ -457,6 +474,7 @@ CSSOM.CSSConditionRule = require("./CSSConditionRule").CSSConditionRule;
457474CSSOM . CSSSupportsRule = require ( "./CSSSupportsRule" ) . CSSSupportsRule ;
458475CSSOM . CSSFontFaceRule = require ( "./CSSFontFaceRule" ) . CSSFontFaceRule ;
459476CSSOM . CSSHostRule = require ( "./CSSHostRule" ) . CSSHostRule ;
477+ CSSOM . CSSStartingStyleRule = require ( "./CSSStartingStyleRule" ) . CSSStartingStyleRule ;
460478CSSOM . CSSStyleDeclaration = require ( './CSSStyleDeclaration' ) . CSSStyleDeclaration ;
461479CSSOM . CSSKeyframeRule = require ( './CSSKeyframeRule' ) . CSSKeyframeRule ;
462480CSSOM . CSSKeyframesRule = require ( './CSSKeyframesRule' ) . CSSKeyframesRule ;
0 commit comments