Created
August 25, 2016 08:05
-
-
Save bendc/d7f3dbc83d0f65ca0433caf90378cd95 to your computer and use it in GitHub Desktop.
Test if ES6 is ~fully supported
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var supportsES6 = function() { | |
try { | |
new Function("(a = 0) => a"); | |
return true; | |
} | |
catch (err) { | |
return false; | |
} | |
}(); |
MediaWiki previously used this snippet and is now updating it to also test for these ES2017 features:
- Trailing commas in function parameters
- Async functions
See the update in patchset 1141401.
Ensuring ES2015 (ES6) grammar and syntax support:
new Function( '(a = 0) => a' );
Ensuring ES2017 (ES8) grammar and syntax support:
new Function( 'async (a = 0,) => a' );
The crucial test is the one for trailing commas, as it was the last ES2017 feature to be implemented (for instance, in Chrome 58).
You can find more details in the "Feature summary" table at the end of this Feature support list on caniuse.com.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I wanna know how to prove “all browsers supporting default parameters have a fairly complete support of ES6”
Thankfully, if you can show links or refs