rem: while (length > 2) { result += toBase64Table.charAt(data[0] >> 2); result += toBase64Table.charAt(((data[0] & 0x03) << 4) + (data[1] >> 4)); result += toBase64Table.charAt(((data[1] & 0x0f) << 2) + (data[2] >> 6)); result += toBase64Table.charAt(data[2] & 0x3f);  data = data.slice(3); length -= 3; 
add: for (var i = 0; i < (length - 2); i += 3) { result += toBase64Table[data[i] >> 2]; result += toBase64Table[((data[i] & 0x03) << 4) + (data[i+1] >> 4)]; result += toBase64Table[((data[i+1] & 0x0f) << 2) + (data[i+2] >> 6)]; result += toBase64Table[data[i+2] & 0x3f]; 
context: function toBase64(data) {    result = '';    length = data.length;    // Convert every three bytes to 4 ascii characters.    while (length > 2) {        result += toBase64Table.charAt(data[0] >> 2);        result += toBase64Table.charAt(((data[0] & 0x03) << 4) +             (data[1] >> 4));        result += toBase64Table.charAt(((data[1] & 0x0f) << 2) +             (data[2] >> 6));        result += toBase64Table.charAt(data[2] & 0x3f);        data = data.slice(3);        length -= 3;    }    // Convert the remaining 1 or 2 bytes, pad out to 4 characters.    if (length > 0) {        result += toBase64Table.charAt(data[0] >> 2);        if (length > 1) {            result += toBase64Table.charAt(((data[0] & 0x03) << 4)                (data[1] >> 4));            result += toBase64Table.charAt((data[1] & 0x0f) << 2);            result += base64Pad;        } else {            result += toBase64Table.charAt((data[0] & 0x03) << 4);            result += base64Pad + base64Pad;        }    }    return result;}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/1878eb2a45d07970457f505c9ef2a9e7a9c95976/nsXmlRpcClient.js/clean/extensions/xml-rpc/src/nsXmlRpcClient.js