@[email protected] @[email protected] Thanks for reporting! This was indeed due to a Safari bug. The WebKit/Safari team fixed it a couple of months ago, but likely hasn't reached all Safari users yet:
Fixed block-level function declarations to have correct scope in global code and aligned the detection of hoistable block-level legacy function declarations with the spec. (113880075)
https://webkit.org/blog/15063/webkit-features-in-safari-17-4/
This bug has actually existed for years - I submitted a WebKit bug report several years ago, and I could have sworn I added a workaround to fix it on Perchance, but apparently not! A bunch of people probably won't be able to upgrade to 17.4 since Apple's Safari software updates are pretty strongly tied to hardware versions (which is really stupid ✨), so I've just added a bandaid fix for the older Safari versions. Let me know if there are any other issues, and thanks again!
[Begin tangential rant] Safari requires a lot of bandaids, and I'd honestly rather just tell people to move to Chrome/Firefox/Edge, but Apple prevents other browser engines from being installed on iOS (Chrome iOS is just a "skinned" Safari browser, for example), though that is changing in the EU: https://www.theverge.com/2024/1/25/24050478/apple-ios-17-4-browser-engines-eu because it's being deemed a way in which Apple actively prevents non-Apple platforms from becoming dominant (i.e. to keep people in their App Store and away from open platforms like the web). And other countries might soon follow suit: https://open-web-advocacy.org/blog/us-doj-files-apple-antitrust-case/ which might mean the end of Apple holding the web back by forcing a huge percentage of the world population to use a buggy browser that drags its feet on cool new stuff (e.g. WebUSB, WebGPU, etc.). Exciting times ahead for the web platform I think. [end of rant, apologies :]