@@ -221,45 +221,44 @@ function parseValue(val, ref) {
221
221
if ( unit == 'Ω' || unit == "ohm" || unit == "ohms" ) {
222
222
unit = 'r' ;
223
223
}
224
- unit = unit [ 0 ] ;
225
- } else {
226
- ref = / ^ ( [ a - z ] + ) \d + $ / i. exec ( ref ) ;
227
- if ( ref ) {
228
- ref = ref [ 1 ] . toLowerCase ( ) ;
229
- if ( ref == "c" ) unit = 'f' ;
230
- else if ( ref == "l" ) unit = 'h' ;
231
- else if ( ref == "r" || ref == "rv" ) unit = 'r' ;
232
- else unit = null ;
233
- }
224
+ return unit [ 0 ] ;
234
225
}
235
- return unit ;
226
+
227
+ var resarr = / ^ ( [ a - z ] + ) \d + $ / i. exec ( ref ) ;
228
+ switch ( Array . isArray ( resarr ) && resarr [ 1 ] . toLowerCase ( ) ) {
229
+ case "c" : return 'f' ;
230
+ case "l" : return 'h' ;
231
+ case "r" :
232
+ case "rv" : return 'r' ;
233
+ }
234
+ return null ;
236
235
} ;
237
236
val = val . replace ( / , / g, "" ) ;
238
237
var match = units . valueRegex . exec ( val ) ;
239
- var unit ;
240
- if ( match ) {
241
- val = parseFloat ( match [ 1 ] ) ;
238
+ if ( Array . isArray ( match ) ) {
239
+ var unit = inferUnit ( match [ 3 ] , ref ) ;
240
+ var val_i = parseFloat ( match [ 1 ] ) ;
241
+ if ( ! unit ) return null ;
242
242
if ( match [ 2 ] ) {
243
- val = val * units . getMultiplier ( match [ 2 ] ) ;
243
+ val_i = val_i * getMultiplier ( match [ 2 ] ) ;
244
244
}
245
- unit = inferUnit ( match [ 3 ] , ref ) ;
246
- if ( ! unit ) return null ;
247
- else return {
248
- val : val ,
245
+ return {
246
+ val : val_i ,
249
247
unit : unit ,
250
248
extra : match [ 4 ] ,
251
249
}
252
250
}
251
+
253
252
match = units . valueAltRegex . exec ( val ) ;
254
- if ( match && ( match [ 1 ] || match [ 4 ] ) ) {
255
- val = parseFloat ( match [ 1 ] + "." + match [ 4 ] ) ;
253
+ if ( Array . isArray ( match ) && ( match [ 1 ] || match [ 4 ] ) ) {
254
+ var unit = inferUnit ( match [ 2 ] , ref ) ;
255
+ var val_i = parseFloat ( match [ 1 ] + "." + match [ 4 ] ) ;
256
+ if ( ! unit ) return null ;
256
257
if ( match [ 3 ] ) {
257
- val = val * units . getMultiplier ( match [ 3 ] ) ;
258
+ val_i = val_i * getMultiplier ( match [ 3 ] ) ;
258
259
}
259
- unit = inferUnit ( match [ 2 ] , ref ) ;
260
- if ( ! unit ) return null ;
261
- else return {
262
- val : val ,
260
+ return {
261
+ val : val_i ,
263
262
unit : unit ,
264
263
extra : match [ 5 ] ,
265
264
}
0 commit comments