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
Remove IE9/IE10 support and other legacy browser #829
Comments
nice list to start with, before proceeding, please have a quick review, and strike items that we need to keep, or add anything missing |
I was just looking over the Edge release history. Microsoft has already released 3 major (public) versions of the new browser. And since IE11 hasn't been updated in 3 years, I vote we drop support for it entirely. For further evidence that retaining IE11 support is a bad idea, I point to Microsoft's IE End of Support article, which claims IE11 will stick around and remain supported for the lifetime of the OS on which it is installed. IE11 ships with Windows 10, which itself has a support lifetime lasting until at least October 2020. We cannot hold ourselves back for the next 4 years because IE11. It's time to drop this piece of crap like the ... piece of crap it is! Besides, if anyone really wants to use melonJS on IE11, they can just use an older version of melonJS... |
By the way, Android browser is dead (replaced by Chrome) and Opera Mini is a server-side browser, much like Amazon Silk. We shouldn't care about those platforms; they can't run games anyway. For more info, see: https://dev.opera.com/articles/opera-mini-and-javascript/ On iOS, Opera Mini does have an option called "Turbo Mode" which just changes the server-side rendering into a GUI for iOS WebKit. See: https://dev.opera.com/blog/opera-mini-8-for-ios/#turbo-mode So it has the same feature footprint as the native Mobile Safari. Opera Mobile is a completely different browser altogether, and is powered by Blink and v8, the same rendering engine and JavaScript engine used in Chrome and Desktop Opera... And it is not supported on iOS because Apple's App Store guidelines explicitly disallows these engines. You can get Opera Mobile on Android and Windows Phone. |
great, so let's drop all these shit for the next major release (aka 5.0), and for those that still need compatiblity with older platforms, they can still use any es5 shim : |
would be a nice anouncement on the blog by the way, 2017 we drop the dead bodies :) |
|
we need to get this up-to-date as well, with the minimum version we then support : |
FWIW melonjs/melonjs.org@b7759d7 |
18 to 55 seems to be quite a jump for chrome mobile... I wonder if did not check the wrong chrome |
|
I can lend a hand with this. I presume we'd want unit tests running at least on Chrome and Firefox to make sure we didn't get regressions; #890 adds Chrome execution, Firefox would be easy too. Probably a good place to start would be to add code coverage reports and check what places that use obsolete code are not under test, start with tests, proceed with replacement. Comments? |
that would be great, help is always appreciated/awesome :) Probably they could be added in this test unit : i'm not sure though about the browser and browser version to use, as regression are more likely to happen WHEN using a polyfill ? |
ticket closed. I doubt it's really useful actually, but I also added some test coverage for these es5 polyfills we removed. |
That includes :
https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel
https://github.com/melonjs/melonJS/blob/master/src/lang/array.js#L29-L40
http://caniuse.com/#search=forEach
https://github.com/melonjs/melonJS/blob/master/src/lang/array.js#L42-L53
http://caniuse.com/#search=isArray
TypedArray polyfill: (ES6)https://github.com/melonjs/melonJS/blob/master/src/lang/array.js#L98-L146
http://caniuse.com/#search=TypedArray
https://github.com/melonjs/melonJS/blob/master/src/lang/function.js#L14-L59
http://caniuse.com/#search=Function.prototype.bind
https://github.com/melonjs/melonJS/blob/master/src/lang/object.js#L15-L38
http://kangax.github.io/compat-table/es5/#test-Object.defineProperties
https://github.com/melonjs/melonJS/blob/master/src/lang/object.js#L40-L62
http://kangax.github.io/compat-table/es5/#test-Object.defineProperties
Object is Polyfill(ES6) :https://github.com/melonjs/melonJS/blob/master/src/lang/object.js#L64-L102
http://kangax.github.io/compat-table/es6/#test-Object_static_methods_Object.is
Object.assign(ES6) :https://github.com/melonjs/melonJS/blob/master/src/lang/object.js#L104-L152
http://kangax.github.io/compat-table/es6/#test-Object_static_methods_Object.assign
Date Performance polyfill: (not supported by opera mini, and android < 4.2, might need to be extended to support webworkers)https://github.com/melonjs/melonJS/blob/master/src/lang/performance.js#L23-L39
http://caniuse.com/#search=performance
https://developer.mozilla.org/en-US/docs/Web/API/Performance/now
https://github.com/melonjs/melonJS/blob/master/src/lang/performance.js#L12-L21
http://kangax.github.io/compat-table/es5/#test-Date_methods_Date.now
https://github.com/melonjs/melonJS/blob/master/src/lang/string.js#L15-L31
http://kangax.github.io/compat-table/es5/#test-String_properties_and_methods_String.prototype.trim
The text was updated successfully, but these errors were encountered: