First, this isn't a bug report in the traditional sense, but it is something I wanted to report.
The issue: recent testing of hyperscript using mobile devices seems to result in the script throwing hard due to a syntax error in certain cases.
It appears that between versions 0.9.5 and 0.9.6 use of
class members as
static properties was introduced which is reported as the root cause of the error.
The venerable CanIUse site bears out that these props acheived recent support in mobile iOS:
I came across this in debugging the most basic of use-cases: a simple (naive) login form wherein the command button element is disabled unless a value is provided to an input. (Perfect for hyperscript!)
The code worked great on desktop and desktop browser mobile emulators but failed on actual mobile iOS devices.
Debugging pointed to what I believe is the offending syntax:
and further, by testing various combos of devices , OS levels, and browsers, I can say that what CanIUse tells us seems spot-on.
As an aid, here is a public page that repros the issue using 0.9.7 loaded via script tag:
Access the page on an actual iOS phone (tablets were not been tested) and key a few values into the input.
As I said above, I'm not completely characterizing this as a bug, mostly because it's unknown whether this result was a
considered choice or just one that got by the committers.
That said, given hyperscript's 'place' in the world, I feel it's pretty aggressive to expect mobile iOS users to be running
a version (14.5) released only 15 months ago (April 26, 2021). But others may disagree.
Maybe the project and community would be better served with a technical implementation that was more tolerant of the iOS laggards (like me) who comfortably occupy the far left side of the rate-of-adoption curve. (And I'm saying this with absolutely no idea of the level of effort to do so.)
Hyperscript is a fresh, new (or new again!) take on OSS scripting and I'd hate to see it's reputation aligned by the same sort of thing that has so much dogged the whole JS eco-system: unexpected incompatibility where you'd least expect it.
I really suck at haiku (actually all poetry) but I'm certain there is a good one about how you can't actually trust the mobile device emulators in the desktop browsers just crying to be written.
And then the one about how support of newer JS feature is snarling a great effort to vastly reduce the time spent on snarls regarding JS features. :)
|Issue Title||Created Date||Updated Date|