@@ -253,12 +253,12 @@ const RuleWriter = {
253253 this . parseOneRuleset ( xmldom . documentElement , rule_store , file ) ;
254254 } else {
255255 // The root of the XML tree is assumed to look like a <rulesetlibrary>
256- var lngth = xmldom . documentElement . getElementsByTagName ( "ruleset" ) . length ; // premature optimisation
257- if ( lngth == 0 && ( file . path . search ( "00README" ) == - 1 ) )
256+ var rulesets = xmldom . documentElement . getElementsByTagName ( "ruleset" ) ;
257+ if ( rulesets . length == 0 && ( file . path . search ( "00README" ) == - 1 ) )
258258 this . log ( WARN , "Probable <rulesetlibrary> with no <rulesets> in "
259259 + file . path + "\n" + xmldom ) ;
260- for ( var j = 0 ; j < lngth ; j ++ )
261- this . parseOneRuleset ( xmldom . getElementsByTagName ( "ruleset" ) [ j ] , rule_store , file ) ;
260+ for ( var j = 0 ; j < rulesets . length ; j ++ )
261+ this . parseOneRuleset ( rulesets [ j ] , rule_store , file ) ;
262262 }
263263 } ,
264264
@@ -275,7 +275,8 @@ const RuleWriter = {
275275 var dflt_off = xmlruleset . getAttribute ( "default_off" ) ;
276276 var rs = new RuleSet ( xmlruleset . getAttribute ( "name" ) , xmlruleset . getAttribute ( "f" ) , match_rl , dflt_off ) ;
277277
278- if ( xmlruleset . getElementsByTagName ( "target" ) . length == 0 ) {
278+ var targets = xmlruleset . getElementsByTagName ( "target" ) ;
279+ if ( targets . length == 0 ) {
279280 var msg = "Error: As of v0.3.0, XML rulesets require a target domain entry," ;
280281 msg = msg + "\nbut " + file . path + " is missing one." ;
281282 this . log ( WARN , msg ) ;
@@ -291,8 +292,8 @@ const RuleWriter = {
291292
292293 // add this ruleset into HTTPSRules.targets with all of the applicable
293294 // target host indexes
294- for ( var i = 0 ; i < xmlruleset . getElementsByTagName ( "target" ) . length ; i ++ ) {
295- var host = xmlruleset . getElementsByTagName ( "target" ) [ i ] . getAttribute ( "host" ) ;
295+ for ( var i = 0 ; i < targets . length ; i ++ ) {
296+ var host = targets [ i ] . getAttribute ( "host" ) ;
296297 if ( ! host ) {
297298 this . log ( WARN , "<target> missing host in " + file . path ) ;
298299 return null ;
@@ -302,20 +303,23 @@ const RuleWriter = {
302303 rule_store . targets [ host ] . push ( rs ) ;
303304 }
304305
305- for ( var i = 0 ; i < xmlruleset . getElementsByTagName ( "exclusion" ) . length ; i ++ ) {
306- var exclusion = new Exclusion ( xmlruleset . getElementsByTagName ( "exclusion" ) [ i ] . getAttribute ( "pattern" ) ) ;
306+ var exclusions = xmlruleset . getElementsByTagName ( "exclusion" ) ;
307+ for ( var i = 0 ; i < exclusions . length ; i ++ ) {
308+ var exclusion = new Exclusion ( exclusions [ i ] . getAttribute ( "pattern" ) ) ;
307309 rs . exclusions . push ( exclusion ) ;
308310 }
309311
310- for ( var i = 0 ; i < xmlruleset . getElementsByTagName ( "rule" ) . length ; i ++ ) {
311- var rule = new Rule ( xmlruleset . getElementsByTagName ( "rule" ) [ i ] . getAttribute ( "from" ) ,
312- xmlruleset . getElementsByTagName ( "rule" ) [ i ] . getAttribute ( "to" ) ) ;
312+ var rules = xmlruleset . getElementsByTagName ( "rule" ) ;
313+ for ( var i = 0 ; i < rules . length ; i ++ ) {
314+ var rule = new Rule ( rules [ i ] . getAttribute ( "from" ) ,
315+ rules [ i ] . getAttribute ( "to" ) ) ;
313316 rs . rules . push ( rule ) ;
314317 }
315318
316- for ( var i = 0 ; i < xmlruleset . getElementsByTagName ( "securecookie" ) . length ; i ++ ) {
317- var c_rule = new CookieRule ( xmlruleset . getElementsByTagName ( "securecookie" ) [ i ] . getAttribute ( "host" ) ,
318- xmlruleset . getElementsByTagName ( "securecookie" ) [ i ] . getAttribute ( "name" ) ) ;
319+ var securecookies = xmlruleset . getElementsByTagName ( "securecookie" ) ;
320+ for ( var i = 0 ; i < securecookies . length ; i ++ ) {
321+ var c_rule = new CookieRule ( securecookies [ i ] . getAttribute ( "host" ) ,
322+ securecookies [ i ] . getAttribute ( "name" ) ) ;
319323 rs . cookierules . push ( c_rule ) ;
320324 this . log ( DBUG , "Cookie rule " + c_rule . host + " " + c_rule . name ) ;
321325 }
0 commit comments