@@ -178,53 +178,56 @@ export function analyze(css, options = {}) {
178
178
break
179
179
}
180
180
181
- if ( atRuleName === 'media' ) {
182
- let prelude = stringifyNode ( node . prelude )
183
- medias . push ( prelude , node . prelude . loc )
184
- if ( isMediaBrowserhack ( node . prelude ) ) {
185
- mediaBrowserhacks . push ( prelude , node . prelude . loc )
181
+ // All the AtRules in here MUST have a prelude, we we can count their names
182
+ if ( node . prelude !== null ) {
183
+ if ( atRuleName === 'media' ) {
184
+ let prelude = stringifyNode ( node . prelude )
185
+ medias . push ( prelude , node . prelude . loc )
186
+ if ( isMediaBrowserhack ( node . prelude ) ) {
187
+ mediaBrowserhacks . push ( prelude , node . prelude . loc )
188
+ }
189
+ break
186
190
}
187
- break
188
- }
189
- if ( atRuleName === ' supports' ) {
190
- let prelude = stringifyNode ( node . prelude )
191
- supports . push ( prelude , node . prelude . loc )
192
- if ( isSupportsBrowserhack ( node . prelude ) ) {
193
- supportsBrowserhacks . push ( prelude , node . prelude . loc )
191
+ if ( atRuleName === 'supports' ) {
192
+ let prelude = stringifyNode ( node . prelude )
193
+ supports . push ( prelude , node . prelude . loc )
194
+ if ( isSupportsBrowserhack ( node . prelude ) ) {
195
+ supportsBrowserhacks . push ( prelude , node . prelude . loc )
196
+ }
197
+ break
194
198
}
195
- break
196
- }
197
- if ( endsWith ( 'keyframes' , atRuleName ) ) {
198
- let name = '@' + atRuleName + ' ' + stringifyNode ( node . prelude )
199
- if ( hasVendorPrefix ( atRuleName ) ) {
200
- prefixedKeyframes . push ( name , node . prelude . loc )
199
+ if ( endsWith ( 'keyframes' , atRuleName ) ) {
200
+ let name = '@' + atRuleName + ' ' + stringifyNode ( node . prelude )
201
+ if ( hasVendorPrefix ( atRuleName ) ) {
202
+ prefixedKeyframes . push ( name , node . prelude . loc )
203
+ }
204
+ keyframes . push ( name , node . prelude . loc )
205
+ break
206
+ }
207
+ if ( atRuleName === 'import' ) {
208
+ imports . push ( stringifyNode ( node . prelude ) , node . prelude . loc )
209
+ break
210
+ }
211
+ if ( atRuleName === 'charset' ) {
212
+ charsets . push ( stringifyNode ( node . prelude ) , node . prelude . loc )
213
+ break
214
+ }
215
+ if ( atRuleName === 'container' ) {
216
+ containers . push ( stringifyNode ( node . prelude ) , node . prelude . loc )
217
+ break
218
+ }
219
+ if ( atRuleName === 'layer' ) {
220
+ let prelude = stringifyNode ( node . prelude )
221
+ prelude
222
+ . split ( ',' )
223
+ . forEach ( name => layers . push ( name . trim ( ) , node . prelude . loc ) )
224
+ break
225
+ }
226
+ if ( atRuleName === 'property' ) {
227
+ let prelude = stringifyNode ( node . prelude )
228
+ registeredProperties . push ( prelude , node . prelude . loc )
229
+ break
201
230
}
202
- keyframes . push ( name , node . prelude . loc )
203
- break
204
- }
205
- if ( atRuleName === 'import' ) {
206
- imports . push ( stringifyNode ( node . prelude ) , node . prelude . loc )
207
- break
208
- }
209
- if ( atRuleName === 'charset' ) {
210
- charsets . push ( stringifyNode ( node . prelude ) , node . prelude . loc )
211
- break
212
- }
213
- if ( atRuleName === 'container' ) {
214
- containers . push ( stringifyNode ( node . prelude ) , node . prelude . loc )
215
- break
216
- }
217
- if ( atRuleName === 'layer' ) {
218
- let prelude = stringifyNode ( node . prelude )
219
- prelude
220
- . split ( ',' )
221
- . forEach ( name => layers . push ( name . trim ( ) , node . prelude . loc ) )
222
- break
223
- }
224
- if ( atRuleName === 'property' ) {
225
- let prelude = stringifyNode ( node . prelude )
226
- registeredProperties . push ( prelude , node . prelude . loc )
227
- break
228
231
}
229
232
break
230
233
}
0 commit comments