Reputation: 21
We recently updated the version for our Angular project from version 13 to version 16 and a number of customers are reporting issues with our website displaying a completely blank white screen. These customers seem to be using older browsers, with most of them reporting issues on their smart TVs, some of which haven't been updated in a while. We're fairly confident that updating their browsers or switching from the TV's current browser to a more popular one such as Chrome or Firefox would probably resolve the issue, but we would like to reduce the effort on their end where possible, especially since some of them are not sure how to go about updating their TVs and others say they are unable to.
We were able to replicate the issue locally by installing and running our software in an old version of Chromium from 2019 (Version 75.0.3770.0), and our investigation found that it was failing because of some code in node_modules\zone.js\fesm2015\zone.js
. More specifically, the line let C = this.constructor?.[Symbol.species];
was throwing up an error stating Uncaught SyntaxError: Unexpected token .
was the issue.
We were able to get around this locally by changing lines 1432 and 1451 from this:
let C = this.constructor?.[Symbol.species];
to this:
let myConstructor = this.constructor;
let C;
if(myConstructor)
{
C = this.constructor[Symbol.species];
}
While this allowed it to compile on our end, none of us are particularly knowledgeable about zone.js, and we're hesitant to make changes to external code which may have a knock-on effect throughout our application. As I understand it, zone.js 0.11.1 introduced a number of breaking changes for old browsers, but is this issue an expected one? We would ideally like to support older browsers where possible and know whether this is likely to be problematic before we make a decision on whether to proceed with it.
I'm not sure if it's a relevant factor, but our application is hosted in Azure.
Upvotes: 2
Views: 1566