anchor.diff:  		</tr>
   	</cffunction>
   
  - 
  -	<cffunction name="formatUnit" output="no" returntype="string">
  -		<cfargument name="unit" type="string" required="yes" />
  -		<cfargument name="time" type="numeric" required="yes" />
  -		<cfif arguments.time GTE 100000000>
  -			<!--- 1000ms --->
  -			<cfreturn int(arguments.time/1000000)&" ms" />
  -		<cfelseif arguments.time GTE 10000000>
  -			<!--- 100ms --->
  -			<cfreturn (int(arguments.time/100000)/10)&" ms" />
  -		<cfelseif arguments.time GTE 1000000>
  -			<!--- 10ms --->
  -			<cfreturn (int(arguments.time/10000)/100)&" ms" />
  -		<cfelse>
  -			<!--- 0ms --->
  -			<cfreturn (int(arguments.time/1000)/1000)&" ms" />
  -		</cfif>
  -		<cfreturn (arguments.time/1000000)&" ms" />
  -	</cffunction>
  -
  -
   	<cfscript>
   
  -		function byteFormat( size ) {
  +		function unitFormat( string unit, numeric time ) {
  +
  +			var result = numberFormat( time / 1000000, "0.00" );
  +
  +			result = listFirst( result, '.' ) & "<span class='num-lsv'>." & listGetAt( result, 2, '.' ) & "</span> ms";
  +
  +			return result;
  +
  +			/*/ not sure what this confusing old impl was supposed to do; arguments.unit was ignored anyway!
  +			if ( arguments.time >= 100000000 )
  +				return int( arguments.time / 1000000 ) & " ms";
  +
  +			if ( arguments.time >=  10000000 )
  +				return ( int( arguments.time / 100000 ) / 10 ) & " ms";
  +
  +			if ( arguments.time >=   1000000 )
  +				return ( int( arguments.time / 10000 ) / 100 ) & " ms";
  +
  +			return ( int( arguments.time / 1000 ) / 1000 ) & " ms";
  +			//*/
  +		}
  +
  +
  +		function byteFormat( numeric size ) {
   
   			var values = [ [ 1099511627776, 'TB' ], [ 1073741824, 'GB' ], [ 1048576, 'MB' ], [ 1024, 'KB' ] ];
   
   			for ( var i in values ) {
   
  -				if ( size >= i[ 1 ] )
  -					return numberFormat( size / i[ 1 ], '9.99' ) & i[ 2 ];
  +				if ( arguments.size >= i[ 1 ] )
  +					return numberFormat( arguments.size / i[ 1 ], '9.99' ) & i[ 2 ];
   			}
   
  -			return size & 'B';
  +			return arguments.size & 'B';
   		}
   	</cfscript>
   
  
positive.code: 										<cfset bad=pages.avg GTE arguments.custom.highlight * 1000>
  										<cfset loa=loa+pages.load>
  										<tr class="nowrap #bad ? 'red' : ''#">
  											<td class="txt-r">#formatUnit(arguments.custom.unit, pages.total-pages.load)#</td>
  											<td class="txt-r">#formatUnit(arguments.custom.unit, pages.avg)#</td>
  											<td class="txt-c">#pages.count#</td>
  											<td id="-railo-debug-pages-#pages.currentRow#" oncontextmenu="__RAILO.debug.selectText( this.id );">#pages.src#</td>
  											<td class="txt-r" style="color: ##999;" title="#pages.id#">#pages.id % 10000#</td>
  										</tr>
  									</cfloop>
  									<tr class="red"><td colspan="3">red = over #formatUnit( arguments.custom.unit, arguments.custom.highlight * 1000 )# average execution time</td></tr>
  
  								</table>
  							</td>	<!--- id="-railo-debug-#sectionId#" !--->
  
negative.code: 														<br />
  													</cfif>
  												</td>
  												<td class="txt-r">#unitFormat(arguments.custom.unit, total)#</td>
  												<td class="txt-r">#unitFormat(arguments.custom.unit, traces.time)#</td>
  											</tr>
  										</cfloop>
  									
  