code: function readAsBinaryString(blob, callback) {
    if (typeof FileReader === 'undefined') {
      // fix for Firefox in a web worker
      // https://bugzilla.mozilla.org/show_bug.cgi?id=901097
      return callback(arrayBufferToBinaryString(
        new FileReaderSync().readAsArrayBuffer(blob)));
    }
  
    var reader = new FileReader();
    var hasBinaryString = typeof reader.readAsBinaryString === 'function';
    reader.onloadend = function (e) {
      var result = e.target.result || '';
      if (hasBinaryString) {
        return callback(result);
      }
      callback(arrayBufferToBinaryString(result));
    };
    if (hasBinaryString) {
      reader.readAsBinaryString(blob);
    } else {
      reader.readAsArrayBuffer(blob);
    }
  }
docs: shim for browsers that don't support it