Attach (recommended) or Link to PDF file here: [ACORD 0211 2016-09 Acroform BLANK.pdf](https://github.com/mozilla/pdf.js/files/6353664/ACORD.0211.2016-09.Acroform.BLANK.pdf)

Configuration:
- Web browser and its version: Google Chrome Version 90.0.4430.72 (Official Build) (x86_64)
- Operating system and its version: Windows 10 Pro 20H2
- PDF.js version: 2.7.570
- Is a browser extension: No

Steps to reproduce the problem:
1. Load attached form into PDFViewer
2. Call saveDocument method on loaded document proxy

What is the expected behavior: should not crash

What went wrong? (add screenshot)
It crashes in writer.js. Line 273 as of 21 Apr 2021.
![image](https://user-images.githubusercontent.com/10527821/115615989-4d747900-a2f8-11eb-8e6a-fa3070d813a7.png)

Line that crashes: 
![image](https://user-images.githubusercontent.com/10527821/115616056-6846ed80-a2f8-11eb-8df1-b4633d3e5e8e.png)

Potential fix: 
![image](https://user-images.githubusercontent.com/10527821/115616270-af34e300-a2f8-11eb-82c9-c13bfd111fe4.png)

Potential fix is based on this line if worker.js file: 
![image](https://user-images.githubusercontent.com/10527821/115616437-e0151800-a2f8-11eb-947c-d89e72774bd5.png)


Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension): not hosted

gdict.set("H", 123.00001);
      const string = "a stream";
      const stream = new StringStream(string);
      stream.dict = new Dict(null);
      stream.dict.set("Length", string.length);
      gdict.set("I", stream);
      dict.set("G", gdict);
      const buffer = [];
      writeDict(dict, buffer, null);
      const expected =
        "<< /A /B /B 123 456 R /C 789 /D (hello world) " +
        "/E (\\(hello\\\\world\\)) /F [1.23 4.5 6] " +
        "/G << /H 123 /I << /Length 8>> stream\n" +
        "a stream\n" +
        "endstream\n>>>>";
      expect(buffer.join("")).toEqual(expected);
    });
    it("should write a Dict in escaping PDF names", function () {
      const dict = new Dict(null);
      dict.set("\xfeA#", Name.get("hello"));
      dict.set("B", Name.get("#hello"));
      dict.set("C", Name.get("he\xfello\xff"));
      const buffer = [];
      writeDict(dict, buffer, null);
      const expected = "<< /#feA#23 /hello /B /#23hello /C /he#fello#ff>>";
      expect(buffer.join("")).toEqual(expected);
    });
  });
});