@@ -30,6 +30,7 @@ export default class Selector {
30
30
31
31
apply ( node : Node , stack : Node [ ] ) {
32
32
const toEncapsulate : Node [ ] = [ ] ;
33
+
33
34
applySelector ( this . stylesheet , this . localBlocks . slice ( ) , node , stack . slice ( ) , toEncapsulate ) ;
34
35
35
36
if ( toEncapsulate . length > 0 ) {
@@ -132,10 +133,6 @@ export default class Selector {
132
133
}
133
134
}
134
135
135
- function isDescendantSelector ( selector : Node ) {
136
- return selector . type === 'WhiteSpace' || selector . type === 'Combinator' ;
137
- }
138
-
139
136
function applySelector ( stylesheet : Stylesheet , blocks : Block [ ] , node : Node , stack : Node [ ] , toEncapsulate : any [ ] ) : boolean {
140
137
const block = blocks . pop ( ) ;
141
138
if ( ! block ) return false ;
@@ -145,7 +142,6 @@ function applySelector(stylesheet: Stylesheet, blocks: Block[], node: Node, stac
145
142
}
146
143
147
144
let i = block . selectors . length ;
148
- let j = stack . length ;
149
145
150
146
while ( i -- ) {
151
147
const selector = block . selectors [ i ] ;
@@ -202,12 +198,18 @@ function applySelector(stylesheet: Stylesheet, blocks: Block[], node: Node, stac
202
198
}
203
199
}
204
200
201
+ if ( blocks . every ( block => block . global ) ) {
202
+ toEncapsulate . push ( { node, block } ) ;
203
+ return true ;
204
+ }
205
+
205
206
return false ;
206
207
} else if ( block . combinator . name === '>' ) {
207
208
if ( applySelector ( stylesheet , blocks , stack . pop ( ) , stack , toEncapsulate ) ) {
208
209
toEncapsulate . push ( { node, block } ) ;
209
210
return true ;
210
211
}
212
+
211
213
return false ;
212
214
}
213
215
0 commit comments