@@ -43,7 +43,7 @@ CSSOM.parse = function parse(token) {
4343 // @type CSSMediaRule|CSSKeyframesRule|CSSDocumentRule
4444 var parentRule ;
4545
46- var name , priority = "" , styleRule , mediaRule , importRule , fontFaceRule , keyframesRule , documentRule ;
46+ var name , priority = "" , styleRule , mediaRule , importRule , fontFaceRule , keyframesRule , documentRule , hostRule ;
4747
4848 var atKeyframesRegExp = / @ ( - (?: \w + - ) + ) ? k e y f r a m e s / g;
4949
@@ -149,6 +149,13 @@ CSSOM.parse = function parse(token) {
149149 i += "media" . length ;
150150 buffer = "" ;
151151 break ;
152+ } else if ( token . indexOf ( "@host" , i ) === i ) {
153+ state = "hostRule-begin" ;
154+ i += "host" . length ;
155+ hostRule = new CSSOM . CSSHostRule ( ) ;
156+ hostRule . __starts = i ;
157+ buffer = "" ;
158+ break ;
152159 } else if ( token . indexOf ( "@import" , i ) === i ) {
153160 state = "importRule-begin" ;
154161 i += "import" . length ;
@@ -191,6 +198,11 @@ CSSOM.parse = function parse(token) {
191198 mediaRule . parentStyleSheet = styleSheet ;
192199 buffer = "" ;
193200 state = "before-selector" ;
201+ } else if ( state === "hostRule-begin" ) {
202+ currentScope = parentRule = hostRule ;
203+ hostRule . parentStyleSheet = styleSheet ;
204+ buffer = "" ;
205+ state = "before-selector" ;
194206 } else if ( state === "fontFaceRule-begin" ) {
195207 if ( parentRule ) {
196208 fontFaceRule . parentRule = parentRule ;
@@ -373,6 +385,7 @@ CSSOM.CSSStyleRule = require("./CSSStyleRule").CSSStyleRule;
373385CSSOM . CSSImportRule = require ( "./CSSImportRule" ) . CSSImportRule ;
374386CSSOM . CSSMediaRule = require ( "./CSSMediaRule" ) . CSSMediaRule ;
375387CSSOM . CSSFontFaceRule = require ( "./CSSFontFaceRule" ) . CSSFontFaceRule ;
388+ CSSOM . CSSHostRule = require ( "./CSSHostRule" ) . CSSHostRule ;
376389CSSOM . CSSStyleDeclaration = require ( './CSSStyleDeclaration' ) . CSSStyleDeclaration ;
377390CSSOM . CSSKeyframeRule = require ( './CSSKeyframeRule' ) . CSSKeyframeRule ;
378391CSSOM . CSSKeyframesRule = require ( './CSSKeyframesRule' ) . CSSKeyframesRule ;
0 commit comments