File tree 4 files changed +31
-10
lines changed
4 files changed +31
-10
lines changed Original file line number Diff line number Diff line change 112
112
. slice ( 0 , match . index )
113
113
. concat ( [ firstElement ] )
114
114
. concat ( selfSelector . elements . slice ( 1 ) )
115
- . concat ( selector . elements . slice ( match . index + 1 ) )
115
+ . concat ( selector . elements . slice ( match . index + match . length ) )
116
116
) ) ;
117
117
} ) ;
118
118
}
121
121
rulesetNode . selectors = rulesetNode . selectors . concat ( selectorsToAdd ) ;
122
122
} ,
123
123
findMatch : function ( extend , selector ) {
124
- var j = 0 , element ;
125
- for ( j = 0 ; j < selector . elements . length ; j ++ ) {
126
- element = selector . elements [ j ] ;
127
- if ( extend . selector . elements [ 0 ] . value === element . value ) {
128
- return { index : j , initialCombinator : element . combinator } ;
124
+ var i , j , element , hasMatch ;
125
+ for ( i = 0 ; i <= ( selector . elements . length - extend . selector . elements . length ) ; i ++ ) {
126
+ hasMatch = true ;
127
+ for ( j = 0 ; j < extend . selector . elements . length ; j ++ ) {
128
+ if ( extend . selector . elements [ j ] . value !== selector . elements [ i + j ] . value ) {
129
+ hasMatch = false ;
130
+ break ;
131
+ }
132
+ }
133
+ if ( hasMatch ) {
134
+ return { index : i , initialCombinator : selector . elements [ i ] . combinator , length : extend . selector . elements . length } ;
129
135
}
130
136
}
131
137
return null ;
Original file line number Diff line number Diff line change @@ -795,9 +795,9 @@ less.Parser = function Parser(env) {
795
795
while ( true ) {
796
796
option = $ ( / ^ ( a n y | d e e p | a l l ) (? = \s * \) ) / ) ;
797
797
if ( option ) { break ; }
798
- e = $ ( / ^ [ # . ] (?: [ \w - ] | \\ (?: [ a - f A - F 0 - 9 ] { 1 , 6 } ? | [ ^ a - f A - F 0 - 9 ] ) ) + / ) ;
798
+ e = $ ( this . element ) ;
799
799
if ( ! e ) { break ; }
800
- elements . push ( new ( tree . Element ) ( null , e , i ) ) ;
800
+ elements . push ( e ) ;
801
801
}
802
802
803
803
expect ( / ^ \) / ) ;
@@ -1052,8 +1052,7 @@ less.Parser = function Parser(env) {
1052
1052
1053
1053
if ( ! e ) {
1054
1054
if ( $ ( '(' ) ) {
1055
- if ( ( v = ( //$(this.entities.variableCurly) ||
1056
- $ ( this . selector ) ) ) &&
1055
+ if ( ( v = ( $ ( this . selector ) ) ) &&
1057
1056
$ ( ')' ) ) {
1058
1057
e = new ( tree . Paren ) ( v ) ;
1059
1058
}
Original file line number Diff line number Diff line change @@ -33,3 +33,10 @@ div.ext7,
33
33
.ext6 > .ext7 {
34
34
width : 100px ;
35
35
}
36
+ .ext8 .ext9 ,
37
+ .foo {
38
+ result : pick-up-both;
39
+ }
40
+ .ext8 .nomatch {
41
+ result : none;
42
+ }
Original file line number Diff line number Diff line change @@ -36,3 +36,12 @@ div.ext5,
36
36
.ext7 {
37
37
& :extend(.ext5 all );
38
38
}
39
+
40
+ .ext8.ext9 {
41
+ result: pick- up- both;
42
+ }
43
+ .ext8.nomatch {
44
+ result: none ;
45
+ }
46
+
47
+ .foo :extend(.ext8.ext9 all ) {}
You can’t perform that action at this time.
0 commit comments