Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App broken on iOS Safari 9 due to SyntaxError #11064

Open
arggh opened this issue May 17, 2020 · 22 comments
Open

App broken on iOS Safari 9 due to SyntaxError #11064

arggh opened this issue May 17, 2020 · 22 comments
Assignees
Labels
confirmed We want to fix or implement it

Comments

@arggh
Copy link
Contributor

arggh commented May 17, 2020

I know it's iOS Safari 9, but our app used to work on this browser with Meteor 1.8.2. I think supporting old iOS versions is important, since lots of people have old iPads laying around that they use for browsing the web. They can't update the browser past the OS version and Apple doesn't release updates to those old, yet functional devices.

We are updating our app to the latest Meteor 1.10.2 and now the app is broken on iOS Safari 9.

Related to unresolved & closed issue: #10957

The error message:

SyntaxError: Invalid parameters or function name in strict mode

Screenshot 2020-05-17 at 10 45 09
Screenshot 2020-05-17 at 10 44 54

@brianlukoff
Copy link
Contributor

1.10.2 seems to have this issue on old versions of Safari in general -- even a clean install exhibits the same problem.

@filipenevola filipenevola added this to the Release 1.10.3 milestone Jun 4, 2020
@filipenevola filipenevola added the good first issue Good first issue or something that should is nice to do. label Jun 4, 2020
@filipenevola
Copy link
Collaborator

Hi, do you have an easy way to test in old Safari?

Maybe this core-js upgrade was the cause:
330a6cf

Also have you tried to use setMinimumBrowserVersions https://docs.meteor.com/changelog.html#changes-18?

@brianlukoff
Copy link
Contributor

We have been using BrowserStack for testing, which is great:
https://www.browserstack.com/

We do have setMinimumBrowserVersions set to require Safari 11.1 but it doesn't seem to matter here.

@arggh
Copy link
Contributor Author

arggh commented Jun 8, 2020

Hi, do you have an easy way to test in old Safari?

@filipenevola if you are on a Mac, you can install Xcode and launch the Simulator. From there, you can install different iOS versions and run them on various virtual Apple devices. You can even use desktop Safari's debugger.

@brettg2
Copy link

brettg2 commented Jun 8, 2020

+1

I get a similar error in Safari 8...

To reproduce, run the command "meteor create simple-todos" then run the app. Goto browserstack and use safari 8 and go to the localhost server at the meteor port number in use (http://localhost:3000). The console will show 45 errors:

image

@sonhle
Copy link

sonhle commented Jun 16, 2020

Hi, I am experiencing the same error with Meteor 1.10.2 and safari 9.1.2. Any workaround? Thanks,

@sonhle
Copy link

sonhle commented Jun 17, 2020

I downgraded Meteor 1.8.1 to fix the error. Still have the error with 1.8.2 & 1.8.3

@ericoe
Copy link

ericoe commented Jun 23, 2020

I'm late to the party, but I'll +1. Upgrading to 1.10.2 breaks us on iOS 9.
While using 1.8.3, we run native on iOS9 and we can support iOS8 via Safari.
After upgrade to 1.10.2, we have to set minimum iOS10x for native app and we cannot run in browser to support older iOS.

@nathanschwarz
Copy link

It's not just on IOS, tested on Mac Os today with Safari 9.1.2.
It throw "SyntaxError: Invalid parameters or function name in strict mode.".

@filipenevola
Copy link
Collaborator

filipenevola commented Jul 9, 2020

Hi, could you test with Meteor 1.10.3-beta.5? meteor update --release 1.10.3-beta.5. thanks.

@brianlukoff
Copy link
Contributor

Still does not work on 1.10.3-beta.4 -- I created a clean app and used Browserstack to test on Safari 7.1 and got errors similar to @brettg2 above.

@filipenevola
Copy link
Collaborator

Hi @brianlukoff did you on beta.5? BTW beta.4 was broken due to version constraints at least if you use accounts-password so maybe you tested with beta.3?

Please let me know!

@brianlukoff
Copy link
Contributor

Just retested on beta.5 with the same result -- I am creating a clean app with meteor create test and then running meteor update --release 1.10.3-beta.5.

filipenevola added a commit that referenced this issue Sep 10, 2020
- replaces the user to run Browserstack
@stale
Copy link

stale bot commented Sep 19, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale-bot label Sep 19, 2020
@arggh
Copy link
Contributor Author

arggh commented Sep 19, 2020

Not stale AFAIK

@stale stale bot removed the stale-bot label Sep 19, 2020
@ericoe
Copy link

ericoe commented Sep 19, 2020

Not stale

@filipenevola filipenevola added confirmed We want to fix or implement it and removed good first issue Good first issue or something that should is nice to do. labels Sep 21, 2020
@filipenevola
Copy link
Collaborator

Hey, this is not stale indeed, we are working on this.

We know that this broke the first time here https://github.com/meteor/meteor/blame/830b8a40cb5df665ef9688bd7ac6cece3b1f4223/tools/isobuild/linker.js#L688 but reverting this change breaks the minifier when using dynamic imports.

We are analyzing if upgrading terser or using a different approach would fix the issue but no luck so far.

As @renanccastro is working on many changes on related code he is going to check this in the tree-shaking branch #11164


@denihs has added back the BrowserStack #11166 test to our CircleCI so we are going to run it again against every PR to avoid unintentional breaking changes again in the future. This test was removed a long time ago but we think this is important and then we are adding it back.

For now we are going to merge this BrowserStack test using Safari 11 as minimum version but we want to reduce this version to 9 again, if we are able to fix the issue on tree-shaking branch.

We decided to merge using Safari 11 now to at least avoid more breaking changes in the near future.

@stale
Copy link

stale bot commented Oct 31, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale-bot label Oct 31, 2020
@StorytellerCZ
Copy link
Collaborator

Not an Apple user, is Safari 9 still a thing at this point? @renanccastro

@arggh
Copy link
Contributor Author

arggh commented Aug 12, 2021

Not an Apple user, is Safari 9 still a thing at this point? @renanccastro

I think the statement in the issue description still stands:

I think supporting old iOS versions is important, since lots of people have old iPads laying around that they use for browsing the web. They can't update the browser past the OS version and Apple doesn't release updates to those old, yet functional devices.

...of course it's up for discussion whether that's reason enough, considering the minuscule market share of old iOS versions, but since it used to work... 🤷

@ericoe
Copy link

ericoe commented Aug 12, 2021

This is an old issue. So from an MDG biz decision, not acting on this for this long I think has in many ways obviated the need to fix it. Existing Meteor apps have had to find a workaround or punt. This was a very hard choice for us to tell our users we cannot support them anymore.

When new Cordova breaks old native iOS/android builds, we have usually had the good fortune to tell customers to use a BROWSER on their old devices.

My request to MDG is to do their best to test and support old browsers

@filipenevola
Copy link
Collaborator

@ericoe since this issue happened we had upgraded our Browserstack tests, reactivated them and we are running them before any releases so new regressions are not going to come up, at least not as a surprise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
confirmed We want to fix or implement it
Projects
None yet
Development

No branches or pull requests

9 participants