@@ -52,7 +52,7 @@ CSSOM.parse = function parse(token) {
5252 var hasAncestors = false ;
5353 var prevScope ;
5454
55- var name , priority = "" , styleRule , mediaRule , containerRule , supportsRule , importRule , fontFaceRule , keyframesRule , documentRule , hostRule ;
55+ var name , priority = "" , styleRule , mediaRule , containerRule , supportsRule , importRule , fontFaceRule , keyframesRule , documentRule , hostRule , startingStyleRule ;
5656
5757 var atKeyframesRegExp = / @ ( - (?: \w + - ) + ) ? k e y f r a m e s / g;
5858
@@ -179,6 +179,13 @@ CSSOM.parse = function parse(token) {
179179 hostRule . __starts = i ;
180180 buffer = "" ;
181181 break ;
182+ } else if ( token . indexOf ( "@starting-style" , i ) === i ) {
183+ state = "startingStyleRule-begin" ;
184+ i += "startingStyle" . length ;
185+ startingStyleRule = new CSSOM . CSSStartingStyleRule ( ) ;
186+ startingStyleRule . __starts = i ;
187+ buffer = "" ;
188+ break ;
182189 } else if ( token . indexOf ( "@import" , i ) === i ) {
183190 state = "importRule-begin" ;
184191 i += "import" . length ;
@@ -256,6 +263,16 @@ CSSOM.parse = function parse(token) {
256263 hostRule . parentStyleSheet = styleSheet ;
257264 buffer = "" ;
258265 state = "before-selector" ;
266+ } else if ( state === "startingStyleRule-begin" ) {
267+ if ( parentRule ) {
268+ ancestorRules . push ( parentRule ) ;
269+ }
270+
271+ currentScope = parentRule = startingStyleRule ;
272+ startingStyleRule . parentStyleSheet = styleSheet ;
273+ buffer = "" ;
274+ state = "before-selector" ;
275+
259276 } else if ( state === "fontFaceRule-begin" ) {
260277 if ( parentRule ) {
261278 fontFaceRule . parentRule = parentRule ;
@@ -477,6 +494,7 @@ CSSOM.CSSConditionRule = require("./CSSConditionRule").CSSConditionRule;
477494CSSOM . CSSSupportsRule = require ( "./CSSSupportsRule" ) . CSSSupportsRule ;
478495CSSOM . CSSFontFaceRule = require ( "./CSSFontFaceRule" ) . CSSFontFaceRule ;
479496CSSOM . CSSHostRule = require ( "./CSSHostRule" ) . CSSHostRule ;
497+ CSSOM . CSSStartingStyleRule = require ( "./CSSStartingStyleRule" ) . CSSStartingStyleRule ;
480498CSSOM . CSSStyleDeclaration = require ( './CSSStyleDeclaration' ) . CSSStyleDeclaration ;
481499CSSOM . CSSKeyframeRule = require ( './CSSKeyframeRule' ) . CSSKeyframeRule ;
482500CSSOM . CSSKeyframesRule = require ( './CSSKeyframesRule' ) . CSSKeyframesRule ;
0 commit comments