Pale Moon/Safari 13.1 no longer working due to not supporting BigInt [Waiting for Nuxt bugfix]

Group Leader
Joined
Sep 17, 2018
Messages
508
A heads-up: Pale Moon is once again unable to open the site.
The incriminated code seems to be a Nuxt internal so there's probably not much you can do, but I'm notifying you in case there is a configuration somewhere you can toggle.

The issue is related to BigInt support, as Nuxt at some point does a check like:
Code:
e === "0n" ? 0n : JSON.parse(e)
in which the 0n identifier is BigInt syntax.
Considering that the largest non-BigInt number in Javascript is still within the reported numbers MangaDex usually handle (e.g. number views per chapter) and thus does not strictly need BigInts, if there was a setting to disable this check it would really be great if you could toggle it until Pale Moon supports BigInts (which is on the roadmap as, for unknown reasons, almost every JS framework is fiddling with them even when realistically almost every website using those frameworks never need BigInts.)
 
Abolish Harems
Staff
Developer
Joined
Jun 4, 2019
Messages
238
A heads-up: Pale Moon is once again unable to open the site.
The incriminated code seems to be a Nuxt internal so there's probably not much you can do, but I'm notifying you in case there is a configuration somewhere you can toggle.

The issue is related to BigInt support, as Nuxt at some point does a check like:
Code:
e === "0n" ? 0n : JSON.parse(e)
in which the 0n identifier is BigInt syntax.
Considering that the largest non-BigInt number in Javascript is still within the reported numbers MangaDex usually handle (e.g. number views per chapter) and thus does not strictly need BigInts, if there was a setting to disable this check it would really be great if you could toggle it until Pale Moon supports BigInts (which is on the roadmap as, for unknown reasons, almost every JS framework is fiddling with them even when realistically almost every website using those frameworks never need BigInts.)
Hello there. Yes, the issue is Nuxt. Nuxt 3.5 added support for rich JSON payloads (https://nuxt.com/blog/v3-5#rich-json-payloads) which includes BigInt. But they didn't use the "safe" BigInt constructor (which checks for browser support beforehand). However, this has been fixed with this pull request here: https://github.com/nuxt/nuxt/pull/21427 so you can expect it to be fixed once a newer version of Nuxt (3.6.0) is released.
 
Last edited:
Group Leader
Joined
Sep 17, 2018
Messages
508
That's great. Hopefully this update comes soon, using the site only on mobile when I have a larger screen available really sucks. :huh:
 
Head Contributor Wrangler
Staff
Super Moderator
Joined
Jan 18, 2018
Messages
1,800
https://github.com/nuxt/nuxt/pull/21427

Nuxt 3.5 broke it, it'll get fixed.

@Mima-sama Pre-emptive ping.

Replaces BigInt literal with BigInt constructor function because the BigInt literal syntax doesn’t support being transpiled to browsers that don’t support it, like Safari 12 and 13. Using the BigInt constructor the code transpiles properly, it will just fail if you try to use BigInt in a browser that doesn’t support it.

This also breaks any version of Safari prior to 14, but 12 was already broken and anything that supports 13 also supports 15 so you can update iOS to fix this.

Full list of minimum browser versions attached below.

Screenshot_20230614_093245_Firefox.jpg
 
Last edited:
Joined
Apr 22, 2018
Messages
7
Thank you for this info. I thought it was strange in previous day, the website was fine and the next day it only shows a blank page and today I was digging for info which led me to Mima thread in which it said my current browser version is fixed which led to here.
Man, I want to swear at those guys from Nuxt. And there is only two browser I like more than the rest and that is Pale Moon and Vivaldi due to their features.
 
Abolish Harems
Staff
Developer
Joined
Jun 4, 2019
Messages
238
Thank you for this info. I thought it was strange in previous day, the website was fine and the next day it only shows a blank page and today I was digging for info which led me to Mima thread in which it said my current browser version is fixed which led to here.
Man, I want to swear at those guys from Nuxt. And there is only two browser I like more than the rest and that is Pale Moon and Vivaldi due to their features.
Out of curiosity, shouldn't Pale Moon be responsible for this—and not Nuxt—considering BigInt has been supported on Firefox for 4 years (since Firefox 68)? If I was a regular Pale Moon user, I'd be more concerned with the browser's lack of modern technologies rather than Nuxt's capability to ensure it works on browsers that don't support technologies more than half a decade old.
 
Group Leader
Joined
Sep 17, 2018
Messages
508
Out of curiosity, shouldn't Pale Moon be responsible for this—and not Nuxt—considering BigInt has been supported on Firefox for 4 years (since Firefox 68)? If I was a regular Pale Moon user, I'd be more concerned with the browser's lack of modern technologies rather than Nuxt's capability to ensure it works on browsers that don't support technologies more than half a decade old.
The thing is, when does a website need big integers? As I'm sure you know, the "traditional" Javascript number is enough to represent billions if not more, so practically one would need a BigInt only when the browser needs to compute values larger than what Javascript would normally be able to represent.

Realistically speaking the only websites that would need something like this are Facebook, YouTube, maybe Twitch, TikTok; that is, a handful of supergiants that could've as well used some pure Javascript implementation instead of pushing it inside the browser's core.

In the specific case of Nuxt, the framework doesn't even use BigInt: the incriminated code is a bunch of checks to allow support of BigInt as part of a larger feature. Basically, it's a case of adding something just because it's there without considering whether it makes sense or not.

The Pale Moon developers have always considered BigInt of secondary importance because the vast majority of the websites don't need BigInt and the vast majority of web developers don't even know what a BigInt is and how it differs from normal numbers. The priority has shifted because frameworks have started adding features that also encompass BigInts, not because website rely on them, as you can see from all the reports about BigInts on the Pale Moon forum: all errors about BigInts always come from frameworks or similar, never from the website in question.
 
Abolish Harems
Staff
Developer
Joined
Jun 4, 2019
Messages
238
In the specific case of Nuxt, the framework doesn't even use BigInt: the incriminated code is a bunch of checks to allow support of BigInt as part of a larger feature. Basically, it's a case of adding something just because it's there without considering whether it makes sense or not.
The framework is required to support every possible primitive type there is. The reason is because of client hydration in case of SSR apps. Nuxt doesn't use BigInt to function internally, but it has to support it in case you, the developer, use it on your website. I wouldn't be so adamant about this normally but we're talking about a primitive type here; not some pretty API.

This is quite critical, in my opinion, because the mere presence of 0n will cause the entire script to error out and the site to not even render, whereas if it were a specific API, only the part that utilizes that API would fail, which wouldn't be very important as only one part is affected, rather than the entire thing.

So it's not about supporting a "handy feature," but about actually ensuring this value will not cause the entire site to break—just like it did right now.
 
Joined
Apr 22, 2018
Messages
7
Just in case you want to know if Nuxt updated their thing, the link is here: https://github.com/nuxt/nuxt/releases
They updated it to 3.6.0 yesterday, which there is already bugfix in this part, it solves Safari and Pale Moon issues. If you want to check it out, just scroll it down to FIXES part which lists "nuxt: Replace BigInt literal with BigInt constructor (#21427)" which was mentioned by BraveDude8 in this same thread.

Not sure if you need to download it to update it to mangadex. Just leaving the nuxt link in the case you need it in the case there is another nuxt bug in future.
 

Users who are viewing this thread

Top