@@ -37,7 +37,8 @@ CSSOM.parse = function parse(token) {
3737 "atBlock" : true ,
3838 "containerBlock" : true ,
3939 "conditionBlock" : true ,
40- 'documentRule-begin' : true
40+ 'documentRule-begin' : true ,
41+ "layerBlock" : true
4142 } ;
4243
4344 var styleSheet = new CSSOM . CSSStyleSheet ( ) ;
@@ -52,7 +53,7 @@ CSSOM.parse = function parse(token) {
5253 var hasAncestors = false ;
5354 var prevScope ;
5455
55- var name , priority = "" , styleRule , mediaRule , containerRule , supportsRule , importRule , fontFaceRule , keyframesRule , documentRule , hostRule , startingStyleRule ;
56+ var name , priority = "" , styleRule , mediaRule , containerRule , supportsRule , importRule , fontFaceRule , keyframesRule , documentRule , hostRule , startingStyleRule , layerBlockRule ;
5657
5758 var atKeyframesRegExp = / @ ( - (?: \w + - ) + ) ? k e y f r a m e s / g;
5859
@@ -165,7 +166,14 @@ CSSOM.parse = function parse(token) {
165166 i += "container" . length ;
166167 buffer = "" ;
167168 break ;
168- } else if ( token . indexOf ( "@supports" , i ) === i ) {
169+ } else if ( token . indexOf ( "@layer" , i ) === i ) {
170+ state = "layerBlock"
171+ layerBlockRule = new CSSOM . CSSLayerBlockRule ( ) ;
172+ layerBlockRule . __starts = i ;
173+ i += "layer" . length ;
174+ buffer = "" ;
175+ break ;
176+ } else if ( token . indexOf ( "@supports" , i ) === i ) {
169177 state = "conditionBlock" ;
170178 supportsRule = new CSSOM . CSSSupportsRule ( ) ;
171179 supportsRule . __starts = i ;
@@ -254,6 +262,17 @@ CSSOM.parse = function parse(token) {
254262 supportsRule . parentStyleSheet = styleSheet ;
255263 buffer = "" ;
256264 state = "before-selector" ;
265+ } else if ( state === "layerBlock" ) {
266+ layerBlockRule . layerNameText = buffer . trim ( ) ;
267+
268+ if ( parentRule ) {
269+ ancestorRules . push ( parentRule ) ;
270+ }
271+
272+ currentScope = parentRule = layerBlockRule ;
273+ layerBlockRule . parentStyleSheet = styleSheet ;
274+ buffer = "" ;
275+ state = "before-selector" ;
257276 } else if ( state === "hostRule-begin" ) {
258277 if ( parentRule ) {
259278 ancestorRules . push ( parentRule ) ;
@@ -430,6 +449,7 @@ CSSOM.parse = function parse(token) {
430449 parentRule . constructor . name === "CSSMediaRule"
431450 || parentRule . constructor . name === "CSSSupportsRule"
432451 || parentRule . constructor . name === "CSSContainerRule"
452+ || parentRule . constructor . name === "CSSLayerBlockRule"
433453 || parentRule . constructor . name === "CSSStartingStyleRule"
434454 ) {
435455 prevScope = currentScope ;
@@ -501,4 +521,5 @@ CSSOM.CSSKeyframeRule = require('./CSSKeyframeRule').CSSKeyframeRule;
501521CSSOM . CSSKeyframesRule = require ( './CSSKeyframesRule' ) . CSSKeyframesRule ;
502522CSSOM . CSSValueExpression = require ( './CSSValueExpression' ) . CSSValueExpression ;
503523CSSOM . CSSDocumentRule = require ( './CSSDocumentRule' ) . CSSDocumentRule ;
524+ CSSOM . CSSLayerBlockRule = require ( "./CSSLayerBlockRule" ) . CSSLayerBlockRule ;
504525///CommonJS
0 commit comments