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

drop support for non-ES5 compliant environments #2979

Closed
boneskull opened this issue Sep 3, 2017 · 7 comments
Closed

drop support for non-ES5 compliant environments #2979

boneskull opened this issue Sep 3, 2017 · 7 comments
Assignees
Labels
semver-major implementation requires increase of "major" version number; "breaking changes" type: chore generally involving deps, tooling, configuration, etc.
Milestone

Comments

@boneskull
Copy link
Member

Support for IE7, IE8, and PhantomJS 1.x is an albatross.

By dropping support for these environments, we should:

  1. Reduce code complexity by removing handrolled shims.
  2. Reduce CI failures (hopefully!)
  3. Reduce number of edge cases in tests
  4. Reduce size of build matrix

Unfortunately I have no metrics on how many use Mocha for these environments.

Please speak up if you are writing new tests for these environments with Mocha, and don't want to see support dropped. I'm willing to entertain a good argument against!

@boneskull boneskull added area: repository tooling concerning ease of contribution semver-major implementation requires increase of "major" version number; "breaking changes" labels Sep 3, 2017
@boneskull boneskull changed the title drop ES3 support drop support for non-ES5 compliant environments Sep 3, 2017
@boneskull boneskull added the status: waiting for author waiting on response from OP - more information needed label Sep 3, 2017
@bdsomer
Copy link

bdsomer commented Sep 4, 2017

Why haven't we dropped these already? Testing frameworks are mainly used by developers, and developers don't usually use old browsers anyway...

@ScottFreeCode
Copy link
Contributor

Welcome... to Windows 98. Why are you still using Windows 98?! What's wrong with you?

~Strong Bad

Testing frameworks are mainly used to prove that some other code works, and client-side JavaScript doesn't generally run on developers' browsers, it generally runs on users' browsers. Thus, testing frameworks intended to support client-side JavaScript have the strongest use case of anything for supporting older (or even unambiguously outdated) browsers: the net sum of all other cases for allowing users to not upgrade, as long as there still are any in this day and age. Although there are, fortunately, far fewer now than back in the bad old days when anyone selling stuff online had to support IE6 indefinitely because everyone's grandmas used it!

(And, to be even more fair, there will always be the old versions of Mocha for testing older environments, so the real question is how much need there is for upcoming Mocha features and fixes used for testing the older environments. Pretty narrow scope. The trick is getting responses from people in a scope like that before they discover that all new versions of Mocha are breaking their tests...)

@bdsomer
Copy link

bdsomer commented Sep 4, 2017

Has the team ever considered using Babel?

@boneskull
Copy link
Member Author

If Mocha was written in ES2015+ then Babel would be appropriate. Maybe it even will output IE7-compatible code. But the idea is to drop support; not support it via different means.

@bdsomer
Copy link

bdsomer commented Sep 5, 2017

@boneskull Awesome, got it.

@boneskull
Copy link
Member Author

The reason this has stuck around so long is twofold:

  1. Until the last year or two, PhantomJS 1.x was (more or less) the "only show in town" for headless browsers.
  2. Business requirements mandate compatibility with old browsers. Developers may not use old browsers themselves, but are told to write code that'll work in IE8. This is likely not as relevant for public-facing sites as it is for intranets.

As a side note, IE7 compatibility may not have been originally intended; we sort of stumbled onto that.

But! Today is the dawn of a new era! Onwards and upwards. V is for victory, etc.

@boneskull boneskull added this to the v4.0.0 milestone Sep 27, 2017
@boneskull boneskull self-assigned this Sep 27, 2017
@boneskull boneskull added type: chore generally involving deps, tooling, configuration, etc. and removed area: repository tooling concerning ease of contribution status: waiting for author waiting on response from OP - more information needed labels Sep 27, 2017
@boneskull
Copy link
Member Author

this is done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver-major implementation requires increase of "major" version number; "breaking changes" type: chore generally involving deps, tooling, configuration, etc.
Projects
None yet
Development

No branches or pull requests

3 participants