function bin2str(bufView) { var length = bufView.length; var result = ''; for (var i = 0; i length) { addition = length - i; } try { // this fails on phantomjs due to old webkit bug; hence the try/catch result += String.fromCharCode.apply(null, bufView.subarray(i,i+addition)); } catch (e) { var dataArray = []; for (var j = i; j < i+addition; j++) { dataArray.push(bufView[j]); } result += String.fromCharCode.apply(null, dataArray); } } return result; } //function ab2str(buffer) { // return bin2str(new Uint8Array(buffer)); //} function str2ab(str) { var buf = new ArrayBuffer(str.length); var bufView = new Uint8Array(buf); for (var i=0, strLen=str.length; i