/** * Converts a String to a UInt8 array of character codes * @param {String} str Input string * @returns {Uint8Array} Uint8 Array of character codes */ function stringToUint8Array(str) { var uint=new Uint8Array(str.length); for(var i=0,j=str.length;i data.length) { //console.log('dataOffset >> ', dataOffset); return false; } for(var i = 0; i < token.length; i++) { if(token[i] !== data[endIndex++]) { if(endIndex > 520000) { console.log('token=',uint8ArrayToString(token)); console.log('data=', uint8ArrayToString(data, dataOffset, endIndex-dataOffset)); console.log('miss at %d %s dataOffset=%d', i, String.fromCharCode(data[endIndex]), endIndex); console.log('miss at %d %s dataOffset=%d', i, String.fromCharCode(token[endIndex]), endIndex); } return false; } } return true; } findIndexOfString = function(data, str, offset) { offset = offset || 0; var token = stringToUint8Array(str); for(var i=offset; i < data.length; i++) { if(data[i] === token[0]) { //console.log('match @', i); if(checkToken(token, data, i)) { return i; } } } return -1; };