@@ -78,15 +78,16 @@ function parse(selector, options){
78
78
data , firstChar , name ;
79
79
80
80
function getName ( ) {
81
- var sub = escaped_name = selector . match ( re_name ) [ 0 ] ;
81
+ var sub = selector . match ( re_name ) [ 0 ] ;
82
+ escaped_name = sub ;
82
83
selector = selector . substr ( sub . length ) ;
83
84
return unescapeCSS ( sub ) ;
84
85
}
85
86
86
87
while ( selector !== "" ) {
87
88
if ( re_name . test ( selector ) ) {
88
89
if ( sawWS ) {
89
- selectorette . push ( ' ' ) ;
90
+ selectorette . push ( " " ) ;
90
91
tokens . push ( { type : "descendant" } ) ;
91
92
sawWS = false ;
92
93
}
@@ -107,12 +108,14 @@ function parse(selector, options){
107
108
selector = selector . substr ( 1 ) ;
108
109
109
110
if ( firstChar in simpleSelectors ) {
110
- sawWS && selectorette . push ( ' ' ) ;
111
+ if ( sawWS ) {
112
+ selectorette . push ( " " ) ;
113
+ }
111
114
selectorette . push ( firstChar ) ;
112
115
tokens . push ( { type : simpleSelectors [ firstChar ] } ) ;
113
116
114
117
if ( re_ws . test ( selector ) ) {
115
- selectorette . push ( ' ' ) ;
118
+ selectorette . push ( " " ) ;
116
119
}
117
120
selector = selector . trimLeft ( ) ;
118
121
sawWS = false ;
@@ -125,14 +128,14 @@ function parse(selector, options){
125
128
subselects . push ( tokens ) ;
126
129
tokens = [ ] ;
127
130
128
- selectors . push ( selectorette . join ( '' ) ) ;
131
+ selectors . push ( selectorette . join ( "" ) ) ;
129
132
selectorette = [ ] ;
130
133
131
134
selector = selector . trimLeft ( ) ;
132
135
sawWS = false ;
133
136
continue ;
134
137
} else if ( sawWS ) {
135
- selectorette . push ( ' ' ) ;
138
+ selectorette . push ( " " ) ;
136
139
tokens . push ( { type : "descendant" } ) ;
137
140
sawWS = false ;
138
141
}
@@ -177,17 +180,17 @@ function parse(selector, options){
177
180
} ) ;
178
181
179
182
// reconstruct selector from data
180
- data [ 4 ] = data [ 4 ] !== undefined ? data [ 4 ] + '=' : '' ;
183
+ data [ 4 ] = data [ 4 ] !== undefined ? data [ 4 ] + "=" : "" ;
181
184
data [ 5 ] = data [ 5 ] || "" ;
182
185
data [ 6 ] = data [ 6 ] || "" ;
183
186
184
- selectorette . push ( // "[ href *= 'google' i]"
185
- firstChar // [
186
- + data [ 1 ] + data [ 2 ] + data [ 3 ] // \s href \s
187
- + data [ 4 ] + data [ 5 ] // *= \s
188
- + data [ 6 ] + value + data [ 6 ] // \'(google || undefined || '')\'
189
- + data [ 9 ] + ( data [ 10 ] || '' ) // \s i
190
- + ']' ) ; // ]
187
+ selectorette . push ( // "[ href *= 'google' i]"
188
+ firstChar + // [
189
+ data [ 1 ] + data [ 2 ] + data [ 3 ] + // \s href \s
190
+ data [ 4 ] + data [ 5 ] + // *= \s
191
+ data [ 6 ] + value + data [ 6 ] + // \'(google || undefined || '')\'
192
+ data [ 9 ] + ( data [ 10 ] || "" ) + // \s i
193
+ "]" ) ; // ]
191
194
192
195
} else if ( firstChar === ":" ) {
193
196
//if(selector.charAt(0) === ":"){} //TODO pseudo-element
@@ -201,7 +204,7 @@ function parse(selector, options){
201
204
}
202
205
203
206
tokens . push ( { type : "pseudo" , name : name , data : data } ) ;
204
- selectorette . push ( firstChar + escaped_name + ( data ? '(' + data + ')' : '' ) ) ;
207
+ selectorette . push ( firstChar + escaped_name + ( data ? "(" + data + ")" : "" ) ) ;
205
208
} else {
206
209
//otherwise, the parser needs to throw or it would enter an infinite loop
207
210
throw new SyntaxError ( "Unmatched selector: " + firstChar + selector ) ;
@@ -213,8 +216,10 @@ function parse(selector, options){
213
216
throw new SyntaxError ( "empty sub-selector" ) ;
214
217
}
215
218
216
- selectors . push ( selectorette . join ( '' ) ) ;
217
- options && ( options . selectors = selectors ) ;
219
+ selectors . push ( selectorette . join ( "" ) ) ;
220
+ if ( options ) {
221
+ options . selectors = selectors ;
222
+ }
218
223
219
224
subselects . push ( tokens ) ;
220
225
0 commit comments