@@ -37,7 +37,8 @@ CSSOM.parse = function parse(token) {
37
37
"atBlock" : true ,
38
38
"containerBlock" : true ,
39
39
"conditionBlock" : true ,
40
- 'documentRule-begin' : true
40
+ 'documentRule-begin' : true ,
41
+ "layerBlock" : true
41
42
} ;
42
43
43
44
var styleSheet = new CSSOM . CSSStyleSheet ( ) ;
@@ -52,7 +53,7 @@ CSSOM.parse = function parse(token) {
52
53
var hasAncestors = false ;
53
54
var prevScope ;
54
55
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 ;
56
57
57
58
var atKeyframesRegExp = / @ ( - (?: \w + - ) + ) ? k e y f r a m e s / g;
58
59
@@ -165,7 +166,14 @@ CSSOM.parse = function parse(token) {
165
166
i += "container" . length ;
166
167
buffer = "" ;
167
168
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 ) {
169
177
state = "conditionBlock" ;
170
178
supportsRule = new CSSOM . CSSSupportsRule ( ) ;
171
179
supportsRule . __starts = i ;
@@ -254,6 +262,17 @@ CSSOM.parse = function parse(token) {
254
262
supportsRule . parentStyleSheet = styleSheet ;
255
263
buffer = "" ;
256
264
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" ;
257
276
} else if ( state === "hostRule-begin" ) {
258
277
if ( parentRule ) {
259
278
ancestorRules . push ( parentRule ) ;
@@ -430,6 +449,7 @@ CSSOM.parse = function parse(token) {
430
449
parentRule . constructor . name === "CSSMediaRule"
431
450
|| parentRule . constructor . name === "CSSSupportsRule"
432
451
|| parentRule . constructor . name === "CSSContainerRule"
452
+ || parentRule . constructor . name === "CSSLayerBlockRule"
433
453
|| parentRule . constructor . name === "CSSStartingStyleRule"
434
454
) {
435
455
prevScope = currentScope ;
@@ -501,4 +521,5 @@ CSSOM.CSSKeyframeRule = require('./CSSKeyframeRule').CSSKeyframeRule;
501
521
CSSOM . CSSKeyframesRule = require ( './CSSKeyframesRule' ) . CSSKeyframesRule ;
502
522
CSSOM . CSSValueExpression = require ( './CSSValueExpression' ) . CSSValueExpression ;
503
523
CSSOM . CSSDocumentRule = require ( './CSSDocumentRule' ) . CSSDocumentRule ;
524
+ CSSOM . CSSLayerBlockRule = require ( "./CSSLayerBlockRule" ) . CSSLayerBlockRule ;
504
525
///CommonJS
0 commit comments