Attach (recommended) or Link to PDF file here:

[broken_font.pdf](https://github.com/mozilla/pdf.js/files/6210602/broken_font.pdf)

Configuration:
- Web browser and its version: Firefox@87, Chrome@89, Safari@14
- Operating system and its version: Mac OS@11.2.3
- PDF.js version: 2.7.570
- Is a browser extension: No

Steps to reproduce the problem:
1.  To render page by PDFPageProxy.render()
2. Uncatchable error thrown.

What is the expected behavior? (add screenshot)

- The error should be able to be caught.
- Or correctly rendered.

What went wrong? (add screenshot)

This is console log when opening that pdf by Firefox@87. 

![image](https://user-images.githubusercontent.com/927286/112610038-99e6a900-8e5f-11eb-8aca-05ddba50d3a8.png)

I met identical errors when opening it via pdfjs's API. Well, that file seems to contain the font that is wrongly encoded, but other pdf viewer can show the content.  The message `Warning: Failed to load font 'g_d2_f1': 'SyntaxError: Invalid font data in ArrayBuffer.'.` was logged from [here](https://github.com/mozilla/pdf.js/blob/master/src/display/font_loader.js#L93). 


}
    }
  }
  compileDict(dict, offsetTracker) {
    let out = [];
    
    const order = dict.order;
    for (let i = 0; i < order.length; ++i) {
      const key = order[i];
      if (!(key in dict.values)) {
        continue;
      }
      let values = dict.values[key];
      let types = dict.types[key];
      if (!Array.isArray(types)) {
        types = [types];
      }
      if (!Array.isArray(values)) {
        values = [values];
      }
      
      if (values.length === 0) {
        continue;
      }
      for (let j = 0, jj = types.length; j < jj; ++j) {
        const type = types[j];
        const value = values[j];
        switch (type) {
          case "num":
          case "sid":