On https://github.com/mozilla/pdf.js/wiki/Required-Browser-Features we mention required browser features for PDF.js, but I have the feeling that not all of them are necessary nowadays since we moved to using more modern features over the years. Moreover, as indicated in https://github.com/mozilla/pdf.js/issues/11950#issuecomment-637149085, some features may be missing such as range requests or `async/await`.

In short, we should verify which are still necessary and update the wiki page and the automated feature detection if possible.
for (var x = 0; x < 40; x++) {
      if (data[x * 4 + y * 160 + 3] == 0) continue; 
      minx = Math.min(minx, x); miny = Math.min(miny, y);
      maxx = Math.max(maxx, x); maxy = Math.max(maxy, y);
    }
  }
  var colors = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
  var counts = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
  for (var y = miny; y <= maxy; y++) {
    for (var x = minx; x <= maxx; x++) {
      var i = Math.floor((x - minx) * 3 / (maxx - minx + 1));
      var j = Math.floor((y - miny) * 3 / (maxy - miny + 1));
      counts[i][j]++;
      if (data[x * 4 + y * 160 + 3] != 0)
        colors[i][j]++;
    }
  }
  var isPlus =
    colors[0][0] * 3 < counts[0][0] &&
    colors[0][1] * 3 > counts[0][1] &&
    colors[0][2] * 3 < counts[0][2] &&
    colors[1][0] * 3 > counts[1][0] &&
    colors[1][1] * 3 > counts[1][1] &&
    colors[1][2] * 3 > counts[1][2] &&
    colors[2][0] * 3 < counts[2][0] &&
    colors[2][1] * 3 > counts[2][1] &&
    colors[2][2] * 3 < counts[2][2];
  return isPlus;
}